DataMuseum.dk

Presents historical artifacts from the history of:

Christian Rovsing CR7, CR8 & CR16 CP/M

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

See our Wiki for more about Christian Rovsing CR7, CR8 & CR16 CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4f48bce6a⟧ TextFile

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

Derivation

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

TextFile

	TITLE	CDVID5 - CRT DRIVER FOR VIDEO 5 TERMINAL
	
	.8080

	ENTRY	$CRWID,$CRLEN,$CURON,$CUROF,$CURBK
	ENTRY	$SETCR,$ERASE,$ALARM
	ENTRY	$EOL,$HILIT,$LOLIT
	ENTRY	$CLIST,$TLIST,$FLIST

	EXT	$OUTCH

;****************************************************
; KEYBOARD CODE DEFINITIONS
;****************************************************
;

$CLIST:				;EDITING KEY DEFINITIONS
	DB	15H		;LINE DELETE (CTRL-U)
	DB	7FH		;CHAR DELETE (DEL,RUB)
	DB	06H		;FORWARD SPACE (CTRL-F)	
	DB	08H		;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)
	DB	0DH		;CARRIAGE 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	24D	;24 LINES
$CRWID:	DB	80D	;80 COLUMNS

;****************************************************
; TERMINAL OUTPUT CODES
;****************************************************
;
ESCAPE	EQU	1BH
BSPACE	EQU	08H
BELL	EQU	07H

;****************************************************
;	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,"="
	CALL	OUTECH
	MVI	A,31
	ADD	H
	CALL	$OUTCH		;SEND LINE #
	MVI	A,31
	ADD	L
	JMP	$OUTCH		;SEND COL. # AND RETURN

;****************************************************
; BACKSPACE CURSOR
;****************************************************
;
$CURBK:	MVI	A,BSPACE	;BACKSPACE
	JMP	$OUTCH

;****************************************************
; CURSOR ON/OFF
;****************************************************
;
$CURON:	
$CUROF:	RET

;****************************************************
; ERASE TO END OF SCREEN
;	ÆHLÅ = SEQUENTIAL CURSOR POSITION
;****************************************************
;
$ERASE:	MVI	A,18H
	JMP	$OUTCH

;****************************************************
; ERASE TO END OF LINE
;	ÆHÅ = CURRENT ROW NUMBER
;	ÆLÅ = CURRENT COLUMN NUMBER
;****************************************************
;
$EOL:	MVI	A,17H
	JMP	$OUTCH

;****************************************************
; SOUND AUDIBLE TONE
;****************************************************
;
$ALARM:	MVI	A,BELL
	JMP	$OUTCH		;SEND BELL CODE AND RETURN

;****************************************************
; SET/RESET HIGHLIGHTED VIDEO MODE
;****************************************************
;
$HILIT:	MVI	A,"!"
	CALL	OUTECH
	MVI	A,"4"
	JMP	$OUTCH
$LOLIT:	MVI	A,"!"
	CALL	OUTECH
	MVI	A,"0"
	JMP	$OUTCH
;****************************************************

OUTECH:	PUSH	PSW
	MVI	A,ESCAPE
	CALL	$OUTCH
	POP	PSW
	JMP	$OUTCH

;****************************************************


	END
«eof»