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 / GENASM / DISPMEN.LBR / DISPDEMO.MQC / DISPDEMO.MAC
Text File  |  2000-06-30  |  3KB  |  123 lines

  1. ;M80 DEMO FILE FOR DISPMEN MACRO  by R. Buckman  17 NOV 85
  2. ;
  3. .8080
  4.  
  5. FALSE    EQU    0
  6. TRUE    EQU    NOT FALSE
  7.  
  8.     MACLIB    DISPMEN.LIB    ;Assumes that DISPMEN macro is
  9.                 ;..in a file named DISPMEN.LIB
  10.     ASEG
  11.     ORG    100H
  12.  
  13. START:    LXI    H,0
  14.     DAD    SP
  15.     SHLD    OSTACK
  16.     LXI    SP,NSTACK
  17. ;
  18.     CALL    FFEED
  19.     DISPMEN    MENU1TOP,MENU1BOT,38
  20.     JMP    PAST
  21. ;
  22. ;Here is the first menu.  Each menu option is 38 characters long.
  23. ;
  24. MENU1TOP EQU    $
  25. ;        '----5---10---15---20---25---30---35-38'
  26.     DB    'CAL - Dial number                     '
  27.     DB    'COA - Carrier on (answer mode)        '
  28.     DB    'COO - Carrier on (originate mode)     '
  29.     DB    'CPM - Exit to CP/M (no hangup)        '
  30.     DB    'DEL - Erase present savefile          '
  31.     DB    'DIR - Directory (may specify drive)   '
  32.     DB    'DSC - Disconnect (stay in MODEM7)     '
  33.     DB    'HLP - List secondary options          '
  34.     DB    'LOC - Toggle local echo on/off        '
  35.     DB    'LOG - Log new disk and/or drive       '
  36.     DB    'LST - Toggle LST: device on/off       '
  37.     DB    'OFF - Exit to CP/M (hangup phone)     '
  38.     DB    'PAR - Select data & parity mode       '
  39.     DB    'RET - Retn to term mode (no data loss)'
  40.     DB    'WRT - Write file (from terminal mode) '
  41.     DB    'XPR - Toggle expert mode (menu on/off)'
  42.     DB    'M   - Show this menu                  '
  43.     DB    'S   - Send CP/M file                  '
  44.     DB    'R   - Receive CP/M file               '
  45.     DB      'T   - Terminal mode (opt file name)   '
  46.     DB    'E   - Terminal mode with echo         '
  47.     DB    '?   - Display current status          '
  48. MENU1BOT EQU    $
  49. ;
  50. ;Here is the second menu.  Each option is 18 characters long.
  51. ;
  52. MENU2TOP EQU    $
  53. ;        '----5---10---15-18'
  54.     DB    ' 1 = Menu choice A'
  55.     DB    ' 2 = Menu choice B'
  56.     DB    ' 3 = Menu choice C'
  57.     DB    ' 4 = Menu choice D'
  58.     DB    ' 5 = Menu choice E'
  59.     DB    ' 6 = Menu choice F'
  60.     DB    ' 7 = Menu choice G'
  61.     DB      ' 8 = Menu choice H'
  62.     DB    ' 9 = Menu choice I'
  63.     DB    '10 = Menu choice J'
  64.     DB    '11 = Menu choice K'
  65. MENU2BOT EQU    $
  66. ;
  67. PAST:    MVI    C,2
  68.     MVI    E,13
  69.     CALL    5
  70.     MVI    B,4
  71. REPT:    DCR    B
  72.     JZ    KEYIN
  73.     PUSH    B
  74.     MVI    C,2
  75.     MVI    E,10
  76.     CALL    5
  77.     POP    B
  78.     JMP    REPT
  79.  
  80. KEYIN:    MVI    C,11
  81.     CALL    5
  82.     ORA    A
  83.     JZ    KEYIN
  84.     
  85. NEXTMENU:
  86.     CALL    FFEED
  87.     DISPMEN MENU2TOP,MENU2BOT,18
  88.  
  89. QUIT:    LHLD    OSTACK
  90.     SPHL
  91.     RET
  92. ;
  93. FFEED:    MVI    C,2
  94.     MVI    E,12
  95.     CALL    5
  96.     RET
  97.  
  98. ;SUBROUTINES USED BY DISPMEN MACRO.
  99.  
  100. CRLF:    PUSH    PSW
  101.     MVI    A,13    ;PRINTS A CARRIAGE RETURN AND..
  102.     CALL    CTYPE    ;..LINE FEED.  YOU MAY MODIFY..
  103.     MVI    A,10    ;..IT TO CALL YOUR OWN ROUTINE..
  104.     CALL    CTYPE    ;..WHICH DUPLICATES THIS FUNCTION
  105.     POP    PSW
  106.     RET
  107.  
  108. CTYPE:    PUSH    B    ;OUTPUTS THE CHARACTER IN [A].. 
  109.     PUSH    D    ;..TO THE SCREEN
  110.     PUSH    H
  111.     MOV    E,A
  112.     MVI    C,2
  113.     CALL    5
  114.     POP    H
  115.     POP    D
  116.     POP    B
  117.     RET
  118. ;
  119. OSTACK:    DS    2
  120.     DS    32
  121. NSTACK:
  122.     END
  123.