.TITLE LA100.MAC .IDENT /V1.0/ .ENABL LC ; ; LA100 - SETUP FEATURES OF LA100-YA (WITHOUT KEYBOARD) ; ; LA1 L = LETTER QUALITY MODE ; LA1 D = DRAFT QUALITY MODE ; LA1 C = COURIER FONT ; LA1 O = ORATOR FONT ; LA1 6 = 6 LPI ; LA1 8 = 8 LPI ; LA1 10 = 10 CPI ; LA1 12 = 12 CPI ; LA1 13 = 13 CPI ; LA1 16 = 16 CPI ; LA1 XX = XX FORMS LENGTH (XX > 16) ; .MCALL QIOW$C,ALUN$C,EXIT$S,GMCR$,DIR$ ; ; DATA ; PRMPT: .ASCII /LA100/ PRMPTL= .-PRMPT ; ; LA1 L = LQP ; LALQ: .ASCII <33>/[2"z/<33>/[?29h/ LALQL= .-LALQ ; ; LA1 D = LDP ; LADQ: .ASCII <33>/[0"z/<33>/[?29l/ LADQL= .-LADQ ; ; LA1 C = COURIER ; LAC: .ASCII <33>/[10m/ LACL= .-LAC ; ; LA1 O = ORATOR ; LAO: .ASCII <33>/[12m/ LAOL= .-LAO ; ; LA1 6 = 6 LPI ; LA6: .ASCII <33>/[0z/ LA6L= .-LA6 ; ; LA1 8 = 8 LPI ; LA8: .ASCII <33>/[2z/ LA8L= .-LA8 ; ; LA1 10 = 10 CPI ; LA10: .ASCII <33>/[0w/ LA10L= .-LA10 ; ; LA1 12 = 12 CPI ; LA12: .ASCII <33>/[2w/ LA12L= .-LA12 ; ; LA1 13 = 13 CPI ; LA13: .ASCII <33>/[3w/ LA13L= .-LA13 ; ; LA1 16 = 16 CPI ; LA16: .ASCII <33>/[4w/ LA16L= .-LA16 ; ; LA1 XX = XX FORMS LENGTH (XX > 16) ; LAXX: .ASCII <33>/[/ XX: .ASCII /XX/ .ASCII /t/ LAXXL= .-LAXX .EVEN ; IOST: .BLKW 2 ; I/O STATUS BLOCK GETMCR: GMCR$ ; GET MCR COMMAND DIRECTIVE ;+ ; ; LA100 ALLOWS FOR SETUP OF FEATURES OF THE LA100-YA PRINTER ; ;- ; ; ; START UP ROUTINE ; .EVEN LA100: ALUN$C 1,TI,0 ; ASSIGN LUN 1 TO TI: ALUN$C 2,TT,44 ; ASSIGN LUN 2 TO LA100 ; CMDL: DIR$ #GETMCR ; GET COMMAND LINE BCC 1$ ; CONTINUE? JMP QUIT ; NO 1$: MOVB $DSW,R1 ; GET LENGTH OF INPUT ; ; GET COMMAND LINE AND PARSE IT FOR INPUT ; CHKINP: MOV #GETMCR+G.MCRB,R0 ; GET ADDR OF INPUT 1$: DEC R1 ; COUNT DOWN BEQ 2$ ; ANY MORE? CMPB (R0)+,#40 ; NEXT CHAR BLANK? BNE 1$ ; NO, GET NEXT CHAR BEQ GETINP ; YES, BRANCH ; ; NO INPUT SO RESET LA100 TO 6LPI, 11" FORM, 10 CPI, COURIER FONT ; 2$: QIOW$C IO.WVB,2,1,,,, ;6LPI MOVB #'6,XX ; MOVB #'6,XX+1 ; QIOW$C IO.WVB,2,1,,,, ;11 INCH FORM QIOW$C IO.WVB,2,1,,,, ;10 CPI QIOW$C IO.WVB,2,1,,,, ;DRAFT QUALITY MODE QIOW$C IO.WVB,2,1,,,, ;COURIER FONT JMP QUIT ; QUIT ; ; DETERMINE INPUT AND SET APPROPRIATE FEATURE ; GETINP: CMPB (R0),#'L ; LETTER QUALITY? BNE NOTL ; NO QIOW$C IO.WVB,2,1,,,, ;LETTER QUALITY MODE BR QUIT ; QUIT NOTL: CMPB (R0),#'D ; DRAFT QUALITY? BNE NOTD ; NO QIOW$C IO.WVB,2,1,,,, ;DRAFT QUALITY MODE BR QUIT NOTD: CMPB (R0),#'O ; ORATOR FONT? BNE NOTO ; NO QIOW$C IO.WVB,2,1,,,, ; ORATOR FONT BR QUIT NOTO: CMPB (R0),#'C ; COURIER FONT? BNE NOTC ; NO QIOW$C IO.WVB,2,1,,,, ; COURIER FONT BR QUIT ; NOTC: ADD R0,R1 ; POINT PAST END CLRB (R1) ; CLEAR BYTE CALL $CDTB ; CONVERT TO BINARY TST R2 ; R2 - NULL? BNE QUIT ; NO - QUIT ; ; 6 LPI? ; CMP R1,#6. ; IS IT 6? BNE NOT6 ; NO QIOW$C IO.WVB,2,1,,,, ;6LPI BR QUIT ; QUIT ; ; 8 LPI? ; NOT6: CMP R1,#8. ; IS IT 8? BNE NOT8 ; NO QIOW$C IO.WVB,2,1,,,, ;8LPI BR QUIT ; QUIT ; ; 10 CPI? ; NOT8: CMP R1,#10. ; IS IT 10? BNE NOT10 ; NO QIOW$C IO.WVB,2,1,,,, ;10CPI BR QUIT ; QUIT ; ; 12 CPI? ; NOT10: CMP R1,#12. ; IS IT 12? BNE NOT12 ; NO QIOW$C IO.WVB,2,1,,,, ;12 CPI BR QUIT ; QUIT ; ; 13 CPI? ; NOT12: CMP R1,#13. ; IS IT 13? BNE NOT13 ; NO QIOW$C IO.WVB,2,1,,,, ;13CPI BR QUIT ; QUIT ; ; 16 CPI? ; NOT13: CMP R1,#16. ; IS IT 16? BGT NOT16 ; NO BLT QUIT ; NO, FER SURE QIOW$C IO.WVB,2,1,,,, ;16CPI BR QUIT ; QUIT ; ; XX (XX > 16) FORM LENGTH? ; NOT16: CMP R1,#99. ; IS IT LESS THAN 99? BGT QUIT ; NO MOV #XX,R0 ; GET ADDR OF OUTPUT MOV #010012,R2 ; GET CONVERSION PARM CALL $CBTA ; CONVERT TO ASCII QIOW$C IO.WVB,2,1,,,, ;FORM LENGTH XX ; QUIT: EXIT$S ; EXIT ; .END LA100