|
DataMuseum.dkPresents historical artifacts from the history of: Christian Rovsing CR7, CR8 & CR16 CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Christian Rovsing CR7, CR8 & CR16 CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 2048 (0x800) Types: TextFile Names: »LPBAUD.ASM«
└─⟦1f6b46325⟧ Bits:30004393 CP/M-80 rel. 1 Utilities source disk └─ ⟦this⟧ »LPBAUD.ASM«
TITLE 'LINEPRINTER BAUDRATE SETUP UTILITY' PAGE 43 SETLPBAUD EQU 0F806H ;BAUDRATE PARAMETER TRANSFERE ;...SYSTEM ENTRY-POINT INITSER EQU 0F800H ;HARDWARE SETUP SYSTEM ENTRY-POINT ; CONIN EQU 01 ;READ CONSOLE CHARACTER REQUEST-CODE PRSTRING EQU 09 ;WRITE CONSOLE STRING REQUEST-CODE ; SYSTEM EQU 0005H ;NORMAL SYSTEM CALL ADDRESS ; CR EQU 0DH LF EQU 0AH ; ORG 100H ; ENTRY: LXI D,MENU ;POINTER TO MESSAGE MVI C,PRSTRING CALL SYSTEM ;OUTPUT MESSAGE TO CONSOLE MVI C,CONIN CALL SYSTEM ;GET SELECTED VALUE CPI '1' ;CHECK IF OUT OF RANGE JC BADENT CPI '8' JNC BADENT ANI 07H ;OK - MASK TO BINARY VALUE DCR A RLC ;MAKE 16 BIT TABLE OFFSET VALUE MVI D,0 MOV E,A ;...IN DE LXI H,TABLE ;GET TABLE BASE ADDRESS DAD D ;COMPUTE TABLE ENTRY ADDRESS MOV A,M ;GET LOW BYTE FROM TABLE INX H MOV H,M ;GET HIGH BYTE FROM TABLE MOV L,A ;COMBINE TO 16 BIT VALUE IN HL CALL SETLPBAUD CALL INITSER ;DO SETUP WITH NEW VALUE RET ;BACK TO CPM - YEEEA-BIIII ; ; BADENT: LXI D,ERRMSG MVI C,PRSTRING CALL SYSTEM ;TELL HIM ABOUT HIS SLOW BRAIN JMP ENTRY ; ; MENU: DB CR,LF,' SELECT LINEPRINTER SPEED' DB CR,LF DB CR,LF,' 1) 19200 BAUD' DB CR,LF,' 2) 9600 BAUD' DB CR,LF,' 3) 4800 BAUD' DB CR,LF,' 4) 2400 BAUD' DB CR,LF,' 5) 1200 BAUD' DB CR,LF,' 6) 600 BAUD' DB CR,LF,' 7) 300 BAUD' DB CR,LF DB CR,LF,' SELECT (1-7):' DB '$' ; ERRMSG: DB CR,LF DB CR,LF,' OUT OF RANGE USE 1 THRU 7' DB CR,LF,'$' ; TABLE: DW 0004H ;19200 BAUD COUNTER VALUE DW 0008H ; 9600 BAUD COUNTER VALUE DW 0010H ; 4800 BAUD COUNTER VALUE DW 0021H ; 2400 BAUD COUNTER VALUE DW 0041H ; 1200 BAUD COUNTER VALUE DW 0082H ; 600 BAUD COUNTER VALUE DW 0104H ; 300 BAUD COUNTER VALUE ; END «eof»