.TITLE $DVD05 .IFDF CND$16 .GLOBL $DVD,$ERRA R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 F0=%0 F1=%1 D=8. N=16. Q=16. .IFDF FPU $DVD: .WORD 170011 .WORD 172526 .WORD 172426 .WORD 174401 .WORD 174046 JMP @(R4)+ .ENDC .IFNDF FPU $DVD: MOV R4,-(SP) MOV R5,-(SP) CLR R0 CLR R1 CLR R2 CLR R3 CLR -(SP) ASL N+0-2(SP) ROL @SP CLR -(SP) TST D(SP) BEQ DCH$16 BISB N+1(SP),@SP BEQ ZER$16 BISB N(SP),R0 SWAB R0 SEC ROR R0 BISB N+3(SP),R0 BISB N+2(SP),R1 SWAB R1 BISB N+5(SP),R1 BISB N+4(SP),R2 SWAB R2 BISB N+7(SP),R2 BISB N+6(SP),R3 SWAB R3 ASL D(SP) ADC 2(SP) CLR R4 BISB D+1(SP),R4 SUB R4,@SP SWAB D(SP) SEC ROR D(SP) MOVB D+3(SP),D(SP) MOVB D+2(SP),D+3(SP) MOVB D+5(SP),D+2(SP) MOVB D+4(SP),D+5(SP) MOVB D+7(SP),D+4(SP) MOVB D+6(SP),D+7(SP) CLRB D+6(SP) CLR Q(SP) CLR Q+2(SP) CLR Q+4(SP) CMP R0,D(SP) BHI DLW$16 BLO DHI$16 CMP R1,D+2(SP) BHI DLW$16 BLO DHI$16 CMP R2,D+4(SP) BHI DLW$16 BLO DHI$16 CMP R3,D+6(SP) BHI DLW$16 BNE DHI$16 INC @SP CLR R4 BR FLT$16 DCH$16: MOV #1403,R0 BR EC1$16 UND$16: MOV #4005,R0 ECL$16: TST -(SP) EC1$16: JSR R5,$ERRA ZER$16: CMP (SP)+,(SP)+ CLR Q+0-4(SP) CLR Q+2-4(SP) CLR Q+4-4(SP) CLR Q+6-4(SP) BR RTN$16 DLW$16: ROR R0 ROR R1 ROR R2 ROR R3 INC @SP DHI$16: MOV #9.,R5 JSR PC,DV1$16 MOVB R4,Q(SP) TST R5 BNE FL1$16 MOV #16.,R5 JSR PC,DV1$16 MOV R4,Q+2(SP) TST R5 BNE FL1$16 MOV #16.,R5 JSR PC,DV1$16 MOV R4,Q+4(SP) TST R5 BNE FL1$16 MOV #16.,R5 JSR PC,DV1$16 BR FLT$16 FL1$16: CLR R4 FLT$16: MOV (SP)+,R5 ADD #200,R5 BLE UND$16 CMP #377,R5 BLT OVR$16 MOVB R5,Q+1-2(SP) SGN$16: ROR (SP)+ ROR Q+0-4(SP) ROR Q+2-4(SP) ROR Q+4-4(SP) ROR R4 ADC R4 ADC Q+4-4(SP) ADC Q+2-4(SP) ADC Q+0-4(SP) MOV R4,Q+6-4(SP) BCS OV1$16 BVS OV1$16 RTN$16: MOV (SP)+,R5 MOV (SP)+,R4 ADD #8.,SP JMP @(R4)+ OV1$16: TST -(SP) OVR$16: MOV #2003,R0 BR ECL$16 DV1$16: ASL R4 ASL R3 ROL R2 ROL R1 ROL R0 BCS GO$16 CMP D+0+2(SP),R0 BHI NGO$16 BLO GO$16 CMP D+2+2(SP),R1 BHI NGO$16 BLO GO$16 CMP D+4+2(SP),R2 BHI NGO$16 BLO GO$16 CMP D+6+2(SP),R3 BHI NGO$16 BEQ NQD$16 GO$16: SUB D+6+2(SP),R3 SBC R2 SBC R1 SBC R0 SUB D+4+2(SP),R2 SBC R1 SBC R0 SUB D+2+2(SP),R1 SBC R0 SUB D+0+2(SP),R0 INC R4 NGO$16: DEC R5 BGT DV1$16 RTS PC NQD$16: INC R4 BR EQ1$16 EQ2$16: ASL R4 EQ1$16: DEC R5 BGT EQ2$16 INC R5 RTS$16: RTS PC .ENDC .ENDC .TITLE $DVI03 .IFDF CND$17 .GLOBL $DVI,$ERR R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 MQ=177304 .IFNDF EAE&MULDIV $DVI: CLR R0 MOV (SP)+,R1 BGT P1$17 BEQ CHK$17 INC R0 NEG R1 P1$17: MOV @SP,R3 BGT P2$17 BEQ ZER$17 INC R0 NEG R3 P2$17: MOV R4,-(SP) MOV #8.,R4 CLR R2 SWAB R3 BEQ DIV$17 ASL R4 SWAB R3 DIV$17: ASL R3 ROL R2 BEQ LUP$17 INC R3 SUB R1,R2 BHIS LUP$17 ADD R1,R2 DEC R3 LUP$17: DEC R4 BGT DIV$17 MOV (SP)+,R4 NEG R3 ASR R0 BCS P3$17 NEG R3 BVS CHK$17 P3$17: MOV R3,@SP JMP @(R4)+ ZER$17: CLR @SP JMP @(R4)+ .ENDC .IFDF EAE $DVI: MOV #MQ,R0 MOV (SP)+,R1 BEQ CHK$17 MOV (SP)+,@R0 TST -(R0) MOV R1,-(R0) CMP (R0)+,(R0)+ MOV @R0,-(SP) JMP @(R4)+ .ENDC .IFDF MULDIV $DVI: MOV 2(SP),R1 .WORD 006700 .WORD 071026 MOV R0,@SP BCS CHK$17 JMP @(R4)+ .ENDC CHK$17: JSR R5,$ERR JMP @(R4)+ .BYTE 3 .BYTE 5 .ENDC .TITLE $DVR08 .IFDF CND$18 .GLOBL $DVR,$ERRA R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 PC=%7 MQ=177304 NOR=177312 LSH=177314 ASH=177316 F0=%0 F1=%1 D=8. N=12. Q=12. .IFDF FPU $DVR: .WORD 170001 .WORD 172526 .WORD 172426 .WORD 174401 .WORD 174046 JMP @(R4)+ .ENDC .IFNDF FPU $DVR: MOV R4,-(SP) MOV R5,-(SP) CLR R0 CLR R1 CLR -(SP) ASL N+0-2(SP) ROL @SP CLR -(SP) TST D(SP) BEQ DCH$18 BISB N+1(SP),@SP BEQ ZER$18 BISB N(SP),R0 SWAB R0 SEC ROR R0 BISB N+3(SP),R0 BISB N+2(SP),R1 SWAB R1 CLR R2 CLR R3 ASL D(SP) ADC 2(SP) BISB D+1(SP),R2 SUB R2,@SP CLR R2 BISB D(SP),R2 SWAB R2 SEC ROR R2 BISB D+3(SP),R2 BISB D+2(SP),R3 SWAB R3 .IFDF EAE!MULDIV CLC ROR R0 ROR R1 ROR R2 ROR R3 .ENDC CMP R0,R2 BLO DHI$18 .IFNDF EAE&MULDIV BHI DLW$18 CMP R1,R3 BHI DLW$18 BNE DHI$18 CLR Q(SP) INC @SP CLR R5 BR FLT$18 .ENDC .IFDF EAE!MULDIV BHIS DLW$18 .ENDC ZER$18: CMP (SP)+,(SP)+ BR EC1$18 DCH$18: TST (SP)+ MOV #4003,R0 BR ECL$18 OV1$18: TST -(SP) OVR$18: MOV #3003,R0 BR ECL$18 UND$18: MOV #1405,R0 ECL$18: TST (SP)+ JSR R5,$ERRA EC1$18: CLR Q+0-4(SP) CLR Q+2-4(SP) BR RTN$18 DLW$18: ROR R0 ROR R1 INC @SP .IFNDF EAE&MULDIV DHI$18: MOV #9.,R4 JSR PC,DV1$18 MOVB R5,Q(SP) TST R4 BEQ NT0$18 CLR R5 BR FLT$18 NT0$18: MOV #16.,R4 JSR PC,DV1$18 .ENDC .IFDF EAE!MULDIV DHI$18: CLC ROR R3 ROR R0 ROR R1 .ENDC .IFDF EAE MOV #MQ,R5 MOV R1,@R5 MOV R0,-(R5) MOV R2,-(R5) TST (R5)+ MOV (R5)+,R1 MOV (R5)+,R4 MOV R3,@R5 TST -(R5) ASR R1 SUB R1,-(R5) DEC @#ASH MOV R2,-(R5) CMP (R5)+,(R5)+ NEG @R5 MOV #2,@#ASH ADD R4,-(R5) CLR @#NOR SUB @#NOR,@SP MOV #-6,@#LSH MOV (R5)+,Q(SP) MOV @R5,R5 .ENDC .IFDF MULDIV MOV R0,R4 MOV R1,R5 .WORD 071402 MOV R5,R1 MOV R4,R0 .WORD 070403 ASR R1 SUB R1,R4 .WORD 073427,-1 .WORD 071402 NEG R4 .WORD 073427,-14. ADD R0,R4 NBT$18: .WORD 073427,1 BMI NBI$18 DEC @SP BR NBT$18 NBI$18: .WORD 073427,-7 MOV R4,Q(SP) .ENDC FLT$18: MOV (SP)+,R4 ADD #200,R4 BLE UND$18 CMP #377,R4 BLT OVR$18 MOVB R4,Q+1-2(SP) SGN$18: ROR (SP)+ ROR Q+0-4(SP) ROR R5 ADC R5 ADC Q+0-4(SP) MOV R5,Q+2-4(SP) BCS OV1$18 BVS OV1$18 RTN$18: MOV (SP)+,R5 MOV (SP)+,R4 CMP (SP)+,(SP)+ JMP @(R4)+ .IFNDF EAE&MULDIV DV1$18: ASL R5 ASL R1 ROL R0 BCS GO$18 CMP R2,R0 BHI NGO$18 BLO GO$18 CMP R3,R1 BHI NGO$18 BEQ NQD$18 GO$18: SUB R3,R1 SBC R0 SUB R2,R0 INC R5 NGO$18: DEC R4 BGT DV1$18 RTS PC NQD$18: INC R5 BR EQ1$18 EQ2$18: ASL R5 EQ1$18: DEC R4 BGT EQ2$18 INC R4 RTS$18: RTS PC .ENDC .ENDC .ENDC .TITLE $DXP05 .IFDF CND$19 .GLOBL DEXP,$ERRA .IFNDF FPU .GLOBL $ADD,$SBD,$MLD,$DVD,$ID,$DI,$POLSH,$POPR4 .ENDC R0=%0 R1=%1 R2=%2 R3=%3 R4=%4 R5=%5 SP=%6 F0=%0 F1=%1 F2=%2 F3=%3 .IFDF FPU DEXP: MOV @2(R5),R0 .ENDC .IFNDF FPU DEXP: MOV R5,-(SP) MOV 2(R5),R4 MOV @R4,R0 .ENDC BGT POS$19 CMP R0,#141662 BHI ZER$19 BR SMT$19 POS$19: CMP R0,#41660 BHI OVR$19 SMT$19: ASL R0 CMP R0,#43000 BLO ONE$19 .IFNDF FPU SUB #20.,SP ADD #8.,R4 MOV -(R4),-(SP) MOV -(R4),-(SP) MOV -(R4),-(SP) MOV -(R4),-(SP) MOV #013761,-(SP) MOV #024534,-(SP) MOV #125073,-(SP) MOV #40270,-(SP) JSR R4,$POLSH .WORD $MLD .WORD DUP$19 .WORD $DI .WORD ADJ$19 .WORD $ID .WORD $SBD .WORD M16$19 .WORD DUP$19 .WORD $DI .WORD DSV$19 .WORD $ID .WORD $SBD,D16$19 .WORD DUP$19,DUP$19 .WORD $MLD .WORD $POPR4 .WORD UPL$19 ONE$19: MOV #40200,R0 BR Z1$19 OVR$19: MOV #1004,R0 BR ECL$19 ZER$19: MOV #2005,R0 ECL$19: JSR R5,$ERRA CLR R0 Z1$19: CLR R1 CLR R2 CLR R3 BR OUT$19 UPL$19: MOV #033343,-(SP) MOV #015345,-(SP) MOV #152405,-(SP) MOV #040746,-(SP) MOV R3,-(SP) MOV R2,-(SP) MOV R1,-(SP) MOV R0,-(SP) MOV #153703,-(SP) MOV #153011,-(SP) MOV #113360,-(SP) MOV #037154,-(SP) MOV R3,-(SP) MOV R2,-(SP) MOV R1,-(SP) MOV R0,-(SP) MOV #171042,-(SP) MOV #074433,-(SP) MOV #101232,-(SP) MOV #041246,-(SP) JSR R4,$POLSH .WORD $ADD,AUP$19 .WORD $MLD,$ADD,$MLD .WORD TWC$19 .WORD $ADD,ABP$19 .WORD $SBD,$DVD .WORD SCL$19 SCL$19: MOV #RT2$19+8.,R5 ASR$19: ASR 8.(SP) BCC NML$19 MOV -(R5),-(SP) MOV -(R5),-(SP) MOV -(R5),-(SP) MOV -(R5),-(SP) JSR R4,$POLSH .WORD $MLD,ASR$19 NML$19: BEQ SC1$19 SUB #8.,R5 BR ASR$19 SC1$19: MOV (SP)+,R0 MOV (SP)+,R1 MOV (SP)+,R2 MOV (SP)+,R3 TST (SP)+ MOV (SP)+,R4 SWAB R4 CLRB R4 ASR R4 ADD R4,R0 BMI OVR$19 OUT$19: MOV (SP)+,R5 RTS R5 ADJ$19: TST @2(R5) BGE ARN$19 DEC @SP ARN$19: MOV @SP,28.(SP) JMP @(R4)+ M16$19: ADD #1000,@SP JMP @(R4)+ D16$19: SUB #1000,@SP BPL D6R$19 CLR @SP D6R$19: JMP @(R4)+ DSV$19: MOV @SP,26.(SP) JMP @(R4)+ AUP$19: MOV (SP)+,38.(SP) MOV (SP)+,38.(SP) MOV (SP)+,38.(SP) MOV (SP)+,38.(SP) JMP @(R4)+ ABP$19: MOV (SP)+,22.(SP) MOV (SP)+,22.(SP) MOV (SP)+,22.(SP) MOV (SP)+,22.(SP) JMP @(R4)+ DUP$19: MOV 6(SP),-(SP) MOV 6(SP),-(SP) MOV 6(SP),-(SP) MOV 6(SP),-(SP) JMP @(R4)+ TWC$19: MOV #8.,R0 TW1$19: MOV 14.(SP),-(SP) DEC R0 BGT TW1$19 JMP @(R4)+ .WORD 040265,002363,031771,157145 .WORD 040230,033760,050615,134251 .WORD 040213,112701,161752,105727 RT2$19: .WORD 040205,125303,063714,044173 .ENDC .IFDF FPU SETD SETI MOV #FCO$19,R0 LDD @2(R5),F2 MODD (R0)+,F2 STCDI F3,R4 TSTD F2 CFCC BGE M16$19 ADDD #1.0,F2 DEC R4 M16$19: MODD #16.0,F2 STCDI F3,R3 DIVD #16.0,F2 LDD F2,F3 MULD F3,F3 LDD F3,F1 ADDD (R0)+,F1 MULD (R0)+,F3 ADDD (R0)+,F3 MULD F2,F3 LDD F1,F0 ADDD F3,F0 SUBD F3,F1 DIVD F1,F0 SCL$19: ASR R3 BCC NML$19 MULD (R0)+,F0 BR SCL$19 NML$19: BEQ SC1$19 ADD #8.,R0 BR SCL$19 SC1$19: STD F0,-(SP) MOV (SP)+,R0 MOV (SP)+,R1 MOV (SP)+,R2 MOV (SP)+,R3 SWAB R4 CLRB R4 ASR R4 ADD R4,R0 BMI OVR$19 RTS R5 ONE$19: MOV #40200,R0 BR Z1$19 OVR$19: MOV #1004,R0 BR ECL$19 ZER$19: MOV #2005,R0 ECL$19: JSR R5,$ERRA CLR R0 Z1$19: CLR R1 CLR R2 CLR R3 RTS R5 FCO$19: .WORD 40270,125073,024534,013761 .WORD 041246,101232,074433,171042 .WORD 037154,113360,153011,153703 .WORD 040746,152405,015345,033343 .WORD 040205,125303,063714,044173 .WORD 040213,112701,161752,105727 .WORD 040230,033760,050615,134251 .WORD 040265,002363,031771,157145 .ENDC .ENDC .TITLE $EXP04 .IFDF CND$20 .GLOBL EXP,$ERRA .IFNDF FPU .GLOBL $ADR,$SBR,$MLR,$DVR,$IR,$RI,$POLSH .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 EXP: MOV 2(R5),R4 MOV @R4,R0 BGT POS$20 CMP R0,#141662 BHI ZER$20 BR SMT$20 POS$20: CMP R0,#41660 BHI OVR$20 SMT$20: ASL R0 CMP R0,#63000 BLO ONE$20 .IFNDF FPU TST -(SP) CLR -(SP) MOV #40200,-(SP) MOV 2(R4),-(SP) MOV @R4,-(SP) MOV 2(R4),-(SP) MOV @R4,-(SP) JSR R4,$POLSH .WORD PLE$20 .WORD $MLR .WORD $RI .WORD ESV$20 .WORD $IR .WORD PLE$20 .WORD $DVR .WORD $SBR .WORD CFR$20 .WORD $MLR .WORD $ADR .WORD $DVR .WORD $ADR .WORD $ADR .WORD $DVR .WORD INC$20 .WORD $ADR .WORD DUP$20 .WORD $MLR .WORD SCL$20 INC$20: ADD #100200,@SP JMP @(R4)+ DUP$20: MOV 2(SP),-(SP) MOV 2(SP),-(SP) JMP @(R4)+ PLE$20: MOV #125073,-(SP) MOV #40270,-(SP) JMP @(R4)+ ESV$20: MOV @SP,10.(SP) JMP @(R4)+ CFR$20: ROL @SP ROL R0 SUB #400,@SP BLOS ZFR$20 ROR R0 ROR @SP MOV @SP,R0 MOV 2(SP),R1 MOV #036602,-(SP) MOV #141100,-(SP) MOV R1,-(SP) MOV R0,-(SP) MOV #071571,-(SP) MOV #042426,-(SP) MOV #056133,-(SP) MOV #041560,-(SP) MOV R1,-(SP) MOV R0,-(SP) MOV R1,-(SP) MOV R0,-(SP) JMP @(R4)+ .ENDC .IFDF FPU SETD SETI MOV #FCO$20,R0 LDCFD @R4,F2 MODD (R0)+,F2 STCDI F3,R4 LDD #1.0,F0 DIVD (R0)+,F2 SETF LDCDF F2,F2 CFCC BEQ SC1$20 LDF F2,F3 MULF F3,F3 ADDF (R0)+,F3 LDF (R0)+,F1 DIVF F3,F1 ADDF F2,F1 ADDF (R0)+,F1 DIVF F1,F2 MULF #2.0,F2 SUBF F2,F0 MULF F0,F0 SC1$20: STF F0,-(SP) .ENDC .IFNDF FPU ZFR$20: CMP (SP)+,(SP)+ .ENDC SCL$20: MOV (SP)+,R0 MOV (SP)+,R1 .IFNDF FPU MOV (SP)+,R4 .ENDC SWAB R4 CLRB R4 ASR R4 ADD R4,R0 BMI OVR$20 RTS R5 ONE$20: CLR R1 MOV #40200,R0 RTS R5 OVR$20: MOV #2404,R0 BR ECL$20 ZER$20: MOV #2405,R0 ECL$20: JSR R5,$ERRA CLR R0 CLR R1 RTS R5 .IFDF FPU FCO$20: .WORD 040270,125073 .WORD 024534,013761 .WORD 040470,125073 .WORD 024534,013761 .WORD 041560,056133 .WORD 042426,071571 .WORD 141100,036602 .ENDC .ENDC .EOT �U�:'