!*************************** AMUS Program Label ****************************** ! Filename: SYSMGR.BAS Date: 05/30/89 ! Category: UTIL Hash Code: Version: 1.0 ! Initials: DD Name: DAVE DRAKE ! Company: DOUBLE-D SOFTWARE SERVICES Telephone #: (702) 438-2173 ! Related Files: DSKPPN.SBR ! Min. Op. Sys.: N/A Expertise Level: INT ! Special: REQUIRES MOST Alpha Accounting SBR's ! Description: File directory Program - Used to track location and information ! on files used in an application - also specifies information ! about report programs used in an application ! !NOTE: ++INCLUDE files have been copied into the program and the ++INCLUDES ! have been commented out. ! ! Apologies to whomever wrote DSKPPN. It was on the system I was using ! when I wrote this program. It is not essential to the operation and ! the subroutine that accesses it may be commented out. ! ! This program is the hub program for a somewhat complete set of model ! programs for data entry and report generation. I wrote several ! rather complex applications using these program models. They ! use primarily ISAM, but can easily access several different implementations ! of random and sequential files. If anyone is interested in the complete ! set of models and a copy of the source for a complete application written ! using these models, let me know. I'm sure something could be worked out. ! !***************************************************************************** !********************************************************************* ! ! Copyright (c) 1984,1989 Double-D Software Services ! ! Double-D Software Services Dave Drake ! 4924 Chantilly (702) 438-2173 ! Las Vegas, Nv. 89110 ! ! PROGRAM NAME: SYSMGR.BAS AUTHOR: DAVE DRAKE ! ! DATE CREATED: 05/06/84 ! ! DESCRIPTION: System Management Master File Maintenance ! ! CHANGE HISTORY: ! DATE BY DESCRIPTION !********************************************************************* !--------------------------------------------------------------------- ! RESIDENT MAP FOR FILE MAINTENANCE PROGRAMS !--------------------------------------------------------------------- MAP1 BACK'OUT'PROG,S,4,"MENU" !program to return to MAP1 TOTAL'ENTRY'1,F,6,7 MAP1 TOTAL'ENTRY'2,F,6,18 MAP1 TOTAL'ENTRY'3,F,6,18 MAP1 CNTRL'1(7),S,10 MAP1 CNTRL'2(24),S,10 MAP1 CNTRL'3(18),S,10 MAP1 TAG'NO'1,X,2,22 MAP1 TAG'NO'2,X,2,36 MAP1 TAG'NO'3,X,2,20 MAP1 SET'FLAG,F,6 MAP1 NO'FLAG,F,6,0 MAP1 FILE'FLAG,F,6,1 MAP1 REPORT'FLAG,F,6,2 MAP1 FILE'PATH,S,25 MAP1 BLOCKS,F,6 MAP1 BUF MAP2 W(40),B,2 MAP1 BYTES,@BUF MAP2 B(80),B,1 MAP1 COMMAND,S,80 MAP1 CRLF,S,2 MAP1 FDATA(11),S,6 MAP1 ORG'DSK,S,5 MAP1 ORG'PPN,S,7 MAP1 DUMMY'RANDOM !USED TO READ CONTROL INFO FROM MAP2 DUM'FLAG'1,S,1 !ALPHA ACCOUNTING FILES MAP2 DUM'FLAG'2,S,1 MAP2 DUM'COUNTS MAP3 DUM'ORGCNT,F,6 MAP3 DUM'RECCNT,F,6 MAP3 DUM'MAXCNT,F,6 MAP3 DUM'DELCNT,F,6 MAP2 DUM'FLAG'3,S,1 MAP2 DUM'FILLER,X,485 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! AREA FOR FILE LAYOUT MAPS - INCLUDE ...FIL.MAP FOR EACH FILE USED !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ++INCLUDE SYSMGR.MAP !*****START OF SYSMGR.MAP********************************************** ! ! Copyright (c) 1984,1989 Double-D Software Services ! ! Double-D Software Services Dave Drake ! 4924 Chantilly (702) 438-2173 ! Las Vegas, Nv. 89110 ! ! PROGRAM NAME: SYSMGR.MAP ! ! DATE CREATED: 05/06/84 ! ! DESCRIPTION: MAP OF SYSTEM MANAGEMENT VARIABLES ! ! CHANGE HISTORY: ! ! DATE BY DESCRIPTION !********************************************************************* MAP1 SYSMGR'CHANNEL,B,1,99 MAP1 SYSMGR'PATH,S,10,"SYSMGR.DAT" MAP1 SYSMGR'REC'SIZE,F,6,256 MAP1 SYSMGR'RECNO,F,6,0 MAP1 SYSMGR'STATUS,F,6 MAP1 SYSMGR'ERROR,F,6 MAP1 SYSMGR'BLOCKS,F,6,44 MAP1 SYSMGR'RECORDS,F,6,88 MAP1 SYSMGR'KEY,F,6 !USED TO PASS INFO TO SYSMGR MAP1 SYSMGR'PASS'KEY,F,6 !USED TO PASS INFO TO PROGRAM MAP1 SYSMGR'CONTROL MAP2 SYSMGR'ORGCNT,F,6,0 MAP2 SYSMGR'RECCNT,F,6,0 MAP2 SYSMGR'MAXCNT,F,6,0 MAP2 SYSMGR'DELCNT,F,6,0 MAP2 SYSMGR'LST'KEY,F,6,0 MAP1 SYSMGR'FLAGS MAP2 SYSMGR'ACC'FLAG,X,1 MAP2 SYSMGR'MOD'FLAG,X,1 MAP1 LOOKUP'FILE,S,6 MAP1 LOOKUP'REPORT,S,6 MAP1 LOOKUP'RECNO,F,6 MAP1 SYSMGR'RECORD,X,256 MAP1 SYSTEM'RECORD MAP2 SYSTEM'NAME,S,30 MAP2 SYSTEM'ADDR1,S,30 MAP2 SYSTEM'ADDR2,S,30 MAP2 SYSTEM'ADDR3,S,30 MAP2 SYSTEM'TAG,S,30 MAP2 XLOCK'FLAG,S,1 MAP2 SYSTEM'PASS,S,6 MAP2 SYSTEM'FILLER,X,99 MAP1 FILES'IN'SYSTEM'RECORD MAP2 SYSMGR'FILE(42),S,6 MAP2 FILES'FILLER,S,4," " MAP1 REPORTS'IN'SYSTEM'RECORD MAP2 SYSMGR'REPORT(42),S,6 MAP2 PROGS'FILLER,S,4," " MAP1 FILE'RECORD MAP2 FILE'DEVICE,S,5 MAP2 FILE'NAME,S,6 MAP2 FILE'NAME'FILL,S,4 MAP2 FILE'ACCT,S,7 MAP2 FILE'TYPE,S,1 MAP2 FILE'USEAGE,S,1 MAP2 FILE'DATA MAP3 FILE'REC'LEN,F,6,0 MAP3 FILE'KEY'LEN,F,6,0 MAP3 FILE'KEY'POS,F,6,0 MAP3 FILE'CONTROL MAP4 FILE'ORGCNT,F,6,0 MAP4 FILE'RECCNT,F,6,0 MAP4 FILE'MAXCNT,F,6,0 MAP4 FILE'DELCNT,F,6,0 MAP4 FILE'LST'KEY,F,6,0 MAP2 FILE'PRI'DEVICE,S,5 MAP2 FILE'PRI'NAME,S,6 MAP2 FILE'PRI'NAME'FILL,S,4 MAP2 FILE'PRI'ACCT,S,7 MAP2 FILE'PRI'REC'LEN,B,2 MAP2 FILE'CHANNEL,B,1 MAP2 FILE'LAST'ACC'DATE,B,4 MAP2 FILE'LAST'MOD'DATE,B,4 MAP2 FILE'LAST'BAK'DATE,B,4 MAP2 FILE'LAST'ACC'TIME,B,2 MAP2 FILE'LAST'MOD'TIME,B,2 MAP2 FILE'LAST'BAK'TIME,B,2 MAP2 FILE'SYSNAM,S,6 MAP2 FILE'FILLER,X,131 MAP1 REPORT'RECORD MAP2 REPORT'NAME,S,6," " MAP2 REPORT'DESC,S,30," " MAP2 REPORT'FILE'DEVICE,S,5," " MAP2 REPORT'FILE'NAME,S,10," " MAP2 REPORT'FILE'ACCT,S,7," " MAP2 REPORT'SPOOL,S,1," " MAP2 REPORT'PRINTER,S,1," " MAP2 REPORT'FILL'1,X,5 MAP2 REPORT'FORMS,S,6," " MAP2 REPORT'COPIES,S,2," " MAP2 REPORT'WIDTH,S,3," " MAP2 REPORT'BANNER,S,1," " MAP2 REPORT'DELETE,S,1," " MAP2 REPORT'HEADER,S,1," " MAP2 REPORT'START'SEQ1,B,1 MAP2 REPORT'START'SEQ2,B,1 MAP2 REPORT'STOP'SEQ1,B,1 MAP2 REPORT'STOP'SEQ2,B,1 MAP2 REPORT'FF,S,1," " MAP2 REPORT'FILLER,X,172 !*****END OF SYSMGR.MAP************************************************ !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! AREA FOR STANDARD MAP STATEMENTS AND VARIABLES - STDMNT.MAP !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ++INCLUDE STDMNT.MAP !*****START OF STDMNT'MAP********************************************** ! ! Copyright (c) 1984,1989 Double-D Software Services ! ! Double-D Software Services Dave Drake ! 4924 Chantilly (702) 438-2173 ! Las Vegas, Nv. 89110 ! ! PROGRAM NAME: STDMNT.MAP ! ! DATE CREATED: 05/06/84 ! ! DESCRIPTION: STANDARD MAP STATEMENTS FOR FILE MAINTENANCE PROGS ! ! CHANGE HISTORY: ! ! DATE BY DESCRIPTION !********************************************************************* !---------------------------------------- ! FIXED VARIABLES !---------------------------------------- MAP1 FIXED'NEG'1,F,6,-1 MAP1 FIXED'0,F,6,0 MAP1 FIXED'1,F,6,1 MAP1 FIXED'2,F,6,2 MAP1 FIXED'3,F,6,3 MAP1 FIXED'4,F,6,4 MAP1 FIXED'5,F,6,5 !---------------------------------------- ! ERROR TRAPPING VARIABLES !---------------------------------------- MAP1 ERROR'TRAP,F,6 MAP1 RECOVER,F,6 !---------------------------------------- ! FILE STATUS CODE TABLE (ISAM ERROR CODES) !---------------------------------------- MAP1 REC'FOUND,X,2,0 MAP1 I'O'OK,X,2,0 MAP1 ILLEGAL'CODE,X,2,32 MAP1 REC'NOT'FOUND,X,2,33 MAP1 DUPLICATE'KEY,X,2,34 MAP1 LINK'SMASHED,X,2,35 MAP1 INDEX'FULL,X,2,36 MAP1 DATA'FULL,S,2,37 MAP1 AT'END,X,2,38 MAP1 REPORT'NOT'IN'SYSMGR,X,2,98 MAP1 FILE'NOT'IN'SYSMGR,X,2,99 MAP1 NOT'IN'SYSMGR,X,2,99 !---------------------------------------- !INPUT STATUS CODE SETUP !---------------------------------------- MAP1 INPUT'STATUS,F,6 MAP1 INPUT'LEN,F,6 MAP1 INPUT'OK,F,6,@FIXED'0 MAP1 YES,F,6,@FIXED'1 MAP1 NO,F,6,@FIXED'2 MAP1 DONE,F,6,@FIXED'2 MAP1 TAB'OUT,F,6,@FIXED'3 !---------------------------------------- !EDIT STATUS TABLE !---------------------------------------- MAP1 EDIT'STATUS,F,6 MAP1 EDIT'OK,F,6,@FIXED'0 MAP1 BAD'ENTRY,F,6,@FIXED'1 !---------------------------------------- !SKIP STATUS TABLE !---------------------------------------- MAP1 SKIP'STATUS,F,6 MAP1 SKIP,F,6,@FIXED'0 MAP1 NO'SKIP,F,6,@FIXED'1 !---------------------------------------- !ANY CHANGE STATUS CODE TABLE !---------------------------------------- MAP1 ANY'CHANGE'MODE,F,6 MAP1 CHANGE'FLAG,F,6 MAP1 CHANGE'STATUS,F,6 MAP1 CHANGE'CONTROL,F,6,@CHANGE'STATUS MAP1 ABORT'ENTRY,F,6,@FIXED'NEG'1 MAP1 NO'CHANGE,F,6,@FIXED'0 MAP1 CHANGED,F,6,@FIXED'1 MAP1 NONUM,F,6,@FIXED'2 MAP1 ERRNUM,F,6,@FIXED'3 MAP1 ENDNUM,F,6,@FIXED'4 MAP1 ZERONUM,F,6,@FIXED'5 MAP1 NEXT'SCREEN,F,6,999 !---------------------------------------- !INPUT KEY STATUS TABLE !---------------------------------------- MAP1 KEY'STATUS,F,6 MAP1 KEY'DONE,F,6 MAP1 KEY'OK,F,6,@FIXED'0 MAP1 BAD'KEY,F,6,@FIXED'1 MAP1 NO'KEY,F,6,@FIXED'2 !---------------------------------------- !MASK TABLE !---------------------------------------- MAP1 MASK(40),S,15 MASK(1) = "###%" : MASK(21)= "#.######## EEEE" MASK(2) = "#Z" : MASK(22)= "##.##-" MASK(3) = "#ZZ" : MASK(23)= "###.##=" MASK(4) = "#ZZZ" : MASK(24)= "#,###.##-" MASK(5) = "#ZZZZ" : MASK(25)= "##,###.##-" MASK(6) = "#ZZZZZ" : MASK(26)= "###,###.##-" MASK(7) = "#####.-" : MASK(27)= "#,###,###.##-" MASK(8) = "######.-" : MASK(28)= "##,###,###.##-" MASK(9) = "$###,###.-" : MASK(29)= "###,###,###.##-" MASK(10)= "######.##-" : MASK(30)= "$###,###.##-" MASK(11)= "$#,###,###.-" : MASK(31)= "**##,###,###.##" MASK(12)= "##" : MASK(32)= "$$###,###.##-" MASK(13)= "###" : MASK(33)= "############.#" MASK(14)= "####" : MASK(34)= "####.###" MASK(15)= "#####" : MASK(35)= "############" MASK(16)= "######" : MASK(36)= "" MASK(17)= "#######" : MASK(37)= "" MASK(18)= "########" : MASK(38)= "" MASK(19)= "#########" : MASK(39)= "" MASK(20)= "##########" : MASK(40)= "" !---------------------------------------- !INPUT CONTROL VARIABLES !---------------------------------------- MAP1 CTL MAP2 ROW,S,2 MAP2 COL,S,2 MAP2 XMAX,S,2 MAP2 XMIN,S,1 MAP2 TYPE,S,2 MAP2 PROMPT,S,1 !---------------------------------------- !MISC VARIABLES !---------------------------------------- MAP1 MODE,F,6 MAP1 ENTRY,S,80 MAP1 MSXCTL,F,6 MAP1 WHATNO,F,6 MAP1 MSG,S,58 MAP1 TEMP,S,80 MAP1 F,F,6 MAP1 I,F,6 MAP1 J,F,6 MAP1 X,F,6 MAP1 ENTRY'NUM,F,6 MAP1 AMT,F,6 !---------------------------------------- !DATE AND TIME VARIABLES !---------------------------------------- MAP1 TODAY,S,8," " !CONTAINS MM/DD/YY MAP1 TODAY1,S,6," " !CONTAINS MMDDYY MAP1 TODAY2,S,6," " MAP1 BINDATE,B,4 MAP1 FILLDATA,@BINDATE MAP2 BDATE MAP3 MONTH,B,1 MAP3 DAY,B,1 MAP3 YEAR,B,1 MAP1 BINTIME,B,2 MAP1 AMPM,S,2 MAP1 CLOCK,S,9 MAP1 HRS,F,6 MAP1 MINS,F,6 MAP1 SECS,F,6 MAP1 KEY,S,2 !*****END OF STDMNT.MAP************************************************ ! ++INCLUDE PRINTR.MAP !*****BEGIN OF PRINTR.MAP********************************************** ! ! Copyright (c) 1984,1989 Double-D Software Services ! ! Double-D Software Services Dave Drake ! 4924 Chantilly (702) 438-2173 ! Las Vegas, Nv. 89110 ! ! PROGRAM NAME: PRINTR.MAP ! ! DATE CREATED: 05/06/84 ! ! DESCRIPTION: PRINTER CONTROL SEQUENCES ! ! CHANGE HISTORY: ! ! DATE BY DESCRIPTION !********************************************************************* MAP1 PRINTERS'DEFINED,F,6,3 MAP1 PRT'NAME MAP2 PRINTER'NAME'1,S,6,"TI" MAP2 PRINTER'NAME'2,S,6,"SW" MAP2 PRINTER'NAME'3,S,6,"TJ" MAP1 PRINTER'NAME(3),@PRT'NAME MAP2 PRT'FILL,S,6 MAP1 PRT'CONTROL MAP2 TI810'PRINTER MAP3 P1'CONTROL'1 MAP4 P1'CONTROL'1'1,S,1,CHR$(27) !6 LPI MAP4 P1'CONTROL'1'2,S,1,"4" MAP4 P1'CONTROL'1'3,S,3 MAP3 P1'DESCRIP'1,S,10,"6 LPI" MAP3 P1'CONTROL'2 MAP4 P1'CONTROL'2'1,S,1,CHR$(27) !8 LPI MAP4 P1'CONTROL'2'2,S,1,"5" MAP4 P1'CONTROL'2'3,S,3 MAP3 P1'DESCRIP'2,S,10,"8 LPI" MAP3 P1'CONTROL'3 MAP4 P1'CONTROL'3'1,S,1,CHR$(27) !10 CPI MAP4 P1'CONTROL'3'2,S,1,"6" MAP4 P1'CONTROL'3'3,S,3 MAP3 P1'DESCRIP'3,S,10,"10 CPI" MAP3 P1'CONTROL'4 MAP4 P1'CONTROL'4'1,S,1,CHR$(27) !16.5 CPI MAP4 P1'CONTROL'4'2,S,1,"7" MAP4 P1'CONTROL'4'3,S,3 MAP3 P1'DESCRIP'4,S,10,"16.5 CPI" MAP3 P1'CONTROL'5,S,5 MAP3 P1'DESCRIP'5,S,10," " MAP3 P1'CONTROL'6,S,5 MAP3 P1'DESCRIP'6,S,10," " MAP3 P1'CONTROL'7,S,5 MAP3 P1'DESCRIP'7,S,10," " MAP3 P1'CONTROL'8,S,5 MAP3 P1'DESCRIP'8,S,10," " MAP3 P1'CONTROL'9,S,5 MAP3 P1'DESCRIP'9,S,10," " MAP3 P1'CONTROL'10,S,5 MAP3 P1'DESCRIP'10,S,10," " MAP2 NEC'PRINTER MAP3 P2'CONTROL'1,S,5 MAP3 P2'DESCRIP'1,S,10," " MAP3 P2'CONTROL'2,S,5 MAP3 P2'DESCRIP'2,S,10," " MAP3 P2'CONTROL'3,S,5 MAP3 P2'DESCRIP'3,S,10," " MAP3 P2'CONTROL'4,S,5 MAP3 P2'DESCRIP'4,S,10," " MAP3 P2'CONTROL'5,S,5 MAP3 P2'DESCRIP'5,S,10," " MAP3 P2'CONTROL'6,S,5 MAP3 P2'DESCRIP'6,S,10," " MAP3 P2'CONTROL'7,S,5 MAP3 P2'DESCRIP'7,S,10," " MAP3 P2'CONTROL'8,S,5 MAP3 P2'DESCRIP'8,S,10," " MAP3 P2'CONTROL'9,S,5 MAP3 P2'DESCRIP'9,S,10," " MAP3 P2'CONTROL'10,S,5 MAP3 P2'DESCRIP'10,S,10," " MAP2 TI810'PRINTER'2 MAP3 P3'CONTROL'1 MAP4 P3'CONTROL'1'1,S,1,CHR$(27) !6 LPI MAP4 P3'CONTROL'1'2,S,1,"4" MAP4 P3'CONTROL'1'3,S,3 MAP3 P3'DESCRIP'1,S,10,"6 LPI" MAP3 P3'CONTROL'2 MAP4 P3'CONTROL'2'1,S,1,CHR$(27) !8 PLI MAP4 P3'CONTROL'2'2,S,1,"5" MAP4 P3'CONTROL'2'3,S,3 MAP3 P3'DESCRIP'2,S,10,"8 LPI" MAP3 P3'CONTROL'3 MAP4 P3'CONTROL'3'1,S,1,CHR$(27) !10 CPI MAP4 P3'CONTROL'3'2,S,1,"6" MAP4 P3'CONTROL'3'3,S,3 MAP3 P3'DESCRIP'3,S,10,"10 CPI" MAP3 P3'CONTROL'4 MAP4 P3'CONTROL'4'1,S,1,CHR$(27) !16.5 CPI MAP4 P3'CONTROL'4'2,S,1,"7" MAP4 P3'CONTROL'4'3,S,3 MAP3 P3'DESCRIP'4,S,10,"16.5 CPI" MAP3 P3'CONTROL'5,S,5 MAP3 P3'DESCRIP'5,S,10," " MAP3 P3'CONTROL'6,S,5 MAP3 P3'DESCRIP'6,S,10," " MAP3 P3'CONTROL'7,S,5 MAP3 P3'DESCRIP'7,S,10," " MAP3 P3'CONTROL'8,S,5 MAP3 P3'DESCRIP'8,S,10," " MAP3 P3'CONTROL'9,S,5 MAP3 P3'DESCRIP'9,S,10," " MAP3 P3'CONTROL'10,S,5 MAP3 P3'DESCRIP'10,S,10," " MAP1 PRINTER'CONTROL,@PRT'CONTROL MAP2 PRINTERS(3) MAP3 CONTROLS(10) MAP4 SEQUENCE,S,5 MAP4 DESCRIPT,S,10 !*****END OF PRINTR.MAP************************************************ !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! SCREEN TAG DATA AND DATA ENTRY CONTROL VARIABLES !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DATA 1,1,"System Manager - Control Information" DATA 3,1,"1. System Name :" DATA 4,1,"2. Company Name :" DATA 5,1,"3. Company Addr1:" DATA 6,1,"4. Company Addr2:" DATA 7,1,"5. Company Addr3:" DATA 3,52,"6. Password :" DATA 4,52,"7. Xlock? :" DATA 9,1, "------------------------------- Files in System ------------------------------" DATA 10,1,"10. 16. 22. 28. 34. 40. 46." DATA 11,1,"11. 17. 23. 29. 35. 41. 47." DATA 12,1,"12. 18. 24. 30. 36. 42. 48." DATA 13,1,"13. 19. 25. 31. 37. 43. 49." DATA 14,1,"14. 20. 26. 32. 38. 44. 50." DATA 15,1,"15. 21. 27. 33. 39. 45. 51." DATA 17,1, "-----------------------------Reports in System ------------------------------" DATA 18,1,"52. 58. 64. 70. 76. 82. 88." DATA 19,1,"53. 59. 65. 71. 77. 83. 89." DATA 20,1,"54. 60. 66. 72. 78. 84. 90." DATA 21,1,"55. 61. 67. 73. 79. 85. 91." DATA 22,1,"56. 62. 68. 74. 80. 86. 92." DATA 23,1,"57. 63. 69. 75. 81. 87. 93." !--------------------------------------------------------------------- DATA 1,1,"System Manager - File: " DATA 3,1, " 1. File Name :" DATA 4,1, " 2. File Device :" DATA 5,1, " 3. File Account :" DATA 7,1, " 4. File Rec Size :" DATA 8,1, " 5. File Key Size :" DATA 9,1, " 6. File Key Pos :" DATA 10,1," 7. File Channel :" DATA 12,1," 8. Orgcnt :" DATA 13,1," 9. Reccnt :" DATA 14,1,"10. Maxcnt :" DATA 15,1,"11. Delcnt :" DATA 16,1,"12. Lstkey :" DATA 18,1,"13. File Type :" DATA 19,1,"14. File Useage :" DATA 3,31,"15. DATA File Name:" DATA 4,31,"16. DATA File Dev.:" DATA 5,31,"17. DATA File Acct:" DATA 6,31,"18. DATA Rec Len :" DATA 8,27,"Last Accessed:" DATA 9,27,"Last Changed :" DATA 10,27,"Last Backup :" DATA 3,60,"ISAM File Data" DATA 4,60,"--------------" DATA 5,60,"Key Size:" DATA 6,60,"Key Pos :" DATA 7,60,"Rec Size:" DATA 8,60,"Recs/Blk:" DATA 9,60,"IDX Ptr :" DATA 10,60,"IDX Cnt :" DATA 11,60,"IDA Ptr :" DATA 12,60,"IDA Cnt :" DATA 13,60,"Rec/Used:" DATA 14,60,"Rec/Max :" DATA 15,60,"Pct Full:" DATA 17,54,"90. Build/Init File" !--------------------------------------------------------------------- DATA 1,1,"System Manager - Report:" DATA 3,50,"Printer Control Sequences" DATA 3,1, " 1. Program Name :" DATA 4,1, " 2. Desc:" DATA 6,1, " 3. Report File Device :" DATA 7,1, " 4. Report File Name :" DATA 8,1, " 5. Report File Account:" DATA 10,1," 6. Spool :" DATA 11,1," 7. Printer:" DATA 12,1," 8. Forms :" DATA 13,1," 9. Copies :" DATA 14,1,"10. Width :" DATA 15,1,"11. Banner :" DATA 16,1,"12. Delete :" DATA 17,1,"13. Header :" DATA 18,1,"14. F Feed :" DATA 10,30,"15. Start Seq 1:" DATA 11,30,"16. Start Seq 2:" DATA 12,30,"17. Stop Seq 1:" DATA 13,30,"18. Stop Seq 2:" !--------------------------------------------------------------------- CNTRL'1(01)="0319301AE " CNTRL'1(02)="0419301A " CNTRL'1(03)="0519300A " CNTRL'1(04)="0619300A " CNTRL'1(05)="0719300A " CNTRL'1(06)="0369060A " CNTRL'1(07)="0469010YN " CNTRL'2(01)="0322061AE " CNTRL'2(02)="0422050A " CNTRL'2(03)="0521070A " CNTRL'2(04)="0721030N " CNTRL'2(05)="0821030N " CNTRL'2(06)="0921030N " CNTRL'2(07)="1021030N " CNTRL'2(08)="1221050N " CNTRL'2(09)="1321050N " CNTRL'2(10)="1421050N " CNTRL'2(11)="1521050N " CNTRL'2(12)="1621050N " CNTRL'2(13)="1821010A 1" CNTRL'2(14)="1921010A 1" CNTRL'2(15)="0351060A " CNTRL'2(16)="0451050A " CNTRL'2(17)="0551070A " CNTRL'2(18)="0651030N " CNTRL'2(19)="0841000 " CNTRL'2(20)="0850000 " CNTRL'2(21)="0941000 " CNTRL'2(22)="0950000 " CNTRL'2(23)="1041000 " CNTRL'2(24)="1050000 " CNTRL'3(01)="0321060AE " CNTRL'3(02)="0411300A " CNTRL'3(03)="0626050A " CNTRL'3(04)="0726100A " CNTRL'3(05)="0826070A " CNTRL'3(06)="1014010YY " CNTRL'3(07)="1114010N 1" CNTRL'3(08)="1214060A 1" CNTRL'3(09)="1314020N " CNTRL'3(10)="1414030N " CNTRL'3(11)="1514010YN " CNTRL'3(12)="1614010YY " CNTRL'3(13)="1714010YN " CNTRL'3(14)="1814010YY " CNTRL'3(15)="1047010N " CNTRL'3(16)="1147010N " CNTRL'3(17)="1247010N " CNTRL'3(18)="1347010N " !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! TOP LEVEL PROCEDURE SECTION !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ START: ERROR'TRAP=NO XCALL NOECHO CALL PROCESSING'1 SIGNIFICANCE 11 CALL GET'LOC FILEBASE 0 LOOKUP SYSMGR'PATH,FOUND IF FOUND = 0 CALL ALLOCATE'DATA'FILE CALL SYSMGR'OPEN CALL SYSMGR'READ'DATA CALL GET'PASSWORD TOP'LEVEL: CALL CONTROL'SCREEN IF CHANGE'STATUS=ABORT'ENTRY & GOTO EXIT'PROGRAM IF SET'FLAG=FILE'FLAG & CALL FILE'SCREEN IF SET'FLAG=REPORT'FLAG & CALL REPORT'SCREEN GOTO TOP'LEVEL EXIT'PROGRAM: CALL PROCESSING'1 CALL SYSMGR'CLOSE ERROR'EXIT: BACK'OUT: XCALL ECHO CHAIN BACK'OUT'PROG END TRAP'ROUTINE: RETURN !--------------------------------------------------------------------- ! LEVEL 2 PROCEDURES !--------------------------------------------------------------------- GET'PASSWORD: IF SYSTEM'PASS=SPACE(6) RETURN PRINT TAB(1,1); : PRINT TAB(-1,10); PRINT TAB(1,1);"System Manager - ";SYSTEM'TAG PRINT TAB(12,20);"Passowrd: " CTL="1231060A " : CALL INPUT TEMP=ENTRY+SPACE(6) : ENTRY=TEMP[1,6] IF ENTRY <> SYSTEM'PASS GOTO BACK'OUT RETURN CONTROL'SCREEN: CALL DISPLAY'FORMAT'SCREEN'1 CALL DISPLAY'SCREEN'1 CHANGE'FLAG=0 : SET'FLAG=NO'FLAG CALL ANY'CHANGE'SCREEN'1 IF CHANGE'STATUS=ABORT'ENTRY RETURN IF CHANGE'FLAG=NO RETURN SYSMGR'RECNO=0 SYSMGR'RECORD=SYSTEM'RECORD CALL SYSMGR'WRITE IF WHATNO >=10 RETURN GOTO CONTROL'SCREEN FILE'SCREEN: CALL GET'FILE'RECORD CALL DISPLAY'FORMAT'SCREEN'2 INPUT'STATUS=INPUT'OK IF FILE'NAME = " " & CALL CLEAR'ACCESS'FIELDS :& CALL ENTER'SCREEN'2 & ELSE & CALL DISPLAY'SCREEN'2 IF INPUT'STATUS=DONE RETURN CALL ANY'CHANGE'SCREEN'2 IF CHANGE'STATUS=ABORT'ENTRY RETURN FILE'WRITE: SYSMGR'RECORD=FILE'RECORD CALL SYSMGR'WRITE SYSMGR'FILE(FILE'NO)=FILE'NAME SYSMGR'RECORD=FILES'IN'SYSTEM'RECORD SYSMGR'RECNO=1 CALL SYSMGR'WRITE RETURN REPORT'SCREEN: CALL GET'REPORT'RECORD CALL DISPLAY'FORMAT'SCREEN'3 INPUT'STATUS=INPUT'OK IF REPORT'NAME = " " & CALL ENTER'SCREEN'3 & ELSE & CALL DISPLAY'SCREEN'3 IF INPUT'STATUS=DONE RETURN CALL ANY'CHANGE'SCREEN'3 IF CHANGE'STATUS=ABORT'ENTRY RETURN SYSMGR'RECORD=REPORT'RECORD CALL SYSMGR'WRITE SYSMGR'REPORT(REPORT'NO)=REPORT'NAME SYSMGR'RECORD=REPORTS'IN'SYSTEM'RECORD SYSMGR'RECNO=2 CALL SYSMGR'WRITE RETURN CLEAR'ACCESS'FIELDS: FILE'LAST'ACC'DATE = 0 FILE'LAST'ACC'TIME = 0 FILE'LAST'MOD'DATE = 0 FILE'LAST'MOD'TIME = 0 FILE'LAST'BAK'DATE = 0 FILE'LAST'BAK'TIME = 0 RETURN ALLOCATE'DATA'FILE: PRINT TAB(1,1); : PRINT TAB(-1,0); PRINT TAB(1,1);"Allocating SYSMGR File" CALL PROCESSING'4 ALLOCATE SYSMGR'PATH,SYSMGR'BLOCKS CALL SYSMGR'OPEN SYSMGR'RECORD=SPACE(256) FOR SYSMGR'RECNO=0 TO (SYSMGR'BLOCKS*2)-1 CALL SYSMGR'WRITE NEXT SYSMGR'RECNO CALL SYSMGR'CLOSE RETURN SYSMGR'READ'DATA: SYSMGR'RECNO=0 : CALL SYSMGR'READ SYSTEM'RECORD=SYSMGR'RECORD SYSMGR'RECNO=1 : CALL SYSMGR'READ FILES'IN'SYSTEM'RECORD=SYSMGR'RECORD SYSMGR'RECNO=2 : CALL SYSMGR'READ REPORTS'IN'SYSTEM'RECORD=SYSMGR'RECORD RETURN GET'FILE'RECORD: FILE'NO=WHATNO-9 SYSMGR'RECNO=FILE'NO+2 CALL SYSMGR'READ FILE'RECORD=SYSMGR'RECORD RETURN GET'REPORT'RECORD: REPORT'NO=WHATNO-51 SYSMGR'RECNO=REPORT'NO+44 CALL SYSMGR'READ REPORT'RECORD=SYSMGR'RECORD RETURN !--------------------------------------------------------------------- ! LEVEL 3 PROCEDURES !--------------------------------------------------------------------- DISPLAY'FORMAT'SCREEN'1: PRINT TAB(1,1); : PRINT TAB(-1,10); PRINT TAB(-1,11); RESTORE FOR I=1 TO TAG'NO'1 READ ROW,COL,TEMP PRINT TAB(ROW,COL);TEMP; NEXT I PRINT TAB(1,40);ORG'DSK;":";ORG'PPN PRINT TAB(-1,12); RETURN DISPLAY'FORMAT'SCREEN'2: PRINT TAB(1,1); : PRINT TAB(-1,10); PRINT TAB(-1,11); RESTORE FOR I=1 TO TAG'NO'1 READ ROW,COL,TEMP NEXT I FOR I=1 TO TAG'NO'2 READ ROW,COL,TEMP PRINT TAB(ROW,COL);TEMP; NEXT I PRINT TAB(1,40);ORG'DSK;":";ORG'PPN PRINT TAB(-1,12); RETURN DISPLAY'FORMAT'SCREEN'3: PRINT TAB(1,1); : PRINT TAB(-1,10); PRINT TAB(-1,11); RESTORE FOR I=1 TO TAG'NO'1+TAG'NO'2 READ ROW,COL,TEMP NEXT I FOR I=1 TO TAG'NO'3 READ ROW,COL,TEMP PRINT TAB(ROW,COL);TEMP; NEXT I PRINT TAB(1,40);ORG'DSK;":";ORG'PPN PRINT TAB(-1,12); RETURN ANY'CHANGE'SCREEN'1: ANY'CHANGE'MODE=NO : CALL ANYCN IF CHANGE'STATUS=ABORT'ENTRY RETURN IF CHANGE'STATUS=NO'CHANGE RETURN IF WHATNO >=10 AND WHATNO <=51 & SET'FLAG=FILE'FLAG IF WHATNO >=52 AND WHATNO <=93 & SET'FLAG=REPORT'FLAG IF WHATNO >=10 AND WHATNO <=93 RETURN IF WHATNO >93 GOTO ANY'CHANGE'SCREEN'1 CHANGE'FLAG=YES : ANY'CHANGE'MODE = YES ENTRY'NUM=WHATNO CALL INPUT'DATA'LOOP'1 GOTO ANY'CHANGE'SCREEN'1 ANY'CHANGE'SCREEN'2: CALL LOOKUP'FILE ANY'CHANGE'MODE=NO : CALL ANYCN IF CHANGE'STATUS=ABORT'ENTRY RETURN IF CHANGE'STATUS=NO'CHANGE RETURN CHANGE'FLAG=YES : ANY'CHANGE'MODE = YES ENTRY'NUM=WHATNO IF WHATNO >= 90 & CALL DO'SPECIAL'FUCNTION & ELSE & CALL INPUT'DATA'LOOP'2 GOTO ANY'CHANGE'SCREEN'2 ANY'CHANGE'SCREEN'3: ANY'CHANGE'MODE=NO : CALL ANYCN IF CHANGE'STATUS=ABORT'ENTRY RETURN IF CHANGE'STATUS=NO'CHANGE RETURN CHANGE'FLAG=YES : ANY'CHANGE'MODE = YES ENTRY'NUM=WHATNO CALL INPUT'DATA'LOOP'3 GOTO ANY'CHANGE'SCREEN'3 !--------------------------------------------------------------------- ! DATA ENTRY SECTION !--------------------------------------------------------------------- INPUT'DATA'LOOP'1: IF ENTRY'NUM>TOTAL'ENTRY'1 RETURN CTL=CNTRL'1(ENTRY'NUM) CALL INPUT : EDIT'STATUS=INPUT'OK ON ENTRY'NUM CALL EDIT'FIELD'1'1,& EDIT'FIELD'1'2,& EDIT'FIELD'1'3,& EDIT'FIELD'1'4,& EDIT'FIELD'1'5,& EDIT'FIELD'1'6,& EDIT'FIELD'1'7 IF EDIT'STATUS=BAD'ENTRY & GOTO INPUT'DATA'LOOP'1 IF ANY'CHANGE'MODE=YES RETURN ENTRY'NUM=ENTRY'NUM+1 GOTO INPUT'DATA'LOOP'1 ENTER'SCREEN'2: ENTRY'NUM=1 INPUT'DATA'LOOP'2: IF ENTRY'NUM>TOTAL'ENTRY'2 RETURN CTL=CNTRL'2(ENTRY'NUM) IF PROMPT=YES CALL DISPLAY'PROMPT'2 CALL INPUT : EDIT'STATUS=INPUT'OK IF TYPE[2,2]="E" AND INPUT'STATUS=DONE RETURN ON ENTRY'NUM CALL EDIT'FIELD'2'1,& EDIT'FIELD'2'2,& EDIT'FIELD'2'3,& EDIT'FIELD'2'4,& EDIT'FIELD'2'5,& EDIT'FIELD'2'6,& EDIT'FIELD'2'7,& EDIT'FIELD'2'8,& EDIT'FIELD'2'9,& EDIT'FIELD'2'10,& EDIT'FIELD'2'11,& EDIT'FIELD'2'12,& EDIT'FIELD'2'13,& EDIT'FIELD'2'14,& EDIT'FIELD'2'15,& EDIT'FIELD'2'16,& EDIT'FIELD'2'17,& EDIT'FIELD'2'18 IF PROMPT=YES CALL CLEAR'PROMPT IF EDIT'STATUS=BAD'ENTRY & GOTO INPUT'DATA'LOOP'2 IF ANY'CHANGE'MODE=YES RETURN ENTRY'NUM=ENTRY'NUM+1 GOTO INPUT'DATA'LOOP'2 ENTER'SCREEN'3: ENTRY'NUM=1 INPUT'DATA'LOOP'3: INPUT'STATUS=INPUT'OK IF ENTRY'NUM>TOTAL'ENTRY'3 RETURN CTL=CNTRL'3(ENTRY'NUM) IF PROMPT=YES CALL DISPLAY'PROMPT'3 CALL INPUT : EDIT'STATUS=INPUT'OK IF TYPE[2,2]="E" AND INPUT'STATUS=DONE RETURN ON ENTRY'NUM CALL EDIT'FIELD'3'1,& EDIT'FIELD'3'2,& EDIT'FIELD'3'3,& EDIT'FIELD'3'4,& EDIT'FIELD'3'5,& EDIT'FIELD'3'6,& EDIT'FIELD'3'7,& EDIT'FIELD'3'8,& EDIT'FIELD'3'9,& EDIT'FIELD'3'10,& EDIT'FIELD'3'11,& EDIT'FIELD'3'12,& EDIT'FIELD'3'13,& EDIT'FIELD'3'14,& EDIT'FIELD'3'15,& EDIT'FIELD'3'16,& EDIT'FIELD'3'17,& EDIT'FIELD'3'18 IF PROMPT=YES CALL CLEAR'PROMPT IF EDIT'STATUS=BAD'ENTRY & GOTO INPUT'DATA'LOOP'3 IF ANY'CHANGE'MODE=YES RETURN ENTRY'NUM=ENTRY'NUM+1 GOTO INPUT'DATA'LOOP'3 !--------------------------------------------------------------------- ! ENTRY FIELD EDIT/VALIDATION ROUTINES - ASSIGN ENTRIES TO DATA FIELDS !--------------------------------------------------------------------- EDIT'FIELD'1'1: SYSTEM'TAG=ENTRY+SPACE(30) CALL DISPLAY'FIELD'1'1 RETURN EDIT'FIELD'1'2: SYSTEM'NAME=ENTRY+SPACE(30) CALL DISPLAY'FIELD'1'2 RETURN EDIT'FIELD'1'3: SYSTEM'ADDR1=ENTRY+SPACE(30) CALL DISPLAY'FIELD'1'3 RETURN EDIT'FIELD'1'4: SYSTEM'ADDR2=ENTRY+SPACE(30) CALL DISPLAY'FIELD'1'4 RETURN EDIT'FIELD'1'5: SYSTEM'ADDR3=ENTRY+SPACE(30) CALL DISPLAY'FIELD'1'5 RETURN EDIT'FIELD'1'6: SYSTEM'PASS=ENTRY CALL DISPLAY'FIELD'1'6 RETURN EDIT'FIELD'1'7: XLOCK'FLAG=ENTRY CALL DISPLAY'FIELD'1'7 RETURN !--------------------------------------------------------------------- EDIT'FIELD'2'1: FILE'NAME=ENTRY CALL DISPLAY'FIELD'2'1 RETURN EDIT'FIELD'2'2: IF ENTRY="" ENTRY=ORG'DSK FILE'DEVICE=ENTRY CALL DISPLAY'FIELD'2'2 RETURN EDIT'FIELD'2'3: IF ENTRY="" ENTRY=ORG'PPN FILE'ACCT=ENTRY CALL DISPLAY'FIELD'2'3 RETURN EDIT'FIELD'2'4: FILE'REC'LEN=VAL(ENTRY) CALL DISPLAY'FIELD'2'4 IF FILE'REC'LEN > 512 & EDIT'STATUS=BAD'ENTRY RETURN EDIT'FIELD'2'5: FILE'KEY'LEN=VAL(ENTRY) CALL DISPLAY'FIELD'2'5 RETURN EDIT'FIELD'2'6: FILE'KEY'POS=VAL(ENTRY) CALL DISPLAY'FIELD'2'6 RETURN EDIT'FIELD'2'7: IF VAL(ENTRY)=0 ENTRY=FILE'NO FILE'CHANNEL=ENTRY CALL DISPLAY'FIELD'2'7 RETURN EDIT'FIELD'2'8: FILE'ORGCNT=VAL(ENTRY) CALL DISPLAY'FIELD'2'8 RETURN EDIT'FIELD'2'9: FILE'RECCNT=VAL(ENTRY) CALL DISPLAY'FIELD'2'9 RETURN EDIT'FIELD'2'10: FILE'MAXCNT=VAL(ENTRY) CALL DISPLAY'FIELD'2'10 RETURN EDIT'FIELD'2'11: FILE'DELCNT=VAL(ENTRY) CALL DISPLAY'FIELD'2'11 RETURN EDIT'FIELD'2'12: FILE'LST'KEY=VAL(ENTRY) CALL DISPLAY'FIELD'2'12 RETURN EDIT'FIELD'2'13: IF ENTRY="" ENTRY="5" FILE'TYPE=ENTRY IF FILE'TYPE <> "1" AND & FILE'TYPE <> "2" AND & FILE'TYPE <> "3" AND & FILE'TYPE <> "4" AND & FILE'TYPE <> "5" AND & FILE'TYPE <> "6" & EDIT'STATUS=BAD'ENTRY CALL DISPLAY'FIELD'2'13 RETURN EDIT'FIELD'2'14: IF ENTRY="" ENTRY="1" FILE'USEAGE=ENTRY IF FILE'USEAGE <> "1" AND & FILE'USEAGE <> "2" AND & FILE'USEAGE <> "3" AND & FILE'USEAGE <> "4" AND & FILE'USEAGE <> "5" & EDIT'STATUS=BAD'ENTRY CALL DISPLAY'FIELD'2'14 RETURN EDIT'FIELD'2'15: IF FILE'TYPE=3 AND ENTRY="" ENTRY=FILE'NAME FILE'PRI'NAME=ENTRY CALL DISPLAY'FIELD'2'15 RETURN EDIT'FIELD'2'16: IF FILE'TYPE=3 AND ENTRY="" ENTRY=FILE'DEVICE IF FILE'TYPE=4 AND ENTRY="" ENTRY=FILE'DEVICE FILE'PRI'DEVICE=ENTRY CALL DISPLAY'FIELD'2'16 RETURN EDIT'FIELD'2'17: IF FILE'TYPE=3 AND ENTRY="" ENTRY=FILE'ACCT IF FILE'TYPE=4 AND ENTRY="" ENTRY=FILE'ACCT FILE'PRI'ACCT=ENTRY CALL DISPLAY'FIELD'2'17 RETURN EDIT'FIELD'2'18: FILE'PRI'REC'LEN=VAL(ENTRY) CALL DISPLAY'FIELD'2'18 RETURN !--------------------------------------------------------------------- EDIT'FIELD'3'1: REPORT'NAME=ENTRY CALL DISPLAY'FIELD'3'1 RETURN EDIT'FIELD'3'2: REPORT'DESC=ENTRY+SPACE(30) CALL DISPLAY'FIELD'3'2 RETURN EDIT'FIELD'3'3: REPORT'FILE'DEVICE=ENTRY CALL DISPLAY'FIELD'3'3 RETURN EDIT'FIELD'3'4: IF ENTRY="" ENTRY=REPORT'NAME+".PRT" REPORT'FILE'NAME=ENTRY CALL DISPLAY'FIELD'3'4 RETURN EDIT'FIELD'3'5: IF ENTRY="" ENTRY=ORG'PPN REPORT'FILE'ACCT=ENTRY CALL DISPLAY'FIELD'3'5 RETURN EDIT'FIELD'3'6: REPORT'SPOOL=ENTRY CALL DISPLAY'FIELD'3'6 RETURN EDIT'FIELD'3'7: IF VAL(ENTRY)=0 ENTRY="1" REPORT'PRINTER=ENTRY IF VAL(REPORT'PRINTER) > PRINTERS'DEFINED & EDIT'STATUS=BAD'ENTRY :& RETURN CALL DISPLAY'FIELD'3'7 RETURN EDIT'FIELD'3'8: IF ENTRY="" ENTRY="NORMAL" REPORT'FORMS=ENTRY CALL DISPLAY'FIELD'3'8 RETURN EDIT'FIELD'3'9: IF ENTRY="" ENTRY="1" REPORT'COPIES=ENTRY CALL DISPLAY'FIELD'3'9 RETURN EDIT'FIELD'3'10: IF ENTRY="" ENTRY="132" REPORT'WIDTH=ENTRY CALL DISPLAY'FIELD'3'10 RETURN EDIT'FIELD'3'11: REPORT'BANNER=ENTRY CALL DISPLAY'FIELD'3'11 RETURN EDIT'FIELD'3'12: REPORT'DELETE=ENTRY CALL DISPLAY'FIELD'3'12 RETURN EDIT'FIELD'3'13: REPORT'HEADER=ENTRY CALL DISPLAY'FIELD'3'13 RETURN EDIT'FIELD'3'14: REPORT'FF=ENTRY CALL DISPLAY'FIELD'3'14 RETURN EDIT'FIELD'3'15: REPORT'START'SEQ1=VAL(ENTRY) CALL DISPLAY'FIELD'3'15 RETURN EDIT'FIELD'3'16: REPORT'START'SEQ2=VAL(ENTRY) CALL DISPLAY'FIELD'3'16 RETURN EDIT'FIELD'3'17: REPORT'STOP'SEQ1=VAL(ENTRY) CALL DISPLAY'FIELD'3'17 RETURN EDIT'FIELD'3'18: REPORT'STOP'SEQ2=VAL(ENTRY) CALL DISPLAY'FIELD'3'18 RETURN !-------------------------------------------------------------------- ! DISPLAY DATA FIELDS SECTION !--------------------------------------------------------------------- DISPLAY'SCREEN'1: CALL DISPLAY'FIELD'1'1 CALL DISPLAY'FIELD'1'2 CALL DISPLAY'FIELD'1'3 CALL DISPLAY'FIELD'1'4 CALL DISPLAY'FIELD'1'5 CALL DISPLAY'FIELD'1'6 CALL DISPLAY'FIELD'1'7 FOR I=1 TO 42 F=9+I-(INT((I-1)/6)*6) : ROW=F USING "#Z" F=5+(INT((I-1)/6)*11): COL=F USING "#Z" IF SYSMGR'FILE(I) <> SPACE(6) & PRINT TAB(ROW,COL);SYSMGR'FILE(I) NEXT I FOR I=1 TO 42 F=17+I-(INT((I-1)/6)*6) : ROW=F USING "#Z" F=5+(INT((I-1)/6)*11): COL=F USING "#Z" IF SYSMGR'REPORT(I) <> SPACE(6) & PRINT TAB(ROW,COL);SYSMGR'REPORT(I) NEXT I RETURN DISPLAY'SCREEN'2: CALL DISPLAY'FIELD'2'1 CALL DISPLAY'FIELD'2'2 CALL DISPLAY'FIELD'2'3 CALL DISPLAY'FIELD'2'4 CALL DISPLAY'FIELD'2'5 CALL DISPLAY'FIELD'2'6 CALL DISPLAY'FIELD'2'7 CALL DISPLAY'FIELD'2'8 CALL DISPLAY'FIELD'2'9 CALL DISPLAY'FIELD'2'10 CALL DISPLAY'FIELD'2'11 CALL DISPLAY'FIELD'2'12 CALL DISPLAY'FIELD'2'13 CALL DISPLAY'FIELD'2'14 CALL DISPLAY'FIELD'2'15 CALL DISPLAY'FIELD'2'16 CALL DISPLAY'FIELD'2'17 CALL DISPLAY'FIELD'2'18 CALL DISPLAY'ACCESS'DATA RETURN DISPLAY'SCREEN'3: CALL DISPLAY'FIELD'3'1 CALL DISPLAY'FIELD'3'2 CALL DISPLAY'FIELD'3'3 CALL DISPLAY'FIELD'3'4 CALL DISPLAY'FIELD'3'5 CALL DISPLAY'FIELD'3'6 CALL DISPLAY'FIELD'3'7 CALL DISPLAY'FIELD'3'8 CALL DISPLAY'FIELD'3'9 CALL DISPLAY'FIELD'3'10 CALL DISPLAY'FIELD'3'11 CALL DISPLAY'FIELD'3'12 CALL DISPLAY'FIELD'3'13 CALL DISPLAY'FIELD'3'14 CALL DISPLAY'FIELD'3'15 CALL DISPLAY'FIELD'3'16 CALL DISPLAY'FIELD'3'17 CALL DISPLAY'FIELD'3'18 RETURN DISPLAY'COUNTS: CALL DISPLAY'FIELD'2'8 CALL DISPLAY'FIELD'2'9 CALL DISPLAY'FIELD'2'10 CALL DISPLAY'FIELD'2'11 RETURN DISPLAY'FIELD'1'1: CTL=CNTRL'1(01) : PRINT TAB(ROW,COL);SYSTEM'TAG RETURN DISPLAY'FIELD'1'2: CTL=CNTRL'1(02) : PRINT TAB(ROW,COL);SYSTEM'NAME RETURN DISPLAY'FIELD'1'3: CTL=CNTRL'1(03) : PRINT TAB(ROW,COL);SYSTEM'ADDR1 RETURN DISPLAY'FIELD'1'4: CTL=CNTRL'1(04) : PRINT TAB(ROW,COL);SYSTEM'ADDR2 RETURN DISPLAY'FIELD'1'5: CTL=CNTRL'1(05) : PRINT TAB(ROW,COL);SYSTEM'ADDR3 RETURN DISPLAY'FIELD'1'6: CTL=CNTRL'1(06) : PRINT TAB(ROW,COL);SYSTEM'PASS RETURN DISPLAY'FIELD'1'7: CTL=CNTRL'1(07) : PRINT TAB(ROW,COL);XLOCK'FLAG RETURN DISPLAY'FIELD'2'1: CTL=CNTRL'2(01) : PRINT TAB(ROW,COL);FILE'NAME RETURN DISPLAY'FIELD'2'2: CTL=CNTRL'2(02) : PRINT TAB(ROW,COL);FILE'DEVICE RETURN DISPLAY'FIELD'2'3: CTL=CNTRL'2(03) : PRINT TAB(ROW,COL);FILE'ACCT RETURN DISPLAY'FIELD'2'4: CTL=CNTRL'2(04) : PRINT TAB(ROW,COL);FILE'REC'LEN USING MASK(13) RETURN DISPLAY'FIELD'2'5: CTL=CNTRL'2(05) : PRINT TAB(ROW,COL);FILE'KEY'LEN USING MASK(13) RETURN DISPLAY'FIELD'2'6: CTL=CNTRL'2(06) : PRINT TAB(ROW,COL);FILE'KEY'POS USING MASK(13) RETURN DISPLAY'FIELD'2'7: CTL=CNTRL'2(07) : PRINT TAB(ROW,COL);FILE'CHANNEL USING MASK(13) RETURN DISPLAY'FIELD'2'8: CTL=CNTRL'2(08) : PRINT TAB(ROW,COL);FILE'ORGCNT USING MASK(16) RETURN DISPLAY'FIELD'2'9: CTL=CNTRL'2(09) : PRINT TAB(ROW,COL);FILE'RECCNT USING MASK(16) RETURN DISPLAY'FIELD'2'10: CTL=CNTRL'2(10) : PRINT TAB(ROW,COL);FILE'MAXCNT USING MASK(16) RETURN DISPLAY'FIELD'2'11: CTL=CNTRL'2(11) : PRINT TAB(ROW,COL);FILE'DELCNT USING MASK(16) RETURN DISPLAY'FIELD'2'12: CTL=CNTRL'2(12) : PRINT TAB(ROW,COL);FILE'LST'KEY USING MASK(16) RETURN DISPLAY'FIELD'2'13: CTL=CNTRL'2(13) : PRINT TAB(ROW,COL);FILE'TYPE TEMP=FILE'TYPE : CALL LOOKUP'TYPE F=VAL(COL)+2 : COL=F USING MASK(2) PRINT TAB(ROW,COL);TEMP RETURN DISPLAY'FIELD'2'14: CTL=CNTRL'2(14) : PRINT TAB(ROW,COL);FILE'USEAGE TEMP=FILE'USEAGE : CALL LOOKUP'USEAGE F=VAL(COL)+2 : COL=F USING MASK(2) PRINT TAB(ROW,COL);TEMP RETURN DISPLAY'FIELD'2'15: CTL=CNTRL'2(15) : PRINT TAB(ROW,COL);FILE'PRI'NAME RETURN DISPLAY'FIELD'2'16: CTL=CNTRL'2(16) : PRINT TAB(ROW,COL);FILE'PRI'DEVICE RETURN DISPLAY'FIELD'2'17: CTL=CNTRL'2(17) : PRINT TAB(ROW,COL);FILE'PRI'ACCT RETURN DISPLAY'FIELD'2'18: CTL=CNTRL'2(18) : PRINT TAB(ROW,COL);FILE'PRI'REC'LEN USING MASK(13) RETURN DISPLAY'FIELD'3'1: CTL=CNTRL'3(01) : PRINT TAB(ROW,COL);REPORT'NAME RETURN DISPLAY'FIELD'3'2: CTL=CNTRL'3(02) : PRINT TAB(ROW,COL);REPORT'DESC RETURN DISPLAY'FIELD'3'3: CTL=CNTRL'3(03) : PRINT TAB(ROW,COL);REPORT'FILE'DEVICE RETURN DISPLAY'FIELD'3'4: CTL=CNTRL'3(04) : PRINT TAB(ROW,COL);REPORT'FILE'NAME RETURN DISPLAY'FIELD'3'5: CTL=CNTRL'3(05) : PRINT TAB(ROW,COL);REPORT'FILE'ACCT RETURN DISPLAY'FIELD'3'6: CTL=CNTRL'3(06) : PRINT TAB(ROW,COL);REPORT'SPOOL RETURN DISPLAY'FIELD'3'7: CTL=CNTRL'3(07) : PRINT TAB(ROW,COL);REPORT'PRINTER;"-"; TEMP=REPORT'PRINTER CALL LOOKUP'PRINTER PRINT TEMP FOR I=1 TO 10 F=3+I-(INT((I-1)/5)*5) : ROW=F USING "#Z" F=50+(INT((I-1)/5)*15): COL=F USING "#Z" TEMP=I USING "##." PRINT TAB(ROW,COL);TEMP;" ";DESCRIPT(VAL(REPORT'PRINTER),I); NEXT I RETURN DISPLAY'FIELD'3'8: CTL=CNTRL'3(08) : PRINT TAB(ROW,COL);REPORT'FORMS RETURN DISPLAY'FIELD'3'9: CTL=CNTRL'3(09) : PRINT TAB(ROW,COL);REPORT'COPIES RETURN DISPLAY'FIELD'3'10: CTL=CNTRL'3(10) : PRINT TAB(ROW,COL);REPORT'WIDTH RETURN DISPLAY'FIELD'3'11: CTL=CNTRL'3(11) : PRINT TAB(ROW,COL);REPORT'BANNER RETURN DISPLAY'FIELD'3'12: CTL=CNTRL'3(12) : PRINT TAB(ROW,COL);REPORT'DELETE RETURN DISPLAY'FIELD'3'13: CTL=CNTRL'3(13) : PRINT TAB(ROW,COL);REPORT'HEADER RETURN DISPLAY'FIELD'3'14: CTL=CNTRL'3(14) : PRINT TAB(ROW,COL);REPORT'FF RETURN DISPLAY'FIELD'3'15: CTL=CNTRL'3(15) : PRINT TAB(ROW,COL);REPORT'START'SEQ1 RETURN DISPLAY'FIELD'3'16: CTL=CNTRL'3(16) : PRINT TAB(ROW,COL);REPORT'START'SEQ2 RETURN DISPLAY'FIELD'3'17: CTL=CNTRL'3(17) : PRINT TAB(ROW,COL);REPORT'STOP'SEQ1 RETURN DISPLAY'FIELD'3'18: CTL=CNTRL'3(18) : PRINT TAB(ROW,COL);REPORT'STOP'SEQ2 RETURN !--------------------------------------------------------------------- ! DISPLAY FILE ACCESS DATA !--------------------------------------------------------------------- DISPLAY'ACCESS'DATA: CALL DISPLAY'ACCESS'DATE'TIME CALL DISPLAY'MODIFY'DATE'TIME CALL DISPLAY'BACKUP'DATE'TIME RETURN DISPLAY'ACCESS'DATE'TIME: IF FILE'LAST'ACC'DATE=0 RETURN BINDATE=FILE'LAST'ACC'DATE CALL SET'DATE'1 CTL=CNTRL'2(19) : PRINT TAB(ROW,COL);TODAY BINTIME=FILE'LAST'ACC'TIME CALL SET'TIME'1 CTL=CNTRL'2(20) : PRINT TAB(ROW,COL);CLOCK RETURN DISPLAY'MODIFY'DATE'TIME: IF FILE'LAST'MOD'DATE=0 RETURN BINDATE=FILE'LAST'MOD'DATE CALL SET'DATE'1 CTL=CNTRL'2(21) : PRINT TAB(ROW,COL);TODAY BINTIME=FILE'LAST'MOD'TIME CALL SET'TIME'1 CTL=CNTRL'2(22) : PRINT TAB(ROW,COL);CLOCK RETURN DISPLAY'BACKUP'DATE'TIME: IF FILE'LAST'BAK'DATE=0 RETURN BINDATE=FILE'LAST'BAK'DATE CALL SET'DATE'1 CTL=CNTRL'2(23) : PRINT TAB(ROW,COL);TODAY BINTIME=FILE'LAST'BAK'TIME CALL SET'TIME'1 CTL=CNTRL'2(24) : PRINT TAB(ROW,COL);CLOCK RETURN !--------------------------------------------------------------------- ! FIELD'SKIP CHECK ROUTINE - IF ITEM IS TO BE SKIPPED, SKIP'STATUS=SKIP !--------------------------------------------------------------------- SKIP'CHECK: SKIP'STATUS=NO'SKIP RETURN !--------------------------------------------------------------------- ! USERPROMPT AREA !--------------------------------------------------------------------- DISPLAY'PROMPT'2: TEMP="" IF ENTRY'NUM=13 TEMP="1-Seq, 2-Ran(ext), 3-Ran(AA), 4-Ran(AA/Index), 5-ISAM(Pri), 6-ISAM(sec)" IF ENTRY'NUM=14 TEMP="1-Master, 2-Transaction, 3-History, 4-Temp, 5-Control" PRINT TAB(24,1);TEMP; RETURN DISPLAY'PROMPT'3: TEMP="" IF ENTRY'NUM=7 CALL SETUP'PRINTER'PROMPT IF ENTRY'NUM=8 TEMP="NORMAL, CHECK, WIDE" PRINT TAB(24,1);TEMP; RETURN SETUP'PRINTER'PROMPT: TEMP="" FOR I=1 TO PRINTERS'DEFINED FDATA(I)=I USING "##" FDATA(I)=FDATA(I)+"-"+PRINTER'NAME(I) NEXT I FOR I=1 TO PRINTERS'DEFINED TEMP=TEMP+FDATA(I)+", " NEXT I RETURN CLEAR'PROMPT: PRINT TAB(24,1);TAB(-1,9); RETURN !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! SPECIAL SYSMGR FUNCTIONS SECTION !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DO'SPECIAL'FUCNTION: ON WHATNO-89 CALL FUNCT'1,& FUNCT'2,& FUNCT'3,& FUNCT'4,& FUNCT'5,& FUNCT'6,& FUNCT'7,& FUNCT'8,& FUNCT'9,& FUNCT'10 RETURN FUNCT'2: FUNCT'3: FUNCT'4: FUNCT'5: FUNCT'6: FUNCT'7: FUNCT'8: FUNCT'9: FUNCT'10: RETURN !--------------------------------------------------------------------- ! FUNCTION 1 - BUILD/INIT FILES !--------------------------------------------------------------------- FUNCT'1: CALL GET'LOC CALL FILE'WRITE ON VAL(FILE'TYPE) GOTO CREATE'SEQUENTIAL,& CREATE'RANDOM,& CREATE'RANDOM,& CREATE'RANDOM,& CREATE'ISAM'PRIMARY,& CREATE'ISAM'SECONDARY RETURN CREATE'SEQUENTIAL: OPEN #FILE'CHANNEL,FILE'DEVICE+":"+FILE'NAME+"["+FILE'ACCT+"]",OUTPUT CLOSE #FILE'CHANNEL RETURN CREATE'RANDOM: TEMP=FILE'DEVICE+":"+FILE'NAME+"["+FILE'ACCT+"]" BLOCKS=INT(FILE'REC'LEN*MAXCNT/512)+1 ALLOCATE TEMP,BLOCKS ! CALL INIT'FILE RETURN CREATE'ISAM'PRIMARY: OPEN #95,"SYSMGR.CMD",OUTPUT PRINT #95,"LOG ";FILE'DEVICE;":";FILE'ACCT PRINT #95,"ISMBLD ";FILE'NAME TEMP=FILE'KEY'LEN : PRINT #95,TEMP TEMP=FILE'KEY'POS : PRINT #95,TEMP TEMP=FILE'REC'LEN : PRINT #95,TEMP TEMP=FILE'MAXCNT : PRINT #95,TEMP F=INT(FILE'MAXCNT/INT(512/(FILE'KEY'LEN+6))) TEMP=F : PRINT #95,TEMP PRINT #95,"Y" PRINT #95 PRINT #95 PRINT #95,"LOG ";ORG'DSK;":";ORG'PPN PRINT #95,":R" PRINT #95,"RUN SYSMGR" CLOSE #95 CHAIN "SYSMGR.CMD" RETURN CREATE'ISAM'SECONDARY: OPEN #95,"SYSMGR.CMD",OUTPUT PRINT #95,"LOG ";FILE'DEVICE;":";FILE'ACCT PRINT #95,"ISMBLD ";FILE'NAME TEMP=FILE'KEY'LEN : PRINT #95,TEMP TEMP=FILE'KEY'POS : PRINT #95,TEMP TEMP=FILE'REC'LEN : PRINT #95,TEMP TEMP=FILE'MAXCNT : PRINT #95,TEMP F=INT(FILE'MAXCNT/INT(512/(FILE'KEY'LEN+6))) TEMP=F : PRINT #95,TEMP PRINT #95,"N" PRINT #95,FILE'PRI'DEVICE;":";FILE'PRI'NAME PRINT #95 PRINT #95,"LOG ";ORG'DSK;":";ORG'PPN PRINT #95,":R" PRINT #95,"RUN SYSMGR" CLOSE #95 CHAIN "SYSMGR.CMD" RETURN !--------------------------------------------------------------------- ! ISAM DATA LOOKUP !--------------------------------------------------------------------- GET'ISAM'DATA: OPEN #95,FILE'PATH,RANDOM,80,KE READ #95,BUF CLOSE #95 FDATA(1)=B(13) USING MASK(16) !KEY'SIZE FDATA(2)=W(09) USING MASK(16) !KEY'POSITION FDATA(3)=W(06) USING MASK(16) !REC'SIZE FDATA(4)=W(10) USING MASK(16) !RECS/BLK FDATA(5)=W(16) USING MASK(16) !IDX PTR FDATA(6)=W(18) USING MASK(16) !IDX CNT FDATA(7)=W(12) USING MASK(16) !IDA PTR FDATA(8)=W(14) USING MASK(16) !IDA CNT FDATA(9)=W(20) USING MASK(16) !RECS/USED F=W(20)+W(14) FDATA(10)=F USING MASK(16) !REC/MAX F=FDATA(9)/FDATA(10)*100 FDATA(11)=F USING MASK(16) !PTC/FULL FOR I=1 TO 11 PRINT TAB(I+4,70);FDATA(I) NEXT I RETURN CLEAR'ISAM'DATA: FOR I=1 TO 11 PRINT TAB(I+4,70);" " NEXT I RETURN !--------------------------------------------------------------------- ! LOOKUP AREA !--------------------------------------------------------------------- LOOKUP'TYPE: IF TEMP="1" TEMP="Sequential" IF TEMP="2" TEMP="Random(External)" IF TEMP="3" TEMP="Random(AA)" IF TEMP="4" TEMP="Random(AA/Indexed)" IF TEMP="5" TEMP="ISAM Primary" IF TEMP="6" TEMP="ISAM Secondary" RETURN LOOKUP'USEAGE: IF TEMP="1" TEMP="Master" IF TEMP="2" TEMP="Transaction" IF TEMP="3" TEMP="History" IF TEMP="4" TEMP="Temporary" IF TEMP="5" TEMP="Control" RETURN LOOKUP'PRINTER: IF VAL(TEMP) <> 0 AND VAL(TEMP) <= PRINTERS'DEFINED & TEMP=PRINTER'NAME(VAL(TEMP)) & ELSE & TEMP="NONE" RETURN LOOKUP'FILE: ON VAL(FILE'TYPE) CALL LOOKUP'SEQUENTIAL,& LOOKUP'RANDOM'EXT,& LOOKUP'RANDOM'AA,& LOOKUP'RANDOM'AA'IDX,& LOOKUP'ISAM'PRIMARY,& LOOKUP'ISAM'SECONDARY RETURN LOOKUP'RANDOM'EXT: LOOKUP'SEQUENTIAL: FILE'PATH=FILE'DEVICE+":"+FILE'NAME+".DAT["+FILE'ACCT+"]" RW=22 : TEMP="Data" : CALL LOOKUP'FILE'GENERIC RETURN LOOKUP'RANDOM'AA: FILE'PATH=FILE'DEVICE+":"+FILE'NAME+".DAT["+FILE'ACCT+"]" RW=22 : TEMP=" Data" : CALL LOOKUP'FILE'GENERIC GOTO AA'FILE'DATA LOOKUP'RANDOM'AA'IDX: FILE'PATH=FILE'DEVICE+":"+FILE'NAME+".DAT["+FILE'ACCT+"]" RW=22 : TEMP="Index" : CALL LOOKUP'FILE'GENERIC FILE'PATH=FILE'PRI'DEVICE+":"+FILE'PRI'NAME+".DAT["+FILE'PRI'ACCT+"]" RW=23 : TEMP=" Data" : CALL LOOKUP'FILE'GENERIC AA'FILE'DATA: IF BLOCKS=0 RETURN OPEN #FILE'CHANNEL,FILE'PATH,RANDOM,512,FILE'RECNO READ #FILE'CHANNEL,DUMMY'RANDOM CLOSE #FILE'CHANNEL FILE'CONTROL=DUM'COUNTS CALL DISPLAY'COUNTS RETURN LOOKUP'ISAM'PRIMARY: FILE'PATH=FILE'DEVICE+":"+FILE'NAME+".IDX["+FILE'ACCT+"]" RW=22 : TEMP="Index" : CALL LOOKUP'FILE'GENERIC IF BLOCKS=0 & CALL CLEAR'ISAM'DATA & ELSE & CALL GET'ISAM'DATA FILE'PATH=FILE'DEVICE+":"+FILE'NAME+".IDA["+FILE'ACCT+"]" RW=23 : TEMP=" Data" : CALL LOOKUP'FILE'GENERIC RETURN LOOKUP'ISAM'SECONDARY: FILE'PATH=FILE'DEVICE+":"+FILE'NAME+".IDX["+FILE'ACCT+"]" RW=22 : TEMP="Index" : CALL LOOKUP'FILE'GENERIC IF BLOCKS=0 & CALL CLEAR'ISAM'DATA & ELSE & CALL GET'ISAM'DATA FILE'PATH=FILE'PRI'DEVICE+":"+FILE'PRI'NAME+".IDA["+FILE'PRI'ACCT+"]" RW=23 : TEMP=" Data" : CALL LOOKUP'FILE'GENERIC RETURN LOOKUP'FILE'GENERIC: LOOKUP FILE'PATH,BLOCKS IF BLOCKS=0 & PRINT TAB(RW,45);TEMP;" file does not exist."; & ELSE & PRINT TAB(RW,45);TEMP;" file is ";ABS(BLOCKS);"blocks "; RETURN GET'LOC: XCALL DSKPPN,ORG'DSK,ORG'PPN !CONVERT OCTAL DSK # TO DECIMAL F=VAL(ORG'DSK[4,5]) I=INT(F/8) J=I*7+(F-(I*8)) ORG'DSK[4,5]=J USING "#ZZ" RETURN !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! AREA FOR STANDARD SUBROUTINES (BASIC AND ASSEMBLY) - STDMNT.SUB !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! ++INCLUDE STDMNT.SUB !*****BEGIN OF STDMNT.SUB********************************************** ! ! Copyright (c) 1984,1989 Double-D Software Services ! ! Double-D Software Services Dave Drake ! 4924 Chantilly (702) 438-2173 ! Las Vegas, Nv. 89110 ! ! PROGRAM NAME: STDMNT.SUB ! ! DATE CREATED: 05/06/84 ! ! DESCRIPTION: STANDARD ROUTINES FOR FILE MAINTENANCE PROGS ! ! CHANGE HISTORY: ! ! DATE BY DESCRIPTION !********************************************************************* !--------------------------------------------------------------------- ! MISCELLANEOUS BASIC ROUTINES !--------------------------------------------------------------------- DISPLAY'SSN: PRINT TAB(ROW,COL); IF F=0 & PRINT SPACE(11) :& RETURN TEMP=F USING "#ZZZZZZZZ" PRINT TEMP[1,3];"-";TEMP[4,5];"-";TEMP[6,9]; RETURN DISPLAY'PHONE: PRINT TAB(ROW,COL); IF F=0 & PRINT SPACE(14) :& RETURN TEMP=F USING "#ZZZZZZZZZ" IF VAL(TEMP[1,3]) > 0 & PRINT "(";TEMP[1,3];") "; & ELSE & PRINT " "; PRINT TEMP[4,6];"-";TEMP[7,10] RETURN DISPLAY'DATE: PRINT TAB(ROW,COL); IF VAL(TEMP)>0 & PRINT TEMP[3,4];"/";TEMP[5,6];"/";TEMP[1,2]; & ELSE & PRINT " "; RETURN SET'DATE: BINDATE=DATE SET'DATE'1: TODAY2[1,2] = VAL(MONTH) USING "#Z" TODAY2[3,4] = VAL(DAY) USING "#Z" TODAY2[5,6] = VAL(YEAR) USING "#Z" TODAY1=TODAY2[5,6]+TODAY2[1,4] TODAY=TODAY2[1,2]+"/"+TODAY2[3,4]+"/"+TODAY2[5,6] RETURN SET'TIME: BINTIME=TIME SET'TIME'1: CLOCK="" HRS=INT(BINTIME/3600) CLOCK[1,2]=HRS USING "#Z" CLOCK=CLOCK+":" MINS=INT((BINTIME-(HRS*3600))/60) SECS=INT(((BINTIME-(HRS*3600))/60)-(MINS*60)) KEY=MINS USING "#Z" CLOCK=CLOCK+KEY IF VAL(CLOCK[1,2]) < 12 & AMPM = " AM" & ELSE & AMPM = " PM" IF AMPM = " PM" AND VAL(CLOCK[1,2]) <> 12 & AMT=VAL(CLOCK[1,2]) :& CLOCK[1,2]=AMT-12 USING "##" CLOCK=CLOCK+AMPM RETURN INIT'HEADER: CALL SET'DATE CALL SET'TIME PRINT TAB(1,49);SYSTEM'TAG; PRINT TAB(2,49);TODAY;" ";CLOCK; RETURN !--------------------------------------------------------------------- ! WAIT.SBR - DISPLAY WAIT MESSAGES !--------------------------------------------------------------------- PROCESSING'CLEAR: PROCESSING'1: XCALL WAIT,1:RETURN PRINTING: PROCESSING'2: XCALL WAIT,2:RETURN WAIT: PROCESSING'3: XCALL WAIT,3:RETURN PROCESSING: PROCESSING'4: XCALL WAIT,4:RETURN !--------------------------------------------------------------------- ! INPUT.SBR - KEYBOARD INPUT SUBROUTINE !--------------------------------------------------------------------- INPUT: ENTRY="" XCALL INPUT,& VAL(ROW),& VAL(COL),& VAL(XMAX),& VAL(XMIN),& TYPE,& ENTRY,& INPUT'STATUS,& 1 CALL STRIP INPUT'LEN=LEN(ENTRY) RETURN !--------------------------------------------------------------------- ! STRIP.SBR - SUBROUTINE TO STRIB TRAILING SPACES !--------------------------------------------------------------------- STRIP: XCALL STRIP,ENTRY RETURN !--------------------------------------------------------------------- ! MESAG.SBR - SUBROUTINE TO DISPLAY MESSAGES ON LINE 24 !--------------------------------------------------------------------- MESAG: MSXCTL=2 MESAG1: XCALL MESAG,MSG,MSXCTL : RETURN !--------------------------------------------------------------------- ! ANYCN.SBR - SUBROUTINE TO ASK FOR ANY CHANGE !--------------------------------------------------------------------- ANYCN: XCALL ANYCN,CHANGE'STATUS,WHATNO RETURN !*****END OF STDMNT.SUB************************************************ !********************************************************************* ! FILE IO ROUTINES - INCLUDE ...FIL.SUB FOR EVERY FILE USED !********************************************************************* ! ++INCLUDE SYSMGR.SUB !*****BEGIN OF SYSMGR.SUB********************************************** ! ! Copyright (c) 1984,1989 Double-D Software Services ! ! Double-D Software Services Dave Drake ! 4924 Chantilly (702) 438-2173 ! Las Vegas, Nv. 89110 ! ! PROGRAM NAME: SYSMGR.SUB ! ! DATE CREATED: 05/06/84 ! ! DESCRIPTION: STANDARD SYSTEM MANAGEMENT ROUTINES ! ! CHANGE HISTORY: ! ! DATE BY DESCRIPTION !********************************************************************* SYSMGR'OPEN: ON ERROR GOTO SYSMGR'ERROR OPEN #SYSMGR'CHANNEL,SYSMGR'PATH,RANDOM'FORCED,SYSMGR'REC'SIZE,SYSMGR'RECNO ON ERROR GOTO 0 RETURN SYSMGR'CLOSE: ON ERROR GOTO SYSMGR'ERROR CLOSE #SYSMGR'CHANNEL ON ERROR GOTO 0 RETURN SYSMGR'READ: ON ERROR GOTO SYSMGR'ERROR READ #SYSMGR'CHANNEL,SYSMGR'RECORD ON ERROR GOTO 0 RETURN SYSMGR'WRITE: ON ERROR GOTO SYSMGR'ERROR WRITE #SYSMGR'CHANNEL,SYSMGR'RECORD ON ERROR GOTO 0 RETURN SYSMGR'ACCESS: CALL SYSMGR'LOOKUP CALL SYSMGR'OPEN IF SYSMGR'ACC'FLAG=YES & CALL SYSMGR'ACCESS'UPDATE IF SYSMGR'MOD'FLAG=YES & CALL SYSMGR'MODIFY'UPDATE SYSMGR'RECORD=FILE'RECORD CALL SYSMGR'WRITE CALL SYSMGR'CLOSE RETURN SYSMGR'ACCESS'UPDATE: FILE'LAST'ACC'DATE=DATE FILE'LAST'ACC'TIME=TIME SYSMGR'ACC'FLAG=NO RETURN SYSMGR'MODIFY'UPDATE: FILE'LAST'MOD'DATE=DATE FILE'LAST'MOD'TIME=TIME SYSMGR'MOD'FLAG=NO IF VAL(FILE'TYPE)>=2 AND VAL(FILE'TYPE) <=4 & FILE'CONTROL=SYSMGR'CONTROL RETURN SYSMGR'LOOKUP'REPORT: CALL SYSMGR'OPEN SYSMGR'RECNO=2 : CALL SYSMGR'READ REPORTS'IN'SYSTEM'RECORD=SYSMGR'RECORD LOOKUP'RECNO=0 FOR I=1 TO 42 IF LOOKUP'REPORT=SYSMGR'REPORT(I) & LOOKUP'RECNO=I :& I=42 NEXT I IF LOOKUP'RECNO=0 & SYSMGR'STATUS=REPORT'NOT'IN'SYSMGR :& GOTO SYSMGR'ERROR'1 SYSMGR'RECNO=LOOKUP'RECNO+44 CALL SYSMGR'READ REPORT'RECORD=SYSMGR'RECORD CALL SYSMGR'CLOSE RETURN SYSMGR'GET'REPORT'DATA: SYSMGR'RECNO=LOOKUP'RECNO+44 CALL SYSMGR'READ REPORT'RECORD=SYSMGR'RECORD CALL SYSMGR'CLOSE RETURN SYSMGR'LOOKUP: CALL SYSMGR'OPEN SYSMGR'RECNO=0 : CALL SYSMGR'READ SYSTEM'RECORD=SYSMGR'RECORD SYSMGR'RECNO=1 : CALL SYSMGR'READ FILES'IN'SYSTEM'RECORD=SYSMGR'RECORD LOOKUP'RECNO=0 FOR I=1 TO 42 IF LOOKUP'FILE=SYSMGR'FILE(I) & LOOKUP'RECNO=I :& I=42 NEXT I IF LOOKUP'RECNO=0 & SYSMGR'STATUS=FILE'NOT'IN'SYSMGR :& GOTO SYSMGR'ERROR'1 SYSMGR'RECNO=LOOKUP'RECNO+2 CALL SYSMGR'READ FILE'RECORD=SYSMGR'RECORD CALL SYSMGR'CLOSE RETURN SYSMGR'GET'LST'KEY: CALL SYSMGR'OPEN SYSMGR'RECNO=SYSMGR'KEY CALL SYSMGR'READ FILE'RECORD=SYSMGR'RECORD FILE'LST'KEY=FILE'LST'KEY+1 SYSMGR'PASS'KEY=FILE'LST'KEY SYSMGR'RECORD=FILE'RECORD CALL SYSMGR'WRITE CALL SYSMGR'CLOSE RETURN SYSMGR'ERROR: SYSMGR'STATUS=ERR(0) SYSMGR'ERROR=ERR(0) SYSMGR'ERROR'1: MSG="Error #"+SYSMGR'ERROR+"-" IF SYSMGR'STATUS=13 MSG=MSG+"File already open" IF SYSMGR'STATUS=14 MSG=MSG+"IO to unopened file" IF SYSMGR'STATUS=15 MSG=MSG+"Record Size Overflow" IF SYSMGR'STATUS=16 MSG=MSG+"File specification error" IF SYSMGR'STATUS=17 MSG=MSG+"File not found" IF SYSMGR'STATUS=29 MSG=MSG+"File already exists" IF SYSMGR'STATUS=31 MSG=MSG+"Illegal record number" IF SYSMGR'STATUS=32 MSG=MSG+"Invalid Filename" IF SYSMGR'STATUS=98 MSG=MSG+"Report: "+LOOKUP'REPORT+" not in SYSMGR" IF SYSMGR'STATUS=99 MSG=MSG+"File: "+LOOKUP'FILE+" not in SYSMGR" IF MSG[1,8]="Warning:" & RECOVER=YES & ELSE & MSG=MSG+" File:SYSMGR Rec:"+SYSMGR'RECNO :& RECOVER=NO XCALL MESAG,MSG,1 IF SYSMGR'ERROR <> 0 & SYSMGR'ERROR=0 :& RESUME SYSMGR'ERROR'EXIT SYSMGR'ERROR'EXIT: IF ERROR'TRAP=YES & ON ERROR GOTO TRAP'ROUTINE & ELSE & ON ERROR GOTO 0 IF RECOVER=NO & GOTO ERROR'EXIT RETURN !*****END OF SYSMGR.SUB************************************************