-IF NOT lasm
-.printx * CPXSYO.ASM *
-ENDIF ;NOT lasm
-; KERMIT - (Celtic for "FREE")
-;
-; This is the CP/M-80 implementation of the Columbia University
-; KERMIT file transfer protocol.
-;
-; Version 4.0
-;
-; Copyright June 1981,1982,1983,1984,1985
-; Columbia University
-;
-; Originally written by Bill Catchings of the Columbia University Center for
-; Computing Activities, 612 W. 115th St., New York, NY 10025.
-;
-; Contributions by Frank da Cruz, Daphne Tzoar, Bernie Eiben,
-; Bruce Tanner, Nick Bush, Greg Small, Kimmo Laaksonen, Jeff Damens, and many
-; others.
-;
-; This file contains the system dependent part for Sanyo MBC 1100
-; systems, and has been extracted from the CPMSYO.ASM code (kermit
-; version 3.5)
-;
-; revision history:
-;
-; edit 1, 27 October, 1987, by OBSchou. Extracted Sanyo code from CPMSYO.ASM
-; and massaged fort CP/M kermit V4.09
-;
-; Keep module name, edit number, and last revision date in memory.
-family: db 'CPXSYO.ASM (1) 27-Oct-87 $'
-;\f
-
-; Assembly time message to let me know I'm building the right version.
-; LASM generates an 'S' error along with the message, which is messy, but
-; better than trying to put everything inside a IF m80 OR mac80 conditional,
-; because LASM doesn't like nested IF's, either.
-
-IF sanyo
-.printx * Assembling Kermit-80 for Sanyo MBC 1100 *
-ENDIF
-
-iobyte EQU 03H ;Location of I/O byte
-
-if sanyo
-baudrt EQU 0DAH ;BAUD RATE MEMORY LOCATION
-MNPORT EQU 0DCH ;COMMUNICATIONS PORT
-MNPRTS EQU 0DDH ;COMMUNICATIONS PORT STATUS
-OUTPUT EQU 01H ;OUTPUT READY BIT
-INPUT EQU 02H ;INPUT READY BIT
-ENDIF;SANYO
-
-defesc EQU '\'-100O ;The default escape character.
-
-; Select initial setting for VT-52 emulation flag.
-vtval EQU 1
-
-
-sysxin: ;system initialisation not covered by sysinit
- ret ; return from system-dependent routine
-
-;\f
-
-;
-; system-dependent termination processing
-; If we've changed anything, this is our last chance to put it back.
-sysexit:
- ret
-
-;
-; system-dependent processing for start of CONNECT command
-;
-syscon:
- ret
-
-;\f
-
-;
-; syscls - system-dependent close routine
-; called when exiting transparent session.
-;
-syscls:
- ret
-;\f
-
-;
-; sysinh - help for system-dependent special functions.
-; called in response to <escape>?, after listing all the
-; system-independent escape sequences.
-;
-sysinh:
- lxi d,inhlps ; we got options...
- call prtstr ; print them.
- ret
-inhlps:
- db '$' ;[hh] table terminator
-
-;
-; sysint - system dependent special functions
-; called when transparent escape character has been typed;
-; the second character of the sequence is in A (and in B).
-; returns:
-; non-skip: sequence has been processed
-; skip: sequence was not recognized
-sysint:
- ani 137O ; convert lower case to upper, for testing...
- ret
-
-; sysflt - system-dependent filter.
-; called with the character in E.
-; preserves bc, de, hl.
-; note: <xon>,<xoff>,<del>, and <nul> are always discarded.
-sysflt:
- mov a,e ; get character for testing
- ret
-
-; mdmflt - modem filter [30]
-; called with character to be sent to printer in E
-; with parity set as appropriate.
-; return with accumulator = 0 do do nothing,
-; <> 0 to send char in E.
-mdmflt:
- mov a,e ;[30] get character to test
- ret
-
-
-; prtflt - printer filter [30]
-; called with character to be sent to printer in E
-; returns with a = 0 to do nothing
-; a <> 0 to print it.
-;
-; this routine for those printer that automatically insert
-; a lf on cr, or cr for lf. Should this be shifted to
-; the system indep. stuff, in say 4.06?
-prtflt:
- mov a,e ; [30] get character to test
- ret
-
-
-;\f
-
-;
-; system-dependent processing for BYE command.
-; for apmmdm, heath, and lobo, hang up the phone.
-sysbye:
- ret
-;\f
-
-; This is the system-dependent command to change the baud rate.
-; DE contains the two-byte value from the baud rate table; this
-; value is also stored in 'speed'.
-sysspd:
- ret
-
-;\f
-
-; Speed tables
-; (Note that speed tables MUST be in alphabetical order for later
-; lookup procedures, and must begin with a value showing the total
-; number of entries. The speed help tables are just for us poor
-; humans.
-
-; db string length,string,divisor (2 identical bytes or 1 word)
-; [Toad Hall]
-
-IF sanyo
-spdtbl EQU 0 ; No speed table for the Sanyo
-sphtbl EQU 0 ; ditto help for speed.
-
-; The following conditionals were once a huge if not statement. There
-; wasn't enough room to add the lobo to the list, so it had to be broken
-; into 2, which you can't do with an if not. I redid it as two ifs and
-; applied them to those that wouldn't set baud. [Hal Hostetler]
-;\f
-
-; This is the system-dependent SET PORT command.
-; HL contains the argument from the command table.
-sysprt:
- ret
-;\f
-
-;
-; Port table not applicable tot he Sanyo...
-prttbl EQU 0
-prhtbl EQU 0 ;
-
-;\f
-
-;
-; selmdm - select modem port
-; selcon - select console port
-; selmdm is called before using inpmdm or outmdm;
-; selcon is called before using inpcon or outcon.
-; For iobyt systems, diddle the I/O byte to select console or comm port;
-; For Decision I, switches Multi I/O board to console or modem serial
-; port. [Toad Hall]
-; For the rest, does nothing.
-; preserves bc, de, hl.
-selmdm:
- ret
-
-selcon:
- ret
-;\f
-
-; Get character from console, or return zero.
-; result is returned in A. destroys bc, de, hl.
-;
-inpcon:
- mvi c,dconio ;Direct console I/O BDOS call.
- mvi e,0FFH ;Input.
- call BDOS
- ret
-;\f
-
-;
-; Output character in E to the console.
-; destroys bc, de, hl
-;
-outcon:
- mvi c,dconio ;Console output bdos call.
- call bdos ;Output the char to the console.
- ret
-;\f
-
-;
-; outmdm - output a char from E to the modem.
-; the parity bit has been set as necessary.
-; returns nonskip; bc, de, hl preserved.
-outmdm:
-IF inout
- in mnprts ;Get the output done flag.
- ani output ;Is it set?
- jz outmdm ;If not, loop until it is.
- mov a,e
- out mnport ;Output it.
- ret
-ENDIF;inout
-
-;\f
-
-;
-; get character from modem; return zero if none available.
-; for IOBYT systems, the modem port has already been selected.
-; destroys bc, de, hl.
-inpmdm:
-IF inout
-;Note: modem port should already be selected for mdI. [Toad Hall]
- in mnprts ;Get the port status into A.
- ani input ;See if the input ready bit is on.
- rz ;If not then return.
- in mnport ;If so, get the char.
-ENDIF;inout
- ret ; return with character in A
-
-
-;
-; flsmdm - flush comm line.
-; Modem is selected.
-; Currently, just gets characters until none are available.
-
-flsmdm: call inpmdm ; Try to get a character
- ora a ; Got one?
- jnz flsmdm ; If so, try for another
- ret ; Receiver is drained. Return.
-
-
-;\f
-
-;
-; lptstat - get the printer status. Return a=0 if ok, or 0ffh if not.
-lptstat:
- xra a ; assume it is ok.. this may not be necessary
- ret
-;\f
-
-;
-; outlpt - output character in E to printer
-; console is selected.
-; preserves de.
-outlpt:
- push d ; save DE in either case
- call prtflt ; go through printer filter [30]
- ana a ; if A = 0 do nothing,
- jz outlp1 ; [30] if a=0 do nothing
- mvi c,lstout
- call bdos ;Char to printer
-outlp1: pop d ; restore saved register pair
- ret
-;\f
-
-;
-; Screen manipulation routines
-; csrpos - move to row B, column C
-;
-; csrpos for terminals that use a leadin sequence followed
-; by (row + 31.) and (column + 31.)
-;
-csrpos: push b ; save coordinates
- lxi d,curldn ; get cursor leadin sequence
- call prtstr ; print it
- pop h ; restore coordinates
- mov a,h ; get row
- adi (' '-1) ; space is row one
- mov e,a
- push h
- call outcon ; output row
- pop h
- mov a,l ; get column
- adi (' '-1) ; space is column one
- mov e,a
- jmp outcon ; output it and return
-ENDIF;NOT (robin OR dmII OR osi OR vector OR termin)
-
- ret ; Can the Sany do cursor opsitioning??
-
-;
-;
-; delchr - make delete look like a backspace. Unless delete is a printing
-; character, we just need to print a backspace. (we'll output clrspc
-; afterwards)
-; For Kaypro and Vector General, delete puts a blotch on the screen.
-; For Apple and Osborne 1, delete moves but doesn't print.
-delchr:
- mvi e,bs
- call outcon
-
-; erase the character at the current cursor position
-clrspc: mvi e,' '
- call outcon
- mvi e,bs ;get a backspace
- jmp outcon
-
-; erase the current line
-clrlin: lxi d,eralin
- jmp prtstr
-
-; erase the whole screen, and go home. preserves b (but not c)
-clrtop: lxi d,erascr
- jmp prtstr
-
-
-
-IF SANYO
-outlin: DB ESC,'E',ESC,'H',CR,LF,TAB ;WHATEVER
-sysver: DB 'KERMIT-80 V3.9 [SANYO MBC-1100]',CR,LF,'$' ;VERSION HEADING
-DELSTR: DB ESC,'K','$' ;WHATS A STRING?
-eralin: DB ESC,'P','$' ;CLEAR SPACE
-;CLRLIN: DB ESC,'K','$' ;CLEAR LINE
-erascr: DB ESC,'E',ESC,'H','$' ;CLEAR SCREEN AND CURSOR HOME
-curldn: db esc,'=','$',0 ;cursor lead in
-;SCRNP: DB ESC,'=',24H,25H,'$' ;SPOT FOR SCREEN PACKETS
-;SCRNRT: DB ESC,'=',25H,25H,'$' ;SPOT FOR # OF RETRIES
-;SCRFLN: DB ESC,'=',26H,25H,'$' ;SPOT FOR FILE NAME
-;SCRST: DB ESC,'=',28H,25H,'$' ;SPOT FOR STATUS
-;SCREND: DB ESC,'=',2AH,25H,'$' ;SPOT FOR PROMPT
-;SCRERR: DB ESC,'=',2DH,25H,'$' ;SPOT FOR ERRORS
-ttab: ;NO TRANSLATION TABLE
-ta: DB ESC,'A',0,0 ;CURSOR UP
-tb: DB ESC,'B',0,0 ;CURSOR DOWN
-tc: DB ESC,'D',0,0 ;CURSOR RIGHT
-td: DB ESC,'C',0,0 ;CURSOR LEFT
-te: DB ESC,'E',0,0 ;CLEAR SCREEN
-tf: DB 0,0,0,0 ;WHAT???
-tg: DB 0,0,0,0 ;WHAT???
-th: DB ESC,'H',0,0 ;CURSOR HOME
-ti: DB ESC,'A',ESC,'C',0,0 ;REVERSE LINEFEED??
-tj: DB ESC,'J',0,0 ;CLEAR TO END OF SCREEN
-tk: DB ESC,'K',0,0 ;CLEAR TO END OF LINE
-ENDIF;SANYO
-
-ovlend equ $ ; End of overlay
-
- END
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-\1a
-
+IF NOT lasm\r
+.printx * CPXSYO.ASM *\r
+ENDIF ;NOT lasm\r
+; KERMIT - (Celtic for "FREE")\r
+;\r
+; This is the CP/M-80 implementation of the Columbia University\r
+; KERMIT file transfer protocol.\r
+;\r
+; Version 4.0\r
+;\r
+; Copyright June 1981,1982,1983,1984,1985\r
+; Columbia University\r
+;\r
+; Originally written by Bill Catchings of the Columbia University Center for\r
+; Computing Activities, 612 W. 115th St., New York, NY 10025.\r
+;\r
+; Contributions by Frank da Cruz, Daphne Tzoar, Bernie Eiben,\r
+; Bruce Tanner, Nick Bush, Greg Small, Kimmo Laaksonen, Jeff Damens, and many\r
+; others.\r
+;\r
+; This file contains the system dependent part for Sanyo MBC 1100\r
+; systems, and has been extracted from the CPMSYO.ASM code (kermit\r
+; version 3.5)\r
+;\r
+; revision history:\r
+;\r
+; edit 1, 27 October, 1987, by OBSchou. Extracted Sanyo code from CPMSYO.ASM\r
+; and massaged fort CP/M kermit V4.09\r
+;\r
+; Keep module name, edit number, and last revision date in memory.\r
+family: db 'CPXSYO.ASM (1) 27-Oct-87 $'\r
+;\f\r
+\r
+; Assembly time message to let me know I'm building the right version.\r
+; LASM generates an 'S' error along with the message, which is messy, but\r
+; better than trying to put everything inside a IF m80 OR mac80 conditional,\r
+; because LASM doesn't like nested IF's, either.\r
+\r
+IF sanyo\r
+.printx * Assembling Kermit-80 for Sanyo MBC 1100 *\r
+ENDIF\r
+\r
+iobyte EQU 03H ;Location of I/O byte\r
+\r
+if sanyo\r
+baudrt EQU 0DAH ;BAUD RATE MEMORY LOCATION\r
+MNPORT EQU 0DCH ;COMMUNICATIONS PORT\r
+MNPRTS EQU 0DDH ;COMMUNICATIONS PORT STATUS\r
+OUTPUT EQU 01H ;OUTPUT READY BIT\r
+INPUT EQU 02H ;INPUT READY BIT\r
+ENDIF;SANYO\r
+\r
+defesc EQU '\'-100O ;The default escape character.\r
+\r
+; Select initial setting for VT-52 emulation flag.\r
+vtval EQU 1\r
+\r
+\r
+sysxin: ;system initialisation not covered by sysinit\r
+ ret ; return from system-dependent routine\r
+\r
+;\f\r
+\r
+;\r
+; system-dependent termination processing\r
+; If we've changed anything, this is our last chance to put it back.\r
+sysexit:\r
+ ret\r
+\r
+;\r
+; system-dependent processing for start of CONNECT command\r
+;\r
+syscon:\r
+ ret\r
+\r
+;\f\r
+\r
+;\r
+; syscls - system-dependent close routine\r
+; called when exiting transparent session.\r
+;\r
+syscls:\r
+ ret\r
+;\f\r
+\r
+;\r
+; sysinh - help for system-dependent special functions.\r
+; called in response to <escape>?, after listing all the\r
+; system-independent escape sequences.\r
+;\r
+sysinh: \r
+ lxi d,inhlps ; we got options...\r
+ call prtstr ; print them.\r
+ ret\r
+inhlps:\r
+ db '$' ;[hh] table terminator\r
+\r
+;\r
+; sysint - system dependent special functions\r
+; called when transparent escape character has been typed;\r
+; the second character of the sequence is in A (and in B).\r
+; returns:\r
+; non-skip: sequence has been processed\r
+; skip: sequence was not recognized\r
+sysint:\r
+ ani 137O ; convert lower case to upper, for testing...\r
+ ret\r
+\r
+; sysflt - system-dependent filter.\r
+; called with the character in E.\r
+; preserves bc, de, hl.\r
+; note: <xon>,<xoff>,<del>, and <nul> are always discarded.\r
+sysflt:\r
+ mov a,e ; get character for testing\r
+ ret\r
+\r
+; mdmflt - modem filter [30]\r
+; called with character to be sent to printer in E\r
+; with parity set as appropriate.\r
+; return with accumulator = 0 do do nothing,\r
+; <> 0 to send char in E.\r
+mdmflt:\r
+ mov a,e ;[30] get character to test\r
+ ret\r
+\r
+\r
+; prtflt - printer filter [30]\r
+; called with character to be sent to printer in E\r
+; returns with a = 0 to do nothing\r
+; a <> 0 to print it.\r
+;\r
+; this routine for those printer that automatically insert\r
+; a lf on cr, or cr for lf. Should this be shifted to \r
+; the system indep. stuff, in say 4.06?\r
+prtflt:\r
+ mov a,e ; [30] get character to test\r
+ ret\r
+\r
+\r
+;\f\r
+\r
+;\r
+; system-dependent processing for BYE command.\r
+; for apmmdm, heath, and lobo, hang up the phone.\r
+sysbye:\r
+ ret\r
+;\f\r
+\r
+; This is the system-dependent command to change the baud rate.\r
+; DE contains the two-byte value from the baud rate table; this\r
+; value is also stored in 'speed'.\r
+sysspd:\r
+ ret\r
+\r
+;\f\r
+\r
+; Speed tables\r
+; (Note that speed tables MUST be in alphabetical order for later\r
+; lookup procedures, and must begin with a value showing the total\r
+; number of entries. The speed help tables are just for us poor\r
+; humans.\r
+\r
+; db string length,string,divisor (2 identical bytes or 1 word)\r
+; [Toad Hall]\r
+\r
+IF sanyo \r
+spdtbl EQU 0 ; No speed table for the Sanyo\r
+sphtbl EQU 0 ; ditto help for speed.\r
+\r
+; The following conditionals were once a huge if not statement. There\r
+; wasn't enough room to add the lobo to the list, so it had to be broken\r
+; into 2, which you can't do with an if not. I redid it as two ifs and\r
+; applied them to those that wouldn't set baud. [Hal Hostetler]\r
+;\f\r
+\r
+; This is the system-dependent SET PORT command.\r
+; HL contains the argument from the command table.\r
+sysprt:\r
+ ret\r
+;\f\r
+\r
+;\r
+; Port table not applicable tot he Sanyo...\r
+prttbl EQU 0\r
+prhtbl EQU 0 ;\r
+\r
+;\f\r
+\r
+;\r
+; selmdm - select modem port\r
+; selcon - select console port\r
+; selmdm is called before using inpmdm or outmdm;\r
+; selcon is called before using inpcon or outcon.\r
+; For iobyt systems, diddle the I/O byte to select console or comm port;\r
+; For Decision I, switches Multi I/O board to console or modem serial\r
+; port. [Toad Hall]\r
+; For the rest, does nothing.\r
+; preserves bc, de, hl.\r
+selmdm:\r
+ ret\r
+\r
+selcon:\r
+ ret\r
+;\f\r
+\r
+; Get character from console, or return zero.\r
+; result is returned in A. destroys bc, de, hl.\r
+;\r
+inpcon:\r
+ mvi c,dconio ;Direct console I/O BDOS call.\r
+ mvi e,0FFH ;Input.\r
+ call BDOS\r
+ ret\r
+;\f\r
+\r
+;\r
+; Output character in E to the console.\r
+; destroys bc, de, hl\r
+;\r
+outcon:\r
+ mvi c,dconio ;Console output bdos call.\r
+ call bdos ;Output the char to the console.\r
+ ret\r
+;\f\r
+\r
+;\r
+; outmdm - output a char from E to the modem.\r
+; the parity bit has been set as necessary.\r
+; returns nonskip; bc, de, hl preserved.\r
+outmdm:\r
+IF inout\r
+ in mnprts ;Get the output done flag.\r
+ ani output ;Is it set?\r
+ jz outmdm ;If not, loop until it is.\r
+ mov a,e\r
+ out mnport ;Output it.\r
+ ret\r
+ENDIF;inout\r
+\r
+;\f\r
+\r
+;\r
+; get character from modem; return zero if none available.\r
+; for IOBYT systems, the modem port has already been selected.\r
+; destroys bc, de, hl.\r
+inpmdm:\r
+IF inout\r
+;Note: modem port should already be selected for mdI. [Toad Hall]\r
+ in mnprts ;Get the port status into A.\r
+ ani input ;See if the input ready bit is on.\r
+ rz ;If not then return.\r
+ in mnport ;If so, get the char.\r
+ENDIF;inout\r
+ ret ; return with character in A\r
+\r
+\r
+;\r
+; flsmdm - flush comm line.\r
+; Modem is selected.\r
+; Currently, just gets characters until none are available.\r
+\r
+flsmdm: call inpmdm ; Try to get a character\r
+ ora a ; Got one?\r
+ jnz flsmdm ; If so, try for another\r
+ ret ; Receiver is drained. Return.\r
+\r
+\r
+;\f\r
+\r
+;\r
+; lptstat - get the printer status. Return a=0 if ok, or 0ffh if not.\r
+lptstat:\r
+ xra a ; assume it is ok.. this may not be necessary\r
+ ret\r
+;\f\r
+\r
+;\r
+; outlpt - output character in E to printer\r
+; console is selected.\r
+; preserves de.\r
+outlpt:\r
+ push d ; save DE in either case\r
+ call prtflt ; go through printer filter [30]\r
+ ana a ; if A = 0 do nothing,\r
+ jz outlp1 ; [30] if a=0 do nothing\r
+ mvi c,lstout\r
+ call bdos ;Char to printer\r
+outlp1: pop d ; restore saved register pair\r
+ ret\r
+;\f\r
+\r
+;\r
+; Screen manipulation routines\r
+; csrpos - move to row B, column C\r
+;\r
+; csrpos for terminals that use a leadin sequence followed\r
+; by (row + 31.) and (column + 31.)\r
+;\r
+csrpos: push b ; save coordinates\r
+ lxi d,curldn ; get cursor leadin sequence\r
+ call prtstr ; print it\r
+ pop h ; restore coordinates\r
+ mov a,h ; get row\r
+ adi (' '-1) ; space is row one\r
+ mov e,a\r
+ push h\r
+ call outcon ; output row\r
+ pop h\r
+ mov a,l ; get column\r
+ adi (' '-1) ; space is column one\r
+ mov e,a\r
+ jmp outcon ; output it and return\r
+ENDIF;NOT (robin OR dmII OR osi OR vector OR termin)\r
+\r
+ ret ; Can the Sany do cursor opsitioning??\r
+\r
+;\r
+;\r
+; delchr - make delete look like a backspace. Unless delete is a printing\r
+; character, we just need to print a backspace. (we'll output clrspc\r
+; afterwards)\r
+; For Kaypro and Vector General, delete puts a blotch on the screen.\r
+; For Apple and Osborne 1, delete moves but doesn't print.\r
+delchr:\r
+ mvi e,bs\r
+ call outcon\r
+\r
+; erase the character at the current cursor position\r
+clrspc: mvi e,' '\r
+ call outcon\r
+ mvi e,bs ;get a backspace\r
+ jmp outcon\r
+\r
+; erase the current line\r
+clrlin: lxi d,eralin\r
+ jmp prtstr\r
+\r
+; erase the whole screen, and go home. preserves b (but not c)\r
+clrtop: lxi d,erascr\r
+ jmp prtstr\r
+\r
+\r
+\r
+IF SANYO\r
+outlin: DB ESC,'E',ESC,'H',CR,LF,TAB ;WHATEVER\r
+sysver: DB 'KERMIT-80 V3.9 [SANYO MBC-1100]',CR,LF,'$' ;VERSION HEADING\r
+DELSTR: DB ESC,'K','$' ;WHATS A STRING?\r
+eralin: DB ESC,'P','$' ;CLEAR SPACE\r
+;CLRLIN: DB ESC,'K','$' ;CLEAR LINE\r
+erascr: DB ESC,'E',ESC,'H','$' ;CLEAR SCREEN AND CURSOR HOME\r
+curldn: db esc,'=','$',0 ;cursor lead in\r
+;SCRNP: DB ESC,'=',24H,25H,'$' ;SPOT FOR SCREEN PACKETS\r
+;SCRNRT: DB ESC,'=',25H,25H,'$' ;SPOT FOR # OF RETRIES\r
+;SCRFLN: DB ESC,'=',26H,25H,'$' ;SPOT FOR FILE NAME\r
+;SCRST: DB ESC,'=',28H,25H,'$' ;SPOT FOR STATUS\r
+;SCREND: DB ESC,'=',2AH,25H,'$' ;SPOT FOR PROMPT\r
+;SCRERR: DB ESC,'=',2DH,25H,'$' ;SPOT FOR ERRORS\r
+ttab: ;NO TRANSLATION TABLE\r
+ta: DB ESC,'A',0,0 ;CURSOR UP\r
+tb: DB ESC,'B',0,0 ;CURSOR DOWN\r
+tc: DB ESC,'D',0,0 ;CURSOR RIGHT\r
+td: DB ESC,'C',0,0 ;CURSOR LEFT\r
+te: DB ESC,'E',0,0 ;CLEAR SCREEN\r
+tf: DB 0,0,0,0 ;WHAT???\r
+tg: DB 0,0,0,0 ;WHAT???\r
+th: DB ESC,'H',0,0 ;CURSOR HOME\r
+ti: DB ESC,'A',ESC,'C',0,0 ;REVERSE LINEFEED??\r
+tj: DB ESC,'J',0,0 ;CLEAR TO END OF SCREEN\r
+tk: DB ESC,'K',0,0 ;CLEAR TO END OF LINE\r
+ENDIF;SANYO\r
+\r
+ovlend equ $ ; End of overlay\r
+\r
+ END\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\1a\r
+\r