ASMB,R,L,C,F * ******************************************************* * * RELOC. TAPE: 29100-16005 * ERS: 29100-16005-1 * LISTING: 29100-16005-2 * SOURCE TAPE: 29100-18005 REV A * ******************************************************* * NAM ERROR,7 29100-16005 REV.A * ENT ERROR,ERRCD,INERR,SERR EXT EXEC,.DIV,.ENTR * NUM NOP MNEM NOP LUN NOP ADDR NOP * ERROR NOP JSB .ENTR DEF NUM * LDA LUN,I SAVE LUN OF DESTINATION DEVICE STA DEVIC * LDA MPSA SET MP START STA MP * LDB MNEM,I GET MNEM LENGTH IN CHARS INB ADD CHAR FOR ROUNDING BRS MAKE IT WORDS CMB,INB MAKE NEGATIVE COPY ISZ MNEM MOVE POINTER TO TEXT LDA MNEM,I LOAD ASCII WORD JSB MPSTR STORE INTO OUTPUT BUFFER INB,SZB DONE ? JMP COPY NO. * LDB PLUS SET SIGN OF ERROR STB MP,I LDB MINUS GET POSSIBLE - SIGN LDA NUM,I GET ERROR NUMBER STA ERRCD AND SAVE IT SSA STB MP,I STORE - SIGN SSA CMA,INA MAKE ERROR NUMBER POSITIVE STA NUM SAVE ERROR NUMBER * ISZ MP MOVE POINTER * LDA BLANK LOAD 2 BLANKS REP 3 JSB MPSTR STORE BLANKS CCA ADA MP SAVE DECREMENTED POINTER STA FAKE * LDA NUM LOAD ERROR NUMBER LOOP CLB SET UP FOR DIVIDE JSB .DIV DEF D10 STA NUM SAVE RESULT SWP PUT B INTO A IOR BLDIG MAKE ASCII STA MP,I SAVE * CLB LDA NUM JSB .DIV DEF D10 STA NUM SAVE RESULT SWP PUT B INTO A ALF,ALF IOR DIGIT IOR MP,I STA FAKE,I STORE 2 ASCII NUMBERS CCA ADA FAKE DECREMENT POINTER STA FAKE * LDA NUM GET RESULT SZA DONE ? JMP LOOP NO. * LDA IN GET INSERT JSB MPSTR STORE IN OUTPUT BUFFER LDA IN+1 JSB MPSTR * LDB XEQT GET CURRENT ID SEGMENT ADDRESS ADB D12 MOVE TO NAME AREA LDA B,I GET START OF NAME JSB MPSTR INB LDA B,I GET MIDDLE JSB MPSTR STORE INB LDA B,I GET END OF NAME AND H377 MASK OFF LOW CHARACTER IOR B40 ADD A BLANK JSB MPSTR STORE * LDA AT LOAD "AT" JSB MPSTR STORE INTO OUTPUT BUFFER * LDA ADDR,I GET CALL ADDRESS JSB INDCK REMOVE INDIRECTS STA ADDR SAVE * ALF POSITION AND B7 MASK IOR BLDIG MAKE IT A BLANK AND A DIGIT JSB MPSTR STORE * LDB ADDR GET NUMBER BLF POSITION JSB FAKE * LDB ADDR GET NUMBER AGAIN BLF,BLF RBL,RBL POSITION JSB FAKE * LDA MPA LOAD START OF BUFFER CMA,INA NEGATE ADA MP GET BUFFER LENGTH STA FAKE SAVE FOR WRITE * JSB EXEC WRITE BUFFER DEF *+5 DEF WCODE DEF DEVIC MPA DEF ERR DEF FAKE JMP ERROR,I RETURN * MPSTR NOP ROUTINE TO STORE A REG INTO BUFFER STA MP,I ISZ MP JMP MPSTR,I RETURN * FAKE NOP ROUTINE TO CONVERT 6 HIGH BITS IN B REG * TO DIGITS CLA RRL 3 LONG SHIFT 3 (EAU) ALF,RAL RRL 3 IOR DIGIT JSB MPSTR STORE INTO BUFFER JMP FAKE,I RETURN * * ENTRY POINT TO SET ERRCD TO DESIRED VALUE * PTR NOP * SERR NOP SET ERRCD TO PASSED VALUE JSB .ENTR DEF PTR LDA PTR,I STA ERRCD JMP SERR,I * *ENTRY POINT TO FETCH ERRCD * VALU NOP * INERR NOP JSB .ENTR DEF VALU LDA ERRCD STA VALU,I JMP INERR,I RETURN IN THE A REGISTER * * INDCK NOP RSS LDA A,I RAL,CLE,SLA,ERA JMP *-2 JMP INDCK,I * WCODE DEC 2 ERRCD NOP DEVIC BSS 1 IN ASC 2, IN LNGTH NOP XEQT EQU 1717B D10 DEC 10 D12 DEC 12 DIGIT OCT 30060 BLDIG OCT 20060 PLUS ASC 1, + MINUS ASC 1, - ERR ASC 3,ERROR BSS 33 MPSA DEF ERR+3 MP NOP AT ASC 1,AT * B7 OCT 7 H377 OCT 177400 B EQU 1 A EQU 0 B40 OCT 40 BLANK BLANK ASC 1, * END