#TITLE "TURBODOS OPERATING SYSTEM NULL CONSOLE DRIVER" #SUBTTL "COPYRIGHT 1984, SOFTWARE 2000, INC." ; ; COPYRIGHT 1984, SOFTWARE 2000, INC. ; ; VERSION: 01/03/84 ; MODULE "CON96" ;MODULE NAME ; #INCLUDE "DREQUATE" ;DRIVER SYMBOLIC EQUIVALENCES ; LOC Data# ;LOCATE IN DATA SEGMENT ; CONBR:: BYTE 0x8E ;CONSOLE BAUD RATE CODE (9600 BAUD) FFCHR:: BYTE AFF ;FORM FEED CHARACTER INITC: BYTE 0 ;INITIALIZATION COMPLETE FLAG ; LOC Code# ;LOCATE IN CODE SEGMENT ; CONDR_::MOV AL,INITC ;GET INIT COMPLETE FLAG TEST AL,AL ;INITIALIZATION COMPLETE FLAG SET? JNZ __CDRV ;IF SO, CONTINUE CALL __INIT ;ELSE, INITIALIZE CONSOLE CHANNEL __CDRV: MOV AL,DL ;GET FUNCTION NUMBER SUB AL,=8 ;FUNCTION NUMBER=8? JZ CONSO ;IF SO, ERROR SHIFT OUT DEC AL ;FUNCTION NUMBER=9? JZ CONSI ;IF SO, ERROR SHIFT IN JMP SERIAL# ;ELSE, CONTINUE __INIT: MOV INITC,=0xFF ;SET INIT COMPLETE FLAG PUSH DX ;SAVE FUNCTION NUMBER PUSH CX ;SAVE CHANNEL NUMBER/CHARACTER MOV CL,CONBR ;GET CONSOLE BAUD RATE CODE MOV DL,=3 ;SET FUNCTION NUMBER=3 CALL SERIAL# ;SET CHANNEL BUAD RATE MOV AL,FFCHR ;GET FORM FEED CHARACTER TEST AL,AL ;FORM FEED CHARACTER=0? JZ __NITX ;IF SO, CONTINUE POP CX ;ELSE, RESTORE CHANNEL NUMBER PUSH CX ;SAVE CHANNEL NUMBER MOV CL,AL ;FORM FEED CHARACTER TO C-REG MOV DL,=2 ;SET FUNCTION NUMBER=2 CALL SERIAL# ;OUTPUT FORM FEED __NITX: POP CX ;RESTORE CHANNEL NUMBER/CHARACTER POP DX ;RESTORE FUNCTION NUMBER RET ;DONE ; CONSO: CONSI: CALL DMS# ;POSITION TO NEXT LINE BYTE ACR,ALF,0 RET ;DONE ; END