home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Oakland CPM Archive
/
oakcpm.iso
/
cpm
/
list
/
citoh.lbr
/
CITOH.AQM
/
CITOH.ASM
Wrap
Assembly Source File
|
1987-12-29
|
8KB
|
194 lines
; CITOH.ASM v1.0 C-ITOH M-1550 PRINTER UTILITY 10/10/82
;
; by
; IRVIN M. HOFF
; LOS ALTOS HILLS, CA 94022
;
; MODIFIED 10/30/84 BY D. TALKINGTON FOR C-ITOH PRINTER
;
; This program sets the C-ITOH M-1550 printer to various
; configurations such as:
;
; 10, 12, or 17 Characters Per Inch
; Normal or Double Strike
; Normal or Enlarged Print
; 6 or 8 vertical lines per inch
;
; There are numerous other selections that could be added.
; This program should give you the background to include
; other options, if desired, yourself. These seemed the
; most important.
;
; + + + + + + + + + + + + + + + + + +
;
; COMMAND CHARACTERS FOR THE C-ITOH M-1550 PRINTER:
;
; 17 CTL-Q Enable printer to receive data
; 27,'65' ESC A 6 vertical lines per inch (Normal)
; 27,'66' ESC B 8 vertical lines per inch
; 27,'33' ESC ! Emphasized print
; 27,'34' ESC " Non-emphasized print (Normal)
; 14 SO Double-width print on
; 15 SI Double-width print off (Normal)
; 27,78 ESC N 10 characters per inch (Normal)
; 27,69 ESC E 12 characters per inch Elite
; 27,81 ESC Q 17 characters per inch Compressed
; 27,76,010 ESC L,010 set left margin to 10
;
; + + + + + + + + + + + + + + + + + +
ORG 100H
JMP START ;JUMP INTO PROGRAM
; + + + + + + + + + + + + + + + + + +
; GENERAL EQU'S
;
BDOS EQU 5 ;SYSTEM CALL ENTRY POINT
CONIN EQU 1 ;GET KEYBOARD CHARACTER
CR EQU 0DH ;CONTROL-M FOR CARRIAGE RETURN
CONOUT EQU 2 ;CRT OUTPUT ROUTINE
CTLC EQU 3 ;CONTROL-C TO TERMINATE
ESC EQU 1BH ;ESCAPE CHARACTER
LF EQU 0AH ;CONTROL-J FOR LINE FEED
LIST EQU 5 ;LIST DEVICE OUTPUT
STRING EQU 9 ;PRINT STRING ON CONSOLE
TAB EQU 09H ;CONTROL-I FOR HORIZONTAOL TAB
; + + + + + + + + + + + + + + + + + +
; DATA STRINGS TO CONTROL C-ITOH M-1550 PRINTER
;
DEFLT: DB 17,ESC,'N',ESC,'A',ESC,'"',ESC,'L','000',15,0 ;DEF PARAMETERS
TEN: DB ESC,'N',0 ;10 CHARACTERS PER INCH
TWELV: DB ESC,'E',0 ;12 CHARACTERS PER INCH
SVTEEN: DB ESC,'Q',0 ;17 CHARACTERS PER INCH
LOFF: DB 15,0 ;NORMAL PRINT
LON: DB 14,0 ;LARGE PRINT
BOFF: DB ESC,'"',0 ;BOLD PRINT OFF
BON: DB ESC,'!',0 ;BOLD PRINT ON
SIX: DB ESC,'A',0 ;6 LINES PER INCH
EIGHT: DB ESC,'B',0 ;8 LINES PER INCH
LMS: DB ESC,'L','010',0 ;SET LEFT MARGIN TO 10
TURNUP: DB CR,LF,'$'
;
; SIGN-ON MESSAGE
;
SOM: DB CR,LF,TAB
DB ' C-ITOH Printer Options v1.1 10/30/84'
DB CR,LF,LF,TAB
DB ' Computer Services of Redding (c)1984'
DB CR,LF,LF,TAB
DB 'Select any combination of letters and type <RETURN> key'
DB CR,LF,LF,TAB,TAB,' A = Reset to 10 CPI & 6 LPI'
DB CR,LF,TAB,TAB,' B = 10 characters per inch'
DB CR,LF,TAB,TAB,' C = 12 characters per inch'
DB CR,LF,TAB,TAB,' D = 17 characters per inch'
DB CR,LF,TAB,TAB,' E = emphasized print off'
DB CR,LF,TAB,TAB,' F = emphasized print on'
DB CR,LF,TAB,TAB,' G = normal size print'
DB CR,LF,TAB,TAB,' H = large size print'
DB CR,LF,TAB,TAB,' I = 6 vertical lines per inch'
DB CR,LF,TAB,TAB,' J = 8 vertical lines per inch'
DB CR,LF,TAB,TAB,' K = set left margin to 10'
DB CR,LF,LF,LF,LF,LF,LF,TAB,'Select: '
DB '$'
;
;**********************************************************************;
; ;
; PROGRAM STARTS HERE ;
; ;
;**********************************************************************;
;
START: POP H ;RETURN ADDRESS TO 'CCP'
SHLD EXIT1+1 ;STORE
LXI SP,STACK ;SET UP STACK
LXI D,SOM ;SIGNON MESSAGE
CALL DSTRNG ;SHOW ON THE CRT
LXI H,DEFLT ;SET THE PRINTER TO NORMAL CONDITIONS
JMP PSTRNG
;
SELECT: CALL INPUT ;GET A CHAR.
;
CPI 'A' ;RESET TO DEFAULT PARAMETERS
LXI H,DEFLT
JZ PSTRNG
CPI 'B'
LXI H,TEN ;10 CPI
JZ PSTRNG
CPI 'C'
LXI H,TWELV ;12 CPI
JZ PSTRNG
CPI 'D'
LXI H,SVTEEN ;17 CPI
JZ PSTRNG
CPI 'E'
LXI H,BOFF ;BOLD PRINT OFF
JZ PSTRNG
CPI 'F'
LXI H,BON ;BOLD PRINT ON
JZ PSTRNG
CPI 'G'
LXI H,LOFF ;NORMAL SIZE PRINT
JZ PSTRNG
CPI 'H'
LXI H,LON ;LARGE PRINT ON
JZ PSTRNG
CPI 'I'
LXI H,SIX ;SIX VERTICAL LINES PER INCH
JZ PSTRNG
CPI 'J'
LXI H,EIGHT ;EIGHT VERTICAL LINES PER INCH
JZ PSTRNG
CPI 'K'
LXI H,LMS ;SET LEFT MARGIN TO 10
JZ PSTRNG
JMP SELECT ;IF NONE OF THESE, ASK AGAIN
;======================================================================;
; ;
; ROUTINES START HERE ;
; ;
;======================================================================;
;
;
EXIT: LXI D,TURNUP ;TURN UP SOME EXTRA LINES
CALL DSTRNG ;DISPLAY ON THE CRT
;
EXIT1: JMP 0 ;FILLED BY 'START' FOR RETURN TO 'CCP'
;.....
;
;
; GET A KEYBOARD CHARACTER
;
INPUT: MVI C,CONIN ;KEYBOARD ROUTINE
CALL BDOS
ANI 7FH ;STRIP AWAY ANY PARITY
CPI CTLC ;CONTROL-C?
JZ EXIT ;IF YES, ALL FINISHED
CPI CR ;CONTROL-M FOR RETURN?
JZ EXIT ;IF YES, ALL FINISHED
RET
;
; DISPLAY A STRING ON THE CRT
;
DSTRNG: MVI C,STRING ;CONSOLE STRING ROUTINE
JMP BDOS ;SEND TO THE CRT
;
; PRINT A STRING OF CHARS. ON THE C-ITOH M-1550
;
PSTRNG: MOV A,M ;GET THE CHARACTER IN THE STRING
ORA A ;SEE IF FINISHED YET
JZ SELECT ;GET ANOTHER ANSWER IF FINISHED
;
PUSH H ;SAVE THE ADDRESS IN THE STRING
MVI C,LIST ;PRINTER ROUTINE
MOV E,A ;PUT THE CHAR. INTO 'E' REG.
CALL BDOS ;SEND TO THE PRINTER
POP H ;BACK TO THE STRING ADDRESS
INX H ;NEXT LOCATION
JMP PSTRNG ;DO THE NEXT ONE
;
; STACK AREA
;
DS 20H ;ALLOW SPACE FOR STACK
;
STACK DS 0
;
END