;M80 DEMO FILE FOR DISPMEN MACRO by R. Buckman 17 NOV 85 ; .8080 FALSE EQU 0 TRUE EQU NOT FALSE MACLIB DISPMEN.LIB ;Assumes that DISPMEN macro is ;..in a file named DISPMEN.LIB ASEG ORG 100H START: LXI H,0 DAD SP SHLD OSTACK LXI SP,NSTACK ; CALL FFEED DISPMEN MENU1TOP,MENU1BOT,38 JMP PAST ; ;Here is the first menu. Each menu option is 38 characters long. ; MENU1TOP EQU $ ; '----5---10---15---20---25---30---35-38' DB 'CAL - Dial number ' DB 'COA - Carrier on (answer mode) ' DB 'COO - Carrier on (originate mode) ' DB 'CPM - Exit to CP/M (no hangup) ' DB 'DEL - Erase present savefile ' DB 'DIR - Directory (may specify drive) ' DB 'DSC - Disconnect (stay in MODEM7) ' DB 'HLP - List secondary options ' DB 'LOC - Toggle local echo on/off ' DB 'LOG - Log new disk and/or drive ' DB 'LST - Toggle LST: device on/off ' DB 'OFF - Exit to CP/M (hangup phone) ' DB 'PAR - Select data & parity mode ' DB 'RET - Retn to term mode (no data loss)' DB 'WRT - Write file (from terminal mode) ' DB 'XPR - Toggle expert mode (menu on/off)' DB 'M - Show this menu ' DB 'S - Send CP/M file ' DB 'R - Receive CP/M file ' DB 'T - Terminal mode (opt file name) ' DB 'E - Terminal mode with echo ' DB '? - Display current status ' MENU1BOT EQU $ ; ;Here is the second menu. Each option is 18 characters long. ; MENU2TOP EQU $ ; '----5---10---15-18' DB ' 1 = Menu choice A' DB ' 2 = Menu choice B' DB ' 3 = Menu choice C' DB ' 4 = Menu choice D' DB ' 5 = Menu choice E' DB ' 6 = Menu choice F' DB ' 7 = Menu choice G' DB ' 8 = Menu choice H' DB ' 9 = Menu choice I' DB '10 = Menu choice J' DB '11 = Menu choice K' MENU2BOT EQU $ ; PAST: MVI C,2 MVI E,13 CALL 5 MVI B,4 REPT: DCR B JZ KEYIN PUSH B MVI C,2 MVI E,10 CALL 5 POP B JMP REPT KEYIN: MVI C,11 CALL 5 ORA A JZ KEYIN NEXTMENU: CALL FFEED DISPMEN MENU2TOP,MENU2BOT,18 QUIT: LHLD OSTACK SPHL RET ; FFEED: MVI C,2 MVI E,12 CALL 5 RET ;SUBROUTINES USED BY DISPMEN MACRO. CRLF: PUSH PSW MVI A,13 ;PRINTS A CARRIAGE RETURN AND.. CALL CTYPE ;..LINE FEED. YOU MAY MODIFY.. MVI A,10 ;..IT TO CALL YOUR OWN ROUTINE.. CALL CTYPE ;..WHICH DUPLICATES THIS FUNCTION POP PSW RET CTYPE: PUSH B ;OUTPUTS THE CHARACTER IN [A].. PUSH D ;..TO THE SCREEN PUSH H MOV E,A MVI C,2 CALL 5 POP H POP D POP B RET ; OSTACK: DS 2 DS 32 NSTACK: END