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 FINISHED?
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!!!!!!!!!!!!!!!!