STORE 1 TO SWITCH STORE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' TO AL:PHA STORE '0123456789' TO NUM:BER STORE ' ' TO RECORD DO WHILE SWITCH = 1 ERASE @ 1,5 SAY 'SYSTEM NAME ' GET RECORD @ 4,0 SAY 'ENTER "system" YOU WISH TO CREATE OR UPDATE -OR-' @ 5,0 SAY 'ENTER "SYSDOC" TO OBTAIN SYSGEN DOCUMENTATION -OR- ' @ 6,0 SAY 'ENTER "QUIT" TO RETURN TO CP/M.' READ STORE !(RECORD) TO RECORD IF RECORD <> 'UPDATE' IF RECORD = 'QUIT' STORE 2 TO I:STAT RETURN ENDIF IF RECORD = 'SYSDOC' IF .NOT. FILE('SYSDOC.CMD') @ 9,5 SAY '*** SYSGEN Documentation NOT On Disk ***' DO SWAIT LOOP ENDIF DO SYSDOC ENDIF IF @(' ',RECORD) <> 0 @ 9,2 SAY 'SYSTEM NAME MUST BE SIX CHARACTERS -' @ 11,2 SAY 'CORRECT OR ENTER "QUIT"' DO SWAIT LOOP ENDIF IF @($(RECORD,1,1),AL:PHA) = 0 .OR. $(RECORD,1,3) = 'SYS' @ 9,2 SAY 'INVALID SYSTEM NAME - CORRECT OR ENTER "QUIT"' DO SWAIT LOOP ENDIF STORE RECORD TO REMEMBER FIND &RECORD IF RECORD = TRANS:CD @ 9,5 SAY 'DUPLICATE NAME - CORRECT OR ENTER "QUIT"' @ 11,5 SAY '-OR- ENTER "UPDATE" TO MODIFY SYSTEM' DO SWAIT DO SWAIT ELSE STORE 0 TO SWITCH ENDIF ELSE STORE 0 TO SWITCH ENDIF ENDDO IF RECORD <> 'UPDATE' APPEND BLANK REPLACE TRANS:CD WITH RECORD ENDIF STORE 1 TO TELL REPLACE BLD:DATE WITH ' ' DO WHILE TELL = 1 ERASE STORE ' ' TO SYS: @ 2,5 SAY 'ENTER DATE IN "YYMMDD" FORMAT ' GET SYS: READ REPLACE BLD:DATE WITH $(SYS:,1,2) + '/' + $(SYS:,3,2) + '/' + $(SYS:,5,2) IF $(BLD:DATE,1,1) <> '8' .OR. $(BLD:DATE,4,2) < '01' .OR. $(BLD:DATE,4,2); > '12' .OR. $(BLD:DATE,7,2) < '01' .OR. $(BLD:DATE,7,2) > '31'; .OR. $(BLD:DATE,2,1) < '2' @ 2,5 SAY 'INVALID DATE - TRY AGAIN ! ' DO SWAIT ELSE STORE 0 TO TELL ENDIF ENDDO RELEASE TELL STORE 'RETURN TO CP/M ' TO FUNCTION:1 STORE 'RETURN TO dBASE II ' TO FUNCTION:2 STORE 'PERFORM SYS. MAINT. ' TO FUNCTION:3 STORE 'ADD RECORD ' TO FUNCTION:4 STORE 'CHANGE RECORD ' TO FUNCTION:5 STORE 'DELETE RECORD ' TO FUNCTION:6 STORE 'DISPLAY RECORD ' TO FUNCTION:7 STORE 'CREATE REPORT ' TO FUNCTION:8 STORE 1 TO SWITCH DO WHILE SWITCH = 1 ERASE @ 1,5 SAY 'SYSTEM PWD ' GET PASSWORD READ IF @(' ',PASSWORD) <> 0 @ 2,5 SAY 'PASSWORD MUST BE SIX CHARACTERS!' DO SWAIT LOOP ELSE STORE 0 TO SWITCH ENDIF ENDDO STORE !(PASSWORD) TO PASSWORD STORE 1 TO SWITCH DO WHILE SWITCH = 1 ERASE @ 1,5 SAY 'FILE NAME ' GET FILE:NAME READ STORE !(FILE:NAME) TO FILE:NAME IF FILE:NAME = 'QUIT' STORE 1 TO I:STAT RETURN ENDIF IF @($(FILE:NAME,1,1),AL:PHA) = 0 @ 2,5 SAY 'INVALID FILE NAME - TRY AGAIN OR ENTER "QUIT"' DO SWAIT LOOP ENDIF STORE ' ' TO D: DO WHILE D:<'A' OR D:>'P' @ 3,5 SAY 'DRIVE ' GET D: READ STORE !(D:) TO D: ENDDO STORE D: + ':' TO D: , DR: STORE D:+FILE:NAME TO IN::FILE IF .NOT. FILE(IN::FILE) @ 2,5 SAY 'FILE NOT FOUND - TRY AGAIN OR ENTER "QUIT"' DO SWAIT ELSE SELECT PRIMARY USE &IN::FILE SELECT SECONDARY STORE 0 TO SWITCH ENDIF ENDDO ERASE @ 1,5 SAY 'FUNCTIONS:' @ 3,1 SAY '1. :' + FUNCTION:1 + ':' @ 4,1 SAY '2. :' + FUNCTION:2 + ':' @ 5,1 SAY '3. :' + FUNCTION:3 + ':' @ 6,1 SAY '4. :' + FUNCTION:4 + ':' @ 7,1 SAY '5. :' + FUNCTION:5 + ':' @ 8,1 SAY '6. :' + FUNCTION:6 + ':' @ 9,1 SAY '7. :' + FUNCTION:7 + ':' @ 10,1 SAY '8. :' + FUNCTION:8 + ':' @ 11,1 SAY '9. ' GET FUNCTION:9 @ 12,1 SAY '0. ' GET FUNCTION:0 @ 13,1 SAY 'HEADER ' GET HEADER READ RELEASE FUNCTION:1 , FUNCTION:2 , FUNCTION:3 , FUNCTION:4 RELEASE FUNCTION:5 , FUNCTION:6 , FUNCTION:7 , FUNCTION:8 REPLACE FUNCTION:9 WITH !(FUNCTION:9) REPLACE FUNCTION:0 WITH !(FUNCTION:0) REPLACE HEADER WITH !(HEADER) REPLACE II:VAL WITH ' ' STORE ' @($(SEL:ECT,1,1),AL:PHA) = 0' TO I:CHK ERASE **************************************** SELECT PRIMARY USE &IN::FILE COPY TO GEN:TEMP STRUCTURE EXTENDED USE GEN:TEMP GO 1 ERASE STORE 0 TO I::COL STORE 2 TO I::LINE DO WHILE .NOT. EOF @ I::LINE,I::COL SAY FIELD:NAME + ' {' + FIELD:TYPE + '}' STORE I::COL + 17 TO I::COL IF I::COL > 36 STORE I::LINE + 1 TO I::LINE STORE 0 TO I::COL ENDIF SKIP ENDDO RELEASE I::LINE , I::COL USE &IN::FILE SELECT SECONDARY **************************************** DO WHILE SWITCH <> 1 STORE 1 TO SWITCH @ 15,5 SAY 'FIELD SELECTIONS:' @ 17,5 GET SELECT:1 @ 17,20 GET SELECT:2 @ 18,5 GET SELECT:3 @ 18,20 GET SELECT:4 READ REPLACE SELECT:1 WITH !(SELECT:1) REPLACE SELECT:2 WITH !(SELECT:2) REPLACE SELECT:3 WITH !(SELECT:3) REPLACE SELECT:4 WITH !(SELECT:4) IF SELECT:1 = 'QUIT' STORE 1 TO I:STAT RETURN ENDIF IF SELECT:1 = ' ' .AND. SELECT:2 = ' ' IF SELECT:3 = ' ' .AND. SELECT:4 = ' ' @ 20,5 SAY 'AT LEAST ONE FIELD MUST BE ENTERED' @ 21,5 SAY ' - CORRECT OR ENTER "QUIT"' DO SWAIT @ 20,5 @ 21,5 STORE 0 TO SWITCH LOOP ENDIF ENDIF SELECT PRIMARY STORE TRIM(SELECT:1) TO SEL:ECT IF SEL:ECT > ' ' IF TYPE(&SEL:ECT) = 'L' .OR. 0 = TEST(&SEL:ECT) .OR. &I:CHK STORE 0 TO SWITCH ENDIF ENDIF ** ELSE STORE SELECT:2 TO SEL:ECT IF SEL:ECT > ' ' IF TYPE(&SEL:ECT) = 'L' .OR. 0 = TEST(&SEL:ECT) .OR. &I:CHK STORE 0 TO SWITCH ENDIF ENDIF STORE SELECT:3 TO SEL:ECT IF SEL:ECT > ' ' IF TYPE(&SEL:ECT) = 'L' .OR. 0 = TEST(&SEL:ECT) .OR. &I:CHK STORE 0 TO SWITCH ENDIF ENDIF STORE SELECT:4 TO SEL:ECT IF SEL:ECT > ' ' IF TYPE(&SEL:ECT) = 'L' .OR. 0 = TEST(&SEL:ECT) .OR. &I:CHK STORE 0 TO SWITCH ENDIF ENDIF IF SWITCH = 0 @ 20,1 SAY 'INVALID FIELD ENTERED - CORRECT OR ENTER "QUIT"' DO SWAIT @ 20,1 ENDIF SELECT SECONDARY ENDDO @ 15,0 @ 17,0 @ 18,0 STORE TRANS:CD + 'RP.DBF' TO I:FILE IF RECORD = 'UPDATE' STORE D: + I:FILE TO I:FILE ENDIF IF FILE(I:FILE) SELECT PRIMARY USE &I:FILE STORE PRT1: TO F1 STORE PRT2: TO F2 STORE PRT3: TO F3 STORE PRT4: TO F4 STORE PRT5: TO F5 STORE PRT6: TO F6 STORE PRT7: TO F7 STORE PRT8: TO F8 SELECT SECONDARY ELSE STORE ' ' TO F1,F2,F3,F4,F5,F6,F7,F8 ENDIF DO WHILE SWITCH = 1 SELECT SECONDARY STORE 0 TO SWITCH @ 14,0 @ 15,5 SAY 'REPORTS: REPORT TITLES:' @ 16,0 SAY '1. ' GET REPORT:1 @ 16,20 GET F1 @ 17,0 SAY '2. ' GET REPORT:2 @ 17,20 GET F2 @ 18,0 SAY '3. ' GET REPORT:3 @ 18,20 GET F3 @ 19,0 SAY '4. ' GET REPORT:4 @ 19,20 GET F4 @ 20,0 SAY '5. ' GET REPORT:5 @ 20,20 GET F5 @ 21,0 SAY '6. ' GET REPORT:6 @ 21,20 GET F6 @ 22,0 SAY '7. ' GET REPORT:7 @ 22,20 GET F7 @ 23,0 SAY '8. ' GET REPORT:8 @ 23,20 GET F8 READ IF REPORT:1 = 'QUIT' STORE 1 TO I:STAT RETURN ENDIF STORE !(REPORT:1) TO REPORT:1 STORE !(REPORT:2) TO REPORT:2 STORE !(REPORT:3) TO REPORT:3 STORE !(REPORT:4) TO REPORT:4 STORE !(REPORT:5) TO REPORT:5 STORE !(REPORT:6) TO REPORT:6 STORE !(REPORT:7) TO REPORT:7 STORE !(REPORT:8) TO REPORT:8 SELECT PRIMARY USE &IN::FILE STORE 1 TO RCNT DO WHILE RCNT < 9 STORE 'REPORT:' + STR(RCNT,1) TO RPORT STORE TRIM(&RPORT) TO REPORT IF REPORT <> ' ' IF @($(REPORT,1,1),AL:PHA) = 0 STORE 1 TO SWITCH ELSE IF 0 = TEST(&REPORT) STORE 1 TO SWITCH ELSE IF TYPE(&REPORT) = 'L' STORE 1 TO SWITCH ELSE IF TYPE(&REPORT) = 'C' IF LEN(&REPORT) > 100 STORE 1 TO SWITCH ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF STORE RCNT + 1 TO RCNT ENDDO IF SWITCH = 1 @ 14,1 SAY 'INVALID FIELD ENTERED - CORRECT OR ENTER "QUIT"' DO SWAIT ENDIF ENDDO RELEASE I:CHK STORE 1 TO I:CNT DO WHILE I:CNT < 9 STORE 'REPORT:' + STR(I:CNT,1) TO I:NAME STORE 'F' + STR(I:CNT,1) TO F:NAME IF &F:NAME = ' ' .AND. &I:NAME <> ' ' STORE &I:NAME + ' REPORT' TO &F:NAME ENDIF STORE I:CNT + 1 TO I:CNT ENDDO STORE 15 TO I:CNT DO WHILE I:CNT < 23 @ I:CNT,0 STORE I:CNT + 1 TO I:CNT ENDDO @ I:CNT,0 RELEASE I:CNT , I:NAME, F:NAME SELECT PRIMARY USE SYSPRT REPLACE PRT1: WITH F1, PRT2: WITH F2, PRT3: WITH F3, PRT4: WITH F4 REPLACE PRT5: WITH F5, PRT6: WITH F6, PRT7: WITH F7, PRT8: WITH F8 RELEASE F1,F2,F3,F4,F5,F6,F7,F8 USE &IN::FILE SELECT SECONDARY DO WHILE SWITCH <> 1 @ 18,1 @ 15,1 SAY 'ENTER DATE FIELD, OR ' @ 16,1 SAY 'IF DATE SELECTIONS ARE NOT REQUIRED ' GET I:DATE READ STORE !(I:DATE) TO I:DATE IF @($(I:DATE,1,1),AL:PHA) = 0 .AND. I:DATE <> ' ' @ 18,3 SAY '**INVALID DATE FIELD - CORRECT OR ENTER "QUIT"' DO SWAIT LOOP ENDIF IF I:DATE = 'QUIT' STORE 1 TO I:STAT RETURN ENDIF SELECT PRIMARY STORE I:DATE TO CHK:DATE IF I:DATE <> ' ' .AND. 0 = TEST(&CHK:DATE) @ 18,3 SAY '**INVALID FIELD ENTERED - CORRECT OR ENTER "QUIT"' DO SWAIT ELSE STORE 1 TO SWITCH ENDIF IF I:DATE <> ' ' IF TYPE(&CHK:DATE) <> 'N' @ 18,3 SAY 'DATE MUST BE NUMERIC - CORRECT OR ENTER "QUIT"' DO SWAIT STORE 0 TO SWITCH ENDIF ENDIF SELECT SECONDARY ENDDO @ 15,1 @ 16,1 @ 18,1 RELEASE SELECT , REPORT , CHK:DATE , I:DATE , SWITCH , AL:PHA RELEASE I:WAIT , SYS: , REPORT:1 , REPORT:2 , REPORT:3 , REPORT:4 RELEASE REPORT:5 , REPORT:6 , REPORT:7 , REPORT:8 , RPORT DO WHILE VAL::DTE <> 'Y' .AND. VAL::DTE <> 'N' @ 15,5 SAY 'IS VALIDATION DESIRED (Y/N) ? ' GET VAL::DTE READ IF VAL::DTE = ' ' STORE 'N' TO VAL::DTE ENDIF ENDDO @ 15,5 SELECT PRIMARY USE SYSPRT STORE ' ' TO CHG:VAL IF VAL::DTE = 'Y' STORE 'Y' TO GOT::VAL REPLACE VALL: WITH T IF RECORD = 'UPDATE' .AND. FILE(DR: + REMEMBER + 'VL.CMD') DO WHILE CHG:VAL <> 'Y' .AND. CHG:VAL <> 'N' @ 17,3 SAY 'REPLACE PREVIOUS VALIDATION METHOD (Y/N) ? ' GET CHG:VAL READ ENDDO @ 17,0 IF CHG:VAL = 'N' STORE 'N' TO GOT::VAL ENDIF ENDIF ELSE STORE 'N' TO GOT::VAL REPLACE VALL: WITH F ENDIF @ 15,5 SAY 'SYSGEN ** COMPILE PASS I' SELECT SECONDARY **************************** USE SYS60 STORE DR: + 'SYS45WK1' TO I:FILE COPY STRUCTURE TO &I:FILE USE &I:FILE SELECT PRIMARY USE GEN:TEMP STORE 1 TO I:TIMES STORE ' ' TO II::VAL , I:CHK:LO , I:CHK:HI DO WHILE I:TIMES < 4 STORE 1 TO I:CNT , T:STOP STORE ' ' TO LEN: STORE ' TO F:' TO TOF STORE ' WITH F:' TO WITHF STORE ' WITH !( F:' TO ZITHF STORE T TO LOOPING LOCATE FOR FIELD:NAME <> '~~' DO WHILE LOOPING IF EOF STORE F TO LOOPING LOOP ENDIF IF I:CNT < 10 STORE STR(I:CNT,1) TO CNT: ELSE STORE STR(I:CNT,2) TO CNT: ENDIF SELECT SECONDARY DO CASE CASE I:TIMES = 1 IF @(FIELD:NAME,I:CHK:LO) <> 0 .OR. @(FIELD:NAME,I:CHK:HI) <> 0 STORE '*' TO II::VAL @ 15,22 SAY 'DUPLICATE FIELD:NAME' ENDIF IF I:CNT < 17 STORE I:CHK:LO + FIELD:NAME TO I:CHK:LO ELSE STORE I:CHK:HI + FIELD:NAME TO I:CHK:HI ENDIF IF FIELD:TYPE = 'N' IF FIELD:DEC > 8 REPLACE FIELD:LEN WITH FIELD:LEN - FIELD:DEC + 8 REPLACE FIELD:DEC WITH 8 ENDIF STORE $(LEN:,1,T:STOP) + STR(FIELD:LEN,3) + STR(FIELD:DEC,1) TO LEN: STORE T:STOP + 4 TO T:STOP ENDIF APPEND BLANK IF FIELD:TYPE = 'C' REPLACE FLD1: WITH 'REPLACE ' + TRIM(FIELD:NAME) + ZITHF + CNT: + ')' ELSE REPLACE FLD1: WITH 'REPLACE ' + TRIM(FIELD:NAME) + WITHF + CNT: ENDIF IF @($(FIELD:NAME,1,1),'NYTF') > 0 .AND. LEN(TRIM(FIELD:NAME)) = 1 STORE '*' TO II::VAL @ 15,22 SAY 'RESERVED WORD USAGE' ENDIF CASE I:TIMES = 2 APPEND BLANK REPLACE FLD1: WITH 'STORE ' + TRIM(FIELD:NAME) + TOF + CNT: CASE I:TIMES = 3 APPEND BLANK IF FIELD:TYPE <> 'N' IF FIELD:TYPE = 'C' STORE FIELD:LEN - 125 TO I:LEN IF I:LEN < 1 REPLACE FLD1: WITH 'STORE $(IBLK:,1,' + STR(FIELD:LEN,3) + ')' + TOF + CNT: ELSE REPLACE FLD1: WITH 'STORE $(IBLK:,1,125) + $(IBLK:,1,' + STR(I:LEN,3); + ')' + TOF + CNT: ENDIF ELSE REPLACE FLD1: WITH 'STORE F' + TOF + CNT: ENDIF ELSE IF FIELD:DEC > 0 REPLACE FLD1: WITH 'STORE 0.0' + TOF + CNT: ELSE REPLACE FLD1: WITH 'STORE 0' + TOF + CNT: ENDIF ENDIF ENDCASE STORE I:CNT + 1 TO I:CNT SELECT PRIMARY CONTINUE ENDDO SELECT SECONDARY STORE DR: + 'SYS45WK' + STR(I:TIMES,1) + '.CMD' TO OUT:FILE COPY TO &OUT:FILE SDF USE SYS60 DELETE FILE &I:FILE STORE I:TIMES + 1 TO I:TIMES IF I:TIMES < 4 STORE DR: + 'SYS45WK' + STR(I:TIMES,1) TO I:FILE COPY STRUCTURE TO &I:FILE USE &I:FILE ENDIF SELECT PRIMARY ENDDO RELEASE TOF , WITHF , I:CHK:LO , I:CHK:HI , ZITHF , T:STOP , LEN: **************************** @ 16,5 SAY 'SYSGEN ** COMPILE PASS II' ************************************* SELECT SECONDARY USE SYS60 STORE DR: + 'SYS60WK1' TO I:FILE COPY STRUCTURE TO &I:FILE USE &I:FILE DELETE ALL PACK STORE ' ' TO BY:PASS STORE 3 TO TIMES:I IF GOT::VAL = 'Y' STORE 4 TO TIMES:I STORE T TO VALL: ENDIF STORE 1 TO I:TIMES DO WHILE I:TIMES < TIMES:I IF I:TIMES = 2 STORE 64 TO I:END ELSE STORE 63 TO I:END ENDIF SELECT PRIMARY LOCATE FOR FIELD:NAME <> '~' STORE 1 TO I:PAGE STORE '99999999999999999999999999999999999' TO I9: STORE T TO LOOPING STORE 1 TO I:START ,T:START STORE 2 TO I:LINE STORE 30 TO I:COL STORE 1 TO I:CNT , LAST:LEN STORE ' ' TO I:CURS DO WHILE LOOPING IF EOF STORE F TO LOOPING LOOP ENDIF SELECT SECONDARY IF I:CNT < 10 STORE 'GET F:' + STR(I:CNT,1) TO GETF ELSE STORE 'GET F:' + STR(I:CNT,2) TO GETF ENDIF STORE FIELD:LEN TO THIS:LEN IF LAST:LEN > 10 .OR. I:COL >= 0 STORE 1 TO I:COL STORE I:LINE + 1 TO I:LINE ELSE STORE 30 TO I:COL ENDIF IF I:COL = 30 .AND. THIS:LEN > 15 STORE 1 TO I:COL STORE I:LINE + 1 TO I:LINE ENDIF IF LAST:LEN > I:END STORE LAST:LEN - I:END TO I:SIZE STORE I:LINE + 1 + ( I:SIZE / 80) TO I:LINE ENDIF STORE THIS:LEN TO LAST:LEN IF I:TIMES < 3 IF I:LINE >= 22 STORE T TO BIG: STORE F TO VALL: APPEND BLANK REPLACE FLD1: WITH '@ 23,40 SAY "PAGE ' + STR(I:PAGE,1) + '"' STORE I:PAGE + 1 TO I:PAGE APPEND BLANK IF I:TIMES = 1 REPLACE FLD1: WITH 'READ' ELSE REPLACE FLD1: WITH '@ 23,0 SAY " FOR NEXT PAGE" GET MC::PS' APPEND BLANK REPLACE FLD1: WITH "READ" ENDIF APPEND BLANK REPLACE FLD1: WITH 'ERASE' APPEND BLANK REPLACE FLD1: WITH '@ 0,0 SAY TRANS:CD + " " + BLD:DATE' APPEND BLANK REPLACE FLD1: WITH '@ 0,40 SAY VER:' APPEND BLANK REPLACE FLD1: WITH '@ 1,5 SAY TRIM(HEADER)' STORE 3 TO I:LINE ENDIF ENDIF DO CASE CASE I:TIMES = 1 **************************************** STORE ' + $(E::RR,' + STR(I:CNT,2) + ',1) + ' TO Z: IF FIELD:TYPE <> 'N' APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY "' + ; STR(I:CNT,2) + '."' + Z: + '"' + FIELD:NAME + '" ' + GETF ELSE APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY "' + ; STR(I:CNT,2) + '."' + Z: + '"' + FIELD:NAME + '" ' STORE I:COL + 14 TO I:COL IF FIELD:DEC = 0 STORE "'" + $(I9:,1,FIELD:LEN) + "'" TO PIC: ELSE STORE FIELD:LEN - FIELD:DEC - 1 TO B:PART STORE "'" + $(I9:,1,B:PART) + "." + $(I9:,1,FIELD:DEC) + "'" TO PIC: ENDIF APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' ' + GETF +; ' PICTURE ' + PIC: ENDIF *************************************** CASE I:TIMES = 2 *************************************** IF FIELD:TYPE = 'C' APPEND BLANK IF FIELD:LEN < 240 REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY "' + ; STR(I:CNT,2) + '. ' + FIELD:NAME + ':" + ' + FIELD:NAME ELSE REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY "' + ; STR(I:CNT,2) + '. ' + FIELD:NAME + ':" + ' + '$(' + FIELD:NAME - ',1,240)' ENDIF ELSE APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY "' + ; STR(I:CNT,2) + '. ' + FIELD:NAME + ':" ' STORE I:COL + 15 TO I:COL IF FIELD:TYPE = 'N' IF FIELD:DEC = 0 STORE "'" + $(I9:,1,FIELD:LEN) + "'" TO PIC: ELSE STORE FIELD:LEN - FIELD:DEC - 1 TO B:PART STORE "'" + $(I9:,1,B:PART) + "." + $(I9:,1,FIELD:DEC) + "'" TO PIC: ENDIF APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY ' +; TRIM(FIELD:NAME) + ' PICTURE ' + PIC: ELSE APPEND BLANK REPLACE FLD1: WITH 'IF ' + TRIM(FIELD:NAME) APPEND BLANK REPLACE FLD1: WITH " STORE 'T' TO I:LOG" APPEND BLANK REPLACE FLD1: WITH 'ELSE' APPEND BLANK REPLACE FLD1: WITH " STORE 'F' TO I:LOG" APPEND BLANK REPLACE FLD1: WITH 'ENDIF' APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(I:COL,2) + ' SAY I:LOG' ENDIF ENDIF *************************************** CASE I:TIMES = 3 *************************************** IF FIELD:TYPE <> 'L' .AND. FIELD:LEN < 21 .AND. FIELD:DEC < 1; .AND. BY:PASS = ' ' STORE ' ' TO D: STORE F TO ITS:CASE DO WHILE D: <> 'Y' .AND. D: <> 'N' .AND. BY:PASS <> 'B' @ 18,0 @ 19,0 @ 18,0 SAY 'VALIDATION ON FIELD - ' + FIELD:NAME + ' (Y/N) 'GET D: @ 19,0 SAY 'ENTER "B" TO DISCONTINUE VALIDATION' READ IF D: = 'B' STORE D: TO BY:PASS ENDIF ENDDO @ 18,0 @ 19,0 IF D: = 'Y' STORE I:COL + 3 TO B:COL DO SYSCRT4 @ 18,0 @ 19,0 IF ITS:CASE APPEND BLANK REPLACE FLD1: WITH 'OTHERWISE' ENDIF IF I::OPT APPEND BLANK REPLACE FLD1: WITH 'IF ' + $(GETF,5,4) + ' <> ' + I:OPT ENDIF IF VALL: APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(B:COL,2) + ; ' SAY "*" ' ENDIF APPEND BLANK REPLACE FLD1: WITH 'STORE E::RR + "*" TO E::RR' APPEND BLANK REPLACE FLD1: WITH 'STORE T TO I::ERR' IF I::OPT APPEND BLANK REPLACE FLD1: WITH 'ELSE' APPEND BLANK REPLACE FLD1: WITH 'STORE E::RR + " " TO E::RR' APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(B:COL,2) + ; ' SAY " " ' APPEND BLANK REPLACE FLD1: WITH 'ENDIF' ENDIF APPEND BLANK IF ITS:CASE REPLACE FLD1: WITH 'ENDCASE' ELSE REPLACE FLD1: WITH 'ELSE' APPEND BLANK REPLACE FLD1: WITH 'STORE E::RR + " " TO E::RR' IF VALL: APPEND BLANK REPLACE FLD1: WITH '@ ' + STR(I:LINE,2) + ',' + STR(B:COL,2) + ; ' SAY " " ' ENDIF APPEND BLANK REPLACE FLD1: WITH 'ENDIF' ENDIF ELSE APPEND BLANK REPLACE FLD1: WITH 'STORE E::RR + " " TO E::RR' ENDIF ELSE APPEND BLANK REPLACE FLD1: WITH 'STORE E::RR + " " TO E::RR' ENDIF *************************************** OTHERWISE ENDCASE STORE I:CNT + 1 TO I:CNT SELECT PRIMARY CONTINUE ENDDO SELECT SECONDARY STORE DR: + 'SYS60WK' + STR(I:TIMES,1) + '.CMD' TO OUT:FILE COPY TO &OUT:FILE SDF USE SYS60 DELETE FILE &I:FILE STORE I:TIMES + 1 TO I:TIMES IF I:TIMES < TIMES:I STORE DR: + 'SYS60WK' + STR(I:TIMES,1) TO I:FILE COPY STRUCTURE TO &I:FILE USE &I:FILE IF I:TIMES = 3 APPEND BLANK REPLACE FLD1: WITH 'STORE " " TO E::RR' ENDIF ENDIF SELECT PRIMARY ENDDO ******************************************************** USE DELETE FILE GEN:TEMP SELECT SECONDARY USE SYSCHK INDEX SYSCHK FIND &REMEMBER REPLACE II:VAL WITH II::VAL RELEASE PIC: , BY:PASS , I:COL , B:COL , ITS:CASE , I::OPT SELECT PRIMARY ************************************* @ 17,5 SAY 'SYSGEN ** COMPILE PASS III' SELECT PRIMARY USE SYSFIL STORE DR: TO D: @ 20,10 SAY " We're nearly done." IF RECORD <> 'UPDATE' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + '.CMD=A:SYSSYS.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'AS.CMD=A:SYSSEL.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'AD.CMD=A:SYSADD.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'CH.CMD=A:SYSCHG.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'DL.CMD=A:SYSDEL.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'LS.CMD=A:SYSLST.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'BK.DBF=A:SYSFIL.DBF[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'RP.DBF=A:SYSPRT.DBF[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'RP.CMD=A:SYSRPT.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + 'MT.CMD=A:SYSMNT.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + '9.CMD=A:SYS9.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + TRANS:CD + '10.CMD=A:SYS9.CMD[VO]' ENDIF IF RECORD = 'UPDATE' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + 'RE.CMD' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + 'SG.CMD' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + 'SD.CMD' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + 'GE.CMD' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + 'SH.CMD' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + '*.NDX' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + '*.FRM' IF FILE(D: + TRANS:CD + 'VL.CMD') .AND. CHG:VAL = 'Y' APPEND BLANK REPLACE COMMAND WITH 'ERA ' + D: + TRANS:CD + 'VL.CMD' ENDIF ENDIF APPEND BLANK REPLACE COMMAND WITH 'REN ' + D: + TRANS:CD + 'RE.CMD='+ D: +'SYS45WK1.CMD' APPEND BLANK REPLACE COMMAND WITH 'REN ' + D: + TRANS:CD + 'SG.CMD='+ D: +'SYS45WK2.CMD' APPEND BLANK REPLACE COMMAND WITH 'REN ' + D: + TRANS:CD + 'SD.CMD='+ D: +'SYS45WK3.CMD' APPEND BLANK REPLACE COMMAND WITH 'REN ' + D: + TRANS:CD + 'GE.CMD='+ D: +'SYS60WK1.CMD' APPEND BLANK REPLACE COMMAND WITH 'REN ' + D: + TRANS:CD + 'SH.CMD='+ D: +'SYS60WK2.CMD' IF GOT::VAL = 'Y' APPEND BLANK REPLACE COMMAND WITH 'REN ' + D: + TRANS:CD + 'VL.CMD='+ D: +'SYS60WK3.CMD' ENDIF IF D: <> 'A:' STORE TRANS:CD TO C: STORE F TO I STORE 1 TO I:CNT DO WHILE I:CNT < 5 IF FILE(C:+STR(I:CNT,1)+'.NDX') STORE T TO I ENDIF STORE I:CNT + 1 TO I:CNT ENDDO IF I APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=' + C: + '*.NDX[VO]' ENDIF STORE F TO I STORE 1 TO I:CNT DO WHILE I:CNT < 9 IF FILE(C:+STR(I:CNT,1)+'.FRM') STORE T TO I ENDIF STORE I:CNT + 1 TO I:CNT ENDDO IF I APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=' + C: + '*.FRM[VO]' ENDIF IF RECORD <> 'UPDATE' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=A:SYSCHK.*[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=A:SYSTEM.CMD[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=A:SWAIT.CMD[VO]' ENDIF IF .NOT. FILE(D: + 'DO.COM') APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=A:DO.COM[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=A:DBASE*.*[VO]' APPEND BLANK REPLACE COMMAND WITH 'SYS ' + D: + '=A:DGEN.OVL[VO]' ENDIF ENDIF APPEND BLANK REPLACE COMMAND WITH 'ERA ' + TRANS:CD + '*.SUB' STORE TRANS:CD + '.SUB' TO I:COPY COPY ALL TO &I:COPY SDF DELETE ALL PACK STORE 0 TO I:STAT RETURN