home *** CD-ROM | disk | FTP | other *** search
- ;*****************************************************************
- ; 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 <cr>" 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 <cr>, 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