|
|
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 - metrics - download
Length: 3200 (0xc80)
Types: TextFile
Names: »CRDRV.MAC«
└─⟦811637d18⟧ Bits:30005383 Microsoft COBOL-80 v4.01
└─⟦this⟧ »CRDRV.MAC«
TITLE CDVID5 - CRT DRIVER FOR VIDEO 5 TERMINAL
ENTRY $CRWID,$CRLEN,$CURON,$CUROF,$CURBK
ENTRY $SETCR,$ERASE,$ALARM
ENTRY $EOL
ENTRY $HILIT,$LOLIT
ENTRY $CLIST,$TLIST,$FLIST
EXT $OUTCH
EXT $CMPL,$CMPR,$MULDE,$ROWCL
;****************************************************
; KEYBOARD CODE DEFINITIONS
;****************************************************
;
$CLIST: ;EDITING KEY DEFINITIONS
DB 0BH ;LINE DELETE (CTRL-U)
DB 16H ;CHAR DELETE (DEL,RUB)
DB 1DH ;FORWARD SPACE (CTRL-L)
DB 1CH ;BACK SPACE (CTRL-H)
DB 2BH ;PLUS SIGN
DB 2DH ;MINUS SIGN
DB 00H ;END OF LIST
$TLIST: ;TERMINATOR KEY DEFINITIONS
DB 02H ;BACKTAB (CTL-B)
DB 1BH ;ESCAPE KEY (ESC)
DB 09H ;FORWARD TAB (CTL-I)
D▶c2◀ 0D▶c8◀ ;CARRIAG▶c5◀ RETURN
DB 0AH ;LINE FEED
DB 00H ;END OF LIST
$FLIST: ;FUNCTION KEY DEFINITIONS
DB 01H ;CTL-A
DB 03H ;CTL-C
DB 18H ;CTL-X
DB 00H
;****************************************************
; TERMINAL SCREEN DIMENSIONS
;****************************************************
;
$CRLEN: DB 25D ;24 LINES
$CRWID: DB 80D ;80 COLUMNS
;****************************************************
; TERMINAL OUTPUT CODES
;****************************************************
;
ESCAPE EQU 1BH
BSPACE EQU 08H
BELL EQU 07H
CLEAR EQU 1AH
; O U T P U T F U N C T I O N S
;****************************************************
; SET CURSOR POSITION
; ÆHÅ = LINE NUMBER
; ÆLÅ = COLUMN NUMBER
;****************************************************
;
$SETCR: MVI A,ESCAPE
CALL $OUTCH ;SEND ESC
MVI A,"="
CALL $OUTCH ;SEND =
MOV A,H
ADI 1FH ;ADJUST ROW NUMBER
CALL $OUTCH ;SEND ROW #
MOV A,L ;ADJUST COLUMN NUMBER
ADI 1FH ;ADJUST COL. #
JMP $OUTCH ;SEND COL. # AND RETURN
;****************************************************
; BACKSPACE CURSOR
;****************************************************
;
$CURBK: MVI A,BSPACE ;BACKSPACE
JMP $OUTCH
;****************************************************
; HIGHLIGHT VIDEO
;****************************************************
;
$HILIT: MVI A,ESCAPE
CALL $OUTCH
MVI A,"A"
JMP $OUTCH
$LOLIT: MVI A,ESCAPE
CALL $OUTCH
MVI A,"N"
JMP $OUTCH
;****************************************************
; ERASE TO END OF SCREEN
; ÆHLÅ = SEQUENTIAL CURSOR POSITION
;****************************************************
;
$ERASE: MVI A,ESCAPE
CALL $OUTCH
MVI A,'%'
JMP $OUTCH
;****************************************************
; ERASE TO END OF LINE
; ÆHÅ = CURRENT ROW NUMBER
; ÆLÅ = CURRENT COLUMN NUMBER
;****************************************************
;
$EOL: MVI A,ESCAPE
CALL $OUTCH
MVI A,'*'
JMP $OUTCH
;****************************************************
; SOUND AUDIBLE TONE
;****************************************************
;
$ALARM: MVI A,BELL
JMP $OUTCH ;SEND BELL CODE AND RETURN
;****************************************************
; CURSOR ON/OFF
;****************************************************
;
$CURON:
$CUROF:
RET ;NOT AVAILABLE ON ADM3A
;****************************************************
END
«eof»