; 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 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