EXT18 JMP TST22,I RETURN LDA TST52 ADA .+3 JMP RPT6 ..DCM450 ERM19 ASC 12,E310 ..DCM DATA ERROR/ MMS19 ASC 8,H310 ..DCM TEST/ TSTA6 DEF TST50 TST51 BSS 1 TST52 BSS 1 HED TEST TABLE FOR DDINT TESTS. ***** ***** * TEST TABLE FOR DDINT TESTS. * ***** ***** TST7 DEC -2 NUMBER OF TEST VALUES IN TABLE TST70 EQU * TABLE ENTRY ADDRESS OCT 177777 TEST VALUE #1 - HI MANTISSA OCT 177777 MID MANTISSA OCT 177436 - LO MANTISSA+EXPO OCT 000000 RESULT #1 - HI MANTISSA OCT 000000 - MID MANTISSA OCT 000000 - LO MANTISSA + EXP OCT 077700 TEST VALUE #2 - HI MANTISSA OCT 000000 - MID MANTISSA OCT 000430 OCT 077700 RESULT #2 - HI MANTISSA OCT 000000 - MID MANTISSA OCT 000030 - LO MANTISSA + EXP * ACTUAL RESULT BUFFER. ACTUL ASC 5,ACTUAL ASC 4, ASC 4, ASC 4, ASC 5, / * EXPECTED RESULT BUFFER EXPCT ASC 5,EXPECTED ASC 4, ASC 4, ASC 4, ASC 5, / HED TEST # 23 - DDINT TESTS. ***** ***** * TEST # 23 - DDINT TESTS. * ***** ***** TST23 EQU * NOP JSB MSGC,I OUTPUT TEST HEADER MESSAGE DEF MMS20 LDA TSTA7 INITIATE TEST VALUE STA TST71 TEST TABLE ENTRY ADDRESS LDB TST7 OBTAIN LOOP COUNT STB CNTR SET UP LOOP COUNTER RPT7 ADA .+3 STA TST72 POINTER(3 WORDS BELOW TEST VAL P RAM DDINT CALL TO MICRO-ROUTINE DDINT DEF *+3 SKIP AROUND PARM ADDRESS LIST DEF XBUF RESULT PARM. ADDRESS DEF TST71,I ARG. PARM. ADDRESS ARD70 JSB COMP,I COMPARE VALUES DEF ERR19 ERROR RETURN ADDRESS DEF TST72 SOURCE COMPARE POINTER DEF XBUF DESTINATION COMPARE ADDRESS OCT 3 WORD COUNT JMP ARD7 SKIP AROUND ERR19 JSB CNVRT,I CONVERT VALUES TO ASCII DEF XBUF ACTUAL VALUE BUFFER ADDRESS DEF TST72 OCT 3 WORD COUNT DLD XBUF LOAD ACT. VAL. WORDS 1 & 2 JSB ERMS,I JUMP TO ERROR MESSAGE HANDLER DEF ERM20 JSB SHLTC,I SET HALT CODE LDA XBUF+2 CLB JSB XINV2,I DISPLAY ACT. VAL. WORD 3 JSB RHLTC,I RESTORE HALT CODE JSB XINV3,I REG. DISPLAY OF EXPECTED VALUES DEF TST72,I JSB DSPLY,I OUTPUT ACT. & EXP, VALUES JMP ARD7 * * INTERRUPT TEST. * INTST JSB ICHEK,I INTERRUPT INTF. CONFIGURED ? JMP EXT19 NOT CONFIGURED LDA RET JSB ITRON,I TURN ON INTERRUPT INTF. STA RA SAVE (A) STB RB SAVE (B) STF INTP ENABLE INTERR SYSTEM IENTB RAM DDINT DEF *+3 SKIP AROUND PARM ADDRESS LIST DEF XBUF RESULT PARM. ADDRESS DEF TST70+6 ARGUMENT ADDRESS CLF INTP DISABLE INTERRUPT SYSTEM JSB ITROF,I TURN OFF INTERRUPT INTERFACE IENTA JSB PCHEK,I RSS INTERRUPTED? JMP ICHK1 YES, LDB PR291 NO, JSB PPRNN,I OUTPUT MESSAGE JMP EXT19 EXIT. ICHK1 LDA INTAD CPA IENTY WAS P-REG RESTORED ? JMP ICHK2 YES LDB PR292 NO, OUTPUT ERROR JSB PPNRS,I MESSAGE ICHK2 LDA RA CPA AREG WAS A-REG RESTORED ? JMP ICHK3 LDB PR293 NO, OUTPUT JSB PPARS,I ERROR MESSAGE ICHK3 LDA RB CPA BREG WAS B-REG RESTORED ? JMP EXT19 YES. EXIT. LDB PR294 NO, OUTPUT ERROR JSB PPBRS,I MESSAGE JMP EXT19 LABLA EQU * ************************************************************* ORG 200B ERM20 ASC 12,E320 DDINT DATA ERROR/ MMS20 ASC 8,H320 DDINT TEST/ TSTA7 DEF TST70 TEST TABLE ENTRY ADDRESS TST71 BSS 1 TEST VALUE POINTER TST72 BSS 1 RESULT POINTER IENTY DEF IENTB PR291 DEF E321 PR292 DEF E322 PR293 DEF E323 PR294 DEF E324 PPRNN DEF PRNIN PPNRS DEF PNRES PPARS DEF ANRES PPBRS DEF BNRES RA BSS 1 RB BSS 1 E321 ASC 2,E321 E322 ASC 2,E322 E323 ASC 2,E323 E324 ASC 2,E324 ACT5 DEF ACTUL+5 EXP5 DEF EXPCT+5 ************************************************************* ORG LABLA ICHEK DEF INTCK ITROF DEF INTOF ITRON DEF INTON PCHEK DEF CHECK RET DEF IENTA ARD7 ISZ CNTR UPDATE LOOP COUNTER JMP *+3 JMP INTST EXT19 JMP TST23,I RETURN LDA TST72 ADA .+3 STA TST71 ADJUST TEST VALUE POINTER JMP RPT7 LOOP BACK HED SUBROUTINE CMPAR ***** ********************************************** * CMPAR PERFORMS DATA WORDS COMPARISONS * CALLING SEQUENCE : * JSB CMPAR * DEF * DEF * DEF * OCT ***** ********************************************** ORG 4000B CMPAR NOP STA SAVEA STB SAVEB LDA CMPAR OBTAIN P+1 LDB 0,I OBTAIN ERROR RETURN ADDRESS STB ERRCP SET UP ERROR RETURN POINTER INA BUMP POINTER LDB 0,I OBTAIN SOURCE COMPARE ADDRESS LDB B,I STB CSRCE INA LDB 0,I OBTAIN DESTINATION COMPARE ADDRE STB CDEST INA LDB 0,I OBTAIN WORD COUNT CMB,INB NEGATE THE WORD COUNT STB CPCNT SET UP A WORD COUNTER INA STA CMPAR ADJUST RETURN ADDRESS LDA CSRCE CMPLP LDB 0,I OBTAIN SOURCE COMPARE DATA CPB CDEST,I COMPARE SOURCE DATA TO DEST. DAT JMP *+2 COMPARE EQUAL, SKIP AROUND JMP ERRCP,I COMPARE NOT EQUAL, ERROR RETURN ISZ CPCNT UPDATE & EXAMINE COUNTER JMP *+2 COUNTER NOT ZERO YET JMP CPRTN COUNTER = 0, NORMAL RETURN INA BUMP SOURCE DATA ADDRESS LDB CDEST UPDATE DESTINATION ADDRESS INB STB CDEST JMP CMPLP LOOP BACK CPRTN LDA SAVEA LDB SAVEB JMP CMPAR,I CPCNT BSS 1 CSRCE BSS 1 CDEST BSS 1 ERRCP BSS 1 HED SUBROUTINE COPY ***** ********************************************** * SUBROUTINE COPY PERFORMS DATA WORD MOVES * CALLING SEQUENCE : * JSB COPY * DEF * DEF * OCT ***** ********************************************** COPY NOP STA SAVEA STB SAVEB LDB COPY ADDRESS OF PARAMETER LIST LDA 1,I OBTAIN SOURCE COPY ADDRESS LDA A,I STA SRCE SAVE SOURCE COPY ADDRESS INB LDA 1,I OBTAIN AND SET UP STA DEST DESTINATION COPY ADDRESS INB LDA 1,I OBTAIN AND SET UP CMA,INA NEGATE WORD COUNT STA WDCNT WORD COUNT INB UPDATE RETURN ADDRESS STB COPY CPYLP LDB SRCE UPDATE SOURCE COPY POINTER INB LDA SRCE,I OBTAIN SOURCE DATA STB SRCE SAVE UPDATED SOURCE COPY ADDR LDB DEST STA 1,I MOVE SRCE DATA INTO DEST. DATA W INB UPDATE DEST. COPY POINTER STB DEST SAVE UPDATED DEST. POINTER ISZ WDCNT UPDATE & EXAMINE WORD COUNT JMP CPYLP LOOP BACK LDA SAVEA LDB SAVEB JMP COPY,I NORMAL RETURN WDCNT BSS 1 SRCE BSS 1 DEST BSS 1 HED SUBROUTINE CVRT **************************************************** * CVRT CONVERTS A NUMBER OF OCTAL WORDS TO ASCII * CALLING SEQUENCE: * JSB CVRT * DEF * DEF * OCT ***** ********************************************** CVRT NOP STA SAVEA STB SAVEB LDA CVRT ACCESS P+1 LDB 0,I ADDRESS OF ACTUAL VALUE BUFFER STB ACT INA LDB 0,I ADDRESS OF EXPECTED VALUE BUFFER LDB B,I STB EXP INA LDB 0,I WORD COUNT CMB,INB NEGATE THE WORD COUNT STB WRDCT INA ADJUSTED RETURN ADDRESS STA CVRT LDA .-2 STA VCOM LDB ACT ACTUAL VALUE BUFFER POINTER CVRT1 LDA WRDCT SET UP A WORD COUNTER STA LPCNT CVRT2 LDA 1,I OBTAIN AN OCTAL WORD JSB ASCII,I CONVERT TO ASCII CVRTP DEF ACTUL+5 ISZ LPCNT UPDATE & EXAMINE LOOP COUNTER JMP *+2 JMP *+3 INB UPDATE BUFFER POINTER JMP CVRT2 LDB EXP EXPECTED VALUE BUFFER POINTER LDA EXP5 STA CVRTP ISZ VCOM UPDATE & EXAMINE PASS COUNTER JMP CVRT1 LDA ACT5 STA CVRTP LDA SAVEA LDB SAVEB JMP CVRT,I EXIT VCOM BSS 1 ACT BSS 1 EXP BSS 1 LPCNT BSS 1 WRDCT BSS 1 HED O2ASC - OCTAL TO ASCII CONVERSION ***** * O2ASC - OCTAL TO ASCII CONVERSION ROUTINE * REG. A MUST CONTAIN THE OCTAL WORD * ASCII BUFFER POINTER MUST FOLLOW JSB IMM. ***** O2ASC NOP STB SAVEB SAVE C(REG. B) CLB REG. B = 0 STA SAVEA SAVE C(REG. A) = OCTAL WORD * EXTRACT OCTAL DIGIT 6(BIT 15 OF OCTAL WORD) AND MASKF MASK OUT BITS 14-0 SSA,RSS OCTAL DIGIT = 0 ? JMP TASC1 YES ALF,ALF NO, ROTATE LEFT 9 BITS RAL ADB 0 SET UP THE OCTAL DIGIT TASC1 ADB MASK1 MAKE IT ASCII * EXTRACT OCTAL DIGIT 5(BITS 14-12) LDA SAVEA RELOAD REG. A WITH THE OCTAL WORD AND MASKE MASK OUT OTHER BITS SZA,RSS OCTAL DIGIT = 0 ? JMP TASC2 YES ALF NO, ROTATE LEFT 4 BITS ADB 0 SET UP THE OCTAL DIGIT TASC2 ADB MASK2 MAKE IT ASCII JSB FILL FILLBUFFER WORD DEF O2ASC * EXTRACT OCTAL DIGIT 4(BITS 11-9) LDA SAVEA RELOAD THE OCTAL WORD AND MASKD MASK OUT OTHER BITS SZA,RSS OCTAL DIGIT = 0 ? JMP TASC3 YES RAR NO,ROTATE RIGHT 1 BIT ADB 0 SET UP THE OCTAL DIGIT TASC3 ADB MASK1 MAKE IT ASCII * EXTRACT OCTAL DIGIT 3(BITS 8-6) LDA SAVEA RELOAD THE OCTAL WORD AND MASKC MASK OUT OTHER BITS SZA,RSS JMP TASC4 YES ALF,ALF NO, ROTATE LEFT 10 BITS RAL,RAL ADB 0 SET UP THE OCTAL DIGIT TASC4 ADB MASK2 MAKE IT ASCII JSB FILL DEF O2ASC * EXTRACT OCTAL DIGIT 2(BITS 5-3) LDA SAVEA RELOAD THE OCTAL WORD AND MASKB MASK OUT OTHER BITS SZA,RSS OCTAL DIGIT = 0 ? JMP TASC5 YES ALF NO, ROTATE LEFT 5 BITS RAL ADB 0 SET UP THE OCTAL DIGIT TASC5 ADB MASK1 MAKE IT ASCII * EXTRACT OCTAL DIGIT 1(BITS 2-0) LDA SAVEA RELOAD THE OCTAL WORD AND MASKA MASK OUT OTHER BITS ADB 0 SET UP THE OCTAL DIGIT ADB MASK2 MAKE IT ASCII JSB FILL DEF O2ASC LDA O2ASC,I INSERT A BLANK INA AFTER EACH ASCII STA O2ASC,I OCTAL VALUE LDB SB INSERT STB 0,I "/ " LDA O2ASC ADJUST RETURN ADDRESS INA TO BYPASS PARAMETER STA O2ASC ADDRESS LOCATION LDA SAVEA LDB SAVEB JMP O2ASC,I RETURN MASK1 OCT 030000 MASK2 OCT 000060 MASKA OCT 000007 MASKB OCT 000070 MASKC OCT 000700 MASKD OCT 007000 MASKE OCT 070000 MASKF OCT 100000 SB OCT 027440 "/ " SAVEA BSS 1 SAVEB BSS 1 HED SUBROUTINES ***** * FILL - STUFFS C(REG. B) INTO A BUFFER WORD. ***** FILL NOP LDA FILL,I ASCII BUFFER POINTER LOCATION LDA 0,I ASCII BUFFER ADDRESS POINTER LDA 0,I ASCII BUFFER ADDRESS STB 0,I FILL 1 BUFFER WORD INA BUMP ASCII BUFFER ADDRESS LDB FILL,I ADDR(O2ASC) LDB 1,I BUFFER POINTER LOCATION STA 1,I SAVE UPDATED BUFFER ADDRESS LDB FILL ADJUST RETURN ADDRESS INB TO BYPASS PARAMETER WORD STB FILL CLB REG. B = 0 JMP FILL,I RETURN * * TWO WORD VALUES OUTPUT VIA REGISTERS A & B * CALLING SEQUENCE : * LDA PARM1 * LDB PARM2 * JSB INVL2 * INVL2 NOP STB ITEMP 1ST WORD IN REG. A LDB SW14 JSB SWRT,I SUPPRESS ERROR HALTS ? JMP INVL2,I NO ERROR HALT LDB ITEMP RESTORE 2ND WORD OCT 107000 HALT CODE JMP *-3 RETURN TO CALLER SW14 OCT 040000 MASK ITEMP BSS 1 * * THREE WORD OUTPUT VIA REGISTERS A & B * CALLING SEQUENCE : * JSB INVL3 * DEF X * INVL3 NOP JSB PARMR LDB SW14 JSB SWRT,I SUPPRESS ERROR HALTS ? JMP PRPTR,I NO ERROR HALT LDA PARMZ,I ONTAIN 1ST PARAMETER LDB PARMZ INB STB ITEMP LDB ITEMP,I OBTAIN 2ND WORD OCT 107001 HLT CODE # 2 LDB ITEMP INB LDA 1,I OBTAIN 3RD WORD CLB OCT 107000 HLT CODE # 1 JMP PRPTR,I RETURN TO CALLER * * FOUR WORD VALUES OUTPUT VIA REGS. A & B * CALLING SEQUENCE : * LDA PARM1 * JSB INVL4 * DEF PARM2 * INVL4 NOP JSB PARMR LDB SW14 JSB SWRT,I SUPPRESS ERROR HALTS ? JMP PRPTR,I NO ERROR HALT LDB PARMZ,I OBTAIN PARAMETER ADDRESS OCT 107001 HLT CODE # 2 LDB PARMZ INB LDA 1,I OBTAIN 3RD WORD INB LDB 1,I OBTAIN 4TH WORD OCT 107000 HLT CODE # 1 JMP PRPTR,I RETURN TO CALLER PARMZ BSS 1 * * PARMR SAVES PARAMETER POINTER IN PARMZ AND ADJ ** RETURN ADDRESS OF THE CALLING PROGRAM * TO BYPASS PARAMETER POINTER * PARMR NOP LDB *-1 ADB .-2 LDB 1,I LOAD RETURN ADDRESS STB PARMZ SAVE PARAMETER POINTER INB STB PRPTR SAVE ADJUSTED RETURN ADDRESS JMP PARMR,I PRPTR BSS 1 * * DISPL NOP JSB MSGC,I OUTPUT VALUES IN QUESTION DEF ACTUL JSB MSGC,I OUTPUT VALUES IN QUESTION DEF EXPCT JMP DISPL,I LABL EQU * HED MAPPING CODES FOR MACRO **************************************************** * MAPPING CODES FOR MACRO * **************************************************** .DFER EQU 205B .XFER EQU 220B ..MAP EQU 222B DBLE EQU 201B SNGL EQU 202B .PACK EQU 230B FLUN EQU 226B PWR2 EQU 225B .XPAK EQU 206B .XCOM EQU 215B ..DCM EQU 216B DDINT EQU 217B ORG 150B CNTR BSS 1 LOOP COUNTER CNVRT DEF CVRT XCOPY DEF COPY COMP DEF CMPAR ASCII DEF O2ASC DSPLY DEF DISPL XINV2 DEF INVL2 XINV3 DEF INVL3 XINV4 DEF INVL4 ORG 140B IOIP DEF IOID TSTP DEF TSTD TEST TABLE POINTER HDMP DEF HDMS STDA OCT 7777 STDB OCT 0 HED TEST DATA TABLES ******************************************************************** * SPECIAL TEST TABLE FOR SNGL TESTS * * OVERFLOW SHOULD BE SET ******************************************************************** ORG LABL SGHD1 DEC 2 SGBS1 EQU * OCT 137777 -0.146936793854E-38 OCT 177600 LOWER BOUNDARY-INNER RANGE OCT 000401 * OCT 0 0.0000000E+00 OCT 0 * * OCT 077777 +0.170141163178E+39 OCT 177600 UPPER BOUNDARY-OUTER RANGE OCT 000376 * OCT 077777 +0.1701412E+39 OCT 177776 * * ******************************************************************** * * ******************************************************************** * SPECIAL TEST TABLE FOR SNGL TEST * * OVERFLOW SHOULD NOT BE SET ******************************************************************** * SGHD2 DEC 2 SGBS2 EQU * OCT 137777 LOWER BOUNDARY-INNER RANGE OCT 177600 OCT 000001 * OCT 137777 OCT 177401 * * OCT 077777 UPPER BOUNDARY-OUTER RANGE OCT 177577 OCT 177776 * OCT 077777 OCT 177776 * * ******************************************************************** * TABLES FOR DBLE TESTS ******************************************************************** * DBHED DEC 9 NR. OF TABLE ENTRIES. EACH ENTRY * CONSISTS OF 5 WORDS. * WORD 1 - 1ST WORD OF INPUT * WORD 2 - 2ND WORD OF INPUT * WORD 3 - 1ST WORD OF EXPECTED OUTPUT * WORD 4 - 2ND WORD OF EXPECTED OUTPUT * WORD 5 - 3RD WORD OF EXPECTED OUTPUT * * DBBAS EQU * OCT 077777 0.1701412E+39 OCT 177776 UPPER BOUNDARY-OUTER RANGE * OCT 077777 0.170141163178E+39 OCT 177400 OCT 000376 * * OCT 100000 -0.1701412E+39 OCT 000376 LOWER BOUNDARY-OUTER RANGE * OCT 100000 -0.170141183460E+39 OCT 0 OCT 000376 * * OCT 040000 0.1469368E-38 OCT 1 UPPER BOUNDARY-INNER RANGE * OCT 040000 0.146936793853E-38 OCT 0 OCT 1 * * OCT 137777 -0.1469369E-38 OCT 176401 LOWER BOUNDARY-INNER RANGE * OCT 137777 -0.146936898950E-38 OCT 176400 OCT 1 * * OCT 076612 0.9046138E+19 OCT 053576 * OCT 076612 0.904613845903E+19 OCT 053400 OCT 000176 * * OCT 057302 0.7403148E+00 OCT 121400 * OCT 057302 0.740314841270E+00 OCT 121400 OCT 0 * * OCT 040762 0.1117218E-18 OCT 166205 * OCT 040762 0.111721805266E-18 OCT 166000 OCT 000205 * * OCT 115330 -0.2091832E-22 OCT 060153 * OCT 115330 -0.209183192871E-22 OCT 060000 OCT 000153 * * OCT 131524 -0.2209911E+20 OCT 006202 * OCT 131524 -0.220991105949E+20 OCT 006000 OCT 000202 * * * ******************************************************************** * * * ******************************************************************** * TABLE FOR SNGL TESTS ******************************************************************** * * SGHED DEC 18 NR. OF ENTRIES. * EACH ENTRY CONSISTS OF 5 WORDS. * * FIRST 3 WORDS - INPUT * SECOND 2 WORDS - OUTPUT * SGBAS EQU * OCT 054173 +0.287135603715E+35 OCT 000526 OCT 106346 * OCT 054173 +0.2871356E+35 OCT 000746 * * OCT 056172 +0.447201649260E+27 OCT 124176 OCT 170262 * OCT 056172 +0.4472016E+27 OCT 124262 * * OCT 060557 +0.214263410162E+15 OCT 105471 OCT 136540 * OCT 060557 +0.2142634E+15 OCT 105540 * * OCT 046047 +0.998174653012E+07 OCT 114503 OCT 155460 * OCT 046047 +0.9981746E+07 OCT 114460 * * OCT 041443 +0.209814274109E+01 OCT 176076 OCT 165004 * OCT 041443 +0.2008143E+01 OCT 176004 * * OCT 061147 +0.187692645130E-03 OCT 127056 OCT 023351 * OCT 061147 +0.1876926E-03 OCT 127351 * * OCT 053416 +0.791765024518E-10 OCT 032105 OCT 060677 * OCT 053416 +0.7917650E-10 OCT 032277 * * OCT 073326 +0.100659253781E-18 OCT 062211 OCT 043603 * OCT 073326 +0.1006593E-18 OCT 062603 * * OCT 047131 +0.791117549280E-26 OCT 033165 OCT 011525 * OCT 047131 +0.7911175E-26 OCT 033125 * * OCT 076101 +0.912876403313E-37 OCT 014640 OCT 110413 * OCT 076101 +0.9128764E-37 OCT 015013 * * OCT 123006 -0.222764026459E+30 OCT 136521 OCT 001304 * OCT 123006 -0.2227640E+30 OCT 136704 * * OCT 135273 -0.623901549812E+18 OCT 123304 OCT 122570 * OCT 135273 -0.6239015E+18 OCT 123570 * * OCT 116745 -0.200918547392E+06 OCT 027173 OCT 142044 * OCT 116745 -0.2009186E+06 OCT 027044 * * OCT 103050 -0.111893657122E-37 OCT 114715 OCT 057405 * OCT 103050 -0.1118937E-37 OCT 115005 * * OCT 125123 -0.211198476202E-29 OCT 162564 OCT 107075 * OCT 125123 -0.2111985E-29 OCT 162475 * * OCT 137263 -0.432109685454E-21 OCT 110363 OCT 136565 * OCT 137263 -0.4321097E-21 OCT 110565 * * OCT 123016 -0.998563210089E-14 OCT 131465 OCT 001245 * OCT 123016 -0.9985632E-14 OCT 131645 * * OCT 115506 -0.600354780987E-05 OCT 172540 OCT 004737 * OCT 115506 -0.6003548E-05 OCT 172737 * * * ******************************************************************** * HED SUBROUTINES