home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
epson
/
mxset12.mac
< prev
next >
Wrap
Text File
|
1984-01-16
|
4KB
|
186 lines
.COMMENT \
MXSET Rev. 1.2 by Simon J. Ewins, Toronto, Ontario, Canada.
***********************************************************
This program will set/reset all of the major functions of the Epson MX-80
printer. The program uses Z80 Zilog mnemonics and calls are made to Richard
Conn's excellent SYSLIB.REL file. Microsoft's M80 macro assembler is needed
for assembly of this file as well as the SYSLIB file.
June 28, 1983. Toronto, Ontario.
******************************************************************************
\
.Z80
CSEG
START: CALL PRINT##
DB 13,10,10,10,10,10
DB 'MXSET Rev. 1.2',13,10
DB 'by Simon J. Ewins -- 06/28/83',13,10,10
DB 'OPTIONS:',13,10,10
DB 'A: Set printer to defaults',13,10
DB 'B: Home printhead',13,10
DB 'C: Turn ON underline mode -- use A: to turn OFF',13,10
DB 'D: Turn ON unidirectional mode -- use A: to turn OFF',13,10
DB 'E: Set column length',13,10
DB 'F: Turn ON perforation skipover',13,10
DB 'G: Turn OFF perforation skipover',13,10
DB 'H: Turn ON paper-end detector',13,10
DB 'I: Turn OFF paper-end detector',13,10
DB 'J: Select character fonts',13,10
DB 'K: Print test',13,10
DB '^C=Quit to CP/M',13,10,10
DB 'Enter your choice: ',0
LD A,1
CALL BBLINE##
LD A,(HL)
LA: CP 'A' ;Set printer to defaults
JR NZ,LB
CALL ESC
CALL LPRINT##
DB 64,13,10,0
JP START
LB: CP 'B' ;Home printhead
JR NZ,LC
CALL ESC
CALL LPRINT##
DB 60,13,10,0
JP START
LC: CP 'C' ;Turn on underline mode
JR NZ,LD
CALL ESC
CALL LPRINT##
DB 45,1,13,10,0
JP START
LD: CP 'D' ;Turn on unidirectional
JR NZ,LE
CALL ESC
CALL LPRINT##
DB 85,13,10,0
JP START
LE: CP 'E' ;Set column length
JP NZ,LF
LE1: CALL PRINT##
DB 13,10,10,'Enter column length: ',13,10
DB 'Up to <80> when in normal or emphasized mode.',13,10
DB ' <132> when in condensed mode.',13,10
DB ' <40> when in enlarged mode.',13,10
DB ' <60> when in enlarged-condensed mode',13,10
DB '---> ? ',0
LD A,0
CALL BBLINE##
CALL EVAL10##
PUSH AF
LD HL,132
CALL COMPHD##
JP C,LE1
POP AF
CP 0
JP Z,START
LD (LE2),A
CALL ESC
CALL LPRINT##
DB 81
LE2: DS 1
DB 13,10,0
JP START
LF: CP 'F' ;Turn on perf. skip-over
JR NZ,LG
CALL ESC
CALL LPRINT##
DB 78,13,10,0
JP START
LG: CP 'G' ;Turn off perf. skip-over
JR NZ,LH
CALL ESC
CALL LPRINT##
DB 79,13,10,0
JP START
LH: CP 'H' ;Turn on paper-end detector
JR NZ,LI
CALL ESC
CALL LPRINT##
DB 57,13,10,0
JP START
LI: CP 'I' ;Turn off paper-end detector
JR NZ,LJ
CALL ESC
CALL LPRINT##
DB 56,13,10,0
JP START
LJ: CP 'J' ;Choose alternate fonts
JP NZ,LK
CALL PRINT##
DB 13,10,10
DB '1: Set italics ON',13,10
DB '2: Set italics OFF',13,10
DB '3: Set emphasized ON',13,10
DB '4: Set emphasized OFF',13,10
DB '5: Set double print ON',13,10
DB '6: Set double print OFF',13,10
DB '7: Set condensed ON',13,10
DB '8: Set condensed OFF',13,10
DB '9: Set enlarged ON (ignores linefeeds) -- '
DB 'use option A: to turn OFF',13,10,10
DB 'Enter your choice: ',0
LD A,0
CALL BBLINE##
CALL EVAL10##
PUSH AF
LD HL,9
CALL COMPHD##
JP C,LJ
POP AF
CP 0
JP Z,START
CP 9
JR NZ,LJ1
CALL ESC
LD A,87
CALL LOUT##
LD A,1
CALL LOUT##
CALL LPRINT##
DB 13,10,0
JP START
DATA: DB 52,53,69,70,71,72,15,18
LJ1: DEC A
LD (LJ2),A ;store A for index
LD IX,DATA ;set indexed pointer
DB 11011101B ;1st byte of LD A,(IX+d)
DB 01111110B ;2nd byte of LD A,(IX+d)
LJ2: DS 1 ;storage for index
LD (LJ3),A
PUSH AF
CALL ESC
POP AF
CP 15
JR NZ,LJ2A
CALL LOUT##
LD A,13
LD (LJ3),A
JR LJ2C
LJ2A: CP 18
JR NZ,LJ2C
CALL LOUT##
LD A,13
LD (LJ3),A
LJ2C: CALL LPRINT##
LJ3: DS 1
DB 13,10,0
JP START
LK: CP 'K' ;Print test
JP NZ,START
CALL LPRINT##
DB 13,10,10
DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz',13,10
DB "1234567890-=['\;,./",'!@#$%^&*()_+]"|:<>?',13,10,10,0
JP START
ESC: PUSH AF
LD A,27
CALL LOUT##
POP AF
RET
END