DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4fe28eb1d⟧ TextFile

    Length: 3200 (0xc80)
    Types: TextFile
    Names: »CRDRV.MAC«

Derivation

└─⟦811637d18⟧ Bits:30005383 Microsoft COBOL-80 v4.01
    └─ ⟦this⟧ »CRDRV.MAC« 

TextFile

	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»