|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 1664 (0x680) Types: TextFile Names: »APUSUB.MAC«
└─⟦c9df7130d⟧ Bits:30005915 Pascal MT+ Release 5.2 (Jet-80) └─ ⟦this⟧ »APUSUB.MAC«
;---------------------------------------------------------------; ; ; ; 9511 SUBROUTINES FOR TRAN9511 ; ; ; ;---------------------------------------------------------------; PUBLIC @AMD EXTRN @I95D ;DATA PORT INPUT EXTRN @O95D ;DATA PORT OUTPUT EXTRN @I95C ;CTRL PORT INPUT EXTRN @O95C ;CTRL PORT OUTPUT ; PROCEDURE @AMD(FUNC:INTEGER; VAR R:REAL; VAR STAT:INTEGER); @AMD: POP H ;RET ADR SHLD RETADR POP H ;ADDR OF APU STAT POP D ;ADDR OF REAL POP B ;FUNCTION ; ROUTINE FOR FLOATING POINT DERIVED FUNCTIONS ; ENTER WITH: ; BC = COMMAND ; M(DE) = FUNCTION( M(DE) ) ; M(HL) = APU STAT PUSH B CALL PSHD ;PUSH ARGUMENT POP B MOV A,C ;ISSUE COMMAND CALL APUCS CALL POPSTAT ;GET DATA AND RETURN STATUS IN A-REG MOV M,A ;STORE APU STATUS INX H MVI M,0 ;ZERO HIGH BYTE LHLD RETADR PCHL ;---------------------------------------------------------------; ; ; ; 9511 UTILITY ROUTINES ; ; NOTE THESE CALL @IN95 AND @OUT95 IN AMDIO ; ; ; ;---------------------------------------------------------------; PSHD: INX D INX D INX D MVI B,4 PSD10: LDAX D CALL APUWS DCX D DCR B JNZ PSD10 INX D RET APULOOP: PUSH PSW APUX2A: CALL @I95C ORA A JM APUX2A POP PSW RET APURS: CALL APULOOP CALL @I95D RET APUCS: CALL APULOOP CALL @O95C RET APUWS: CALL APULOOP CALL @O95D RET POPSTAT: PUSH D MVI B,4 PPS10: CALL APURS STAX D INX D DCR B JNZ PPS10 POP D RDSTAT: CALL @I95C ORA A JM RDSTAT RET DSEG RETADR: DS 2 END «eof»