*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!!!!!!!!!!!!!!!!