File INITLIZE

Directory of image this file is from
This file as a plain text file

*20
/
/PDP-12 DEMO MONITOR
/
/
/ INITLIZE
/                                       LAST MODS 12/21/69  RICH DE JOHN "ON THE IDES OF MARCH!!!!!!!!!!
/
/
/SOME BANK 1 REFERENCES
/
Y01=20
DCALL=3335
B1RI1=2067
B1RI2=2716
		/THE ABOVE ARE LOCATIONS OF RDC
		/INSTRUCTIONS IN WHICH
		/THE UNIT BIT MIGHT HAVE TO BE SET
		/BY ROUTINES IN THIS BANK
/
/
/CREATE DEMO INDEX AND A DISPLAY OF
/THAT INDEX, WRITE THEM ON TAPE UNIT 0 
/AND 1 AT BLOCKS 17 & 16 RESPECTIVELY
/THEN DISPLAY THE TALK TO ME PATTERN
/UNTIL A KEY IS STRUCK.
/
/THIS CODE RUNS ONCE FROM BANK 2.
/IT RESIDES IN Q0, Q1.
/
/THE INDEX IS CREATED IN Q7 AND THE
/DISPLAY IN Q6
 
 
/***************************************
 
 
	SEGMNT 2
	*20
	LMODE
/CREATE RESIDENT INDEX
/
/GET DIAL INDEX INTO CORE, Q2&Q3
/
	IOB
	6002	/IOF
	LDA I
	10
ONE,	AXO
	MTB I
	17
	JMP   TPD	/DISPLAY DURING TAPE OP
	JMP   INIF1	/INITIALIZE TEST BLOCK NO.
INIF,	MTB I
	17
	JMP   TPD
	TAC
	ADD   10
	AZE I		/CHANGED FROM APO I
	JMP   BTP
INIF1,	TAC
	AZE I
	JMP   GETX
	COM
	STC   10
	JMP   INIF
GETX,	RDC I
	2020	/FIRST BLOCK OF INDEX
	JMP   TPD
	NOP	/SECOND BLOCK ISN T READ ANYMORE 
/YOU VE GOT 377 LOCS IN Q3 SEG2 TO FIDDLE WITH IF YOU WANT  
	NOP
	JMP   TPD
/
	SET I 5
	-31	/MAXIMUM OF 31 ENTRIES
	SET I 6
	1010	/POINTER TO DIAL INDEX 1ST ENTRY
	SET I 7
	3400	/RESIDENT INDEX
/
	LDA I
	5757	/RESIDENT INDEX END MARKER
	STA   7	/INITIALIZE RESIDENT INDEX
/
ECHK,	LDA
	6
	SAE I
	1400	/HAVE WE REACHED END OF FAKE DIAL INDEX
	SKP	/NO
	JMP   SORT	/YES - SORT ALPHABETICALLY
/
	LDH   6
	SAE I
	0056	/IS FIRST CHARACTER A ".""?
	JMP   BUMP6	/NO - OMIT THIS ENTRY
/
/TRANSFER TO RESIDENT INDEX
/
	SET   13	/13 POINTS TO ENTRY
	6
	SET I 14
	-7
	LDH   13
	STH   7
	LDH I 13
	SHD I
	7777
	ADD   M37
	STH I 7
	XSK I 14
	JMP   .-6
	SET I 14
	-10
	LDH I 13
	STH I 7
	XSK I 14
	JMP   .-3
	LDA I
	5757
	STH I 7
	STA   7
	XSK I 5	/31ST ENTRY???
	SKP	/NO
	JMP   SORT	/YES
/
/PUSH DOWN THE DIAL INDEX POINTER
/
BUMP6,	LDA I
	10
	ADM
	6
	JMP   ECHK	/CHECK NEXT ENTRY
/
/SORT THE INDEX ON THE SECOND CHARACTER
/
SORT,	SET I 17
	-36	/DO THIRTY PASSES
/
	SET I 6	/FIRST ENTRY
	7400
	SET I 7	/SECOND ENTRY
	7410
/
ST,	LDA   6
	SAE I
	5757	/REACHED END?
	JMP   .+4	/NO
	XSK I 17	/MORE PASSES
	JMP   SORT+2	/YES
	JMP DCREA	/DONE, GO CREATE DISPLAY
/
	JMP   STEST	/TEST FOR SWAP
		/SKIPS IF NONE REQUIRED
	JMP   SWAP	/SWAP THE ENTRIES
/
/BUMP 6 & 7 TO NEXT PAIR
/
	SET   6
	7
	LDA I
	10
	ADM
	7
	JMP   ST	/NEXT PAIR
/
/TEST IF SECOND SMALLER
/
STEST,	SET   10	/SET RETURN
	0
	LDH   7	/SECOND ENTRY
	COM
	STA I
	0	/2ND CHAR OF 2ND ENTRY TEMP
	LDH   6	/FIRST ENTRY
	ADD   .-2
	APO	/- SAYS 1ST .LE. 2ND
	XSK I 10	/SKIP RETURN - NO SWAP
	JMP   10	/RETURN
/
/SWAP THE TWO ENTRIES
/
SWAP,	SET   10	/SET RETURN
	0
	LDA I
	-1
	ADD   6
	STC   11	/BACK UP POINTERS
	ADD   7
	ADD   .-4
	STC   12
	SET I 13
	-10	/MOVE 8 WORDS
/
SW,	LDA I 12	/SECOND ENTRY
	STC   SWX	/TEMP STORE
	LDA I 11	/FIRST ENTRY
	STA   12	/INTO SECOND
	LDA I
SWX,	0	/TEMP STORE OF SECOND ENTRY
	STA   11	/STORE IN FIRST
	XSK I 13
	JMP   SW	/MOVE MORE
	JMP   10	/DONE - RETURN
 
 
/***************************************
 
 
/CREATE DISPLAY BUFFER FROM THE NEWLY
/CREATED RESIDENT INDEX
/
DCREA,	SET I 16
	6777	/BEGINNING OF DISPLAY BUFFER -1
	SET I 17
	DEMOX+3777	/INITIAL TEXT
	SET I 10
	7400	/SECOND CHARACTER OF INDEX
	LDH I 17	/MOVE THE INITIAL TEXT
	SHD I
	3400
	JMP   DC1	/DONE WITH INITIAL TEXT
	STH I 16	/INTO DISPLAY BUFFER
	JMP   .-5
/
DC1,	SET I 14	/GROUP COUNT
	0
	SET I 5	/MAX GROUP COUNT
	-6
/
	LDA I
	3400
	STC   DSZLTR
	STC   15
/
/CHECK AN ENTRY IN RESIDENT INDEX
/
DSZ,	LDH   10	/SECOND CHAR. OF ENTRY
	SHD I
DSZLTR,	0	/NEW LETTER?
	JMP   DSTUFF	/NO
	XSK I 5	/TOO MANY GROUPS??
	SKP	/NO
	JMP   DSTUX	/YES - END DISPLAY CREATE
	STH
	DSZLTR	/RESET TEST LETTER
	SHD I
	5757	/END OF DIRECTORY
	JMP   DSTUX	/YES
	SHD I
	5656	/FILES INSTEAD OF GROUPS??
	JMP MFILE	/YES
	STH
	7377	/SET LARGEST GROUP LETTER
	SET I 3
	DSPACE+3777
	STH
	DSPACE+4005	/TEXT FOR FILL SIZE
/
/FILL GROUP FULL SIZE
TMF,	LDA I
	4343	/CR
	XSK I 15	/IS ONE REQUIRED?
	STH I 16	/YES
	SET I 7
	-15
	LDH I 3
	STH I 16
	XSK I 7
	JMP   .-3
	SET I 12
	-4	/COLUMN COUNT
/
/STUFF THE HALF SIZE ENTRY
/
DSTUFF,	SET   3
	10	/SECOND CHAR. OF INDEX ENTRY
	XSK   12	/END OF COLUMN
	JMP   DS2	/NO
	LDH I	/YES
	4300
	STH I 16	/CRLF + SPACES
	SET I 15
	-1	/SET FOR NO EXTRA CR REQUIRED
	SET I 7
	-11
	LDH I
	4000	/SPACE
	STH I 16
	XSK I 7
	JMP   .-2	/FILL SPACES
	SET I 12
	-4	/COLUMN COUNT
/
DS2,	LDH I
	4000
	STH I 16
	STH I 16	/TWO LEADING SPACES
	SET I 7
	-6
	LDH I 3	/CHAR 3 (4,5,...8) OF ENTRY
	STH I 16
	XSK I 7
	JMP   .-3
	XSK I 12	/UP COLUMN COUNT
	NOP	/DONT CARE AT THIS POINT
/
/BUMP DIRECTORY POINTER
/
	LDA I
	10
	ADD   10
	STC   10
	JMP   DSZ	/CHECK NEXT ENTRY
/
/FILES - NOT GROUP
MFILE,	SET I 3
	FILES+3777
	JMP   TMF
/
/FINISH OF DISPLAY BUFFER
/
DSTUX,	LDH I
	3400
	STH I 16	/TERMINATOR
/
/WRITEE THE INDEX AND DISPLAY JUST
/CREATED ON ONE OR BOTH TAPE UNITS,
/BLOCKS 16 & 17, AND SET THE TAPE INSTRUCTIONS
/IN BANK 1 TO REFER TO TAPE 1 IF TAPE 1 IS AVAILABLE
/
RETRY,	MTB U
	16
	JMP   WENT
	AZE
	JMP   TRYZRO
	JMP TPD
	WCG U
	1016
	JMP   TPD
	LDA I
	JMP   GBLN
	STC   OWEKAY
	LDA I
	RDC U
	LDF 1
	STA
	B1RI1
	STA
	B1RI2
	LDF   3
TRYZRO,	MTB
	16
	JMP   WENT
	AZE
OWEKAY,	JMP   SAYER
	JMP   TPD
	WCG
	1016
	JMP   TPD
GBLN,	RDC I
	6014
	JMP   TPD
	RDC
	7015
	JMP   TPD
	JMP   TALK
/
SAYER,	JMP   DQPLAY
	SWEN
	20
	KST
	JMP   SAYER
	IOB
	6036
	SAE I
	307
	JMP   SAYER
	JMP   RETRY
/
WENT,	LDA I
	50
	AXO
	LDA I
	5000
	IOB
	6151
	CLR
	IOB
	6154
	COM
	BCL I
	7774
	STC   1
	LDA I
	10
	AXO
	LDA
	1
	JMP   0
/
BTP,	MTB
	0016	/STOP THE TAPE SOFTLY
	JMP   DQPLAY
	BTPM
	20
	JMP   BTP
/
BTPM,	TEXT "FBAD TAPE - RESTART\"
/
SWEN,	TEXT "FSET WRITE ENABLE ON
FUNIT 1 AND/OR UNIT 0
FTHEN TYPE G\"
/
DEMOX,	0076
	TEXT "       INDEX 
\"
/
	*553
DSPACE,	7643
	7440
	0722
	1725
	2040
	7640
	7400
/
FILES,	7643
	7440
	0611
	1405
	2340
	7640
	7400
/
 
 
/***************************************
 
 
/DISPLAY TALK TO ME SCREEN
/
/ 3). TWO CONSECUTIVE ZEROS (AN X&Y PAIR
/TWO CONSECUTIVE ZEROS (AN X & Y PAIR
/
TALK,	IOB
	6032	/CLEAR ANY STRAY KBD FLAGS
	SET I 1
	3777
TALK1,	LDA I 1	/X COORDINATE
	STC   2
	LDA I 1
	SAE
	2	/ARE X&Y EQUAL??
	JMP   .+5	/NO
	SAE I
	0000	/THEY ARE EQUAL, ARE THEY 0??
	SKP	/NO - DIS THIS POINT 
	JMP   TALK2	/YES, BAALOON IS DONE
	LDA I
	260	/X DISPLACEMENT
	ADD   2
	STC   2
	LDA I
	60	/Y DISPLACEMENT
	ADA   1
	DIS   2
	XSK   1	/HAVE WE FINISHED7
	JMP TALK1	/NO
/
TALK2, JMP   DQPLAY
	TALKME
	2020
/
	JMP   DQPLAY
	PRESN
	1545
	JMP DQPLAY
	BIGN
	2547
/
/CHECK FOR ANY KEY STRUCK
/
	KST
	JMP   TALK	/NONE - DO THE WHOLE THING
		/OVER AGAIN
	IOB
	6032	/CLEAR KEYBOARD FLAG
		/DONT CARE ABOUT CHARACTER
/
/GO ON TO GREATER THINGS
	LDA I
	1400
	ESF
	CLR
	AXO
	LIF   1
	JMP   Y01	/START THE WORLD - MONITOR HELP
			/LOCATION OF Y01 - DISPLAY MONITOR HELP
/
/MESSAGES
/
TALKME,	TEXT "FTALK
F TO
F  ME\"
/
PRESN,	TEXT "TYPE    TO CONTINUE\"
/
BIGN,	TEXT "FC\"
 
 
/***************************************
 
 
/ DISPLAY SUBROUTINE
/
/CALLS THE DISPLAY SUBROUTINE IN BANK 1
/
DQPLAY,	LDA I 
	2
	ADD  0
	STC   DQXT
	ADD   0
	BCL I
	6000
	STC   1
	LDA   1
	BSE I
	2000
	LDF   1
	STA
	DCALL+1	/IN BANK 1
	LDA I 1
	STA
	DCALL+2	/IN BANK 1
	LDF   2
	LIF   1
	JMP   DCALL
/
TPD,	LDA 
	0
	STC   TPDX
	JMP   DQPLAY
	HOLDON
	0020
	STD
	JMP   .-4
TPDX,	0
HOLDON,	TEXT "F    INITIALIZATION
"
        TEXT "F    IS IN PROGRESS\"
M37,	-37
/
/
/THE FOLLOWING MUST REMAIN FIXED
/
	*761
	LDF   3
DQXT,	JMP   .	/RETURN FROM DCALL IN B1
/
	*763
	TEXT "TYPE IN PROGRAM OR GROUP\"
/
/
/  END OF INITLIZE ROUTINE
/
/
/                                       LAST MODS 3/15/70 RICH DE JOHN          ON THE IDES OF MARCH!!!!!!!!!!!!!!!!



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search