home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / PROGRAMS / LIST / NECSET.ASM < prev    next >
Assembly Source File  |  2000-06-30  |  3KB  |  136 lines

  1. ;    PROGRAM NECSET.ASM
  2. ;
  3. ;    WRITTEN BY KENT WALKER
  4. ;    OCTOBER, 1982
  5. ;
  6. ;    8080 ASSEMBLER CODE
  7. ;    USING CP/M BDOS FUNCTIONS
  8. ;
  9. ;    THIS PROGRAM IS DESIGNED
  10. ;    TO SET THE
  11. ;    >>>>>>>>NEC-8023A-C<<<<<<<<
  12. ;    PRINTER PARAMETERS
  13. ;    VIA KEYBOARD INPUT.
  14. ;
  15. ;    A TABLE OF OPTIONS IS PRESENTED ON THE MONITOR.
  16. ;    INPUT IS TERMINATED BY A CARRIAGE RETURN.
  17. ;    INPUT CHARACTERS MUST BE IN UPPER CASE.
  18. ;
  19.     ORG    100H
  20. BDOS    EQU    0005H
  21. INCHR    EQU    1    ;KEYBOARD INPUT FUNCTION
  22. LSTCHR    EQU    5    ;CHARACTER TO LIST DEVICE FUNCTION
  23. CR    EQU    000DH    ;CARRIAGE RETURN
  24. LF    EQU    000AH    ;LINE FEED
  25. TAB    EQU    0009H    ;TAB CHARACTER
  26. CLRSCR    EQU    001AH    ;CLEAR SCREEN - CTRL Z - OSBORNE & TELEVIDEO
  27. ESC    EQU    001BH    ;ESCAPE CODE
  28. SO    EQU    000EH    ;SOCODE
  29. SI    EQU    000FH    ;SI CODE
  30. PRSTR    EQU    9    ;PRINT STRING FUNCTION
  31. BOOT    EQU    0    ;WARM BOOT
  32. ;
  33.     LXI    SP,STACK    ;SET UP STACK
  34.     LXI    D,MESAGE    ;POINT TO MESSAGE
  35.     MVI    C,PRSTR        ;STRING PRINT FUNCTION
  36.     CALL    BDOS
  37. ;
  38. LOOP    MVI    C,INCHR
  39.     CALL    BDOS
  40.     CPI    CR        ;CARRIAGE RETURN ENDS INPUT
  41.     JZ    BOOT
  42. ;
  43.     LXI    H,PICA        ;TEST FOR 'B'
  44.     CPI    'B'
  45.     JZ    LIST
  46. ;
  47.     LXI    H,ELITE        ;TEST FOR 'C'
  48.     CPI    'C'
  49.     JZ    LIST
  50. ;
  51.     LXI    H,MICRON    ;TEST FOR 'D'
  52.     CPI    'D'
  53.     JZ    LIST
  54. ;
  55.     LXI    H,PROP        ;TEST FOR 'P'
  56.     CPI    'P'
  57.     JZ    LIST
  58. ;
  59.     LXI    H,EMPH        ;TEST FOR 'E'
  60.     CPI    'E'
  61.     JZ    LIST
  62. ;
  63.     LXI    H,NOEMPH    ;TEST FOR 'F'
  64.     CPI    'F'
  65.     JZ    LIST
  66. ;
  67.     LXI    H,DBLWD        ;TEST FOR '2'
  68.     CPI    '2'
  69.     JZ    LIST
  70. ;
  71.     LXI    H,SNGLWD    ;TEST FOR '1'
  72.     CPI    '1'
  73.     JZ    LIST
  74. ;
  75.     LXI    H,SIXLPI    ;TEST FOR '6'
  76.     CPI    '6'
  77.     JZ    LIST
  78. ;
  79.     LXI    H,EITLPI    ;TEST FOR '8'
  80.     CPI    '8'
  81.     JZ    LIST
  82. ;
  83.     JMP    LOOP
  84. ;
  85. ;
  86. ;    SUBROUTINE TO OUTPUT ESCAPE CODE TO PRINTER
  87. ;
  88. LIST    MOV    E,M    ;MOVE CHAR TO REG E
  89.     PUSH    H    ;SAVE STRING POINTER
  90.     MVI    C,LSTCHR ;SET UP FOR LINE PRINTER
  91.     CALL     BDOS    ;PRINT CHARACTER
  92.     POP    H    ;RESTORE STRING POINTER
  93.     INX    H    ;POINT TO NEXT CHAR
  94.     MOV     A,M    ;MOVE NEXT CHAR TO REG A
  95.     CPI    '$'    ;IS IT THE TERMINATOR ($) ?
  96.     JZ    LOOP    ;RETURN IF YES
  97.      JMP    LIST    ;ELSE REPEAT
  98. ;
  99. ;    END OF SUBROUTINE
  100. ;
  101. ;
  102. ;        MESSAGES
  103. ;
  104. MESAGE    DB    CLRSCR,TAB,'NEC-8023 PRINTER FUNCTIONS',CR,LF,LF
  105.     DB    TAB,'B = 10 CHARACTERS PER INCH',CR,LF
  106.     DB    TAB,'C = 12 CHARACTERS PER INCH',CR,LF
  107.     DB    TAB,'D = 17 CHATACTERS PER INCH',CR,LF
  108.     DB    TAB,'P = PROPORTIONAL SPACING'    ,CR,LF,LF
  109.     DB    TAB,'E = EMPHASIZED PRINT'    ,CR,LF
  110.     DB    TAB,'F = NON-EMPHASIZED PRINT'    ,CR,LF,LF
  111.     DB    TAB,'2 = DOUBLE WIDTH PRINT'    ,CR,LF
  112.     DB    TAB,'1 = SINGLE WIDTH PRINT'    ,CR,LF,LF
  113.     DB    TAB,'6 = 6 LINES PER INCH'    ,CR,LF
  114.     DB    TAB,'8 = 8 LINES PER INCH'    ,CR,LF,LF
  115.     DB    '$'
  116. ;
  117. ;    TABLE OF PRINTER ESCAPE CODES
  118. ;
  119. PICA    DB    ESC,'N$'
  120. ELITE    DB    ESC,'E$'
  121. MICRON    DB    ESC,'Q$'
  122. PROP    DB    ESC,'P$'
  123. EMPH    DB    ESC,'!$'
  124. NOEMPH    DB    ESC,'"$'
  125. DBLWD    DB    SO, '$'
  126. SNGLWD    DB    SI, '$'    
  127. SIXLPI    DB    ESC,'A$'
  128. EITLPI    DB    ESC,'B$'
  129. ;
  130. ;    STACK AREA    
  131. ;
  132.     DS    10H
  133. STACK
  134. ;
  135.     END
  136.