home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
walnut-creek-CDROM
/
CPM
/
ZCPR2
/
VFILERSC.ASM
< prev
next >
Wrap
Assembly Source File
|
2000-06-30
|
2KB
|
83 lines
; MODULE: VFILERSC
; AUTHOR: RICHARD CONN
; VERSION: 1.0
; DATE: 18 July 83
; PREVIOUS VERSIONS: None
; NOTE: This is the patch file for VFILER. It allows the user to install
; his terminal-specific function routines. This file is to be assembled
; by the user and integrated into VFILER.COM via DDT. Once complete,
; VFILER must be installed further via GENINS.
;
;
; An entry point to send the character in A to the screen is provided at
; location 300H in VFILER. No registers are affected by calling the
; routine at this address.
;
TYPE EQU 300H
;
; Special ASCII Characters Used
;
ESC EQU 1BH
CTRLZ EQU 'Z'-'@'
UP EQU 'K'-'@' ; user-defined cursor up
DOWN EQU 'V'-'@' ; user-defined cursor down
RIGHT EQU 'L'-'@' ; user-defined cursor right
LEFT EQU 'H'-'@' ; user-defined cursor left
SCR$FOR EQU 'F'-'@' ; user-defined screen forward
SCR$BAC EQU 'A'-'@' ; user-defined screen backward
;
; The following JUMP Table MUST be located at 200H in VFILER. This accesses
; the required routines.
;
ORG 200H ; base page for screen routines
JMP CLS ; clear screen on CRT
JMP GOTOXY ; position cursor at row/col
JMP EREOL ; erase to end of line
;
; The following table is copied by VFILER on startup to define the special
; characters generated by arrow keys on the user's terminal for cursor
; movement. This table is for the TVI 950. If you do not wish to set
; additional definitions, set all of these values to '@'.
;
DB UP,DOWN,RIGHT,LEFT ;cursor up, down, right, left
DB SCR$FOR,SCR$BAC ;screen forward, backward
;
; Screen Routines (for TVI 950)
; The following are sample routines implemented for the TVI 950.
; NO REGISTERS are to be affected by these routines except for the PSW.
; The GOTOXY routine is the only one which receives passed parameters.
; HL is used to pass them, and the value range is 1-24 for H and 1-80 for L.
;
; clear screen
CLS:
MVI A,CTRLZ ;clear screen
JMP TYPE
; position cursor (H=row, L=col) where 1,1=upper left
GOTOXY:
MVI A,ESC ;ESCape
CALL TYPE
MVI A,'='
CALL TYPE
MOV A,H ;row
ADI ' '
CALL TYPE
MOV A,L ;column
ADI ' '
JMP TYPE
; erase to end of line (output 50 spaces if you don't have this function)
EREOL:
MVI A,ESC ;ESCape
CALL TYPE
MVI A,'T'
JMP TYPE
END