mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
144 lines
3.9 KiB
Plaintext
144 lines
3.9 KiB
Plaintext
TITLE CDPERK - CRT DRIVER FOR PERKIN-ELMER TERMINALS
|
||
;**********************************************************************
|
||
;*** ***
|
||
;*** COPYRIGHT (C) 1980, MICROSOFT ***
|
||
;*** ***
|
||
;**********************************************************************
|
||
|
||
ENTRY $CRWID,$CRLEN,$CURON,$CUROF,$CURBK
|
||
ENTRY $SETCR,$ERASE,$ALARM
|
||
ENTRY $CLIST,$TLIST,$FLIST
|
||
ENTRY $EOL,$HILIT,$LOLIT
|
||
ENTRY $INCRT,$OUCRT
|
||
|
||
EXT $OUTCH,$INKEY
|
||
|
||
;****************************************************
|
||
; KEYBOARD CODE DEFINITIONS
|
||
;****************************************************
|
||
;
|
||
$CLIST: ;EDITING KEY DEFINITIONS
|
||
DB X'15' ;LINE DELETE (CTRL-U)
|
||
DB X'7F' ;CHAR DELETE (DEL)
|
||
DB X'06' ;FORWARD SPACE (CTRL-F)
|
||
DB X'08' ;BACK SPACE (BACK SPACE)
|
||
DB X'2B' ;PLUS SIGN
|
||
DB X'2D' ;MINUS SIGN
|
||
DB 0 ;END OF LIST
|
||
|
||
$TLIST: ;TERMINATOR KEY DEFINITIONS
|
||
DB X'02' ;BACKTAB (CTRL-B)
|
||
DB X'1B' ;ESCAPE (ESC)
|
||
DB X'0D' ;CARRIAGE RETURN
|
||
DB X'09' ;TAB (CTRL-I)
|
||
DB X'0A' ;LINE FEED
|
||
DB 0 ;END OF LIST
|
||
|
||
$FLIST: ;FUNCTION KEY DEFINITIONS
|
||
DB X'01' ;CTRL-A
|
||
DB X'03' ;CTRL-C
|
||
DB X'18' ;CTRL-X
|
||
DB 0 ;END OF LIST
|
||
|
||
|
||
;****************************************************
|
||
; TERMINAL SCREEN DIMENSIONS
|
||
;****************************************************
|
||
;
|
||
$CRLEN: DB 24D ;24 LINES
|
||
$CRWID: DB 80D ;80 COLUMNS
|
||
|
||
;****************************************************
|
||
; TERMINAL OUTPUT CODES
|
||
;****************************************************
|
||
;
|
||
ESCAPE EQU X'1B'
|
||
BSPACE EQU X'08'
|
||
BELL EQU X'07'
|
||
|
||
;****************************************************
|
||
; O U T P U T F U N C T I O N S
|
||
;****************************************************
|
||
; SET CURSOR POSITION
|
||
; [H] = ROW NUMBER
|
||
; [L] = COLUMN NUMBER
|
||
;****************************************************
|
||
;
|
||
$SETCR:
|
||
MVI A,ESCAPE
|
||
CALL $OUTCH ;SEND ESCAPE
|
||
MVI A,"X"
|
||
CALL $OUTCH ;SEND "X"
|
||
MOV A,H
|
||
ADI 31D ;ADJUST ROW NUMBER
|
||
CALL $OUTCH ;SEND ROW
|
||
MVI A,ESCAPE
|
||
CALL $OUTCH ;SEND ESCAPE
|
||
MVI A,"Y"
|
||
CALL $OUTCH ;SEND "Y"
|
||
MOV A,L
|
||
ADI 31D ;ADJUST COLUMN NUMBER
|
||
JMP $OUTCH ;SEND COLUMN AND RETURN
|
||
|
||
;****************************************************
|
||
; BACKSPACE CURSOR
|
||
;****************************************************
|
||
;
|
||
$CURBK: MVI A,BSPACE
|
||
JMP $OUTCH ;SEND BACKSPACE AND RETURN
|
||
|
||
;****************************************************
|
||
; CURSOR ON/OFF - NOT AVAILABLE ON PERKIN-ELMER TERMINALS
|
||
; HIGHLIGHT VIDEO - NOT AVAILABLE ON PERKIN-ELMER TERMINALS
|
||
;****************************************************
|
||
;
|
||
$HILIT:
|
||
$LOLIT:
|
||
$CURON:
|
||
$CUROF:
|
||
RET ;NOT AVAILABLE ON PERKIN-ELMER TERMINALS
|
||
|
||
;****************************************************
|
||
; ERASE TO END OF SCREEN
|
||
; [HL] = SEQUENTIAL CURSOR POSITION
|
||
;****************************************************
|
||
;
|
||
$ERASE: MVI A,ESCAPE
|
||
CALL $OUTCH ;SEND ESCAPE
|
||
MVI A,"J"
|
||
JMP $OUTCH ;SEND "J" AND RETURN
|
||
|
||
;****************************************************
|
||
; SOUND AUDIBLE TONE
|
||
;****************************************************
|
||
;
|
||
$ALARM: MVI A,BELL
|
||
JMP $OUTCH ;SEND BELL CODE AND RETURN
|
||
|
||
;****************************************************
|
||
; ERASE TO END OF LINE
|
||
; [H] = CURRENT ROW NUMBER
|
||
; [L] = CURRENT COLUMN NUMBER
|
||
;****************************************************
|
||
;
|
||
$EOL: MVI A,ESCAPE
|
||
CALL $OUTCH ;SEND ESCAPE
|
||
MVI A,"I"
|
||
JMP $OUTCH ;SEND EOL CODE AND RETURN
|
||
|
||
|
||
|
||
;****************************************************
|
||
; INPUT CHARACTER FROM TERMINAL
|
||
;****************************************************
|
||
;
|
||
$INCRT: JMP $INKEY ;GET KEY AND RETURN
|
||
|
||
;****************************************************
|
||
; OUTPUT CHARACTER TO TERMINAL
|
||
;****************************************************
|
||
;
|
||
$OUCRT: JMP $OUTCH ;PUT CHARACTER AND RETURN
|
||
|
||
END
|
||
|