home *** CD-ROM | disk | FTP | other *** search
/ Frostbyte's 1980s DOS Shareware Collection / floppyshareware.zip / floppyshareware / USCX / TEXTUTIL.ZIP / SFX.ASM < prev    next >
Assembly Source File  |  1985-09-29  |  4KB  |  105 lines

  1. COMMENT|  SETFX.COM  Copyright (C) Ronald E. Frank 29 Sep 85
  2. This program accepts a parameter or asks for one with a
  3. menu, converts it with a translation table to a series of
  4. printer codes, and sends those codes to the printer.  The
  5. printer beeps to acknowledge receipt.
  6.  
  7. Line 6 is as follows:
  8. Compr // Elite // 8 Lpi // Skip 8 on Perf // Left Marg 20
  9.  0F      1B,4D    1B,30       1B,4E,08        1B,6C,20      Hex codes
  10.  I-5      I-7     I-14          I-13            I-12        Epson Reference
  11.  
  12. END COMMENT |
  13.  
  14. PUBLIC   BEGIN,GO,GETPARM,GOTPARM,PRINTIT
  15.  
  16. CODE     SEGMENT PARA PUBLIC 'CODE'
  17.          ASSUME CS:CODE,DS:CODE,ES:CODE
  18.          ORG     100H
  19.  
  20. BEGIN:   JMP     GO
  21.  
  22. MENU     DB      16 DUP (' '),201,44 DUP (205),187,10,13
  23.          DB      16 DUP (' '),186,'   0 - Reset [Epson]  1B,40                 ',186,10,13
  24.          DB      16 DUP (' '),186,'   1 - NLQ [Epson]    1B,78,1               ',186,10,13
  25.          DB      16 DUP (' '),186,'   2 - Set LF to 1/8" 1B,30                 ',186,10,13
  26.          DB      16 DUP (' '),186,'   3 - Compressed     0F                    ',186,10,13
  27.          DB      16 DUP (' '),186,'   4 - Elite [Epson]  1B,4D                 ',186,10,13
  28.          DB      16 DUP (' '),186,'   5 - Skip on Perf   1B,4E,8               ',186,10,13
  29.          DB      16 DUP (' '),186,'   6 - Compr Elite 8 lpi skip LM 10         ',186,10,13
  30.          DB      16 DUP (' '),186,'           0F,1B,4D,1B,30,1B,4E,8,1B,6C,20. ',186,10,13
  31.          DB      16 DUP (' '),186,'   7 - Underline ON   1B,2D,1               ',186,10,13
  32.          DB      16 DUP (' '),186,'   8 - Emphasize ON   1B,45                 ',186,10,13
  33.          DB      16 DUP (' '),186,'   9 - 11 Inch Page   1B,43,0,11            ',186,10,13
  34.          DB      16 DUP (' '),200,44 DUP (205),189
  35.          DB      10,10,10,10,13,'$'
  36. ASK1     DB      16 DUP (' '),'Enter Your Selection ->','$'
  37. INPTPARM DB      '*'
  38. NTRY_LEN DB      12
  39. PRNTCODE DB      1BH,40H,00H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  40.          DB      1BH,78H,01H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  41.          DB      1BH,30H,00H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  42.          DB      0FH,00H,00H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  43.          DB      1BH,4DH,00H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  44.          DB      1BH,4EH,08H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  45.          DB      0FH,1BH,4DH,1BH,30H,1BH,4EH,08H,1BH,6CH,20,07H
  46.          DB      1BH,2DH,01H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  47.          DB      1BH,45H,00H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  48.          DB      1BH,43H,88H,00H,00H,00H,00H,00H,00H,00H,00H,07H
  49.  
  50. SETMX    PROC    FAR
  51.  
  52. GO:      PUSH    DS      ;save psp segment address
  53.          MOV     AX,0    ;word for far return
  54.          PUSH    AX
  55.  
  56.          MOV     SI,80H  ;80H is where the input parameter
  57.          MOV     DL,[SI] ;count is left by opening procedure
  58.          CMP     DL,0    ;if there's a parm, move on
  59.          JE      GETPARM
  60.          MOV     SI,82H
  61.          MOV     AL,[SI] ;mov immediate won't work
  62.          JMP     GOTPARM
  63.  
  64. GETPARM: MOV     CX,0    ;Gene Plantz's screen scroll cls
  65.          MOV     DX,2479H
  66.          MOV     BH,7
  67.          MOV     AX,0600H    
  68.          INT     10H
  69.  
  70.          MOV     DH,3    ;row
  71.          MOV     DL,0    ;column
  72.          MOV     BH,0    ;active page
  73.          MOV     AH,2    ;locate cursor
  74.          INT     10H     
  75.          LEA     DX,MENU
  76.          MOV     AH,9    ;print string
  77.          INT     21H
  78.  
  79.          LEA     DX,ASK1 ;point to query and print it 
  80.          MOV     AH,9    ;with DOS
  81.          INT     21H
  82.  
  83.          MOV     AH,1    ;keyboard input DOS p D-17
  84.          INT     21H     ;char returned in AL
  85.  
  86. GOTPARM: SUB     AL,'0'  ;conv ASCII to byte
  87.          MUL     NTRY_LEN ;find offset in table
  88.          LEA     BX,PRNTCODE
  89.  
  90.          MOV     CX,12   ;output standard 12 chrs
  91. PRINTIT: PUSH    AX      ;save for reuse (need AL)
  92.          XLAT
  93.          MOV     DL,AL   ;from table to DL
  94.          MOV     AH,5    ;printer output
  95.          INT     21H      
  96.          POP     AX      ;get original back, increment it,
  97.          INC     AL      ;save this, + xlat + send to print
  98.          LOOP    PRINTIT
  99.  
  100.          RET     ;return to DOS
  101. SETMX    ENDP    ;close procedure
  102. CODE     ENDS    ;close segment
  103. END      BEGIN   ;close assembly
  104.  
  105.