******************************************
*                                        *
*   SYSTEM MENU FOR ACCOUNTING PACKAGE   *
*   SYS.COM by Dennis E. Baker 6/03/82   *
*                                        *
******************************************

ACC      EQU   0B6A3H     ;FIXED POINT ACCUMULATOR
CHAIN    EQU   0B5A4H     ;ROUTINE CHAINS PROGRAMS
CLR79    EQU   0B56CH     ;CLEAR 79 COLUMNS
CLSCRN   EQU   0B527H     ;CLEAR CONSOLE DISPLAY
CRLF     EQU   0B58CH     ;CARRIAGE RETURN ROUTINE
CURSOR   EQU   0B26AH     ;ROUTINE SETS CRT CURSOR
DBCRLF   EQU   0B589H     ;DOUBLE CRLF
EVALUE   EQU   0B19DH     ;STRING NUMERICAL CONVERT
HIZCHK   EQU   0B0BBH     ;CHECK FOR ACCUM < 256
INPUT    EQU   0B4B8H     ;KEYBOARD INPUT ROUTINE
IOADDR   EQU   0B6BCH     ;I/O ADDRESS POINTER
MVPRNT   EQU   0B55BH     ;MOVE AND PRINT BUFFER
OUTROW   EQU   0B52AH     ;STRING OUTPUT ROUTINE
PBUFER   EQU   0B6BFH     ;PRINT BUFFER
PRNTBF   EQU   0B55EH     ;OUTPUT BUFFER TO SCREEN
SETCON   EQU   0B59EH     ;SET CONSOLE OUTPUT
T        EQU   0FFH       ;TERMINATOR CHARACTER

         ORG   100H       ;COM FILE START

SYSTEM:  CALL  SETCON     ;SET CONSOLE DEVICE
SCLR:    CALL  CLSCRN     ;CLEAR SCREEN
         CALL  DBCRLF
         MVI   A,14       ;LINE COUNT
         STA   LCNTR      ;TO COUNTER
         CALL  CLR79
         LXI   H,2323H    ;##
         SHLD  PBUFER+10
         LXI   D,PBUFER+10
         LXI   H,PBUFER+13
         MVI   B,56
         CALL  MVPRNT
         LXI   H,SYSMEN   ;MENU LOCATION
MENLP:   CALL  OUTROW     ;OUTPUT LINE
         CALL  CRLF       ;CARR RET & LINE FEED
         LXI   H,LCNTR    ;CNTR LOC
         DCR   M          ;CNTR-1
         LHLD  IOADDR     ;RECALL LAST ADDRESS
         JNZ   MENLP      ;IF NOT LAST LINE
         CALL  PRNTBF
         LXI   H,1015H
         CALL  CURSOR
         LXI   H,SYSPRM   ;GET PROMPT LOC
         CALL  INPUT      ;INPUT CHOICE
         CALL  EVALUE     ;GET NUMBER
         CALL  DBCRLF
         CALL  HIZCHK     ;TEST FOR <256
         JNZ   SCLR       ;TOO MUCH
         LDA   ACC
         ORA   A          ;STATUS
         JZ    SCLR       ;NO ZERO
         JM    SCLR       ;OR NEG
         CPI   10         ;COMPARE 10
         JP    SCLR       ;>9 NO
         ADD   A          ;X2
         MOV   E,A! MVI D,0
         LXI   H,ABBREV-2
         DAD   D
         MOV   E,M! INX H
         MOV   D,M! XCHG
         SHLD  FNAMES+1
         LXI   H,FNAMES   ;FILE NAMES LOC
         CALL  CHAIN      ;CALL PROGRAM
         JMP   SCLR       ;IF NOT FOUND ON DISK

SYSMEN:  DB    138,35,35,183,35,35,T
         DB    138,35,35,144,'SOUTHERN OFFICE SYSTEMS'
         DB    144,35,35,T
         DB    138,35,35,150,'MASTER MENU',150,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,133,'1. JOURNAL DATA ENTRY'
         DB    132,'5. PERSONNEL/PAYROLL',133,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,133,'2. ACCOUNTS RECEIVABLE'
         DB    131,'6. SPECIAL EDUCATION',133,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,133,'3. ACCOUNTS PAYABLE'
         DB    134,'7. FUND ACCOUNTING',135,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,133,'4. INVENTORY CONTROL'
         DB    133,'8. GENERAL LEDGER',136,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,158,'9. WORD PROCESSOR'
         DB    136,35,35,T
         DB    138,35,35,183,35,35,T
SYSPRM:  DB    'YOUR CHOICE',T
ABBREV:  DB    'JRARAPINPRSEFAGLWP'
FNAMES:  DB    0,'JR1    '
LCNTR:   DB    0          ;MENU LINE COUNTER
         END
 134,'7. FUND ACCOUNTING',135,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,133,'4. INVENTORY CONTROL'
         DB    133,'8. GENERAL LEDGER',136,35,35,T
         DB    138,35,35,183,35,35,T
         DB    138,35,35,158,'9. WORD PROCESSOR'
         DB    136,35,35,T
         DB    138,35,35,183,35,35,T
SYSPRM:  DB    'YOUR CHOICE',T
ABBREV:  DB    '