.TITLE $ALG03 .IFDF CND$3 .GLOBL ALOG,ALOG10,$ERR .IFNDF FPU .GLOBL $POLSH,$ADR,$SBR,$MLR,$DVR,$IR .ENDC R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 F0=%0 F1=%1 F2=%2 F3=%3 .IFNDF FPU ALOG10: MOV @PC,-(SP) BR LOG$3 ALOG: CLR -(SP) LOG$3: MOV 2(R5),R4 MOV #071030,-(SP) MOV #137661,-(SP) CMP -(SP),-(SP) MOV 2(R4),-(SP) MOV @R4,-(SP) BLE ERR$3 ASL @SP MOVB 1(SP),12.(SP) MOVB #200,1(SP) ROR @SP MOV #002363,-(SP) MOV #040065,-(SP) MOV 6(SP),-(SP) MOV 6(SP),-(SP) MOV #002363,-(SP) MOV #040065,-(SP) JSR R4,$POLSH .WORD $SBR,UP$3,$ADR,$DVR .WORD DUP$3,DUP$3 .WORD $MLR,REG$3,STK$3,STK$3,STK$3 .WORD $MLR,$ADR,$MLR,$ADR,$MLR,$ADR,$MLR,$ADR .WORD SCL$3,$IR,PL2$3,$MLR .WORD $ADR,EXI$3 .WORD $MLR,EXI$3 REG$3: MOV (SP)+,R0 MOV (SP)+,R1 MOV #CON$3+4,R2 BR STC$3 STK$3: MOV R1,-(SP) MOV R0,-(SP) STC$3: MOV -(R2),-(SP) MOV -(R2),-(SP) JMP @(R4)+ UP$3: MOV (SP)+,10.(SP) MOV (SP)+,10.(SP) JMP @(R4)+ SCL$3: CLR -(SP) BISB 6(SP),@SP SUB #200,@SP JMP @(R4)+ DUP$3: MOV 2(SP),-(SP) MOV 2(SP),-(SP) JMP @(R4)+ PL2$3: MOV #071030,-(SP) MOV #040061,-(SP) JMP @(R4)+ EXI$3: DECB 5(SP) BLT LGT$3 MOV #055731,-(SP) MOV #037736,-(SP) JMP @(R4)+ LGT$3: MOV (SP)+,R0 MOV (SP)+,R1 TST (SP)+ RTS R5 ERR$3: ADD #14.,SP JSR R5,$ERR RTS R5 .BYTE 4 .BYTE 10. .ENDC .IFDF FPU ALOG10: MOV @PC,R4 BR LOG$3 ALOG: CLR R4 LOG$3: SETF SETI MOV #FCO$3,R0 LDF @2(R5),F2 CFCC BLE ERR$3 STEXP F2,R1 LDCIF R1,F3 MULF (R0)+,F3 LDEXP #0,F2 LDF F2,F1 SUBF (R0),F2 ADDF (R0)+,F1 DIVF F1,F2 LDF F2,F1 MULF F1,F1 MOV #3,R1 LDF (R0)+,F0 XPD$3: MULF F1,F0 DEC R1 ADDF (R0)+,F0 BGT XPD$3 MULF F2,F0 ADDF (R0)+,F0 ADDF F3,F0 TST R4 BEQ LGT$3 MULF (R0)+,F0 LGT$3: STF F0,-(SP) MOV (SP)+,R0 MOV (SP)+,R1 RTS R5 ERR$3: JSR R5,$ERR RTS R5 .BYTE 4 .BYTE 10. FCO$3: .WORD 040061,071030 .WORD 040065,002363 .ENDC .WORD 037632,014525 .WORD 037714,120036 .WORD 040052,125332 CON$3: .WORD 040400,000000 .IFDF FPU .WORD 137661,071030 .WORD 037736,055731 .ENDC .ENDC .TITLE $ANT03 .IFDF CND$4 .GLOBL AINT,$INTR R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 MQ=177304 LSH=177314 F0=%0 F1=%1 .IFDF FPU AINT: .WORD 170001 .WORD 172475,2 .WORD 171467,24 .WORD 174146 MOV (SP)+,R0 MOV (SP)+,R1 RTS R5 $INTR: .WORD 170001 .WORD 172426 .WORD 171467,4 .WORD 174146 JMP @(R4)+ ONE$4: .WORD 040200,0 .ENDC .IFNDF FPU AINT: MOV 2(R5),R4 MOV @R4,R0 MOV 2(R4),R1 MOV PC,R2 BR AI1$4 $INTR: CLR R2 MOV (SP)+,R0 MOV (SP)+,R1 AI1$4: MOV R0,R3 ROL R3 CLRB R3 SWAB R3 SUB #230,R3 BGE DNE$4 CMP #-30,R3 BLT SHF$4 CLR R0 CLR R1 BR DNE$4 SHF$4: MOV R3,-(SP) .IFNDF EAE&MULDIV ROR$4: ROR R0 ROR R1 INC R3 BLT ROR$4 MOV (SP)+,R3 ASL$4: ASL R1 ROL R0 INC R3 BLT ASL$4 .ENDC .IFDF EAE MOV #MQ,R3 MOV R1,@R3 MOV R0,-(R3) MOV @SP,@#LSH NEG @SP MOV (SP)+,@#LSH MOV (R3)+,R0 MOV @R3,R1 .ENDC .IFDF MULDIV .WORD 073016 NEG @SP .WORD 073026 .ENDC DNE$4: TST R2 BEQ DN1$4 RTS R5 DN1$4: MOV R1,-(SP) MOV R0,-(SP) JMP @(R4)+ .ENDC .ENDC .TITLE $CMD02 .IFDF CND$5 .GLOBL $CMD R0=%0 R1=%1 R2=%2 R4=%4 SP=%6 PC=%7 F0=%0 .IFDF FPU $CMD: .WORD 170011 .WORD 172426 .WORD 173426 .WORD 170000 JMP @(R4)+ .ENDC .IFNDF FPU $CMD: MOV @PC,R0 MOV 8.(SP),R1 BGE FPS$5 ASL R0 MOV (SP)+,R2 BLT SME$5 BR NEG$5 FPS$5: MOV (SP)+,R2 BLT PLS$5 SME$5: CMP R1,R2 BNE OUT$5 CMP 8.(SP),@SP BNE OUT$5 CMP 10.(SP),2(SP) BNE OUT$5 CMP 12.(SP),4(SP) BNE OUT$5 CLR R0 OUT$5: ROR R0 BCS PLS$5 NEG$5: NEG R0 PLS$5: ADD #14.,SP TST R0 JMP @(R4)+ .ENDC .ENDC .TITLE $CMR02 .IFDF CND$6 .GLOBL $CMR R0=%0 R1=%1 R2=%2 R4=%4 SP=%6 PC=%7 F0=%0 .IFDF FPU $CMR: .WORD 170001 .WORD 172426 .WORD 173426 .WORD 170000 JMP @(R4)+ .ENDC .IFNDF FPU $CMR: MOV @PC,R0 MOV 4(SP),R1 BGE FPS$6 ASL R0 MOV (SP)+,R2 BLT SME$6 BR NEG$6 FPS$6: MOV (SP)+,R2 BLT PLS$6 SME$6: CMP R1,R2 BNE OUT$6 CMP 4(SP),@SP BNE OUT$6 CLR R0 OUT$6: ROR R0 BCS PLS$6 NEG$6: NEG R0 PLS$6: ADD #6,SP TST R0 JMP @(R4)+ .ENDC .ENDC .TITLE $DBL02 .IFDF CND$7 .GLOBL DBLE R0=%0 R1=%1 R2=%2 R3=%3 R5=%5 DBLE: MOV 2(R5),R2 MOV (R2)+,R0 MOV @R2,R1 CLR R2 CLR R3 RTS R5 .ENDC .TITLE $DCI01 .IFDF CND$8 .GLOBL $DCI,$RCI R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 NUMEND=0 POINTL=2 DIGITS=4 BEXP=6 ESIGN=8. SIGN=10. EEXP=12. P=30. D=32. ERF=26. LENGTH=34. TEMP=LENGTH RESULT=P START=36. END=START $RCI: CLR -(SP) INC @SP BR CNV$8 $DCI: CLR -(SP) CNV$8: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV R5,-(SP) CLR -(SP) CLR -(SP) CLR -(SP) MOV #65.,-(SP) MOV #18.,-(SP) CLR -(SP) CLR -(SP) MOV START(SP),R5 ADD LENGTH(SP),END(SP) CLR R0 CLR R1 CLR R2 CLR R3 SCN$8: MOVB (R5)+,R4 BIC #177600,R4 CMPB R4,#' BNE SGS$8 CMP R5,START(SP) BLT SCN$8 JMP ZER$8 SGS$8: CMPB R4,#'+ BEQ FLD$8 CMPB R4,#'- BNE NCK$8 INC SIGN(SP) BR FLD$8 NXT$8: MOVB (R5)+,R4 BIC #177600,R4 CMPB R4,#' BNE NCK$8 MOV #'0,R4 NCK$8: CMPB R4,#'0 BLT PCK$8 BNE NNZ$8 TST R0 BNE NNZ$8 TST R1 BNE NNZ$8 TST R2 BNE NNZ$8 TST R3 BEQ FLD$8 NNZ$8: CMPB R4,#'9 BGT EXC$8 DEC DIGITS(SP) BGE A2I$8 INC EEXP(SP) BR FLD$8 A2I$8: SUB #60,R4 JSR PC,ML5$8 JSR PC,LFT$8 ADD R4,R3 ADC R2 ADC R1 ADC R0 FLD$8: CMP R5,END(SP) BLT NXT$8 MOV R5,@SP SCL$8: TST R0 BNE SC1$8 TST R1 BNE SC1$8 TST R2 BNE SC1$8 TST R3 BEQ ZER$8 SC1$8: CMP @SP,R5 BNE NOP$8 SUB P(SP),EEXP(SP) NOP$8: TST POINTL(SP) BNE PNT$8 MOV D(SP),@SP PNT$8: SUB POINTL(SP),@SP SUB @SP,EEXP(SP) BGT MUL$8 BLT DIV$8 JMP FLT$8 MUL$8: CMP R0,#31462 BHI MDV$8 JSR PC,ML5$8 INC BEXP(SP) D10$8: DEC EEXP(SP) BGT MUL$8 JMP FLT$8 MDV$8: JSR PC,M54$8 ADD #3,BEXP(SP) BR D10$8 PCK$8: CMPB R4,#'. BNE ERR$8 PTF$8: TST POINTL(SP) BNE ERR$8 MOV R5,POINTL(SP) BR FLD$8 ERR$8: COMB ERF+1(SP) ZER$8: CLR R0 CLR R1 CLR R2 CLR R3 JMP STR$8 EXC$8: CMPB R4,#'E BEQ EXT$8 CMPB R4,#'D BNE ERR$8 EXT$8: MOV R5,@SP DEC @SP MOV R3,TEMP(SP) CLR R3 CMP R5,END(SP) BGE ERR$8 MOVB (R5)+,R4 BIC #177600,R4 CMPB R4,#'+ BEQ EF1$8 CMPB R4,#'- BNE ENM$8 INC ESIGN(SP) EF1$8: CMP R5,END(SP) BGE ERR$8 EF2$8: MOVB (R5)+,R4 BIC #177600,R4 ENM$8: CMPB R4,#' BNE EN1$8 MOV #'0,R4 EN1$8: CMPB R4,#'0 BLT ERR$8 CMPB R4,#'9 BGT ERR$8 SUB #60,R4 ASL R3 ADD R3,R4 ASL R3 ASL R3 ADD R4,R3 CMP R5,END(SP) BLT EF2$8 TST ESIGN(SP) BEQ EN2$8 NEG R3 EN2$8: ADD R3,EEXP(SP) MOV TEMP(SP),R3 JMP SCL$8 DIV$8: TST R0 BLT DV1$8 DV2$8: DEC BEXP(SP) JSR PC,LFT$8 BPL DV2$8 DV1$8: MOV #16.,R4 JSR PC,RIT$8 MOV R3,-(SP) MOV R2,-(SP) MOV R1,-(SP) MOV R0,-(SP) DV3$8: JSR PC,RIT$8 CLC JSR PC,RIT$8 MOV #2,R5 CLC DV4$8: JSR PC,RIT$8 ADD 6(SP),R3 ADC R2 ADC R1 ADC R0 ADD 4(SP),R2 ADC R1 ADC R0 ADD 2(SP),R1 ADC R0 ADD @SP,R0 DEC R5 BGT DV4$8 DEC R4 BGT DV3$8 ADD #8.,SP SUB #3,BEXP(SP) INC EEXP(SP) BLT DIV$8 FLT$8: DEC BEXP(SP) JSR PC,LFT$8 BCC FLT$8 ADD #200,BEXP(SP) BLE UND$8 CMP BEXP(SP),#377 BGT OVR$8 CLRB R3 BISB R2,R3 SWAB R3 CLRB R2 BISB R1,R2 SWAB R2 CLRB R1 BISB R0,R1 SWAB R1 CLRB R0 BISB BEXP(SP),R0 SWAB R0 ROR SIGN(SP) JSR PC,RIT$8 ADC R3 ADC R2 ADC R1 ADC R0 BVS OVR$8 BCS OVR$8 STR$8: TSTB ERF(SP) BEQ DPR$8 ROL R2 ADC R1 ADC R0 BVS OVR$8 BCS OVR$8 MOV R0,R2 MOV R1,R3 DPR$8: MOV R0,RESULT(SP) MOV R1,RESULT+2(SP) MOV R2,RESULT+4(SP) MOV R3,RESULT+6(SP) ADD #14.,SP MOV (SP)+,R5 MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 TSTB @SP BEQ RRN$8 MOV (SP)+,2(SP) MOV (SP)+,2(SP) RRN$8: ROL (SP)+ RTS PC OVR$8: UND$8: JMP ERR$8 M54$8: CMP R0,#146314 BLO M55$8 CLC JSR PC,RIT$8 INC BEXP+0+2(SP) M55$8: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) CLC JSR PC,RIT$8 CLC JSR PC,RIT$8 BR M5A$8 ML5$8: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) JSR PC,LFT$8 JSR PC,LFT$8 M5A$8: ADD (SP)+,R3 ADC R2 ADC R1 ADC R0 ADD (SP)+,R2 ADC R1 ADC R0 ADD (SP)+,R1 ADC R0 ADD (SP)+,R0 RTS PC LFT$8: ASL R3 ROL R2 ROL R1 ROL R0 RTS PC RIT$8: ROR R0 ROR R1 ROR R2 ROR R3 RTS PC .ENDC .TITLE $DCO04 .IFDF CND$9 .GLOBL $ECO,$FCO,$GCO,$DCO R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 POINT=2 BEXP=4 EEXP=6 TYPE=12. P=16. D=18. L=20. S=22. $GCO: MOV #42403,R0 BR XCO$9 $FCO: CLR R0 BR XCO$9 $DCO: MOV (SP)+,R0 MOV (SP)+,R1 MOV (SP)+,R2 MOV @SP,R3 MOV #42002,@SP MOV R4,-(SP) MOV 4(SP),R4 MOV R0,4(SP) BR XC1$9 $ECO: MOV #42402,R0 XCO$9: MOV (SP)+,R3 MOV (SP)+,R1 MOV (SP)+,R2 MOV R3,-(SP) MOV R0,-(SP) CLR R3 MOV R4,-(SP) CLR R4 XC1$9: MOV R5,-(SP) CLR -(SP) CLR -(SP) CMP -(SP),-(SP) ADD S(SP),L(SP) MOV S(SP),R0 CLE$9: MOVB #' ,(R0)+ CMP R0,L(SP) BLO CLE$9 ROL R1 ROL @SP SWAB R1 MOVB R1,BEXP(SP) BNE NNZ$9 CLR R0 BR NOD$9 NNZ$9: SEC ROR R1 CLRB R1 SWAB R2 BISB R2,R1 CLRB R2 SWAB R3 BISB R3,R2 CLRB R3 SWAB R4 BISB R4,R3 CLRB R4 SUB #200,BEXP(SP) BLT DIV$9 BEQ NOM$9 MUL$9: TST R1 BLT ML1$9 ASL R4 ROL R3 ROL R2 ROL R1 DEC BEXP(SP) BGT MUL$9 BR NOM$9 ML1$9: JSR PC,M45$9 INC EEXP(SP) SUB #3,BEXP(SP) BGT MUL$9 BEQ NOM$9 DIV$9: CMP R1,#146314 BHIS DV1$9 CMP BEXP(SP),#-3 BGT DV1$9 JSR PC,M54$9 DEC EEXP(SP) ADD #2,BEXP(SP) BR DV2$9 DV1$9: JSR PC,RIT$9 DV2$9: INC BEXP(SP) BNE DIV$9 NOM$9: CLR R0 NO1$9: JSR PC,M54$9 JSR PC,ML8$9 TST R0 BNE NOD$9 DEC EEXP(SP) BR NO1$9 NOD$9: TSTB TYPE(SP) BEQ FFT$9 RORB TYPE(SP) BCC EFT$9 TST EEXP(SP) BLT EFT$9 CMP EEXP(SP),D(SP) BGT EFT$9 CLRB TYPE(SP) SUB #4,L(SP) SUB EEXP(SP),D(SP) CLR P(SP) FFT$9: MOV EEXP(SP),R5 FFE$9: ADD D(SP),R5 ADD P(SP),R5 JSR PC,RUD$9 MOV L(SP),R5 SUB D(SP),R5 TSTB TYPE(SP) BNE FF5$9 ADD EEXP(SP),P(SP) BLE FF5$9 SUB P(SP),R5 SUB #2,R5 JSR PC,ISN$9 BR FF3$9 FF5$9: SUB #3,R5 JSR PC,ISN$9 MOVB #'0,(R5)+ MOVB #'.,(R5)+ FF4$9: CMP R5,L(SP) BHIS FF3$9 MOVB #'0,(R5)+ BR FF4$9 FF3$9: MOV L(SP),R5 SUB D(SP),R5 DEC R5 MOV R5,POINT(SP) TST P(SP) BGT FF6$9 INC R5 FF6$9: SUB P(SP),R5 JSR PC,DGS$9 TSTB TYPE(SP) BEQ DNE$9 BR EFE$9 EFT$9: SUB #4,L(SP) CLR R5 TST P(SP) BLE FFE$9 MOV D(SP),R5 ADD P(SP),R5 JSR PC,RUD$9 MOV L(SP),R5 SUB D(SP),R5 DEC R5 MOV R5,POINT(SP) SUB P(SP),R5 DEC R5 JSR PC,ISN$9 JSR PC,DGS$9 EFE$9: SUB P(SP),EEXP(SP) MOV L(SP),R3 MOVB TYPE+1(SP),(R3)+ MOV EEXP(SP),R4 BGE EXP$9 NEG R4 MOVB #'-,(R3)+ BR EX1$9 EXP$9: MOVB #' ,(R3)+ EX1$9: MOVB #'0,@R3 EX3$9: SUB #10.,R4 BLT EX2$9 INCB @R3 BR EX3$9 EX2$9: ADD #72,R4 MOVB R4,1(R3) DNE$9: ADD #8.,SP MOV (SP)+,R5 MOV (SP)+,R4 MOV (SP)+,6(SP) MOV (SP)+,6(SP) CMP (SP)+,(SP)+ ROL (SP)+ RTS PC M54$9: MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) JSR PC,RIT$9 JSR PC,RIT$9 ADC R4 ADC R3 ADC R2 ADC R1 ADD (SP)+,R4 ADC R3 ADC R2 ADC R1 ADC R0 ADD (SP)+,R3 ADC R2 ADC R1 ADC R0 ADD (SP)+,R2 ADC R1 ADC R0 ADD (SP)+,R1 ADC R0 RTS PC M45$9: MOV #16.,R5 JSR PC,RIT$9 MOV R4,-(SP) MOV R3,-(SP) MOV R2,-(SP) MOV R1,-(SP) M51$9: JSR PC,RIT$9 JSR PC,RIT$9 MOV #2,R0 M52$9: JSR PC,RIT$9 ADD 6(SP),R4 ADC R3 ADC R2 ADC R1 ADD 4(SP),R3 ADC R2 ADC R1 ADD 2(SP),R2 ADC R1 ADD @SP,R1 DEC R0 BGT M52$9 DEC R5 BGT M51$9 ADD #8.,SP RTS PC ML8$9: MOV R5,-(SP) MOV #3,R5 M81$9: ASL R4 ROL R3 ROL R2 ROL R1 ROL R0 DEC R5 BGT M81$9 MOV (SP)+,R5 RTS PC ERR$9: TST (SP)+ MOV S(SP),R3 MOV L(SP),R4 TSTB TYPE(SP) BEQ STS$9 ADD #4,R4 STS$9: MOVB #'*,(R3)+ CMP R3,R4 BLO STS$9 COM TYPE(SP) BR DNE$9 RUD$9: CMP R5,#20. BGT RU1$9 MOV R5,BEXP+0+2(SP) BEQ RU3$9 BLT RU1$9 MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV #100000,R1 CLR R2 CLR R3 CLR R4 RDF$9: DEC BEXP+0+2+10.(SP) BEQ RDD$9 JSR PC,M45$9 JSR PC,RIT$9 JSR PC,RIT$9 JSR PC,RIT$9 BR RDF$9 RDD$9: CLR R0 ADD (SP)+,R4 ADC R3 ADC R2 ADC R1 ADD (SP)+,R3 ADC R2 ADC R1 ADD (SP)+,R2 ADC R1 ADD (SP)+,R1 ADC R0 ADD (SP)+,R0 RU2$9: CMP #10.,R0 BGT RU1$9 INC EEXP+2(SP) RU1$9: RTS PC RU3$9: ADD #5,R0 BR RU2$9 ISN$9: CMP R5,S-0+2(SP) BLO SPC$9 ROR 0+2(SP) BCC ISR$9 MOVB #'-,@R5 ISR$9: INC R5 RTS PC SPC$9: ROR 0+2(SP) BCS ERR$9 INC R5 CMP R5,S+2(SP) BLO ERR$9 RTS PC DGS$9: CMP #10.,R0 BGT DG1$9 MOVB #'1,(R5)+ SUB #10.,R0 DG1$9: CMP POINT+2(SP),R5 BNE DG2$9 MOVB #'.,(R5)+ DG2$9: CMP L+2(SP),R5 BLOS DIG$9 DG3$9: ADD #60,R0 MOVB R0,(R5)+ CLR R0 JSR PC,M54$9 JSR PC,ML8$9 BR DG1$9 DIG$9: RTS PC RIT$9: CLC ROR R1 ROR R2 ROR R3 ROR R4 RTS PC .ENDC .EOT �U�:?.���