;***************************************************************** ; TITLE: SET192V3.ASM ; ; PURPOSE: OKIDATA 192/193 PRINTER OPTIONS SELECTOR ;**************************************************************** ; Adapted from the following: ; TITLE: SET92.ASM ; PURPOSE: Set-Up for OKIDATA 92 Printer ; AUTHOR: J. A. GRONEK ; COPYRIGHT: UCS, inc. 1984 ; VERSION: 2.2 DATED: AUGUST 22, 1984 ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; SET192 revision 3.0 30 Apr 86 Jim Lill ; - added "end with " note, deleted "ctrl-C quits" note ; - added paper-out disable command (resets with "R" default) ; - moved "R" line and listed defaults on screen ; - deleted RESET to defaults from START, must force with a "R" ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; SET192 revision 2.0 28 Mar 86 Jim Lill ; - reformatted menu for additional commands ; - added commands for choice of Language Sets ; - changed commands to all letters to eliminate errors such ; as hitting "6" for 6 LPI ; - changed method of handling lower case, now p/o INPUT sub-routine ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; Updated for Okidata 192 9 Feb 86 Jim Lill ; From SET92.ASM, changing name and resetting rev. to 1.1 ; Added: ; 1) Italics ; 2) Enhanced Print ; 3) Left offset of 1/2 inch for improving print-outs that are ; to be punched ; 4) characters to "sample" ; 5) 1/2 speed printing ; 6) unidirectional printing ; 7) Changed DEFAULT concept. Now affects only the following: ; - cancels print suppress ; - cancels Emph. and Enh. mode ; - cancels italicized print mode ; - resets left margin to column 1 ; - returns to full speed printing ; - returns to bidirectional printing ; All others commands remain as last selected or power-up defaults ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; Updated to version 2.3 09/05/84 Steve Sanders ; ; added "L"inefeed command and ; "P"rint sample command and upper/lower ; case conversion for letter commands ;****************************************************************** ; ORG 100H ; JMP START ;JUMP INTO PROGRAM ; ; ENVIRONMENTAL 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 CLSCR EQU 1AH ;CLEAR SCREEN CODE ;..... ; ; ; DATA STRINGS TO CONTROL OKIDATA PRINTER ; COMPR: DB 29,0 ;17.1 CPI NORM: DB 30,0 ;10 CPI TWELV: DB 28,0 ;12 CPI DUBL: DB 31,0 ;DOUBLE WIDTH COOR: DB ESC,'1',0 ;CORRESPONDENCE MODE DATA: DB ESC,'0',0 ;DATA PROCESSING MODE ITAL: DB ESC,'!','/',0 ;ITALIC MODE EMPH: DB ESC,'T',0 ;EMPHASIZED PRINT ENHAN: DB ESC,'H',0 ;ENHANCED PRINT SIX: DB ESC,'6',0 ;6 LINES PER INCH EIGHT: DB ESC,'8',0 ;8 LINES PER INCH LEFT: DB ESC,'%','C','061',0 ;1/2 INCH LEFT MARGIN OFFSET HSPEED: DB ESC,'<',0 ;1/2 SPEED PRINTING ONEWAY: DB ESC,'-',0 ;ONE-WAY PRINTING STDLAN: DB ESC,'!','0',0 ;STANDARD LANG. SET IBMLAN: DB ESC,'!',31H,0 ;IBM LANG. SET ASCIIZ: DB ESC,'!',40H,0 ;ASCII W/SLASH ZERO ASCII: DB ESC,'!',41H,0 ;ASCII W/O SLASH ZERO papero: DB ESC,'E','1',0 ;disable paper out sample: DB cr,lf DB 'abcdefghijklmnopqrstuvwxyz 0123456789#$%',cr,lf DB 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789#$%',cr,lf,0 line: DB lf,0 FINISH: DB cr,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf,lf DB lf,lf,lf,lf,lf,lf,'$' DEFLT: DB 17,CR,ESC,73,CR,ESC,37,67,'001',CR,ESC DB 62,CR,ESC,61,CR,ESC,33,42,esc,'E','0',0 ;..... ; ; SOM: DB CR,LF,'OKIDATA' DB tab,tab,tab,' A = ' DB '10 CPI, Normal' DB cr,lf,'192/193' DB TAB,TAB,TAB,' B = ' DB '12 CPI, Normal' DB cr,lf,'Printer' DB TAB,TAB,TAB,' C = ' DB '17.1 CPI, Normal' DB cr,lf,'Set-up' DB TAB,TAB,TAB,' D = ' DB 'Double width Characters' DB cr,lf,'Utility' DB TAB,TAB,TAB,' E = ' DB 'Correspondence Mode' DB cr,lf,'Version 3.0' DB TAB,TAB,' F = ' DB 'Data Processing Mode' DB cr,lf,'Jim Lill 4/86' DB TAB,TAB,' G = ' DB 'Italicized Mode' DB CR,LF,TAB,TAB,TAB,' H = ' DB 'Emphasized Print Mode' DB CR,LF,TAB,TAB,TAB,' J = ' DB 'Enhanced Print Mode' DB CR,LF,TAB,TAB,TAB,' K = ' DB '6 Lines per inch' DB cr,lf,TAB,TAB,' L = ' DB '8 lines per inch' DB cr,lf,'----------------------\ M = ' DB '1/2 Inch Left Margin Offset' DB CR,LF,'- enables Printer \ N = ' DB 'One-Way Printing' DB CR,LF,'- enables Full-Speed \ P = ' DB '1/2-Speed (Quiet) Printing' DB CR,LF,'- enables Bidirect. Prt. \ Q = ' DB 'Standard Character Set' DB cr,lf,'- cancels Enhanced ===> R = ' DB 'Reset to default parameters' DB cr,lf,'- cancels Emphasized / S = ' DB 'IBM Character Set' DB cr,lf,'- cancels Italics / T = ' DB 'ASCII with Slash Zero' DB cr,lf,'upper/lower case okay / U = ' DB 'ASCII w/o Slash Zero' DB cr,lf,'----------------------/ V = ' DB 'Disable Paper-Out Alarm' DB cr,lf,tab,tab,' W = ' DB 'Linefeed Issued to Printer' DB cr,lf,tab,tab,tab,' X = ' DB 'Print Sample' DB cr,lf,lf,'String as many selections as you wish, end with , SELECT:' DB '$' ;..... ; ; 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 ;... ; ; SELECT: CALL INPUT ;GET A CHAR. ; CPI 82 ;RESET TO DEFAULT PARAMETERS LXI H,DEFLT JZ PSTRNG ; CPI 65 LXI H,NORM ;10 CPI, NORMAL JZ PSTRNG ; CPI 66 LXI H,TWELV ;12 CPI, NORMAL JZ PSTRNG ; CPI 67 LXI H,COMPR ;17.1 CPI, NORMAL JZ PSTRNG ; CPI 68 LXI H,DUBL ;DOUBLE WIDTH JZ PSTRNG ; CPI 69 LXI H,COOR ;CORRESPONDENCE PRINT JZ PSTRNG ; CPI 70 LXI H,DATA ;DATA PROC PRINT JZ PSTRNG ; CPI 71 LXI H,ITAL ;Italics JZ PSTRNG ; CPI 72 LXI H,EMPH ;EMPHASIZED PRINT JZ PSTRNG ; CPI 74 LXI H,ENHAN ;ENHANCED PRINT JZ PSTRNG ; CPI 75 LXI H,SIX ;6 LINES PER INCH JZ PSTRNG ; CPI 76 LXI H,EIGHT ;8 LINES PER INCH JZ PSTRNG ; cpi 77 ;LEFT MARGIN lxi h,LEFT jz PSTRNG ; CPI 80 LXI H,HSPEED ; HALF SPEED JZ PSTRNG ; CPI 78 LXI H,ONEWAY ;ONE WAY PRINTING JZ PSTRNG ; cpi 86 lxi h,papero ;paper-out disable jz pstrng ; CPI 87 LXI H,LINE ;LINEFEED JZ PSTRNG ; cpi 88 ; print sample lxi h,sample jz PSTRNG ; CPI 81 LXI H,STDLAN ;STD CHAR SET JZ PSTRNG ; CPI 83 LXI H,IBMLAN ;IBM CHAR SET JZ PSTRNG ; CPI 84 LXI H,ASCIIZ ;WITH SLASH ZERO JZ PSTRNG ; CPI 85 LXI H,ASCII ;W/O SLASH JZ PSTRNG ; JNZ SELECT ;IF NONE OF THESE, ASK AGAIN ;..... ; ; ; EXIT: LXI D,FINISH ;TURN UP SOME EXTRA LINES CALL DSTRNG ;DISPLAY ON THE CRT ; EXIT1: JMP 0 ;FILLED BY 'START' FOR RETURN TO 'CCP' ;..... ; ; ; INPUT: MVI C,CONIN ;KEYBOARD ROUTINE CALL BDOS ANI 7FH ;STRIP AWAY ANY PARITY CPI 90 ;IS ENTRY LOWER CASE JC NOT$LC ;JUMP IF INPUT NOT LOWER CASE SBI 32 ;SUBTRACT 32 TO CONVERT LC TO UC NOT$LC: CPI CTLC ;CONTROL-C? JZ EXIT ;IF YES, ALL FINISHED CPI CR ;CONTROL-M FOR RETURN? JZ EXIT ;IF YES, ALL FINISHED RET ;..... ; ; DSTRNG: MVI C,STRING ;CONSOLE STRING ROUTINE JMP BDOS ;SEND TO THE CRT ;..... ; ; PSTRNG: MOV A,M ;GET THE CHARACTER IN THE STRING ORA A ;SEE IF FINISHED YET JZ SELECT ;GET NEW ANSWER IF ZERO ; 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 ;..... ; ; DS 20H ;ALLOW ROOM FOR STACK ; STACK DS 0 ; END