File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 1)1 00800 JOB41= 41 1) 00900 LOC JOB41 1) 01000 JSP 1,%RESET ;UUO HANDLER SETUP **** 2)1 .JB41= 41 2) LOC .JB41 2) JSP 1,%RESET ;UUO HANDLER SETUP ************** 1)1 07300 %UUO: BLOCK 2 ;JOB41 CONTAINS JSR %UUO 1) 07500 %ARITH: BLOCK 1 ;CONTROL OF FLOATING POINT UNDERFLOWS **** 2)1 %UUO: BLOCK 2 ;.JB41 CONTAINS JSR %UUO 2) %ARITH: BLOCK 1 ;CONTROL OF FLOATING POINT UNDERFLOWS ************** 1)2 00500 EXTERN %PDL,%HDBLK,%ENTRY,JOBFF,JOBREN,JOBAPR,%ERROR,%STEND 1) 00600 EXTERN %SREG,%NREG,%AVIOB,%IOOPN,%IOLEB,%IOBFH,%IOEND,%STAT 1) 00700 EXTERN JOBCNI,JOBTPC,%DYNAM,JOBOPC,JOB41,%UUO,%DCSAV,%IOBRK 1) 00800 EXTERN %APRSV,%UUOTB,%ARITH,%BLOCK,JOBSYM,JOBUSY,JOBSA 1) 00900 %T= 14 **** 2)2 EXTERN %PDL,%HDBLK,%ENTRY,%ERROR,%STEND ;JOBFF,JOBREN,JOBAPR 2) EXTERN %SREG,%NREG,%AVIOB,%IOOPN,%IOLEB,%IOBFH,%IOEND,%STAT 2) EXTERN %DYNAM,%UUO,%DCSAV,%IOBRK ;JOBCNI,JOBTPC,JOBOPC,JOB41 2) EXTERN %APRSV,%UUOTB,%ARITH,%BLOCK ;JOBSYM,JOBUSY,JOBSA 2) SEARCH JOBDAT ;JOBXXX BECOMES .JBXXX, DEFINED IN JOBDAT.UNV 2) ;OTHER ROUTINES WILL EXTERN .JBXXX SO ONLY 2) ;NEED TO SEARCH ONCE 2) %T= 14 ************** 1)2 03000 SETZM JOBUSY ;NO GLOBAL UNDEFINED SYMBOL TABLE 1) 03100 MOVE TEMP,JOBSYM 1) 03200 JUMPE TEMP,NOSYM ;NO SYMBOLS LOADED 1) 03300 HRLE TEMP2,TEMP 1) 03400 SUBM TEMP,TEMP2 ;SEE IF JOBSA IS ABOVE TABLE 1) 03500 HLRZ TEMP3,JOBSA 1) 03600 CAIL TEMP3,(TEMP2) ;IF SO, WE ALREADY MOVED IT **** 2)2 SETZM .JBUSY ;NO GLOBAL UNDEFINED SYMBOL TABLE 2) MOVE TEMP,.JBSYM 2) JUMPE TEMP,NOSYM ;NO SYMBOLS LOADED 2) HRLE TEMP2,TEMP 2) SUBM TEMP,TEMP2 ;SEE IF .JBSA IS ABOVE TABLE 2) HLRZ TEMP3,.JBSA 2) CAIL TEMP3,(TEMP2) ;IF SO, WE ALREADY MOVED IT ************** 1)2 04200 HRRM TEMP3,JOBSYM 1) 04300 HRLE TEMP2,TEMP **** 2)2 HRRM TEMP3,.JBSYM 2) HRLE TEMP2,TEMP ************** 1)2 04600 NOMOVE: HRLM TEMP2,JOBSA 1) 04700 HRRM TEMP2,JOBFF 1) 04800 NOSYM: MOVE %P,[IOWD ^D108,%PDL] ;SET PDL POINTER **** 2)2 NOMOVE: HRLM TEMP2,.JBSA File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 2) HRRM TEMP2,.JBFF 2) NOSYM: MOVE %P,[IOWD ^D108,%PDL] ;SET PDL POINTER ************** 1)2 07400 HRRZ JOBFF ;GET NEW STORAGE LIMIT 1) 07500 MOVEM %SREG **** 2)2 HRRZ .JBFF ;GET NEW STORAGE LIMIT 2) MOVEM %SREG ************** 1)2 08400 MOVEM JOB41 1) 08500 MOVE [JRST %UUOTB] **** 2)2 MOVEM .JB41 2) MOVE [JRST %UUOTB] ************** 1)2 08800 HRRM JOBREN ; FOR ERROR RECOVERY 1) 08900 MOVEI %APRER 1) 09000 HRRM JOBAPR ;SET UP FOR INTERRUPTS 1) 09100 MOVEI 200110 ; ON PDL OVF,OVF,EXP OVF **** 2)2 HRRM .JBREN ; FOR ERROR RECOVERY 2) MOVEI %APRER 2) HRRM .JBAPR ;SET UP FOR INTERRUPTS 2) MOVEI 200110 ; ON PDL OVF,OVF,EXP OVF ************** 1)2 10500 %REENT: MOVE JOBOPC ;INDICATE PROPER ERROR POINT 1) 10600 SKIPN %UUO **** 2)2 %REENT: MOVE .JBOPC ;INDICATE PROPER ERROR POINT 2) SKIPN %UUO ************** 1)2 11300 MOVE JOBTPC ;INDICATE PROPER ERROR POINT 1) 11400 SKIPN %UUO 1) 11500 MOVEM %UUO 1) 11600 MOVE JOBCNI ;APR ERROR, DECODE IT 1) 11700 TRNE 200000 **** 2)2 MOVE .JBTPC ;INDICATE PROPER ERROR POINT 2) SKIPN %UUO 2) MOVEM %UUO 2) MOVE .JBCNI ;APR ERROR, DECODE IT 2) TRNE 200000 ************** 1)2 12100 MOVE JOBTPC ;DECODE INTEGER OVERFLOW 1) 12200 TLNE 40 **** 2)2 MOVE .JBTPC ;DECODE INTEGER OVERFLOW 2) TLNE 40 ************** 1)2 12900 CAMN JOBTPC 1) 13000 SETZM %UUO ;IF %UUO=INTERRUPT POINT 1) 13100 MOVEM ERROR,%APRSV+1 ;SAVE ERROR 1) 13200 MOVE ERROR,JOBTPC ;SEE WHAT KIND OF INSTRUCTION 1) 13300 HLRZ -1(ERROR) **** 2)2 CAMN .JBTPC File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 2) SETZM %UUO ;IF %UUO=INTERRUPT POINT 2) MOVEM ERROR,%APRSV+1 ;SAVE ERROR 2) MOVE ERROR,.JBTPC ;SEE WHAT KIND OF INSTRUCTION 2) HLRZ -1(ERROR) ************** 1)2 16900 MOVE ERROR,JOBTPC ;SET UP AGAIN FOR STORE IN AC 1) 17000 JRST AC **** 2)2 MOVE ERROR,.JBTPC ;SET UP AGAIN FOR STORE IN AC 2) JRST AC ************** 1)2 18300 JRSTF @JOBTPC ;AND RETURN 1) 18500 FIXDIV: MOVEI ERROR,[ASCIZ/INTEGER DIVISION BY ZERO/] 1) 18600 JRST ERRPRT 1) 18800 FLTOVF: MOVE JOBTPC ;DECODE FLOATING OVERFLOW 1) 18900 TLNE 40 **** 2)2 JRSTF @.JBTPC ;AND RETURN 2) FIXDIV: MOVEI ERROR,[ASCIZ/INTEGER DIVISION BY ZERO/] 2) JRST ERRPRT 2) FLTOVF: MOVE .JBTPC ;DECODE FLOATING OVERFLOW 2) TLNE 40 ************** 1)3 01000 EXTERN %ERROR,JOBUUO,%UUO,%USRER,%SUBSC,%PROC,%OPEN,%IS,%HDBLK 1) 01100 %P= 17 **** 2)3 EXTERN %ERROR,%UUO,%USRER,%SUBSC,%PROC,%OPEN,%IS,%HDBLK 2) EXTERN .JBUUO 2) %P= 17 ************** 1)3 01500 HLRZ UUOPTR,JOBUUO 1) 01600 LSH UUOPTR,-^D9 ;GET TABLE INDEX **** 2)3 HLRZ UUOPTR,.JBUUO 2) LSH UUOPTR,-^D9 ;GET TABLE INDEX ************** 1)3 05100 HLRZ UUOPTR,JOBUUO ;FURTHER UUO DECODE 1) 05200 LSH UUOPTR,-5 ;USE AC FIELD **** 2)3 HLRZ UUOPTR,.JBUUO ;FURTHER UUO DECODE 2) LSH UUOPTR,-5 ;USE AC FIELD ************** 1)3 07300 CALLUO: PUSHJ %P,@JOBUUO ;SET TRACEBACK POINT ON ERROR 1) 07500 %XUUO: PUSH %P,%UUO ;RETURN TO POINT OF CALL **** 2)3 CALLUO: PUSHJ %P,@.JBUUO ;SET TRACEBACK POINT ON ERROR 2) %XUUO: PUSH %P,%UUO ;RETURN TO POINT OF CALL ************** 1)4 00700 EXTERN %XUUO,%IOEND,%SAVE,JOBUUO,JOBFF,%ERRSB 1) 00800 EXTERN %IOBFH,%IOBRK,%IOPP,%OPNSW,%UUO 1) 00900 %P= 17 **** 2)4 EXTERN %XUUO,%IOEND,%SAVE,%ERRSB 2) EXTERN %IOBFH,%IOBRK,%IOPP,%OPNSW,%UUO 2) EXTERN .JBUUO,.JBFF 2) %P= 17 File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 ************** 1)4 05700 HRRM TEMP,JOBFF ;SET AREA FOR BUFFERS 1) 05800 MOVE TEMP,[INBUF (BUFFCT)] **** 2)4 HRRM TEMP,.JBFF ;SET AREA FOR BUFFERS 2) MOVE TEMP,[INBUF (BUFFCT)] ************** 1)4 09600 HRRM TEMP,JOBFF 1) 09700 MOVE TEMP,[OUTBUF (BUFFCT)] ;SET AREA FOR BUFFERS **** 2)4 HRRM TEMP,.JBFF 2) MOVE TEMP,[OUTBUF (BUFFCT)] ;SET AREA FOR BUFFERS ************** 1)4 13900 HRRZ TEMP,JOBFF ;START OF AVAILABLE STORAGE 1) 14000 MOVEM TEMP,%SREG(REGPT) ;STORE IN TABLES **** 2)4 HRRZ TEMP,.JBFF ;START OF AVAILABLE STORAGE 2) MOVEM TEMP,%SREG(REGPT) ;STORE IN TABLES ************** 1)4 23600 MOVE CHAN,@JOBUUO ;GET CHANNEL NUMBER 1) 23700 JUMPG CHAN,CHANOK ;MUST BE 0 < CHAN < 16 **** 2)4 MOVE CHAN,@.JBUUO ;GET CHANNEL NUMBER 2) JUMPG CHAN,CHANOK ;MUST BE 0 < CHAN < 16 ************** 1)4 26300 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 26400 TRZ TEMP,1 ;EITHER INPUT OR OUTPUT **** 2)4 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) TRZ TEMP,1 ;EITHER INPUT OR OUTPUT ************** 1)4 57000 MOVE TEMP3,JOBUUO ;GO TO PROPER ROUTINE 1) 57100 TLNE TEMP3,40 **** 2)4 MOVE TEMP3,.JBUUO ;GO TO PROPER ROUTINE 2) TLNE TEMP3,40 ************** 1)5 00700 EXTERN %ERRST,%SAVE,%XUUO,%UUO,JOBUUO,%ERROC,%IOBFH 1) 00800 %P= 17 **** 2)5 EXTERN %ERRST,%SAVE,%XUUO,%UUO,%ERROC,%IOBFH 2) EXTERN .JBUUO 2) %P= 17 ************** 1)5 02700 INCHK: MOVE CINDEX,@JOBUUO ;GET CHANNEL NUMBER 1) 02800 JUMPGE CINDEX,INCHK2 ;CHECK FOR VALIDITY **** 2)5 INCHK: MOVE CINDEX,@.JBUUO ;GET CHANNEL NUMBER 2) JUMPGE CINDEX,INCHK2 ;CHECK FOR VALIDITY ************** 1)5 05000 OUTCHK: MOVE CINDEX,@JOBUUO ;GET CHANNEL NUMBER 1) 05100 JUMPL CINDEX,ILLCHN ;CHECK FOR VALIDITY **** 2)5 OUTCHK: MOVE CINDEX,@.JBUUO ;GET CHANNEL NUMBER 2) JUMPL CINDEX,ILLCHN ;CHECK FOR VALIDITY ************** File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 1)5 09000 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 09100 HRLI TEMP,(TEMP) ;SAVE COPY OF AC FIELD **** 2)5 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) HRLI TEMP,(TEMP) ;SAVE COPY OF AC FIELD ************** 1)5 13500 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 13600 TRZ TEMP,1 **** 2)5 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) TRZ TEMP,1 ************** 1)5 15300 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 15400 MOVEM TEMP2,(TEMP) ;STORE VALUE **** 2)5 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) MOVEM TEMP2,(TEMP) ;STORE VALUE ************** 1)5 19900 LDB LINENO,[POINT 4,JOBUUO,^D12] 1) 20000 SKIPL LINENO,(LINENO) ;GET AND CHECK LINE NUMBER **** 2)5 LDB LINENO,[POINT 4,.JBUUO,^D12] 2) SKIPL LINENO,(LINENO) ;GET AND CHECK LINE NUMBER ************** 1)5 23800 LDB CHAR,[POINT 4,JOBUUO,^D12] 1) 23900 MOVE BYTEPT,(CHAR) **** 2)5 LDB CHAR,[POINT 4,.JBUUO,^D12] 2) MOVE BYTEPT,(CHAR) ************** 1)5 30100 LDB CHAR,[POINT 4,JOBUUO,^D12] 1) 30200 ANDI CHAR,16 **** 2)5 LDB CHAR,[POINT 4,.JBUUO,^D12] 2) ANDI CHAR,16 ************** 1)5 37000 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 37100 TRZN TEMP,1 ;AFTER STORING CHARACTER, **** 2)5 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) TRZN TEMP,1 ;AFTER STORING CHARACTER, ************** 1)6 00700 EXTERN JOBUUO,%XUUO,%ERRSB,%IOPP,%ERRST 1) 00800 %P= 17 **** 2)6 EXTERN %XUUO,%ERRSB,%IOPP,%ERRST 2) EXTERN .JBUUO 2) %P= 17 ************** 1)6 01700 %CLOSE: MOVE CHAN,@JOBUUO ;GET CHANNEL NUMBER 1) 01800 JUMPG CHAN,CHANGR ;CHECK CHAN>0 **** 2)6 %CLOSE: MOVE CHAN,@.JBUUO ;GET CHANNEL NUMBER 2) JUMPG CHAN,CHANGR ;CHECK CHAN>0 ************** 1)7 00600 EXTERN %SAVE,%XUUO,%UUO,JOBUUO,%ERRNM,%HDBLK File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 1) 00700 %T= 14 **** 2)7 EXTERN %SAVE,%XUUO,%UUO,%ERRNM,%HDBLK 2) EXTERN .JBUUO 2) %T= 14 ************** 1)7 13500 HRRZ HEADER,JOBUUO ;GET DESCRIPTOR ADDRESS 1) 13600 HLRZ SIZE,(HEADER) ;AND AREA SIZE **** 2)7 HRRZ HEADER,.JBUUO ;GET DESCRIPTOR ADDRESS 2) HLRZ SIZE,(HEADER) ;AND AREA SIZE ************** 1)7 13900 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 14000 MOVEM RESULT,(TEMP) **** 2)7 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) MOVEM RESULT,(TEMP) ************** 1)7 14800 LDB TEMP,[POINT 4,JOBUUO,^D12] ;GET NO. OF DIMENSIONS 1) 14900 HRRZ TEMP2,JOBUUO ;AND DOPE VECTOR ADDRESS 1) 15000 HLRZ SIZE,1(TEMP2) ;GET LENGTH (IN WORDS) **** 2)7 LDB TEMP,[POINT 4,.JBUUO,^D12] ;GET NO. OF DIMENSIONS 2) HRRZ TEMP2,.JBUUO ;AND DOPE VECTOR ADDRESS 2) HLRZ SIZE,1(TEMP2) ;GET LENGTH (IN WORDS) ************** 1)7 17300 LDB TEMP,[POINT 4,JOBUUO,^D12] ;GET NO. OF DIMENSIONS 1) 17400 HRRZ TEMP2,JOBUUO ;AND DOPE VECTOR ADDRESS 1) 17500 HLRE SIZE,1(TEMP2) ;GET LENGTH (IN BYTES) **** 2)7 LDB TEMP,[POINT 4,.JBUUO,^D12] ;GET NO. OF DIMENSIONS 2) HRRZ TEMP2,.JBUUO ;AND DOPE VECTOR ADDRESS 2) HLRE SIZE,1(TEMP2) ;GET LENGTH (IN BYTES) ************** 1)7 19100 HRRZ TEMP,JOBUUO ;GET DOPE VECTOR ADDRESS 1) 19200 HLRE SIZE,1(TEMP) ;AND LENGTH (IN BYTES) **** 2)7 HRRZ TEMP,.JBUUO ;GET DOPE VECTOR ADDRESS 2) HLRE SIZE,1(TEMP) ;AND LENGTH (IN BYTES) ************** 1)7 19800 LDB TEMP2,[POINT 6,@JOBUUO,^D11] ;GET BYTE SIZE 1) 19900 MOVEI TEMP,^D36 ;HOW MANY PER WORD? **** 2)7 LDB TEMP2,[POINT 6,@.JBUUO,^D11] ;GET BYTE SIZE 2) MOVEI TEMP,^D36 ;HOW MANY PER WORD? ************** 1)7 23400 HRRZ HEADER,JOBUUO ;GET DESCRIPTOR ADDRESS 1) 23500 HLRZ SIZE,(HEADER) ;AND SIZE **** 2)7 HRRZ HEADER,.JBUUO ;GET DESCRIPTOR ADDRESS 2) HLRZ SIZE,(HEADER) ;AND SIZE ************** 1)7 24000 HRRZ TEMP,JOBUUO ;GET DISPLAY SIZE 1) 24100 HLRZ TEMP,-1(TEMP) **** 2)7 HRRZ TEMP,.JBUUO ;GET DISPLAY SIZE File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 2) HLRZ TEMP,-1(TEMP) ************** 1)7 25500 HRRZ HEADER,JOBUUO ;GET DESCRIPTOR ADDRESS 1) 25600 HLRZ SIZE,(HEADER) ;AND SIZE **** 2)7 HRRZ HEADER,.JBUUO ;GET DESCRIPTOR ADDRESS 2) HLRZ SIZE,(HEADER) ;AND SIZE ************** 1)7 26300 HRRZ TEMP,JOBUUO ;GET DISPLAY SIZE 1) 26400 HLRZ TEMP,-1(TEMP) **** 2)7 HRRZ TEMP,.JBUUO ;GET DISPLAY SIZE 2) HLRZ TEMP,-1(TEMP) ************** 1)7 27700 HRRZ HEADER,JOBUUO ;GET DESCRIPTOR ADDRESS 1) 27800 HLRZ SIZE,(HEADER) ;AND SIZE **** 2)7 HRRZ HEADER,.JBUUO ;GET DESCRIPTOR ADDRESS 2) HLRZ SIZE,(HEADER) ;AND SIZE ************** 1)7 28500 HRRZ TEMP,JOBUUO ;GET DISPLAY SIZE 1) 28600 HLRZ TEMP2,-1(TEMP) **** 2)7 HRRZ TEMP,.JBUUO ;GET DISPLAY SIZE 2) HLRZ TEMP2,-1(TEMP) ************** 1)10 00500 EXTERN %ERRPT,%UUO,%DCSAV,%XUUO,JOBUUO 1) 00600 %B= 16 **** 2)10 EXTERN %ERRPT,%UUO,%DCSAV,%XUUO 2) EXTERN .JBUUO 2) %B= 16 ************** 1)10 07500 HRRZ ERROR,JOBUUO ;USER CALL - STRING DV 1) 07600 MOVE BYTEPT,(ERROR) **** 2)10 HRRZ ERROR,.JBUUO ;USER CALL - STRING DV 2) MOVE BYTEPT,(ERROR) ************** 1)11 00600 EXTERN JOBUUO,%XUUO,%SAVE,%UUO,%DCSAV,%HDBLK 1) 00700 %P= 17 **** 2)11 EXTERN %XUUO,%SAVE,%UUO,%DCSAV,%HDBLK 2) EXTERN .JBUUO 2) %P= 17 ************** 1)11 02300 %DADD: LDB ACBASE,[POINT 4,JOBUUO,^D12] 1) 02400 TRZN ACBASE,1 ;SET AC, DESTINATION 1) 02500 SKIPA RESULT,ACBASE 1) 02600 HRRZ RESULT,JOBUUO ;AC OR MEMORY 1) 02700 MOVE A,(ACBASE) 1) 02800 MOVE A+1,1(ACBASE) ;SETUP 1) 02900 HRRZ MBASE,JOBUUO 1) 03000 UFA A+1,1(MBASE) ;TAKEN FROM PDP-10 HANDBOOK **** 2)11 %DADD: LDB ACBASE,[POINT 4,.JBUUO,^D12] File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 2) TRZN ACBASE,1 ;SET AC, DESTINATION 2) SKIPA RESULT,ACBASE 2) HRRZ RESULT,.JBUUO ;AC OR MEMORY 2) MOVE A,(ACBASE) 2) MOVE A+1,1(ACBASE) ;SETUP 2) HRRZ MBASE,.JBUUO 2) UFA A+1,1(MBASE) ;TAKEN FROM PDP-10 HANDBOOK ************** 1)11 03800 %DSUB: LDB ACBASE,[POINT 4,JOBUUO,^D12] 1) 03900 TRZN ACBASE,1 ;SET AC, DESTINATION 1) 04000 SKIPA RESULT,ACBASE 1) 04100 HRRZ RESULT,JOBUUO ;AC OR MEMORY 1) 04200 MOVE A,(ACBASE) 1) 04300 MOVE A+1,1(ACBASE) ;SETUP 1) 04400 HRRZ MBASE,JOBUUO 1) 04500 DFN A,A+1 ;NEGATE **** 2)11 %DSUB: LDB ACBASE,[POINT 4,.JBUUO,^D12] 2) TRZN ACBASE,1 ;SET AC, DESTINATION 2) SKIPA RESULT,ACBASE 2) HRRZ RESULT,.JBUUO ;AC OR MEMORY 2) MOVE A,(ACBASE) 2) MOVE A+1,1(ACBASE) ;SETUP 2) HRRZ MBASE,.JBUUO 2) DFN A,A+1 ;NEGATE ************** 1)11 05500 %DMULT: LDB ACBASE,[POINT 4,JOBUUO,^D12] 1) 05600 TRZN ACBASE,1 ;SET AC, DESTINATION 1) 05700 SKIPA RESULT,ACBASE 1) 05800 HRRZ RESULT,JOBUUO ;AC OR MEMORY 1) 05900 MOVE A,(ACBASE) 1) 06000 MOVE A+1,1(ACBASE) ;SETUP 1) 06100 HRRZ MBASE,JOBUUO 1) 06200 MOVEM A,A+2 ;ALSO TAKEN FROM PDP-10 HANDBOOK **** 2)11 %DMULT: LDB ACBASE,[POINT 4,.JBUUO,^D12] 2) TRZN ACBASE,1 ;SET AC, DESTINATION 2) SKIPA RESULT,ACBASE 2) HRRZ RESULT,.JBUUO ;AC OR MEMORY 2) MOVE A,(ACBASE) 2) MOVE A+1,1(ACBASE) ;SETUP 2) HRRZ MBASE,.JBUUO 2) MOVEM A,A+2 ;ALSO TAKEN FROM PDP-10 HANDBOOK ************** 1)11 07300 %DDIV: LDB ACBASE,[POINT 4,JOBUUO,^D12] 1) 07400 TRZN ACBASE,1 ;SET AC, DESTINATION 1) 07500 SKIPA RESULT,ACBASE 1) 07600 HRRZ RESULT,JOBUUO ;AC OR MEMORY 1) 07700 MOVE A,(ACBASE) 1) 07800 MOVE A+1,1(ACBASE) ;SETUP 1) 07900 HRRZ MBASE,JOBUUO 1) 08000 FDVL A,(MBASE) ;TAKEN FROM PDP-10 HANDBOOK **** 2)11 %DDIV: LDB ACBASE,[POINT 4,.JBUUO,^D12] 2) TRZN ACBASE,1 ;SET AC, DESTINATION 2) SKIPA RESULT,ACBASE File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 2) HRRZ RESULT,.JBUUO ;AC OR MEMORY 2) MOVE A,(ACBASE) 2) MOVE A+1,1(ACBASE) ;SETUP 2) HRRZ MBASE,.JBUUO 2) FDVL A,(MBASE) ;TAKEN FROM PDP-10 HANDBOOK ************** 1)11 09000 %CMULT: LDB ACBASE,[POINT 4,JOBUUO,^D12] 1) 09100 TRZN ACBASE,1 ;SET AC, DESTINATION 1) 09200 SKIPA RESULT,ACBASE 1) 09300 HRRZ RESULT,JOBUUO ;AC OR MEMORY 1) 09400 HRRZ MBASE,JOBUUO 1) 09500 MOVE A,(ACBASE) ;(A+BI)(C+DI)= **** 2)11 %CMULT: LDB ACBASE,[POINT 4,.JBUUO,^D12] 2) TRZN ACBASE,1 ;SET AC, DESTINATION 2) SKIPA RESULT,ACBASE 2) HRRZ RESULT,.JBUUO ;AC OR MEMORY 2) HRRZ MBASE,.JBUUO 2) MOVE A,(ACBASE) ;(A+BI)(C+DI)= ************** 1)11 11000 LDB ACBASE,[POINT 4,JOBUUO,^D12] 1) 11100 TRZN ACBASE,1 ;AC OR MEMORY 1) 11200 SKIPA RESULT,ACBASE 1) 11300 HRRZ RESULT,JOBUUO 1) 11400 HRRZ MBASE,JOBUUO 1) 11500 MOVE T,(MBASE) ;(A+BI)/(C+DI)= **** 2)11 LDB ACBASE,[POINT 4,.JBUUO,^D12] 2) TRZN ACBASE,1 ;AC OR MEMORY 2) SKIPA RESULT,ACBASE 2) HRRZ RESULT,.JBUUO 2) HRRZ MBASE,.JBUUO 2) MOVE T,(MBASE) ;(A+BI)/(C+DI)= ************** 1)11 14200 LDB ACAC,[POINT 4,JOBUUO,^D12] 1) 14300 TRZN ACAC,1 ;SET AC, DESTINATION 1) 14400 SKIPA MAC,ACAC 1) 14500 HRRZ MAC,JOBUUO ;AC OR MEMORY 1) 14600 HRLI ACAC,(MAC) ;SAVE DESTINATION 1) 14700 HRRZ MAC,JOBUUO 1) 14800 CAIG MAC,17 ;MEMORY IS SAVED **** 2)11 LDB ACAC,[POINT 4,.JBUUO,^D12] 2) TRZN ACAC,1 ;SET AC, DESTINATION 2) SKIPA MAC,ACAC 2) HRRZ MAC,.JBUUO ;AC OR MEMORY 2) HRLI ACAC,(MAC) ;SAVE DESTINATION 2) HRRZ MAC,.JBUUO 2) CAIG MAC,17 ;MEMORY IS SAVED ************** 1)11 18300 LDB ACAC,[POINT 4,JOBUUO,^D12] 1) 18400 TRZN ACAC,1 ;SET AC, DESTINATION 1) 18500 SKIPA MAC,ACAC 1) 18600 HRRZ MAC,JOBUUO ;AC OR MEMORY 1) 18700 HRLI ACAC,(MAC) ;SAVE DESTINATION 1) 18800 HRRZ MAC,JOBUUO File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 1) 18900 CAIG MAC,17 ;SAVED MEMORY **** 2)11 LDB ACAC,[POINT 4,.JBUUO,^D12] 2) TRZN ACAC,1 ;SET AC, DESTINATION 2) SKIPA MAC,ACAC 2) HRRZ MAC,.JBUUO ;AC OR MEMORY 2) HRLI ACAC,(MAC) ;SAVE DESTINATION 2) HRRZ MAC,.JBUUO 2) CAIG MAC,17 ;SAVED MEMORY ************** 1)11 23100 %FIX: MOVM A+1,@JOBUUO ;GET MAGNITUDE OF NUMBER 1) 23200 CAMG A+1,[200777777777] ;IS < 1.0 **** 2)11 %FIX: MOVM A+1,@.JBUUO ;GET MAGNITUDE OF NUMBER 2) CAMG A+1,[200777777777] ;IS < 1.0 ************** 1)11 23900 FIXSTO: EXCH A+1,@JOBUUO ;STORE NUMBER 1) 24000 JUMPGE A+1,%XUUO ;IF ORIGINAL WAS NEGATIVE, 1) 24100 MOVNS @JOBUUO ; NEGATE ANSWER 1) 24200 JRST %XUUO ;EXIT 1) 24300 FIXZER: SETZM @JOBUUO ;FORCE ZERO ANSWER 1) 24400 JRST %XUUO ;EXIT **** 2)11 FIXSTO: EXCH A+1,@.JBUUO ;STORE NUMBER 2) JUMPGE A+1,%XUUO ;IF ORIGINAL WAS NEGATIVE, 2) MOVNS @.JBUUO ; NEGATE ANSWER 2) JRST %XUUO ;EXIT 2) FIXZER: SETZM @.JBUUO ;FORCE ZERO ANSWER 2) JRST %XUUO ;EXIT ************** 1)11 24800 %FLOAT: MOVM A,@JOBUUO ;GET MAGNITUDE OF NUMBER 1) 24900 JUMPE A,%XUUO ;ZERO, QUIT **** 2)11 %FLOAT: MOVM A,@.JBUUO ;GET MAGNITUDE OF NUMBER 2) JUMPE A,%XUUO ;ZERO, QUIT ************** 1)11 25500 EXCH A+1,@JOBUUO ;STORE 1) 25600 JUMPGE A+1,%XUUO ;IF ORIGINAL WAS NEGATIVE, 1) 25700 MOVNS @JOBUUO ; NEGATE ANSWER 1) 25800 JRST %XUUO ;EXIT 1) 26000 %DFIX: HRRZ MBASE,JOBUUO ;GET ADDRESS 1) 26100 MOVM A+1,(MBASE) ;LOOK AT FIRST WORD **** 2)11 EXCH A+1,@.JBUUO ;STORE 2) JUMPGE A+1,%XUUO ;IF ORIGINAL WAS NEGATIVE, 2) MOVNS @.JBUUO ; NEGATE ANSWER 2) JRST %XUUO ;EXIT 2) %DFIX: HRRZ MBASE,.JBUUO ;GET ADDRESS 2) MOVM A+1,(MBASE) ;LOOK AT FIRST WORD ************** 1)11 27600 %DFLOT: HRRZ MBASE,JOBUUO ;GET ADDRESS 1) 27700 SETZM 1(MBASE) ;POSSIBLE ZERO RESULT **** 2)11 %DFLOT: HRRZ MBASE,.JBUUO ;GET ADDRESS 2) SETZM 1(MBASE) ;POSSIBLE ZERO RESULT ************** File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 1)12 00700 EXTERN JOBUUO,%XUUO,%UUO,%ERROR,%ERRNM 1) 00800 %P= 17 **** 2)12 EXTERN %XUUO,%UUO,%ERROR,%ERRNM 2) EXTERN .JBUUO 2) %P= 17 ************** 1)12 02100 SETUP: LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 02200 TRZE TEMP,1 ;OPERANDS IN REVERSE ORDER? **** 2)12 SETUP: LDB TEMP,[POINT 4,.JBUUO,^D12] 2) TRZE TEMP,1 ;OPERANDS IN REVERSE ORDER? ************** 1)12 02800 HRRZ TEMP,JOBUUO 1) 02900 MOVE BYTEP2,(TEMP) ;GET STRING DV AT ADDRESS **** 2)12 HRRZ TEMP,.JBUUO 2) MOVE BYTEP2,(TEMP) ;GET STRING DV AT ADDRESS ************** 1)12 03800 HRRZ TEMP,JOBUUO 1) 03900 MOVE BYTEP1,(TEMP) ;GET STRING DV AT ADDRESS **** 2)12 HRRZ TEMP,.JBUUO 2) MOVE BYTEP1,(TEMP) ;GET STRING DV AT ADDRESS ************** 1)12 20800 %IS: LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 20900 MOVE TEMP,(TEMP) ;GET RECORD DESCRIPTOR **** 2)12 %IS: LDB TEMP,[POINT 4,.JBUUO,^D12] 2) MOVE TEMP,(TEMP) ;GET RECORD DESCRIPTOR ************** 1)12 21200 CAIN TEMP,@JOBUUO ;IF SAME AS ASKED RECORD, 1) 21300 JRST RECDIS ; SHORT CUT CHECK 1) 21400 HRRZ TEMP,(TEMP) ;GET NAME ADDRESS 1) 21500 HRRZ LEN1,@JOBUUO 1) 21600 MOVE CHAR,(TEMP) ;GET A WORD OF NAME **** 2)12 CAIN TEMP,@.JBUUO ;IF SAME AS ASKED RECORD, 2) JRST RECDIS ; SHORT CUT CHECK 2) HRRZ TEMP,(TEMP) ;GET NAME ADDRESS 2) HRRZ LEN1,@.JBUUO 2) MOVE CHAR,(TEMP) ;GET A WORD OF NAME ************** 1)12 22500 %SUBST: HRRZ TEMP,JOBUUO ;GET DV 1) 22600 MOVE BYTEP1,(TEMP) 1) 22700 MOVS LEN1,1(TEMP) ;SWAPPED LENGTH 1) 22800 LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 22900 TRZN TEMP,1 **** 2)12 %SUBST: HRRZ TEMP,.JBUUO ;GET DV 2) MOVE BYTEP1,(TEMP) 2) MOVS LEN1,1(TEMP) ;SWAPPED LENGTH 2) LDB TEMP,[POINT 4,.JBUUO,^D12] 2) TRZN TEMP,1 ************** 1)12 25100 LDB TEMP,[POINT 4,JOBUUO,^D12] File 1) DSK:ALGLIB.OLD[4,366] created: 1900 14-Nov-1973 File 2) DSK:ALGLIB.MAC[4,366] created: 1456 24-Jun-1980 1) 25200 ANDI TEMP,16 **** 2)12 LDB TEMP,[POINT 4,.JBUUO,^D12] 2) ANDI TEMP,16 ************** 1)12 28700 %SUBSC: LDB TEMP,[POINT 4,JOBUUO,^D12] 1) 28800 HRRZ LEN1,JOBUUO ;SUBSCRIPT CHECKING 1) 28900 MOVE LEN2,1(TEMP) ;GET SUBSCRIPT **** 2)12 %SUBSC: LDB TEMP,[POINT 4,.JBUUO,^D12] 2) HRRZ LEN1,.JBUUO ;SUBSCRIPT CHECKING 2) MOVE LEN2,1(TEMP) ;GET SUBSCRIPT **************