! MNFAX - Master Menu Program for Faxing ! ! Notice: The process and all the routines contained herein are ! the proprietary properties and trade secrets of Mini- ! Computer Business Applications, Inc. and Alpha Micro- ! systems. Except as provided by license agreement, ! this code shall not be duplicated, used, or disclosed ! for any purpose or reason, in whole or in part, without ! the express written consent of Alpha Microsystems. ! MAP1 PROGRAM'NAME,S,6,"MNFAX" MAP1 PROGRAM'DESC,S,33,"FAX MAIN MENU" ! MAP1 MNU'AOPT,S,6 ! application option choosen MAP1 MNU'MOPT,F,6 ! menu option choosen MAP1 MNU'MCNT,F,6 ! menu array count MAP1 MNU(32) ! 31-report menu, 32-sys management MAP2 MNU'NAM,S,10 ! menu item program name MAP2 MNU'CM1,S,1 MAP2 MNU'DSC,S,33 ! menu item description MAP2 MNU'CM2,S,1 MAP2 MNU'LVL,S,3 ! menu item security 0-254, 255 hide MAP2 MNU'CM3,S,1 MAP2 MNU'PSW,S,6 ! menu item password MAP1 MNU'FACT,S,50 ! option log file account MAP1 MNU'FNAM,S,50 ! option run file ! ! !!INCLUDE MAP:CMESP.MAP !**************************************************************************** !* * !* SYSSTD.BSI - Standard AlphaBASIC / ESP development definitions * !* *** Special version without *** * !* *** auto system record load *** * !* * !**************************************************************************** ! ! NOTICE ! ! All rights reserved. This software is the property of Alpha Microsystems ! and the material contained herein is the proprietary property and trade ! secrets of Alpha Microsystems, embodying substantial creative efforts and ! confidential information, ideas and expressions, no part of which may be ! reproduced or transmitted in any form or by any means, electronic, ! mechanical, or otherwise, including photocopying or input into any ! information storage or retrieval system without the express written ! permission of Alpha Microsystems. ! ! CAUTION: Unauthorized distribution or reproduction of this material may ! subject you to legal action. ! ! Copyright (C) 1984 - Distributed Management Systems, Inc. ! Copyright (C) 1992 - Alpha Microsystems ! ! Edit history: ! ![102] 07/15/90 Updated to support 8-bit characters. /RJH ![101] 07/05/88 Add option flag definitions for INITRM and ERRDSP. /CAE ![100] 02/12/84 Designed and implemented by Brett R. Halle. ! ! ! Standard data definitions. ! MAP1 MENUS , X, 4096 ! Menu buffer MAP1 SCREEN , X, 8192 ! Screen buffer. MAP1 INIT , F, 6 ! INITRM control. MAP1 CHAR , F, 6 ! Return character. MAP1 FIELD , F, 6 ! Return field number. MAP1 FALSE , F, 6, 0 ! Logical False is 0. MAP1 TRUE , F, 6, NOT FALSE ! Logical True is NOT false. ! ! ESP Special Edit Flags. ! ! These constants are used to set/test flag values in the high order ! byte of the CHAR variable as used in a GTSCR call. ! ! ESP'POSTEDIT and ESP'PREEDIT are returned by GTSCR to indicate ! an interrupt condition occured. ! ! ESP'REPAINT may be passed to GTSCR to update the display of a ! screen that may have been clobbered by direct IO to the ! CRT display (e.g. PRINT TAB(-1,9);) ! ! ESP'RESETCHANGE may be passed to GTSCR to force a post-edit ! interrupt on change condition for the current field. This is ! useful when an error has been detected during a post-edit ! interrupt on change process and the user is placed back into ! the field to make a correction. ! ! ESP'DAF may be passed to GTSCR to force the reevaluation of all ! field formulas and redisplay of all fields. ! MAP1 ESP'POSTEDIT, F, 6, 32768 ! Post edit interrupt flag. MAP1 ESP'PREEDIT, F, 6, 16384 ! Pre edit interrupt flag. MAP1 ESP'REPAINT, F, 6, 8192 ! Repaint ESP screen flag. MAP1 ESP'RESETCHANGE,F, 6, 2048 ! Reset field change detect. MAP1 ESP'DAF, F, 6, 1024 ! Redisplay all fields. ! ! ESP key-press constants. ! MAP1 ESP'MENU, F, 6, 128+27 ! MENU key (Esc Esc). MAP1 ESP'EXECUTE, F, 6, 128+ASC("X") ! EXECUTE key (Esc X). MAP1 ESP'UPARROW, F, 6, 11 ! UP ARROW key (^K). MAP1 ESP'NXTSCREEN, F, 6, 20 ! NEXT SCREEN Key (^T). MAP1 ESP'PRVSCREEN, F, 6, 18 ! PREV SCREEN Key (^R). MAP1 ESP'NXTMATCH, F, 6, 24 ! NEXT MATCH Key (^X). MAP1 ESP'BEGLIN, F, 6, 21 ! BEG LINE (^U). MAP1 ESP'CR, F, 6, 13 ! Carriage return. MAP1 ESP'F1, F, 6, 128+1 ! F1 - Unshifted/shifted. MAP1 ESP'F2, F, 6, 128+2 ! F2 - Unshifted/shifted. MAP1 ESP'F3, F, 6, 128+3 ! F3 - Unshifted/shifted. MAP1 ESP'F4, F, 6, 128+4 ! F4 - Unshifted/shifted. MAP1 ESP'F5, F, 6, 128+5 ! F5 - Unshifted/shifted. MAP1 ESP'F6, F, 6, 128+6 ! F6 - Unshifted/shifted. MAP1 ESP'F7, F, 6, 128+7 ! F7 - Unshifted/shifted. MAP1 ESP'F8, F, 6, 128+8 ! F8 - Unshifted/shifted. MAP1 ESP'F9, F, 6, 128+9 ! F9 - Unshifted/shifted. MAP1 ESP'F10, F, 6, 128+10 ! F10- Unshifted/shifted. MAP1 ESP'F11, F, 6, 128+11 ! F11- Unshifted/shifted. MAP1 ESP'F12, F, 6, 128+12 ! F12- Unshifted/shifted. ! ! Extended characters for 8-bit mode. ! [102] ! MAP1 ESP'XMENU, F, 6, 256+27 ! MENU key (Esc Esc). MAP1 ESP'XEXECUTE, F, 6, 256+ASC("X")! EXECUTE key (Esc X). MAP1 ESP'XF1, F, 6, 256+1 ! F1 - Unshifted/shifted. MAP1 ESP'XF2, F, 6, 256+2 ! F2 - Unshifted/shifted. MAP1 ESP'XF3, F, 6, 256+3 ! F3 - Unshifted/shifted. MAP1 ESP'XF4, F, 6, 256+4 ! F4 - Unshifted/shifted. MAP1 ESP'XF5, F, 6, 256+5 ! F5 - Unshifted/shifted. MAP1 ESP'XF6, F, 6, 256+6 ! F6 - Unshifted/shifted. MAP1 ESP'XF7, F, 6, 256+7 ! F7 - Unshifted/shifted. MAP1 ESP'XF8, F, 6, 256+8 ! F8 - Unshifted/shifted. MAP1 ESP'XF9, F, 6, 256+9 ! F9 - Unshifted/shifted. MAP1 ESP'XF10, F, 6, 256+10 ! F10- Unshifted/shifted. MAP1 ESP'XF11, F, 6, 256+11 ! F11- Unshifted/shifted. MAP1 ESP'XF12, F, 6, 256+12 ! F12- Unshifted/shifted. ! ! PRTSCR control values. ! MAP1 ESP'FLRCHR, F, 6, 32 ! Filler character (space). MAP1 ESP'PRTCTL, F, 6 ! PRTSCR control value: MAP1 ESP'PRTTTL, F, 6, (256*1) ! Print titles. MAP1 ESP'PRTHDR, F, 6, (256*2) ! Print detail headers. MAP1 ESP'PRTDET, F, 6, (256*4) ! Print detail level. MAP1 ESP'PRTST1, F, 6, (256*8) ! Print subtotal level 1. MAP1 ESP'PRTST2, F, 6, (256*16) ! Print subtotal level 2. MAP1 ESP'PRTST3, F, 6, (256*32) ! Print subtotal level 3. MAP1 ESP'PRTGTL, F, 6, (256*64) ! Print grand totals. ! ! INITRM control options. ! MAP1 INITRM'NCS, F, 6, (2^0) ! Do NOT clear screen. MAP1 INITRM'NCA, F, 6, (2^1) ! Do NOT clear accumulators. MAP1 INITRM'NSL, F, 6, (2^2) ! Do NOT change sts lines. MAP1 INITRM'NPD, F, 6, (2^3) ! Do NOT read printer defs. MAP1 INITRM'NEW, F, 6, (2^5) ! Characters are passed in 8-bit mode. [102] MAP1 INITRM'RST, F, 6, (2^31) ! Reset terminal status. ! (Exit data mode and allow ! standard BASIC input.) ! ! ERRDSP control options. ! MAP1 ERRDSP'NAK, F, 6, (2^0) ! No acknowledgement desired. MAP1 ERRDSP'NBL, F, 6, (2^1) ! No blink desired. MAP1 ERRDSP'NDG, F, 6, (2^2) ! No ding desired. MAP1 ERRDSP'TTY, F, 6, (2^15) ! Output without CRT features. ! ! !END-SYSSTD.BSI ! ++INCLUDE BAS:TOOLBX.BSI ! MAP1 FILNAM,S,25 MAP1 INXCTL,F,6 MAP1 RTNCDE,F,6 MAP1 ENTRY,S,80 MAP1 CRLF,S,4,CHR(13)+CHR(10) MAP1 X,F MAP1 Y,F 100 MNU'MCNT=3 110 MNU( 1)="MNFAX.RUN ,Fax Queue , 0, " 120 MNU( 2)="MNFAX.RUN ,Create/Send Fax , 0, " 130 MNU( 3)="MNFAX.RUN ,Display Fax Log File , 0, " ! ! 140 FILEBASE 1 : XCALL NOECHO : SIGNIFICANCE 11 ! 150 FILNAM="MNMNU.SC2" 160 XCALL FETCH,FILNAM,MENUS,INXCTL 170 IF INXCTL THEN GOTO ESP'ERR ! 180 X=(.LEVEL)*2 : XCALL SETUSR,2,X : XCALL SETUSR,3,X ! 190 INIT=INITRM'NCS+INITRM'NCA+INITRM'NSL+INITRM'NPD MENU'INIT: 200 XCALL INITRM,PROGRAM'DESC,"QUORUM",INIT 210 XCALL SETUSR,5,120 220 XCALL OPNSCR,MENUS 230 XCALL HIDFLD,MENUS,TRUE,11,13,15,17,19,21,23,25 240 XCALL HIDFLD,MENUS,TRUE,26,28,30,32,34,36,38,40 MENU'LOOP: 250 IF MNU'MCNT<9 THEN FIELD=3 : X=1 ELSE FIELD=11 : & IF MNU'MCNT<17 THEN X=2 ELSE X=1 260 FOR Y=1 TO MNU'MCNT 270 ENTRY=Y USING "##. "+MNU'DSC(Y) 280 XCALL SETVAL,MENUS,FIELD,ENTRY 290 XCALL SETFSC,MENUS,FIELD,VAL(MNU'LVL(Y)) 300 XCALL TOOLBX,TBX'HIDFLD,MENUS,FIELD,FALSE 310 FIELD=FIELD+X : IF X=2 AND Y=8 THEN FIELD=FIELD-1 320 NEXT Y 330 FIELD=1 : CHAR=ESP'BEGLIN+ESP'REPAINT 340 XCALL SETVAL,MENUS,FIELD,"" MENU'ENTRY: 350 XCALL GTSCR,MENUS,CHAR,FIELD ! 360 IF (CHAR AND 255) = ESP'MENU THEN & MNU'MOPT=(-1) : GOTO CLSEUP ! 370 IF (CHAR AND ESP'POSTEDIT) THEN & ON FIELD GOTO MENU'CHK,MENU'PSW ! 380 GOTO MENU'ENTRY ! MENU'CHK: 390 XCALL GETVAL,MENUS,FIELD,MNU'AOPT : MNU'MOPT=0 400 IF MNU'AOPT="" THEN CHAR=ESP'RESETCHANGE : GOTO MCHK'10 MCHK'4: 410 MNU'MOPT = VAL(MNU'AOPT) 420 IF (MNU'MOPT<1 OR MNU'MOPT>MNU'MCNT) THEN CHAR=ESP'RESETCHANGE : & XCALL ERRDSP,"Invalid selection" : GOTO MCHK'10 MCHK'6: 430 IF MNU'MCNT<9 THEN X=MNU'MOPT+2 ELSE X=MNU'MOPT+10 : & IF MNU'MCNT<17 THEN X=9+(MNU'MOPT*2) : IF MNU'MOPT>8 THEN X=X-1 440 XCALL GETFSC,MENUS,X,INXCTL 450 IF INXCTL=0 THEN CHAR=ESP'RESETCHANGE : & XCALL ERRDSP, "Security clearance is not sufficient for the selection" : & GOTO MCHK'10 460 IF MNU'PSW(MNU'MOPT)#"" THEN ELSE GOTO WINDUP 470 GOTO MENU'ENTRY MCHK'10: 480 XCALL SETVAL,MENUS,1,"" 490 GOTO MENU'ENTRY MENU'PSW: 500 XCALL GETVAL,MENUS,FIELD,ENTRY 510 XCALL SETVAL,MENUS,FIELD,"" 520 IF ENTRY = "" THEN GOTO MCHK'10 530 IF ENTRY <> MNU'PSW(MNU'MOPT) THEN CHAR=ESP'RESETCHANGE : & XCALL ERRDSP,"Invalid Password" : GOTO MENU'ENTRY WINDUP: 540 XCALL STRIP,MNU'NAM(MNU'MOPT) 550 MNU'FACT=":R"+CRLF+"RUN " 560 MNU'FNAM=MNU'NAM(MNU'MOPT) 570 IF INSTR(1,MNU'NAM(MNU'MOPT),PROGRAM'NAME)=0 THEN GOTO WU'2 580 ON MNU'MOPT GOTO FAXQUE,FAXEDT,FAXSTS 590 XCALL SETVAL,MENUS,2,"" : GOTO MCHK'10 WU'2: 600 LOOKUP MNU'FNAM,INXCTL : IF INXCTL=0 THEN CHAR=ESP'RESETCHANGE : & XCALL ERRDSP,"Selection is not available or under construction" : & XCALL SETVAL,MENUS,2,"" : GOTO MCHK'10 CLSEUP: EXITUP: 610 IF MNU'MOPT>0 THEN ELSE GOTO EU'2 620 X=INSTR(1,MNU'FACT,"RUNDOS") 630 IF X=0 THEN XCALL WAIT,3 : CHAIN MNU'FACT+MNU'FNAM 640 XCALL CLSSCR,MENUS 650 INIT=INITRM'NCA+INITRM'NSL+INITRM'NPD+INITRM'RST 660 XCALL INITRM,PROGRAM'DESC,"QUORUM",INIT 670 RUNDOS MNU'FACT[(X+7),50]+MNU'FNAM 680 IF MNU'MOPT#999 THEN & XCALL ERRDSP," Press any key to return to menu " 690 INIT=0 : GOTO MENU'INIT EU'2: 700 XCALL CLSSCR,MENUS : XCALL INITRM 710 END ! FAXQUE: 720 MNU'FACT="RUNDOS " 730 MNU'FNAM="SYS:FAXQUE.LIT" 740 GOTO WU'2 ! FAXEDT: 750 FILNAM="MNFAX.SC1" 760 XCALL FETCH,FILNAM,SCREEN,INXCTL 770 IF INXCTL THEN GOTO ESP'ERR ! 780 XCALL OPNSCR,SCREEN FAXEDT'INIT: 790 FIELD=1 : CHAR=ESP'BEGLIN+ESP'REPAINT 800 XCALL SETVAL,SCREEN,FIELD,"" FAXEDT'ENTRY: 810 XCALL GTSCR,SCREEN,CHAR,FIELD ! 820 IF (CHAR AND 255) = ESP'MENU THEN & GOTO FAXEDT'CLSEUP ! !!!!! IF (CHAR AND ESP'POSTEDIT) THEN & !!!!! ON FIELD GOTO ! 830 GOTO FAXEDT'ENTRY FAXEDT'CLSEUP: 840 XCALL CLSSCR,SCREEN,1 850 CHAR=ESP'RESETCHANGE : GOTO MCHK'10 !!!!! INIT=0 : GOTO MENU'INIT ! FAXSTS: 860 MNU'FACT="RUNDOS " 870 MNU'FNAM="SYS:FAXSTS.LIT" 880 GOTO WU'2 ! ESP'ERR: 890 PRINT "ESP ERROR = ";INXCTL 900 END !