ASMB,A,B,L * BINARY LOADER * From 13-3 CE Handbook RDR EQU 13B READER SELECT CODE * 4KW=07700 * 8KW=17700 *12KW=27700 *16KW=37700 *24KW=57700 *32KW=77700 ORG 77700B DEPENDS ON CORE SIZE LOAD CLC 0,C TURN OFF ALL DEVICES LDA STAI LIB 1 CHECK FOR OPTIONS SLB S-REG(0)=1? CLA YES: CHECKSUM OPTION SSB S-REG(15)=1? LDA CPAI YES: VERIFY CORE OPT. STA OPTI STORE OPTIONAL INST. CLB,RSS BYPASS EOT CHECK CONT LDB CM11 B=-11 FOR EOT CHECK EOTCH INB,SZB END OF TAPE? JMP LD1 NO GET NEXT CHAR CLC 0,C TURN OFF ALL DEVICES HLT 77B END OF TAPE JMP LOAD START NEXT TAPE LD1 JSB CHAR GET A CHARACTER SZA,RSS IS IT THE WORD COUNT? JMP EOTCH NO: CHECK FOR EOT CMA,CLE,INA (2'S COMP WORD COUNT) STA COUNT SAVE WORD COUNT JSB CHAR SKIP NEXT CHAR JSB WORD GET STARTING ADDRESS STA 1 INITIALIZE CHECKSUM IN B STA ADDRS ALSO IN ADDRESS LD2 LDA ADDRS CHECK FOR ADDR>=LOADER ADA MAXAD SEZ E-REG=0 OK JMP ADERR BAD ADDRESS JSB WORD NEXT WORD IN A-REG ADB 0 CONTINUE CHECKSUM OPTI NOP STA, CPA, OR NOP CLE,RSS NORMALLY BYPASS HALT HLT 0B DID NOT COMPARE ISZ ADDRS INCREMENT ADDRESS ISZ COUNT UPDATE WORD COUNT JMP LD2 NEXT WORD JSB WORD END OF RECORD CPB 0 COMPARE CHECKSUMS JMP CONT LOOK FOR END OF TAPE HLT 11B CHECKSUM ERROR JMP LOAD START OVER ADERR HLT 55B ILLEGAL ADDRESS JMP LOAD START OVER WORD NOP READ ONE BYTE JSB CHAR FIRST BYTE ALF,ALF POSITION BYTE STA TEMP SAVE IT JSB CHAR SECOND BYTE IOR TEMP MERGE BYTES JMP WORD,I RETURN WITH WORD CHAR NOP READ BYTE FROM READER STC RDR,C INITIATE READ RLOOP SFS RDR ** CHECK THESE IF ** JMP RLOOP ** LOADER BOMBED ** LIA RDR GET BYTE JMP CHAR,I HAVE BYTE A-REG(0-7) STAI STA ADDRS,I HAVE OPTI FOR NORMAL LOAD CPAI CPA ADDRS,I OPTI FOR VERIFY OPTION MAXAD ABS -LDR LOADER ADDRESS (2'S COMP) CM11 DEC -11 EOT ERROR COUNT COUNT BSS 1 WORD COUNT ADDRS BSS 1 ADDRESS LOCATION TEMP BSS 1 HOLDS FIRST BYTE LDR EQU 17700B LOADER ADDRESS *CHECK 17764,17765 IF LOADER IS BOMBED *17763,17764,17766 DEPEND ON READER SELECT CODE *17772 DEPENDS ON CORE SIZE