/ SBC PANEL MEMORY ODT / VERSION 00.37 / / DEFINITIONS / PRS=6000 /READ PANEL STATUS PGO=6003 /RESET HLT FLAG PEX=6004 /EXIT PANEL MODE CPD=6266 /CLEAR PANEL DATA FLAG SPD=6276 /SET PANEL DATA FLAG ACL=7701 /LOAD AC FROM MQ MQL=7421 /LOAD MQ FROM AC RIDB=6504 /READ INST AND DATA BANK CIB=6501 /CHANGE INST BANK CDB=6502 /CHANGE DATA BANK RIF=6224 /READ INST FIELD RDF=6214 /READ DATA FIELD R3L=7014 /ROTATE 3 LEFT PEX=6004 SPD=6276 CPD=6266 SDDN=6541 LDCA=6542 LWCW=6543 LWCR=6544 LDCN=6546 LDDT=6547 RDCN=6556 RDDT=6557 / / ENTER PANEL MEMORY *7776 CHK /ADDRESS OF START UP JMP I 7776 /TRAP TO HERE WHEN ENTERING PM / *0020 / / SAVE LOCATIONS FOR REGISTERS WHEN ENTERING PM PC, .-. /PC AC, .-. /AC LK, .-. /LINK MQ, .-. /MQ PS, .-. /PANEL STATUS IB, .-. /INST. BANK BITS 9-11 DB, .-. /DATA BANK BITS 9-11 IF, .-. /INST FIELD BITS 6-8 DF, .-. /DATA FIELD BITS 6-8 NIN, .-. /NEXT INST TO BE EXECUTED IN, .-. /INSTRUCTION THAT CAUSED THE TRAP INM1, .-. /INST THAT CAUSED TRAP -1 / /CONSTANTS IN PAGE 0 *40 / / K17, 0017 PR0I, 6206 /PANEL REQ 0 (RESERVED FOR SASI CALL) MSGPT, MSG-1 /ADD OF MSG MINUS 1 M12, 7766 CRLFA, CRLF /ADD OF CRLF ROUTINE TYPNA, TYPN /ADD OF ROUTINE TO TYPE ONE CHAR PNUMA, PNUM /ADD OF ROUTINE TO TYPE OCTAL CONTENTS OF AC CALLA, CALL /ADD OF SASI CALL K177, 177 K200, 200 K7600, 7600 CONCNT, 7777 /NEG CNT FOR CONTINUE EXITA, EXIT /ADD OF EXIT RTN PR1I, 6216 /PANEL REQ 1 INSTRUCTION GOPM, 0 /IF NEG. INDICATES A GO TO PAN MEM SSTEP, 0 /A 1 IN THIS LOC IND. SINGLE STEP MODE NOA, NO /ADD OF RTN TO TYPE (?) READ5A, READ5 /ADD OF READ5 READA, READ /ADD OF READ XCONTA, XCONT /ADD OF XCONT PTBFA, PTBF /ADD OF ROUTINE TO PRINT BANK ,FIELD K315, 315 /ASCII M K3, 3 MASKA, MISK /ADD OF MASK MISK, 7777 /MASK FOR WORD SEARCH RTN LIMLO, 1 /LOWER LIMIT FOR WORD SEARCH LIMHI, 7777 /UPPER LIMIT FOR WORD SEARCH EXAMA, EXAM /ADD OF EXAMIN RTN K21, 21 SPC, 240 /ASCII SPACE K60, 60 M4, -4 K7, 7 CDFI, 6201 /CDF INST CIFI, 6202 /CIF INST CDBFA, CDBF /ADD OF RTN TO CHANGE DATA BANK AND FIELD K100, 100 SHUT, 7777 /INDICATES CLOSED REG. FM270, 7510 K10, 10 QUEST, 277 /ASCII (?) CRLA, CRL /ADD OF RTN TO MOD REG M5, -5 CR, 215 /ASCII CR BSP, 10 /BACK SPACE SLA, 257 /ASCII SLASH LF, 212 /ASCII LF TPBF, 100 /TRAP BANK,FIELD (BIT 5=PAN MEM) TRAD, CRLF /ADDRESS OF TRAP WORD, .-. /HOLDS 4 OCTAL DIGITS TYPED SPNTR, .-. /TEMP STORAGE FOR READ KBD RTN SCHAR, .-. /DITTO TOTE, .-. /COUNTS NUMBER OF OCTAL DIGITS TYPED KEEP, .-. /SAVE CONTENT OF TRAP LOCATION CAD, .-. /CURRENT ADDRESS CADPBF, .-. /CAD BANK,FIELD (+P BIT) TEMP, .-. TEM1, .-. TEM2, .-. TEM3, .-. TEM4, .-. DMAAD, DMA /ADD OF DMA STARTUP SUB RSTADD, RESET /ADD OF RESET SUB TXFAD, TXFER /ADD OF BLOCK TXFER SUB TRSTAD, TRSTAT /ADD OF STATUS TXFER SUB WAITAD, WAIT /ADD OF WAIT SUB INITAD, INIT /ADD OF INITIALIZE SUB POINT, 0 CDIFI, 6203 /CDIF INSTRUCTION ONESEV, 0017 /CONSTANT THR, 0003 TOFOR, 0024 TWO, 0002 SEV, 0007 SEVSEV, 0077 TABPNT, 0 TXCNT, 0 / / BREAKPOINT CHECK POINTER / BPCHK, NORM NORM BPSET / / *200 / SUBROUTINE CHANGES DATA BANK AND FIELD TO VALUES IN ACC WHEN / IS CALLED AC=(000 00P BBB FFF) SETS PANEL DATA FLAG IF BIT P=1 / RETURNS WITH AC CLEAR / CDBF, 00 /ENTRY CPD /CLEAR PANEL DATA FLAG DCA TEMP /SAVE AC TAD TEMP /GET IT BACK R3L RTL /P BIT TO SIGN BIT SPA CLA /P BIT SET? SPD /YES SET PAN DATA FLAG TAD TEMP /GET CALLING AC BSW R3L /BANK TO BITS 9-11 AND K7 /MASK IT CDB /CHANGE DATA BANK CLA CLL TAD TEMP /GET CALLING AC AND K7 /MASK IT R3L /FIELD TO BITS 6-8 TAD CDFI /BUILD CDF INST DCA .+1 /STUFF IT FOR EXECUTION HLT /STUFFED WITH CDF INST JMP I CDBF /RETURN / / SUB TO HANDLE REG MODIFICATION / CRL, 0 /ENTRY TAD TOTE /GET CHAR COUNT CIA /MAKE IT POSITIVE TAD M5 SNA CLA /ANY MODIFICATION REQUIRED? JMP I CRL /NO SO GO BACK TAD CADPBF /PICK UP BANK,FIELD JMS I CDBFA /SET BANK,FIELD TAD WORD ISZ SHUT /TEST FOR OPEN AND THEN CLOSE IT DCA I CAD /MODIFY REGISTER CLA TAD K100 JMS I CDBFA /BANK,FIELD BACK HERE JMP I CRL /RETURN / /TYPE A CR/LF / CRLF, 0 /ENTRY TAD CR /215 JMS I TYPNA /TYPE CR TAD LF /212 JMS I TYPNA /TYPE LF CMA /AC=MINUS 1 DCA SHUT /SIGNALS CLOSED REGISTER JMP I CRLF /RETURN / /TYPE A CHAR / TYPN, 0 /ENTRY DCA SV /SAVE ACC TREC, 6031 /SKIP ON REC DONE JMP TXO /TEST XON 6031 NOP /JUST BECAUSE TAD K200 6034 /OR IN THE CHAR DCA LC /SAVE THE CHAR TAD LC /GET IT BACK CIA /NEGATE IT TAD CC /ADD 203 SNA CLA /SKIP IF NOT CONTROL C JMP I READA /GO BACK TO TST KBD TAD LC /GET IT BACK CIA /NEGATE IT TAD XOFF SNA CLA /SKIP IF NOT XOFF JMP STOP /SET XOFF FLAG TAD LC /GET CHAR AGAIN CIA /NEGATE IT TAD XON SNA CLA /SKIP IF NOT XON JMP GO /CLEAR XOFF FLAG TXO, TAD XFLG SZA CLA /SKIP IF XON JMP TREC /WAIT FOR NEXT INPUT TAD SV /GET CHAR TO TXMIT 6046 /TYPE CHAR 6041 /WAIT FOR DONE JMP .-1 6041 /JUST BECAUSE NOP CLA CLL /CLEAR AC JMP I TYPN /RETURN STOP, CLA CLL CMA /AC=MINUS 1 GO, DCA XFLG /FLAG = 0 IF XON JMP TXO /TEST XFLG / SV, .-. XFLG, .-. LC, .-. XON, 221 XOFF, 223 CC, 203 / /ROUTINE TO PRINT OCTAL CONTENTS OF AC / PNUM, 0 /ENTRY DCA TEM1 /SAVE AC TAD M4 /MINUS 4 DCA TEM2 /STORE COUNT TAD TEM1 /GET BACK THE DATA PN2, R3L /LEFT 3 DCA TEM1 /SAVE IT TAD TEM1 /GET IT BACK AND K7 /MASK IT TAD K60 /MAKE IT ASCII JMS I TYPNA /TYPE THE CHAR TAD TEM1 /READY FOR NEXT ISZ TEM2 /DONE? JMP PN2 /NO SO LOOP CLA CLL TAD SPC /SPACE JMS I TYPNA /TYPE SPACE JMP I PNUM /RETURN / /ROUTINE TO PRINT BANK,FIELD / PTBF, 0 /ENTRY TAD CADPBF /GET BANK,FIELD R3L RTL /PANEL BIT TO SIGN SPA CLA /SKIP IF NOT PANEL MEMORY TAD K3 /AC=3 TAD K315 /AC=ASCII (M) IF MAIN, (P) IF PANEL JMS I TYPNA /TYPE IT TAD CADPBF /GET BANK,FIELD BSW R3L /BANK TO BITS 9-11 AND K7 /MASK IT TAD K60 /MAKE IT ASCII JMS I TYPNA /TYPE IT TAD CADPBF /GET BANK,FIELD AND K7 /MASK IT TAD K60 /MAKE IT ASCII JMS I TYPNA /TYPE IT JMP I PTBF /RETURN / PAGE / /EXIT ROUTINE / EXIT, TAD DB /GET DATA BANK CDB /CHANGE DATA BANK CLA CLL TAD IB /GET INST BANK CIB /CHANGE INST BANK CLA CLL TAD DF /GET DATA FIELD TAD CDFI /BUILD CDF INST DCA DEX /STUFF IT TAD IF /GET INST FIELD TAD CIFI /BUILD CIF INST DCA IEX /STUFF IT TAD MQ /GET MQ SAVE MQL TAD LK /GET THE LINK SAVE CLL RAR /RESTORE THE LINK TAD GOPM /GET PAN MEM GO FLAG SMA CLA /SKIP IF PANEL MEMORY GO PEX /PANEL EXIT AFTER NEXT JUMP TAD AC /RESTORE AC DEX, NOP /STUFFED IEX, NOP /STUFFED JMP I PC /EXIT (MAIN OR PANEL) / / SBC SASI MICROCODE FOR PANEL MEMORY / VERSION 00.04 /*************************************************************************** / /WHEN ENTERING ODT FROM SYSTEM PROGRAM CALLED (ODT.SV) /WE MUST RESTORE MEM LOCATIONS 0-1777 FROM BLOCKS 33-36 /ON SYSTEM DEVICE / /PROGRAM ODT CONSISTS OF TWO PR1 INSTRUCTIONS IN A ROW / ODTENT, TAD UNIT /GET THE UNIT NUMBER OF LAST CALL (IT IS THE SYS) DCA SVUN /PUT IT IN OUR TABLE JMS I TXFAD /CALL TO BLOCK TXFER SUB SVTAB /ADD OF TABLE NOP /ERROR RETURN JMS I DMAAD /CALL TO DMA START SUB 1 /READ 0 /ADDRESS 7740 /COUNT (8 SECTORS) NOP /ERROR RETURN JMS I TRSTAD /CALL TO TXFER STATUS SUB NOP /ERROR RETURN JMP I READA /GO TO TST KBD SVTAB, 6 /# OF BYTES IN TABLE 10 /READ SVUN, .-. /STUFFED 0 66 /SECT 66 (BLOCK 33) 10 /8 SECTORS 0 / ZBLOCK 10 /FOR PATCHING / TRSTAT, 0 /ENTRY JMS I WAITAD /CALL TO WAIT SUB 0015 /REQ,CMD,INPT,ACK* 1215 /MASK+ERROR ON DISK TIMEOUT JMP I TRSTAT /ERROR RDDT /TXFER STATUS BYTE DCA SVER /SAVE IT JMS I WAITAD /CALL TO WAIT SUB 0035 /REQ,CMD,INPT,MSG,ACK* 0235 /MASK JMP I TRSTAT /ERROR RDDT /TXFER LAST BYTE CLA CLL TAD SVER /GET STATUS BYTE AND TWO /MASK IT SNA CLA /SKIP IF ERROR ISZ TRSTAT /BUMP TO NORM RETURN JMP I TRSTAT SVER, .-. /SAVE STATUS BYTE HERE PAGE CALL, TAD AC /GET AC AT CALL TIME DCA POINT /SAVE ARG POINTER TAD DF /GET DATA FIELD AT CALL TIME TAD CDIFI /BUILD INST DCA RTRN /STUFF IT FOR RETURN TAD TEM1 /GET BANK,FIELD AT CALL TIME JMS I CDBFA /INDIRECTS TO CALLER TAD I POINT /GET COMMAND DCA COMM /STUFF IT ISZ POINT /POINTER TO UNIT # TAD I POINT /GET UNIT # BSW /UNIT # TO BITS 4,5 RAR /UNIT # TO BITS 5,6 DCA UNIT /STUFF IT ISZ POINT /POINTER TO DCONTROL ISZ POINT /POINTER TO SECTHI CLA CLL TAD ONESEV AND I POINT /4 BITS OF SECTHI TO ACC RTL RTL /SECTHI BITS TO BITS 4-7 DCA SECTM /SAVE IT FOR LATER ISZ POINT /POINTER TO SECTMD TAD I POINT RTR AND ONESEV TAD SECTM /ACC=000 0HH HHM MMM DCA SECTM /STUFF IT TAD I POINT /GET SECTMD AGAIN AND THR /LS 2 BITS ONLY BSW /TO BITS 4,5 DCA SECTL /SAVE IT FOR LATER ISZ POINT /POINTER TO SECTLO TAD I POINT AND SEVSEV TAD SECTL /ACC=000 0MM LLL LLL DCA SECTL /STUFF IT ISZ POINT /POINTER TO SCTCNT TAD I POINT DCA SECCNT /STUFF SECT COUNT CLL TAD SECCNT /GET SECT COUNT BACK RTL /TIMES 4 CIA /NEGATE IT DCA DMACNT /SAVE IT FOR DMA STARTUP CALL ISZ POINT /POINTER TO TRFLD TAD I POINT /GET BANK FIELD BSW /ACC=BBB FFF 000 000 DCA DAD /SAVE FOR LATER ISZ POINT /POINTER TO TRADHI TAD I POINT AND SEVSEV TAD DAD CLL RAR /ACC=0BB BFF FAA AAA DCA DAD /FINAL DMA ADD SPD /INDIRECTS TO PANEL MEM 6203 /CDIF 0 JMS I TXFAD /CALL TO BLOCK TRANSFER SUB TABLE /ADD OF TABLE JMP REINIT /ERROR REINIT AND RETURN TO CALLER TAD COMM SPA /DMA TXFER REQUIRED? JMP WS /NO RTR /LINK=0 IF READ 1 IF WRITE CLA CML RAL /ACC=1 IF READ 0 IF WRITE DCA DMAFNC JMS I DMAAD /CALL TO DMA START SUB DMAFNC, 0 /STUFFED DAD, 0 /STUFFED DMACNT, 0 /STUFFED JMP REINIT /ERROR RET WS, JMS I TRSTAD /CALL TO TRANSFER STATUS SUB JMP REINIT /ERROR REINIT AND RETURN TO CALLER ISZ 0 /ALL DONE BUMP TO NORMAL RETURN RTRN, 0 /STUFFED WITH CDIF FOR RETURN PEX /EXIT PANEL MODE JMP I 0 /BACK TO CALLER REINIT, JMS I INITAD /CALL TO INIT SUB NOP /ERROR RETURN JMP RTRN /RETURN TO CALLER TABLE, 0006 /NUMBER OF BYTES TO TXFER COMM, 0 UNIT, 0 SECTM, 0 SECTL, 0 SECCNT, 0 0 DMA, 0 /ENTRY JMS I WAITAD /WAIT FOR DATA MODE BEFORE STARTING DMA 0000 /C/D IN DATA MODE 0004 /MASK JMP DERR /ERROR RETURN SDDN /CLEAR OUT DISK DONE IF SET NOP TAD I DMA /PICK UP ARG 1 0=WRITE 1=READ TAD INST /BUILD DMA INSTRUCTION DCA EXEC /STORE FOR EXECUTION ISZ DMA /BUMP POINTER TAD I DMA LDCA /SEND CURRENT ADD ISZ DMA /BUMP POINTER TAD I DMA EXEC, 0 /STUFFED WITH PROPER INST. ISZ DMA /BUMP FOR RETURN ISZ DMA /ONE MORE TIME JMP I DMA /RETURN DERR, CLA CLL CML IAC RAL /ACC=3 TAD DMA DCA DMA /POINT TO ERROR RETURN JMP I DMA /RETURN / INST, 6543 /INST. TO START DMA TXFER PAGE START, JMS I INITAD /CALL TO INITIALIZE SUB JMP ODTEX /ERROR GO TO ODT EXIT CLA CLL CML IAC RAL /ACC=3 BSW /ACC=300 6046 /SEND @ TO CONSOLE 6041 JMP .-1 /WAIT FOR COMP 6031 JMP .-1 /WAIT FOR INPUT 6036 /GET UNIT # TO BOOT FROM DCA TEMP TAD TEMP 6046 /ECHO CHAR 6041 JMP .-1 /WAIT CLA CLL TAD TEMP AND SEV CIA TAD SEV SNA CLA JMP ODTEX /EXIT TO ODT IF A SEVEN WAS TYPED CLL TAD TEMP AND THR /MASK OUT LS 2 BITS BSW RAR /UNIT # TO BITS 5,6 DCA UN JMS I TXFAD /CALL TO BLOCK TRANSFER SUB CONT /ADD OF CONTROL BLOCK JMP ODTEX /ERROR GO TO ODT FIELD 7 JMS I DMAAD /CALL TO DMA START SUB 0001 /READ 0000 /ADDRESS 7770 /CNT 1 BLOCK (2 SECTORS) JMP ODTEX /ERROR JMS I TRSTAD /CALL TO TXFER STATUS SUB JMP ODTEX /ERROR GO TO ODT FIELD 7 CLA CLL 6203 /CDIF 0 PGO PEX JMP 12 /GO TO LOC 12 MAIN MEM ODTEX, CLA CLL TAD K100 JMS I CDBFA /BANK,FIELD TO HERE JMP I READA /GO TO ODT CONT, 0006 /# OF BYTES IN TABLE 0010 /READ UN, 0 /STUFFED 0 0 /SECT 0 0002 /READ 2 SECTORS 0 TXFER, 0 /ENTRY CLA CLL TAD I TXFER /PICK UP TABLE POINTER DCA TABPNT /SAVE IT ISZ TXFER /BUMP TO ERROR RETURN TAD I TABPNT /PICK UP FIRST ARG RAL /LINK=1 IF TXFER IS IN DATA MODE CLA TAD I TABPNT /GET FIRST ARG AGAIN AND SEVSEV /AND OUT # OF ARG TO TXFER CIA /NEGATE IT DCA TXCNT /SAVE IT SZL /IS TXFER IN DATA MODE? JMP TABTX /YES SO SKIP THE SELECT JMS I WAITAD /NO SO SELECT FIRST 0 /ALL CLEAR 6377 /MASK CHECK ALL BITS JMP I TXFER /ERROR RETURN TAD I TABPNT /GET FIRST ARG BSW /3-5 TO 9-11 AND SEV /AC=SASI UNIT TO SELECT CMA /ALMOST NEGATE IT DCA SASCT /STUFF IT CLA CLL IAC /LS BIT SET (POINT TO SASI UNIT 0) ISZ SASCT JMP .+2 JMP .+3 RAL JMP .-4 /LOOP / /AC HAS PROPER BIT SET TO SELECT SASI CONT CALLED FOR / LDDT /SET BIT ON DATA BUS CLA CLL IAC LDCN /SET SELECT JMS I WAITAD /CALL TO WAIT SUB 0102 /SEL,BSY 0102 /MASK JMP I TXFER /ERROR RETURN CLA CLL LDCN /RESET SELECT JMS I WAITAD /CALL TO WAIT SUB 0006 /BSY,CMD 0006 /MASK JMP I TXFER /ERROR RETURN TABTX, ISZ TABPNT /POINT TO NEXT BYTE TO TXFER JMS I WAITAD /CALL WAIT SUB 0001 /REQ,ACK* 0201 /MASK JMP I TXFER /ERROR RTN TAD I TABPNT /PICK UP NEXT BYTE LDDT /SEND IT ISZ TXCNT /LAST ONE? JMP TABTX /NO ISZ TXFER /YES BUMP TO NORM RET JMP I TXFER /RETURN RESET, 0 /ENTRY CLA CLL DCA RCNT /INIT RETRY COUNT CLA CLL CML RTL /ACC=2 LDCN /SEND RESET CLA CLL /WASTE TIME LDCN /CLEAR RESET JMS I WAITAD /CALL WAIT 0 /ALL CLEAR 6377 /MASK ALL BITS JMP RINC /ERROR ISZ RESET /BUMP TO NORM RETURN JMP I RESET /RETURN RINC, ISZ RCNT JMP RESET+3 /TRY AGAIN JMP I RESET /CANT DO IT SASCT, .-. RCNT, 0 PAGE WAIT, 0 /ENTRY CLA CLL DCA ERRCNT /SET ERROR COUNT TO 0 TAD I WAIT /PICK UP BITS TO WAIT FOR CIA /NEGATE DCA WANT ISZ WAIT /POINT TO MASK ARG TAD I WAIT DCA MASK ISZ WAIT /BUMP TO ERROR RET LOOP, RDCN /READ CONTROL WORD AND MASK /MASK OUT BITS TO LOOK AT TAD WANT /COMPARE IT SNA /IS IT OK? JMP OK /YES ISZ ERRCNT /BUMP ERROR CNT JMP LOOP CLA CLL TAD MASK RTL /MASK BIT 2 TO SIGN BIT SMA /SHOULD WE TIME OUT ON CNT? JMP I WAIT /YES ERROR RET RDCN /NO SO CHECK FOR DISK TIMEOUT RAL /DISK TIMEOUT BIT TO SIGN BIT SPA /TIME OUT? JMP I WAIT /YES ERROR RET SDDN /SKIP ON DISK DONE JMP LOOP /NO KEEP WAITING CLA OK, ISZ WAIT /BUMP TO NORM RET JMP I WAIT /RETURN ERRCNT, 0 WANT, 0 MASK, 0 PAGE INIT, 0 /ENTRY JMS I RSTADD /RESET JMP I INIT /ERROR JMS I TXFAD /SEND FLOPPY FORMAT FLP2 /ADD OF TABLE JMP I INIT /ERROR JMS I TRSTAD /WAIT FOR COMP CLA CLL /ERROR IF NOT A FLOPPY JMS I TXFAD FLP3 JMP I INIT JMS I TRSTAD CLA CLL /ERROR IF NOT A FLOPPY / INIT DISK 0 JMS I TXFAD DP0 JMP I INIT /ERROR JMS I TXFAD DPAR01 JMP I INIT /ERROR JMS I TRSTAD /WAIT JMP I INIT /ERROR / INIT DISK 1 JMS I TXFAD DP1 JMP I INIT JMS I TXFAD DPAR01 JMP I INIT JMS I TRSTAD JMP I INIT / INIT DISK 2 JMS I TXFAD DP2 JMP I INIT JMS I TXFAD DPAR23 JMP I INIT JMS I TRSTAD JMP I INIT / INIT DISK 3 JMS I TXFAD DP3 JMP I INIT JMS I TXFAD DPAR23 JMP I INIT JMS I TRSTAD JMP I INIT ISZ INIT JMP I INIT FLP2, 6 /6 BYTES LONG CMD MODE 300 100 /UNIT 2 0 0 0 207 FLP3, 6 300 140 0 0 0 207 DP0, 6 302 0 /UNIT 0 0 0 0 0 DPAR01, 4012 3 1 0 3 1 61 200 0 37 0 DP1, 6 302 40 0 0 0 0 DP2, 6 302 100 0 0 0 0 DPAR23, 4012 20 7 117 26 315 377 14 200 0 0 DP3, 6 302 140 0 0 0 0 /********************************************************************** PAGE / / CONFIGURATION TABLE / CONF, 3104 /PIA 1,1 3134 /PIA 1,2 1544 /PIA 1,3 3554 /PIA 1,4 3564 /PIA 1,5 / 3306 /PIA 2,1 3314 /PIA 2,2 3326 /PIA 2,3 3334 /PIA 2,4 3346 /PIA 2,5 / 3354 /PIA 3,1 3366 /PIA 3,2 3374 /PIA 3,3 3406 /PIA 3,4 3414 /PIA 3,5 / 3036 /PIA 4,1 3044 /PIA 4,2 2524 /PIA 4,3 2504 /PIA 4,4 0710 /PIA 4,5 / /START OF OPTION BOARD CONFIG / 3426 3434 3446 3454 3466 / 3474 3606 3614 3626 3634 / 3646 3654 3666 3674 3726 / 3734 3746 3754 3766 3774 / PAGE / COPY, JMP CPST SRCSEC, .-. /ENTER SOURCE SECTOR/256 DESSEC, .-. /ENTER DESTINATION SECTOR/256 CPYCNT, .-. /ENTER # OF 256 SECTOR BLOCKS TO COPY SRCUN, .-. /ENTER SOURCE SASI (BITS 3-5) AND UNIT (BITS 9-11) DESUN, .-. /ENTER DEST. SASI (BITS 3-5) AND UNIT (BITS 9-11) WRKCNT, .-. /WORKING COUNT K6, 6 WSRC, .-. /WORKING SOURCE SECTOR/256 WDES, .-. /WORKING DEST. SECTOR/256 K7700, 7700 WSRCU, .-. /WORKING SOURCE UNIT # (ALLIGNED) WDESU, .-. /WORKING DEST. UNIT # (ALLIGNED) RTAB, .-. /START OF READ COMMAND TABLE 10 /CW FOR SASI READ .-. /STUFFED WITH UNIT # AND MS SECT. .-. /STUFFED WITH MIDDLE SECT. # 0 /LO SECTOR (ALWAYS 0) 0 /SECTOR COUNT (0=256 SECTORS) 0 WTAB, .-. /START OF WRITE COMM. TABLE 12 /CW FOR SASI WRITE .-. /STUFFED WITH UNIT # AND MS SECT. .-. /STUFFED WITH MIDDLE SECT. # 0 /LO SECTOR (ALWAYS 0) 0 /SECTOR COUNT (0=256 SECTORS) 0 O, 317 /ASCII O K, 313 /ASCII K E, 305 /ASCII E R, 322 /ASCII R / CPST, CLA CLL TAD SRCUN /GET SOURCE UNIT # AND K7700 /MASK IT TAD K6 DCA RTAB /STUFF SOURCE SASI # TAD DESUN /GET DEST UNIT # AND K7700 /MASK IT TAD K6 DCA WTAB /STUFF DEST SASI # TAD CPYCNT /GET COUNT CIA /NEGATE IT DCA WRKCNT /STUFF IT TAD SRCSEC DCA WSRC /MOVE SOURCE SECTOR # TAD DESSEC DCA WDES /MOVE DEST SECTOR # TAD SRCUN /GET SOURCE UNIT AND SEVSEV /MASK IT BSW RAR /ALLIGN IT DCA WSRCU /STUFF IT TAD DESUN /GET DEST UNIT AND SEVSEV /MASK IT BSW RAR /ALLIGN IT DCA WDESU /STUFF IT COPLP, TAD WSRC /GET SOURCE SECT. DCA RTAB+3 /STUFF MID SECT ADD TAD WSRC /GET IT AGAIN BSW RTR /ALIGN IT AND ONESEV /MASK IT TAD WSRCU /ADD IN THE SOURCE UNIT # DCA RTAB+2 /STUFF UNIT AND MS SECT. TAD WDES /GET WORKING DEST SECT # DCA WTAB+3 /STUFF MID SECTOR ADD TAD WDES /GET IT AGAIN BSW RTR /ALLIGN IT AND ONESEV /MASK IT TAD WDESU /ADD IN DEST UNIT DCA WTAB+2 /STUFF UNIT AND MS SECT. JMS I TXFAD /CALL TO BLOCK TXFER SUB RTAB /ADD OF READ TABLE JMP COPERR /ERROR RETURN JMS I DMAAD /CALL TO DMA START 1 /READ 400 /MEM ADD (BANK 1) 6000 /TXFER COUNT (32K WWORDS) 256 SECTORS JMP COPERR /ERROR RETURN JMS I TRSTAD /CALL TO TRANSFER STATUS SUB JMP COPERR /ERROR RETURN JMS I TXFAD /CALL TO BLOCK TRANSFER SUB WTAB /ADD OF WRITE TABLE JMP COPERR /ERROR RETURN JMS I DMAAD /CALL TO DMA START 0 /WRITE 400 /MEM ADD (BANK 1) 6000 /TXFER COUNT (32K WORDS) 256 SECTORS JMP COPERR /ERROR RETURN JMS I TRSTAD /CALL TO TRANSFER STATUS SUB JMP COPERR /ERROR RETURN ISZ WRKCNT /ARE WE DONE? JMP .+2 /NO JMP COPEX /YES ISZ WSRC ISZ WDES /BUMP WORKING SECTOR POINTERS JMP COPLP /CONTINUE COPYING COPEX, JMS I CRLFA /CR/LF TAD O /ASCII O JMS I TYPNA /TYPE IT TAD K /ASCII K JMS I TYPNA /TYPE IT JMP I READA /BACK TO ODT COPERR, CLA CLL JMS I CRLFA /CR/LF TAD E /ASCII E JMS I TYPNA /TYPE IT TAD R /ASCII R JMS I TYPNA /TYPE IT JMP I READA /BACK TO ODT PAGE / / RTN TO BLOW NEW ODT CODE INTO BAT/BACKUP RAMS / CLA CLL CMA /ACC=7777 DCA 10 CLA CLL CMA /ACC=7777 DCA 11 TAD CT1 DCA 12 MV1, CPD /IND TO MAIN MEM CDF 00 /FIELD 0 TAD I 10 /PICK UP A WORD SPD /IND TO PANEL MEM CDF 20 /FIELD 2 DCA I 11 /BLOW THE LOCATION ISZ 12 /DONE? JMP MV1 /NO TAD CT1 DCA 12 MV2, CPD /IND TO MAIN MEM CDF 00 /FIELD 0 TAD I 10 /PICK UP A WORD SPD /IND TO PANEL MEM CDF 10 /FIELD 1 DCA I 11 /BLOW THE LOCATION ISZ 12 /DONE? JMP MV2 /NO JMP I READA /YES GO TO ODT CT1, -4000 / / CHECK TO SEE WHY PANEL MEMORY WAS ENTERED / *4000 CHK, DCA AC /SAVE AC RAL /LINK TO AC BIT 11 DCA LK /SAVE LINK ACL /MQ TO AC DCA MQ /SAVE MQ PRS /READ PANEL STATUS DCA PS /SAVE PANEL STATUS TAD 0 /PICK UP PC (HARDWARE STUFFED) DCA PC /SAVE PC TAD PS /GET PANEL STATUS R3L /PWRON FLAG TO SIGN BIT SPA CLA /WAS IT A BOOT? JMP IOCON /YES GO CONF PIAS RIDB /GET INST AND DATA BANK RTR RTR AND K7 /MASK IT DCA IB /SAVE INST BANK RIDB /GET IT AGAIN AND K7 /MASK IT DCA DB /SAVE DATA BANK RIF /GET INST FIELD DCA IF /SAVE IT RDF /GET DATA FIELD DCA DF /SAVE IT TAD IF /IF IN BITS 6-8 BSW /MOVE TO BITS 0-2 TAD IB /GET INST BANK R3L /IB IN BITS 6-8, IF IN BITS 9-11 DCA TEM1 /FOR SASI CALL TAD TEM1 /GET IT BACK JMS I CDBFA /SET DATA BANK,FIELD TAD I 0 /GET NEXT INST TO BE EXECUTED DCA NIN /SAVE IT CLA CLL CMA /AC=MINUS 1 TAD 0 /AC=ADD OF INST THAT TRAPPED DCA 1 /SAVE IT TAD I 1 /GET THE INST DCA IN /SAVE IT CLA CLL CMA /AC=-1 TAD 1 /AC= ADD OF INST THAT TRAPPED - 1 DCA 2 /SAVE IT TAD I 2 /GET THE INST DCA INM1 /SAVE IT TAD K100 JMS I CDBFA /BANK,FIELD BACK HERE TAD PS /GET PANEL STATUS SPA CLA /WAS IT A CPREQ ? JMP JIM /YES TAD IN /GET IT BACK CIA /NEGATE IT TAD PR0I /TAD PAN REQ 0 INST SNA CLA /WAS IT A SASI CALL? JMP I CALLA /YES JMP TO SASI CALL SPD /SET PANEL DATA FLAG CDF 0 /DATA FIELD TO ZERO JMP I BPCHK /BREAK POINT CHECK NORM, TAD PS /GET PANEL STATUS RTL RTL /HLT FLAG TO BIT 0 SMA CLA /IS HLT FLAG SET? JMP .+4 /NO TAD SSTEP SNA CLA /ARE WE IN SINGLESTEP MODE JMP JIM /NO TAD IN /GET INST THAT CAUSED TRAP CIA /NEGATE IT TAD PR1I /TAD PAN REQ 1 INST SZA CLA /WAS IT A BREAK POINT? JMP DREG /NO, PRINT REG CONT. TAD NIN /GET NEXT INST TO BE EXECUTED CIA /NEGATE IT TAD PR1I / SNA CLA /WAS IT TWO PR1 INST IN A ROW? JMP ODTENT /YES SO ITS A CALL FROM THE SYSTEM ODT TAD 1 / DCA PC /PC BACK 1 TAD KEEP /GET ORIG INST DCA NIN /STUFF IT FOR PRINT OUT TAD TPBF /GET TRAP BANK FIELD JMS I CDBFA /SET BANK,FIELD TAD KEEP /GET ORIG CONTENTS DCA I TRAD /RESTORE CONTENT TAD K100 / JMS I CDBFA /BANK AND FIELD BACK TO HERE ISZ CONCNT /CHECK CONT COUNT JMP I XCONTA /IGNORE THIS BREAK / TYPE OUT REG CONTENTS DREG, TAD MSGPT /ADD OF MSG-1 DCA 10 /AUTO INC TAD K17 /ADD OF REG VALUES-1 DCA 11 /AUTO INC TAD M12 DCA 12 /LOOP COUNTER JMS I CRLFA /CLOSE LP1, TAD I 10 /GET 1ST CHAR JMS I TYPNA /TYPE IT TAD I 10 /GET 2ND CHAR JMS I TYPNA /TYPE IT TAD SLA /GET A SLASH JMS I TYPNA /TYPE IT TAD I 11 /GET THE REG CONTENTS JMS I PNUMA /TYPE REG CONTENTS (AND A SPACE) ISZ 12 /DONE? JMP LP1 /NO JMP I READA /GO TO ODT / JIM, TAD K17 /ADD OF REG VALUES -1 DCA 10 /AUTO INC TAD K277 /ADD IN MAIN MEM TO STORE REG (-1) DCA 11 /AUTO INC TAD JCNT /GET MOVE CNT DCA 12 /STUFF IT JLOOP, SPD /IND TO PANEL MEM TAD I 10 /GET A WORD CPD /IND TO MAIN MEM DCA I 11 /STUFF IT ISZ 12 /ARE WE DONE? JMP JLOOP /NO CIB /INST BANK TO 0 6203 /CDIF 0 PGO /RESET HLT FLG PEX /NEXT JMP TO MAIN MEM JMP I .+1 /GO TO LOC 200 IN MAIN MEM 200 / K277, 277 JCNT, -14 / PAGE / / MOVE ODT AND SASI MICROCODE TO RAM / MOVE, CLA CLL TAD MVCNT DCA 10 /AUTO INC TAD MVCNT DCA 11 /AUTO INC LP3, CDF 10 /FIELD 1 TAD I 10 /PICK UP A WORD CDF 0 /FIELD 0 DCA I 11 /AND DEPOSIT IT IAC /ACC=1 TAD 11 SMA CLA /LAST WORD? JMP LP3 /NO / /DISABLE ALL INTERUPTS / CAF 6105 6135 6545 6555 6565 6305 6315 6325 6335 6345 6355 6365 6375 6405 6415 6035 6045 6425 6435 6445 6455 6465 6475 6605 6615 6625 6635 6645 6655 6665 6675 6725 6735 6745 6755 6765 6775 JMP I READA /GO TO ODT / MVCNT, 37 /MOVE FROM LOC 40-3777 / MSG CONSTANTS TO PRINT OUT REG CONTENTS MSG, 320 /P 303 /C 301 /A 303 /C 314 /L 313 /K 315 /M 321 /Q 320 /P 323 /S 311 /I 302 /B 304 /D 302 /B 311 /I 306 /F 304 /D 306 /F 311 /I 316 /N / / START AT A LOCATION / JUMP, DCA AC /CLEAR AC SAVE DCA LK /CLEAR LINK SAVE DCA MQ /CLEAR MQ SAVE TAD WORD DCA PC /SET PC SAVE TO GO ADDRESS TAD CADPBF /GET THE GO BANK,FIELD AND K7 /MASK FIELD R3L /FIELD TO BITS 6-8 DCA IF /STUFF INST FIELD TAD IF /GET IT BACK DCA DF /STUFF DATA FIELD TAD CADPBF /GET BANK,FIELD BSW R3L /BANK TO BITS 9-11 AND K7 /MASK IT DCA IB /STUFF INST BANK TAD IB /GET IT BACK DCA DB /STUFF DATA BANK TAD CADPBF /NEED THE P BIT R3L RTL /P BIT TO SIGN BIT DCA GOPM /NEG INDICATES PANEL MEM GO SKP CONTIN, TAD WORD CMA DCA CONCNT /COUNT FOR CONTINUE JMS I CRLFA /CLOSE TAD GOPM /GET PAN MEM IND SPA CLA /SKIP IF MAIN MEM JMP I EXITA /EXIT XCONT, HLT /SET HLT FLAG (ONE INST WILL EXECUTE IN MAIN /MEMORY AND THEN RETURN TO PANEL MEMORY) TAD BPCHK+2 / DCA BPCHK /FORCE NEXT PANEL MEMORY ENTRY DIRECTLY TO BPSET JMP I EXITA /EXIT BPSET, TAD TPBF /GET BANK,FIELD JMS I CDBFA /SET BANK,FIELD TAD I TRAD /GET THE INST DCA KEEP /SAVE IT TAD PR1I /GET PAN REQ 1 INST DCA I TRAD /STUFF IT FOR THE BREAKPOINT TAD K100 JMS I CDBFA /BANK,FIELD BACK HERE TAD BPCHK+1 / DCA BPCHK /NEXT PANEL ENTRY TO NORMAL TAD SSTEP /GET SINGLE STEP FLAG SNA CLA /SKIP IF IN SINGLE STEP MODE JMP .+3 JMP I .+1 /DUMP REG AND READ KBD DREG PGO /RESET HALT FLAG JMP I EXITA /EXIT / PAGE / READ, JMS I CRLFA /END LINE SHUT TO -1 TAD TPBF /GET TRAP BANK AND FIELD JMS I CDBFA /SET BANK,FIELD TAD KEEP /GET ORIG CONTENT DCA I TRAD /RESTORE CONTENT TAD K100 JMS I CDBFA /SET BANK,FIELD READ5, DCA WORD /CLEAR THE INPUT TAD FM5 /-5 DCA TOTE /SET THE LETTER COUNT REA, 6031 /SKIP ON RECEIVE DONE JMP .-1 6031 /JUST BECAUSE NOP CLA CLL CML RTL /ACC=2 BSW /ACC=200 6034 /OR IN THE CHAR DCA SCHAR /SAVE IT TAD SCHAR /GET IT BACK JMS I TYPNA /ECHO THE CHAR TAD BLIST /COMPUTE THE ADD OF THE COMMAND DCA SPNTR TAD I SPNTR /SEARCH FOR LEGAL CHAR ISZ SPNTR / SPA /TEST FOR END OF LIST JMP SEX /NOT SATISFIED CIA /COMPARE THE CHAR TAD SCHAR SZA CLA /FOUND? JMP .-7 /NO,CONTINUE TAD SPNTR TAD LTABL DCA SPNTR TAD I SPNTR /LOOKUP ADDRESS DCA SPNTR JMP I SPNTR /GO PROCESS / LTABL, TABL2-TABL1-1 BLIST, TABL1 / / COMMAND LIST / TABL1=. / 212 /LF,OPEN NEXT 215 /CR,CLOSE THIS ONE 257 /SLASH,OPEN THIS ONE 302 /B, SET BREAKPOINT 307 /G, GO 254 /(,), SET PANEL,BANK,FIELD 303 /C, CONTINUE 327 /W, WORD SEARCH 336 /(UP ARROW), OPEN MEMORY REF 315 /M, OPEN MASK,LOW LIMIT,HI LIMIT 301 /A, OPEN AC,LINK,MQ 276 /(>), OPEN INDIRECTLY 314 /L, BOOT LOAD 323 /S, SET SINGLE STEP 322 /R, SET RUN 305 /E, TYPE OUT ALL REGISTERS 203 /CTRL/C GO BACK TO SYS 274 /(<), CLOSE AND OPEN LAST-1 311 /(I) ENABLE BOOT WITH INTERUPTS / / TABLE MUST END WITH A NEG NUMBER / FM5, -5 / / JUMP TABLE / TABL2=. / CRL2 CRL1 EXAM TRAP JUMP SPBF CONTIN WSER UPAR1 MASKER ACX OPIN START STEP RUN TREG CTRLC BACK IE / / PROCESS OCTAL DIGITS / SEX, CLA TAD SCHAR TAD FM270 /7510 SMA JMP NO /ILLEGAL CHAR TAD K10 SPA JMP NO /ILLEGAL CHAR DCA TEMP TAD WORD /ASSEMBLE AN ADDRESS R3L /ROTATE LEFT TAD TEMP DCA WORD ISZ TOTE JMP REA / / TYPE ERROR INDICATOR / NO, CLA TAD QUEST /277 JMS I TYPNA /TYPE IT JMP READ / /CLOSE LOCATION AND EXAMINE LOC-1 / BACK, JMS I CRLA /CLOSE CLA CLL CMA /AC=-1 TAD CAD /AC= CURRENT ADD -1 DCA CAD /UPDATE CURRENT ADD JMP OPAR2 /GO OPEN THE COMPUTED LOC / /THE ADDRESS OF LAST REG OPENED REMAINS THE SAME /AND MAY BE OPENED BY (/) / /ROUTINE TO HANDLE REG MODIFICATION AND INCREMENTAL EXAMINE / CRL1, JMS I CRLA /CR TO CLOSE JMS I CRLFA / JMP READ5 /BACK TO TST KBD CRL2, TAD CR JMS I TYPNA /TYPE CR JMS I CRLA JMS I TYPNA /FILL CHAR ISZ CAD NOP /LINE FEED = EXAMINE NEXT UPAR3, JMS I PTBFA /PRINT P/M BANK,FIELD TAD CAD /GET CURRENT ADDRESS JMS I PNUMA /TYPE OUT ADDRESS TAD SLA /SLASH JMS I TYPNA /TYPE THE SLASH JMP EX2 OPIN, JMS I CRLA /CLOSE FIRST TAD CADPBF /PICK UP BANK,FIELD JMS I CDBFA /SET BANK,FIELD TAD I CAD /GET THE INDIRECT ADD DCA CAD /STUFF IT TAD K100 JMS I CDBFA /BANK,FIELD TO HERE OPAR2, JMS I CRLFA /CR/LF JMP UPAR3 /BACK TO TYPE IT OUT / PAGE / /WORD SEARCH ROUTINE / WSER, JMS I CRLFA /CLOSE TAD LIMLO DCA TEM3 /SET UP TO BEGIN SEARCH TAD M4 /MINUS 4 DCA TEM4 /COLUMN COUNT TAD CADPBF /GET BANK,FIELD JMS I CDBFA /SET BANK,FIELD WSER1, TAD I TEM3 /GET THE WORD FROM MEMORY AND MISK /MASK IT CIA /NEGATE IT TAD WORD SZA CLA /DOES IT MATCH? JMP WSER2 /NO, SKIP IT JMS I PTBFA /PRINT BANK,FIELD TAD TEM3 /GET THE ADDRESS JMS I PNUMA /PRINT IT TAD BSP /BACKSPACE (PNUM INSERTS A SPACE) JMS I TYPNA /TYPE IT TAD SLA /GET SLASH JMS I TYPNA /TYPE IT TAD I TEM3 /GET THE WORD FROM MEMORY JMS I PNUMA /TYPE IT TAD SPC /SPACE JMS I TYPNA /TYPE IT ISZ TEM4 /LAST COLUMN? JMP WSER2 /NO JMS I CRLFA /YES, CR,LF TAD M4 DCA TEM4 /REINIT COLUMN COUNT WSER2, TAD TEM3 /GET THE LAST ADD ISZ TEM3 /BUMP IT NOP CIA /NEGATE IT TAD LIMHI SZA CLA /DONE? JMP WSER1 /NO TAD K100 JMS I CDBFA /BANK,FIELD BACK HERE JMS I CRLFA /CLOSE JMP I READ5A /BACK TO TEST KBD / / EXAMINE A LOCATION / EXAM, TAD TOTE /GET CHAR COUNT CIA /NEGATE IT TAD M5 /MINUS 5 SNA CLA /IF STILL -5 USE LAST JMP .+3 /USE LAST TAD WORD /LOAD ADD DCA CAD /SET UP CURRENT ADD EX2, TAD CADPBF /PICK UP BANK,FIELD JMS I CDBFA /SET BANK,FIELD TAD I CAD /GET THE DATA JMS I PNUMA /PRINT CONTENTS TAD K100 JMS I CDBFA /SET BANK,FIELD DCA SHUT /SIGNALS OPEN REG JMP READ5 /READ KEYBOARD / /MEMORY REFERENCE OPENER / UPAR1, JMS I CRLA /CLOSER CALL TAD CADPBF /GET BANK,FFIELD JMS I CDBFA /SET BANK,FIELD TAD I CAD /GET THE WORD (MEM REF INST.) AND K177 /MASK ADD BITS ONLY DCA TEM2 /SAVE LOWER BITS TAD I CAD /GET IT AGAIN AND K200 SNA CLA /TEST FOR PAGE ZERO REF JMP .+3 /PAGE ZERO REF TAD CAD /GET ADD WHERE INST RESIDES AND K7600 /MASK MS 5 BITS TAD TEM2 /ADD IN LS 7 BITS DCA CAD /PUT COMPUTED ADD IN CAD JMP I .+1 /EX2 WILL TAKE CARE OF BANK,FIELD OPAR2 / /SET A BREAKPNT / TRAP, TAD CADPBF /GET P BIT R3L RTL /P BIT TO SIGN SPA CLA /SKIP IF MAIN MEMORY JMP I NOA /BRK PNT NOT ALLOWED IN PANEL MEMORY TAD WORD /GETT BRKPNT ADD SNA /IS IT SET OR CLEAR BRKPNT? JMP DUMMY /ITS A CLEAR DCA TRAD /SET TRAP ADDRESS TAD CADPBF /GET BANK,FIELD DCA TPBF /SET BRKPNT BANK,FIELD TAD TPBF /GET TRAP BANK,FIELD JMS I CDBFA /SET BANK,FIELD TAD I TRAD /GET THE INST DCA KEEP /SO THAT KEEP IS READY TAD K100 JMS I CDBFA /BANK,FIELD BACK HERE JMP .+5 DUMMY, TAD CRLFA DCA TRAD /SET DUMMY TRAP ADDRESS TAD K100 DCA TPBF /SET DUMMY TRAP BANK,FIELD JMS I CRLFA /CLOSE JMP I READ5A /BACK TO KBD TST / /ROUTINE TO TYPE AC CONTENTS AT BREAK TIME / ACX, TAD K100 DCA CADPBF /SET CURRENT ADDRESS BANK,FIELD TO HERE TAD K21 /ADD OF AC SAVE DCA WORD /PUT IT IN WORD DCA TOTE /FAKE OUT EXAM RTN JMP I EXAMA /GO TO EXAMINE RTN / /ROUTINE TO TYPE MASK,LIMLO,LIMHI / MASKER, TAD K100 DCA CADPBF /SET CURRENT ADDRESS BANK,FIELD TO HERE TAD MASKA /ADDRESS OF MASK DCA WORD /PUT IT IN WORD DCA TOTE /FAKE OUT EXAM RTN JMP I EXAMA /GO TO EXAMINE RTN / /SET OR RESET SINGLE COMMAND MODE / STEP, CLA CLL IAC /ACC TO A 1 RUN, DCA SSTEP /SET OR RESET SINGLE STEP FLAG JMP I READA /BACK TO TEST KBD / /ROUTINE TO TYPE OUT ALL REG AT BRKPNT TIME / TREG, JMP I .+1 DREG / /RETURN TO SYSTEM / CTRLC, CLA CLL /AC=0 JMS I CDBFA /BANK,FIELD TO ZERO 6203 /CHANGE DATA AND INST FIELD TO ZERO CIB /CHANGE INST BANK 0 PGO PEX JMP I .+1 /GO 7600 /ADD IN MAIN MEM FOR RETURN / /ROUTINE TO SET CURRENT ADD P BIT BANK,FIELD / SPBF, TAD WORD /GET WORD DCA CADPBF /STUFF IT JMP I READ5A /CHK KBD / / SET LOC 10 TO 2525 FOR NEXT BOOT TO ENABLE INT. / IE, TAD .+3 /GET 2525 DCA 10 /STUFF LOC 10 JMP I READA /BACK TO KBD 2525 /MAGIC 2525 / PAGE / / CONFIGURE SYSTEM / / ON INITIAL BOOT PIAS ARE CONFIGURED WITH INTERUPTS DISABLED. / I.E. INTERUPTS IMPOSSIBLE / IF AFTER THE FIRST BOOT THE OPERATOR TYPES AN (I) FOR INTERUPTS, / AND THEN REBOOTS, THE SYSTEM PIAS WILL THEN RECONFIGURE WITH INTERUPTS / ALLOWED. / IOCON, SPD /SET PANEL DATA FLG TAD 10 /GET LOCATION 10 (SET TO 2525 BY ODT COMM (I) CIA /NEGATE IT TAD MAGIC /2525 SZA CLA / JMP .+2 /IF NO MATCH BOOT WITH INT. DISABLED JMP .+4 /IF MATCHED BOOT WITH INT. ENABLED CLA CLL CMA /ACC=MINUS 1 TAD CONFB /TAD ADD OF CONF TABLE WITH INT DISABLED JMP .+3 /DO IT CLA CLL CMA /ACC=MINUS 1 TAD CONFA /TAD ADD OF TABLE WITH INT. ENABLED DCA 10 /AUTO INC TAD CFCNT /GET THE COUNT DCA 11 /COUNTER LP2, TAD I 10 /GET CONFIGURATION FOR THIS PORT 6717 /SEND IT TO PIA PORT (AND CLA) ISZ 11 /ALL PORTS DONE? JMP LP2 /NO CLA CLL TAD BDRT /PICK UP DEFAULT BAUD RATE 6043 6313 6333 6353 6373 6413 /SEND TO ALL SIX SERIAL PORTS 6433 6453 6473 6613 6633 6653 6673 6733 6753 6773 JMP I .+1 /GO TO MOVE ROUTINE MOVE /ADD OF RTN TO MOVE ODT TO RAM (PM) / MAGIC, 2525 CONFB, CON2 /ADD OF TABLE WITH INT DISABLED / CONFA, CONF BDRT, 16 /9600 BAUD CFCNT, 7730 /MINUS 50 OCTAL / / CON2, 2104 2134 0544 2554 2564 / 2306 2314 2326 2334 2346 / 2354 2366 2374 2406 2414 / 2036 2044 2524 2504 0710 / 2426 2434 2446 2454 2466 / 2474 2606 2614 2626 2634 / 2646 2654 2666 2674 2726 / 2734 2746 2754 2766 2774 / $