|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 59648 (0xe900) Types: TextFile Names: »FORMAT.BAS«
└─⟦f51bd807e⟧ Bits:30005981/disk5.imd Turn Key Data Entry System/Datenerfassungspaket - Vers. 1.90 └─⟦this⟧ »FORMAT.BAS«
1 REM ************************************************** 2 REM * * 3 REM * MODULE : FORMAT .BAS (TKDES/RC700) * 4 REM * DATE : 01.02.82 * 5 REM * BY : ASE GMBH , 6472 ALTENSTADT * 6 REM * VERSION: 1.90 * 7 REM * * 8 REM ************************************************** 9 REM 10 REM *********************************************************************** 11 REM * SET ERROR-HANDLING POINTER AND READ WORKNO. FROM CHAININF-FILE * 12 REM *********************************************************************** 13 ON ERROR GOTO 10000 : GOSUB 22200 REM *** READ WORK-NO. 14 IF VAL(ARBNR$) < 1 OR VAL(ARBNR$) > 11 GOTO 16 ELSE GOTO 1010 16 REM *********************************************************************** 17 REM * READ MENUE FROM DEP-FORM-FILE * 18 REM *********************************************************************** 20 ERRFLAG% = 0 : DEPFORM% = 0 : ARBSTATOPEN% = 0 : ARBSTATWRITE% = 0 21 USRFORMFOPEN% = 0 : FORMCHAINERROR% = 0 25 CLOSE REM *** CLOSE ALL FILES 30 FORMNAME$ = "DEPFORM .DEP" : FILENAME$ = FORMNAME$ 40 GOSUB 9280 REM *** OPEN FORM-FILE 50 GOSUB 9580 REM *** INIT FORMBUFFER-FIELD 55 FORMNR% = 6 : GOSUB 9674 REM *** READ FORMAR-REC. 60 IF FORMBYTES$ = "#&" THEN 70 63 REM *********************************************************************** 64 REM * NO DEP FORMAT ID. !!! PRINT ERRMSG AND STOP THE SYSTEM * 65 REM *********************************************************************** 66 ERRMSGNR% = 11 : GOSUB 20000 68 GOTO 68 REM *** ILLEGAL DISK 1 !! NO DEP-FORMAT !! 69 REM *********************************************************************** 70 REM * INIT AND CALL DEP TO PRINT MENUE ON CRT * 71 REM *********************************************************************** 72 GOSUB 9100 REM *** OPEN ASBSTAT-FILE 74 GOSUB 9150 REM *** INIT ARBSTAT-FIELD 80 FIELDNO$ = "000" : MODE$ = "00" : SPECMOD$ = "000" 85 LSET FLN$ = FIELDNO$ : LSET MO$ = MODE$ : LSET SM$ = SPECMOD$ 90 F% = VARPTR(#2) : Z% = VARPTR(#1) : CALL INIT(F%,Z%) 100 GOSUB 7240 REM *** TEST GENERAL DEP-STATUS 110 ON PRIMST% GOTO 130,90,90,90,90,90,90,7280,90,90,90,90,90,90 120 GOSUB 7280 : GOTO 16 REM *** PRINT ERRMSG. (DEP-ERROR) 130 ERRFLAG% = 0 : CLOSE REM *** CLOSE ALL FILES 131 REM *********************************************************************** 132 REM * INPUT WORKNO. * 133 REM *********************************************************************** 134 ARBSTATOPEN% = 0 : USRFORMFOPEN% = 0 135 ARBNR$ = SPACE$(2) 152 PRINT CHR$(13);CHR$(6);CHR$(80);CHR$(53);"..";CHR$(8);CHR$(8); 170 ARBNR1$=INPUT$(1) 175 IF ASC(ARBNR1$) = 12 GOTO 135 180 IF ASC(ARBNR1$) < 48 OR ASC(ARBNR1$) > 57 GOTO 170 ELSE 190 190 MID$(ARBNR$,1,1)=ARBNR1$:PRINT ARBNR1$; 200 ARBNR2$=INPUT$(1) 310 IF ASC(ARBNR2$) = 13 GOTO 360 320 IF ASC(ARBNR2$) = 12 GOTO 650 330 IF ASC(ARBNR2$) = 8 THEN PRINT CHR$(8); : GOTO 170 350 IF ASC(ARBNR2$) < 48 OR ASC(ARBNR2$) > 57 GOTO 200 360 MID$(ARBNR$,2,1) = ARBNR2$ : PRINT ARBNR2$; 365 IF VAL(ARBNR$) = 12 OR VAL(ARBNR$) = 13 THEN GOSUB 400 : GOTO 135 370 IF VAL(ARBNR$) < 1 OR VAL(ARBNR$) > 15 THEN GOSUB 400 : GOTO 135 ELSE 500 400 REM *********************************************************************** 402 REM * SUB.: PRINT ERRMSG. IN LINE 25 * 404 REM *********************************************************************** 410 ERRMSGNR% = 1 : GOSUB 20000 : GOSUB 1000 420 RETURN 490 REM *********************************************************************** 495 REM * INPUT 'WORKNO. OK ?' * 500 REM *********************************************************************** 505 ARBNROK$ = SPACE$(1) 510 ON VAL(ARBNR$) GOSUB 520,525,530,535,540,545,550,555,560,565,570,132,132,574,577 511 IF ARBNROK$ = "N" GOTO 135 512 ARBNROK$=INPUT$(1) 514 IF ARBNROK$ = "J" THEN PRINT ARBNROK$; : GOTO 1010 515 IF ARBNROK$ = "N" GOTO 510 516 PRINT CHR$(7); : GOTO 512 517 REM *********************************************************************** 518 REM * SET / RESET INVERSE MODE ON CRT * 519 REM *********************************************************************** 520 PRINT CHR$(6);CHR$(75);CHR$(37);CHR$(128); CHR$(6);CHR$(55);CHR$(37); 523 GOSUB 800 524 RETURN 525 PRINT CHR$(6);CHR$(76);CHR$(38);CHR$(128); CHR$(6);CHR$(55);CHR$(38); 528 GOSUB 800 529 RETURN 530 PRINT CHR$(6);CHR$(74);CHR$(39);CHR$(128); CHR$(6);CHR$(55);CHR$(39); 533 GOSUB 800 534 RETURN 535 PRINT CHR$(6);CHR$(86);CHR$(40);CHR$(128); CHR$(6);CHR$(55);CHR$(40); 538 GOSUB 800 539 RETURN 540 PRINT CHR$(6);CHR$(75);CHR$(41);CHR$(128); CHR$(6);CHR$(55);CHR$(41); 543 GOSUB 800 544 RETURN 545 PRINT CHR$(6);CHR$(72);CHR$(42);CHR$(128); CHR$(6);CHR$(55);CHR$(42); 548 GOSUB 800 549 RETURN 550 PRINT CHR$(6);CHR$(84);CHR$(43);CHR$(128);CHR$(6);CHR$(55);CHR$(43); 553 GOSUB 800 554 RETURN 555 PRINT CHR$(6);CHR$(73);CHR$(44);CHR$(128); CHR$(6);CHR$(55);CHR$(44); 558 GOSUB 800 559 RETURN 560 PRINT CHR$(6);CHR$(67);CHR$(45);CHR$(128); CHR$(6);CHR$(55);CHR$(45); 563 GOSUB 800 564 RETURN 565 PRINT CHR$(6);CHR$(77);CHR$(46);CHR$(128); CHR$(6);CHR$(54);CHR$(46); 568 GOSUB 800 569 RETURN 570 PRINT CHR$(6);CHR$(73);CHR$(47);CHR$(128); CHR$(6);CHR$(54);CHR$(47); 571 GOSUB 800 572 RETURN 574 PRINT CHR$(6);CHR$(75);CHR$(50);CHR$(128); CHR$(6);CHR$(54);CHR$(50); 575 GOSUB 800 576 RETURN 577 PRINT CHR$(6);CHR$(82);CHR$(51);CHR$(128); CHR$(6);CHR$(54);CHR$(51); 578 GOSUB 800 579 RETURN 580 REM *********************************************************************** 585 REM * REPLACE DATA-FLOPPY IN DRIVE 1 * 590 REM *********************************************************************** 600 FILENAME$ = "RESET" : RESET REM *** WRITE CP/M DIR. ON DISK 620 ERRMSGNR% = 14 : GOSUB 20000 630 GOSUB 1000 642 RESET REM *** INIT THE NEW DISK 644 GOTO 16 645 REM *********************************************************************** 646 REM * CALL CP/M (WARM BOOT) * 647 REM *********************************************************************** 650 SYSTEM 790 REM *********************************************************************** 795 REM * SUB.: IF ARBNROK$ = N THEN RESET INVERSE VIDEO ELSE SET INVERSE VID.* 800 REM *********************************************************************** 802 IF ARBNROK$ = "N" THEN INVERS% = 128 ELSE INVERS% = 144 804 PRINT CHR$(INVERS%) 810 PRINT CHR$(6);CHR$(81);CHR$(55); 820 RETURN 900 REM *********************************************************************** 902 REM * CHAIN TO USER-PROGRAMM * 904 REM *********************************************************************** 906 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 908 PRINT " BITTE PROGRAMMNAME EINGEBEN : .......... "; 910 XPOS% = 33 : YPOS% = 25 : GOSUB 1990 912 ONE% = 1 : PROGNAME$ = SPACE$(10) 920 FOR I% = ONE% TO 10 925 KEYINPUT$ = INPUT$(1) 930 IF KEYINPUT$ = CHR$(8) THEN GOTO 950 932 IF KEYINPUT$ = CHR$(24) THEN GOTO 960 934 IF KEYINPUT$ = CHR$(13) THEN GOTO 970 936 IF ASC(KEYINPUT$) < 32 OR ASC(KEYINPUT$) > 122 THEN GOTO 925 938 PRINT KEYINPUT$; 940 MID$(PROGNAME$,I%,1) = KEYINPUT$ 942 NEXT I% 944 I% = 10 : PRINT CHR$(8); : ONE% = 8 : GOTO 920 950 REM --- CURSOR BWD --- 952 IF I% = 1 THEN GOTO 925 954 PRINT KEYINPUT$; 956 I% = I% - 1 : GOTO 925 960 REM --- CURSOR FWD --- 962 IF I% = 10 THEN GOTO 925 964 PRINT KEYINPUT$; 966 I% = I% + 1 : GOTO 925 970 REM --- CR KEY --- 972 PROGNAME$ = PROGNAME$ + ".COM" 974 CHAIN PROGNAME$ 976 REM *********************************************************************** 977 REM * PRINT ERRMSG. IN LINE 25 NO CHAIN-MODUL !! * 978 REM *********************************************************************** 980 ERRMSGNR% = 20 : GOSUB 20000 : GOSUB 1000 : GOTO 10 990 REM ********************************************************************** 995 REM * SUB.: (ESC) INPUT AFTER A ERRMSG. * 1000 REM ********************************************************************** 1002 PRINT CHR$(7);:ESCINPUT$ = INPUT$(1):IF ASC(ESCINPUT$) <> 27 GOTO 1002 1004 PRINT SPACE$(76); : RETURN 1006 REM ********************************************************************** 1008 REM * RESET ALL INPUT-BUFFER AND CHAINGE TO SEL. PROGRAMM * 1010 REM ********************************************************************** 1011 NEXTFORMFLAG% = 0 1012 IF VAL(ARBNR$) < 3 OR VAL(ARBNR$) = 9 OR VAL(ARBNR$) = 11 OR VAL(ARBNR$) = 14 THEN PRINT CHR$(12) 1013 OVERWRITE% = 0:FIELDINPUT$ = SPACE$(8):FORMNAME$ = SPACE$(12):FORMNR$ = SPACE$(3):DATANAME$ = SPACE$(12) 1014 ON VAL(ARBNR$) GOTO 1080,2050,3886,3886,3886,3886,3886,3886,4536,3886,4565,16,16,900,600 1015 REM ********************************************************************** 1016 REM * SUB.: MOVE TEXT TO TEXTBUFFER * 1020 REM ********************************************************************** 1021 FORMERFTEXT$ = "Nr. des Formats mit dem Sie beginnen wollen ? ..." 1022 GOSUB 1972 REM *** POS. CURSOR AND PRINT TEXTBUFFER 1024 RETURN 1040 REM ********************************************************************** 1045 REM * SUB.: MOVE TEXT TO TEXTBUFFER * 1050 REM ********************************************************************** 1052 FORMERFTEXT$ = "Nr. des næchsten Formats oder CTRL/Q ? ..." 1054 GOSUB 1972 REM *** POS. CURSOR AND PRINT TEXTBUFFER 1056 FORMNR$ = SPACE$(3) 1058 RETURN 1070 REM ********************************************************************** 1075 REM * PRINT HEADER ON CRT * 1080 REM ********************************************************************** 1082 PRINT CHR$(12) : XPOS% = 53:YPOS% = 4:GOSUB 1990 1085 PRINT CHR$(128); 1090 XPOS% = 28 : YPOS% = 4 : GOSUB 1990 1095 PRINT CHR$(144); 1100 PRINT "*** Format erfassen ***" 1102 IF NEXTFORMFLAG% THEN GOSUB 1050 : GOTO 1982 ELSE GOSUB 1020 : GOTO 1110 1104 REM ********************************************************************** 1106 REM * PRINT TEXT ON CRT * 1108 REM ********************************************************************** 1110 XPOS% = 2:YPOS% = 10:GOSUB 1990 1120 PRINT "Bitte den Namen der Format-Datei eingeben. ........" 1121 REM ********************************************************************** 1122 REM * POS. CURSOR AND SET INPUT-COUNTER * 1123 REM ********************************************************************** 1125 XPOS% = 46 : YPOS% = 10 : GOSUB 1990 1127 NKEYINP% = 8 1130 GOTO 3130 1440 REM ********************************************************************** 1445 REM * FIELD BWD KEY * 1450 REM ********************************************************************** 1451 IF NEXTFORMFLAG% GOTO 1452 ELSE 1454 1452 XPOS% = 51 : YPOS% = 14 : GOSUB 1990 1453 NKEYINP% = 3 : GOTO 3130 1454 IF NKEYINP% = 8 GOTO 1125 1455 MID$(FORMNR$,1,3) = MID$(FIELDINPUT$,1,3) 1460 MID$(FIELDINPUT$,1,8) = MID$(FORMNAME$,1,8) : GOTO 1125 1760 REM ********************************************************************** 1762 REM * FORMAT-NAME OR FORMAT-NO. ERROR * 1764 REM ********************************************************************** 1766 IF NKEYINP% = 8 GOTO 3800 ELSE 1920 1772 REM ********************************************************************** 1775 REM * INPUT NEXT FIELD OR CHAIN TO SEL. PROGRAMM * 1779 REM ********************************************************************** 1780 IF NKEYINP% = 8 GOTO 1785 ELSE 1787 1785 MID$(FORMNAME$,1,8) = MID$(FIELDINPUT$,1,8) : MID$(FORMNAME$,9,4) = ".FRM" : GOTO 1982 1787 IF VAL(FIELDINPUT$) < 1 GOTO 1920 1790 MID$(FORMNR$,1,3)=MID$(FIELDINPUT$,1,3):FORMNR%=VAL(FORMNR$) 1791 IF VAL(ARBNR$) = 2 AND NEXTFORMFLAG% GOTO 6160 1792 IF VAL(ARBNR$) = 2 GOTO 6010 1794 IF NEXTFORMFLAG% GOTO 5470 ELSE 5000 1870 REM ********************************************************************** 1872 REM * SUB.: PRINT ERRMSG. IN LINE 25 AND SET INPUT-BUFFER * 1873 REM ********************************************************************** 1876 ERRMSGNR% = 3 : GOSUB 20000 : GOSUB 1000 1878 FORMNAME$ = SPACE$(12) 1880 FIELDINPUT$ = SPACE$(8) 1882 RETURN 1916 REM ********************************************************************** 1918 REM * PRINT BAD FORMAT-NO. MSG IN LINE 25 AND POS. CURSOR * 1920 REM ********************************************************************** 1922 ERRMSGNR% = 18 : GOSUB 20000 1930 GOSUB 1000 1950 LET XPOS% = 51 + CRBLANK% - 2 : YPOS% = 14 1960 GOSUB 1990 1970 LET I% = CRBLANK% - 1 : GOTO 3140 1971 REM ********************************************************************** 1972 REM * SUB.: PRINT TEXT-BUFFER ON CRT * 1973 REM ********************************************************************** 1974 XPOS% = 2 : YPOS% = 14 1976 GOSUB 1990 1978 PRINT FORMERFTEXT$ 1980 RETURN 1981 REM ********************************************************************** 1982 REM * POS. CURSOR AND ALLOW FORMAT-NO. INPUT * 1983 REM ********************************************************************** 1984 XPOS% = 51 : YPOS% = 14 : GOSUB 1990 1988 NKEYINP% = 3 : FIELDINPUT$ = SPACE$(8) : MID$(FIELDINPUT$,1,3) = MID$(FORMNR$,1,3) : GOTO 1130 1989 REM ********************************************************************** 1990 REM * SUB.: POS. CURSOR * 1991 REM ********************************************************************** 1992 PRINT CHR$(13); 1994 PRINT CHR$(6);CHR$(XPOS%+31);CHR$(YPOS%+31); 1996 RETURN 2000 REM ********************************************************************** 2050 REM * PRINT HEADER ON CRT * 2055 REM ********************************************************************** 2060 PRINT CHR$(12) : XPOS% = 53 : YPOS% = 4 : GOSUB 1990 2070 PRINT CHR$(128); : XPOS% = 27 : YPOS% = 4 : GOSUB 1990 2080 PRINT CHR$(144);"*** Format verændern ***" 2090 IF NEXTFORMFLAG% THEN GOSUB 1050 : GOTO 1982 ELSE GOSUB 1020 : GOTO 1110 2095 REM ********************************************************************** 2100 REM * SUB.: PRINT ERRMSG IN LINE 25 * 2105 REM ********************************************************************** 2110 ERRMSGNR% = 5 : GOSUB 20000 : GOSUB 1000 2120 RETURN 3100 REM ********************************************************************** 3102 REM * PRINT TEXT ON CRT AND SET INPUT-BUFFER * 3104 REM ********************************************************************** 3106 GOSUB 3972 REM *** POS. CURSOR AND PRINT TEXT 3110 XPOS% = 2:YPOS% = 10:GOSUB 1990 3120 PRINT "Bitte den Namen der Format-Datei eingeben. ........" 3125 XPOS% = 46 : YPOS% = 10 : GOSUB 1990 3127 NKEYINP% = 8 : FORMNAMEINPFLAG% = 1 3130 ONE% = 1 3131 REM ********************************************************************** 3132 REM * TEST THE KEYBOARD-INPUT KEY'S. ARE THE KEY'S OK PRINT IT ON CRT * 3133 REM ********************************************************************** 3136 FOR I% = ONE% TO NKEYINP% 3140 KEYINPUT$ = INPUT$(1) 3150 IF KEYINPUT$ = "<" GOTO 3140 3160 IF KEYINPUT$ = ">" GOTO 3140 3170 IF KEYINPUT$ = "." GOTO 3140 3180 IF KEYINPUT$ = "," GOTO 3140 3190 IF KEYINPUT$ = ";" GOTO 3140 3200 IF KEYINPUT$ = ":" GOTO 3140 3210 IF KEYINPUT$ = "=" GOTO 3140 3220 IF KEYINPUT$ = "?" GOTO 3140 3230 IF KEYINPUT$ = "*" GOTO 3140 3240 IF KEYINPUT$ = "Æ" GOTO 3140 3250 IF KEYINPUT$ = "Å" GOTO 3140 3260 IF KEYINPUT$ = " " GOTO 3400 3262 IF ASC(KEYINPUT$) = 26 GOTO 3140 3264 IF ASC(KEYINPUT$) = 10 GOTO 3140 3266 IF ASC(KEYINPUT$) = 127 GOTO 3420 3268 IF ASC(KEYINPUT$) = 12 GOTO 1013 3270 IF ASC(KEYINPUT$) = 8 GOTO 3500 3280 IF ASC(KEYINPUT$) = 24 GOTO 3600 3290 IF ASC(KEYINPUT$) = 5 GOTO 3450 3300 IF ASC(KEYINPUT$) = 9 GOTO 3470 3305 IF ASC(KEYINPUT$) = 6 GOTO 3700 3310 IF ASC(KEYINPUT$) = 13 GOTO 3700 3315 IF ASC(KEYINPUT$) = 27 GOTO 3140 3316 IF ASC(KEYINPUT$) = 17 THEN IF VAL(ARBNR$) <= 2 GOTO 5650 ELSE GOTO 16 3317 IF ASC(KEYINPUT$) <= 31 GOTO 3140 3318 IF NKEYINP% = 8 GOTO 3320 3319 IF ASC(KEYINPUT$) < 48 OR ASC(KEYINPUT$) > 57 GOTO 3140 3320 PRINT KEYINPUT$; 3330 MID$(FIELDINPUT$,I%,1) = KEYINPUT$ 3340 NEXT I% 3350 I% = NKEYINP% : PRINT CHR$(8); : IF NKEYINP% = 8 THEN ONE% = 8 : GOTO 3132 3352 ONE% = 3 : GOTO 3132 3390 REM 3392 REM --- SPACE KEY --- 3394 REM 3400 IF MID$(FIELDINPUT$,I%,1) = " " GOTO 3140 ELSE 3320 3420 REM 3422 REM --- RUB-OUT KEY --- 3424 REM 3430 IF I% = 1 GOTO 3446 3435 MID$(FIELDINPUT$,I%,1) = " " : LET I% = I% -1 3445 PRINT " "; : PRINT CHR$(8);CHR$(8); : GOTO 3140 3446 MID$(FIELDINPUT$,I%,1) = " " 3447 PRINT " "; : PRINT CHR$(8); : GOTO 3140 3448 REM 3450 REM --- FIED BACKWARD KEY --- 3451 REM 3452 IF VAL(ARBNR$) <= 2 GOTO 1450 3454 IF FORMNAMEINPFLAG% GOTO 3125 3455 MID$(DATANAME$,1,8) = MID$(FIELDINPUT$,1,8) 3460 MID$(FIELDINPUT$,1,8) = MID$(FORMNAME$,1,8) : GOTO 3125 3465 REM 3470 REM --- FIELD FORWARD KEY --- 3475 REM 3480 IF FORMNAMEINPFLAG% OR NKEYINP% = 8 GOTO 3700 ELSE 3140 3485 REM 3490 REM --- CURSOR BACKWARD KEY --- 3495 REM 3500 IF I% = 1 GOTO 3140 3510 PRINT KEYINPUT$; 3520 LET I% = I% - 1 3530 GOTO 3140 3590 REM 3595 REM --- CURSOR FORWARD KEY --- 3600 REM 3610 IF I% = NKEYINP% GOTO 3140 3620 FOR BLANKTEST% = I% TO NKEYINP% 3630 IF MID$(FIELDINPUT$,BLANKTEST%,1) = " " GOTO 3640 ELSE 3660 3640 NEXT BLANKTEST% 3650 GOTO 3140 3660 PRINT KEYINPUT$; 3670 LET I% = I% + 1 3680 GOTO 3140 3690 REM 3695 REM --- CR KEY --- 3700 REM 3705 BLANKF% = 0 3710 FOR CRBLANK% = 1 TO NKEYINP% 3720 IF MID$(FIELDINPUT$,CRBLANK%,1) = " " THEN BLANKF% = 1:GOTO 3740 3730 IF BLANKF% = 1 GOTO 3760 3740 NEXT CRBLANK% 3741 REM 3742 REM --- ONLY SPACE IN A FIELD ? --- 3743 REM 3744 FOR SPACE% = 1 TO NKEYINP% 3746 IF MID$(FIELDINPUT$,SPACE%,1) <> " " GOTO 3766 3748 NEXT SPACE% 3750 IF FORMNAMEINPFLAG% AND VAL(ARBNR$) = 3 GOTO 3125 3752 IF FORMNAMEINPFLAG% = 0 AND VAL(ARBNR$) => 3 GOTO 3982 3754 IF VAL(ARBNR$) <= 2 AND NKEYINP% = 8 GOTO 1125 3756 IF VAL(ARBNR$) <= 2 AND NKEYINP% = 3 GOTO 1982 3757 GOTO 3982 3758 REM ********************************************************************** 3759 REM * FORMNAME OR DATANAME INPUT ERROR * 3760 REM ********************************************************************** 3762 IF VAL(ARBNR$) <= 2 THEN GOTO 1760 ELSE IF FORMNAMEINPFLAG% GOTO 3800 ELSE 3982 3763 REM ********************************************************************** 3764 REM * INPUT NEXT FIELD OR CHAIN TO SEL. PROGRAMM / MODUL * 3765 REM ********************************************************************** 3766 IF VAL(ARBNR$) <= 2 GOTO 1780 3780 IF FORMNAMEINPFLAG% = 0 GOTO 3790 3785 MID$(FORMNAME$,1,8) = MID$(FIELDINPUT$,1,8) : MID$(FORMNAME$,9,4) = ".FRM" 3787 IF MID$(FORMNAME$,1,1) <> " " AND VAL(ARBNR$) = 9 OR VAL(ARBNR$) = 11 THEN GOTO 3795 ELSE GOTO 3982 3790 MID$(DATANAME$,1,8) = MID$(FIELDINPUT$,1,8) : MID$(DATANAME$,9,4) = ".DAT" 3795 IF VAL(ARBNR$) = 11 GOTO 20710 3796 IF VAL(ARBNR$) = 9 GOTO 4590 ELSE 16 3798 REM ********************************************************************** 3800 REM * PRINT ERRMSG. IN LINE 25 AND POS. CURSOR * 3810 REM ********************************************************************** 3818 ERRMSGNR% = 2 : GOSUB 20000 : GOSUB 1000 3850 LET XPOS% = 46 + CRBLANK% -2 : YPOS% = 10 3860 GOSUB 1990 3870 LET I% = CRBLANK% - 1: GOTO 3140 3871 REM ********************************************************************** 3872 REM * SUB.: PRINT ERRMSG. IN LINE 25 AND POS. CURSOR * 3873 REM ********************************************************************** 3874 ERRMSGNR% = 5 : GOSUB 20000 3880 GOSUB 1000 3882 FORMNAME$ = SPACE$(12) 3884 FIELDINPUT$ = SPACE$(8) : RETURN 3885 REM ********************************************************************** 3886 REM * WRITE CHAININFO TO CHAININF-FILE AND CHAIN TO PROGRAMM * 3887 REM ********************************************************************** 3888 ERRFLAG% = 0 : FILENAME$ = "CHAININF.DEP" 3890 OPEN "R",#5,FILENAME$,26 3894 FIELD #5,12 AS CHAININFO1$,12 AS CHAININFO2$,2 AS CHAININFO3$ 3895 LSET CHAININFO1$ = SPACE$(12) : LSET CHAININFO2$ = SPACE$(12) : LSET CHAININFO3$ = SPACE$(2) 3896 LSET CHAININFO1$ = FORMNAME$ : LSET CHAININFO2$ = DATANAME$ : LSET CHAININFO3$ = ARBNR$ 3898 ERRFLAG% = 0 : PUT #5,1 3904 ON VAL(ARBNR$) GOTO 3905,3906,3907,3908,3909,3911,3912,3913,3914,3915,3916 3905 GOTO 16 3906 GOTO 16 3907 CHAIN "B:ENTRYME.COM" 3908 CHAIN "B:ENTRYME.COM" 3909 CHAIN "B:ENTRYME.COM" 3911 CHAIN "B:ENTRYME.COM" 3912 CHAIN "B:ENTRYME.COM" 3913 CHAIN "B:ENTRYME.COM" 3914 GOTO 4590 3915 CHAIN "B:ENTRYME.COM" 3916 GOTO 20710 3917 REM ********************************************************************** 3918 REM * SUB.: PRINT ERRMSG. IN LINE 25 AND POS. CURSOR * 3919 REM ********************************************************************** 3920 ERRMSGNR% = 6 : GOSUB 20000 3930 GOSUB 1000 3950 LET XPOS% = 46 + CRBLANK% - 2 : YPOS% = 14 3960 GOSUB 1990 3970 LET I% = CRBLANK% - 1 : RETURN 3971 REM ********************************************************************** 3972 REM SUB.: PRINT TEXT ON CRT AND POS. CURSOR * 3973 REM ********************************************************************** 3974 XPOS% = 2 : YPOS% = 14 3976 GOSUB 1990 3978 PRINT "Bitte den Namen der Arbeitsdatei eingeben. ........" 3979 RETURN 3980 REM ********************************************************************** 3981 REM * POS. CURSOR AND SET INPUT-FIELDS TO ENTER THE DATANAME * 3982 REM ********************************************************************** 3983 XPOS% = 46 : YPOS% = 14 3984 GOSUB 1990 3988 FORMNAMEINPFLAG% = 0 : MID$(FIELDINPUT$,1,8) = MID$(DATANAME$,1,8) : GOTO 3130 4090 REM ********************************************************************** 4095 REM * PRINT ERRMSG. IN LINE 25 AND SET INPUT-BUFFER * 4100 REM ********************************************************************** 4110 ERRMSGNR% = 7 : GOSUB 20000 4140 GOSUB 1000 4160 DATANAME$ = SPACE$(12) 4170 FIELDINPUT$ = SPACE$(8) : GOSUB 3972 4180 RETURN 4530 REM ********************************************************************** 4534 REM * PRINT HEADER ON CRT * 4535 REM ********************************************************************** 4536 XPOS% = 48 : YPOS% = 4 : GOSUB 1990 4538 PRINT CHR$(128); : XPOS% = 32 : YPOS% = 4 : GOSUB 1990 4540 PRINT CHR$(144);"*** KATALOG *** 4542 GOTO 3102 4555 REM ********************************************************************** 4560 REM * PRINT HEADER ON CRT * 4562 REM ********************************************************************** 4565 XPOS% = 50 : YPOS% = 4 : GOSUB 1990 4570 PRINT CHR$(128); : XPOS% = 27 : YPOS% = 4 : GOSUB 1990 4575 PRINT CHR$(146);"*** Datei løschen ***" 4580 PRINT CHR$(7);CHR$(7);CHR$(7); : GOTO 3102 4585 REM ********************************************************************** 4590 REM * DISPLAY ARBSTAT-RECORD ON CRT * 4591 REM ********************************************************************** 4592 IF ARBSTATOPEN% GOTO 4596 ELSE GOSUB 9100 REM *** OPEN ARBSTAT-FILE 4596 GOSUB 9180 REM *** READ ARBSTAT-DIR. 4602 IF MID$(DATANAME$,1,1) = " " GOTO 4612 4603 IF DATANAME$ = "KATALOG .DAT" GOTO 4800 4604 FILENAME$ = DATANAME$ : FORMNR% = 1 4606 GOSUB 7410 REM *** FILE IN ARBSTAT-DIR ? 4608 IF FILEINDIR% GOTO 4620 ELSE GOSUB 4110 : GOTO 3982 4612 IF MID$(FORMNAME$,1,1) = " " GOTO 1013 4613 IF FORMNAME$ = "KATALOG .FRM" GOTO 4800 4614 FILENAME$ = FORMNAME$ : FORMNR% = 3 4616 GOSUB 7410 REM *** FILE IN ARBSTAT-DIR ? 4618 IF FILEINDIR% GOTO 4620 ELSE GOSUB 3873 : GOTO 3110 4620 R1$ = MID$(NAME$,13,4) : R1% = VAL(R1$) 4622 GOSUB 9150 : GOSUB 9564 REM *** INIT ARBSTAT-FIELD 4625 FORMCHAIN$ = FC$ : OMODE$ = MO$ : STATUS$ = ST$ : PSTATUS$ = SP$ 4626 DRECCOUNT$ = SPACE$(6) : MID$(DRECCOUNT$,1,3) = SM$ : MID$(DRECCOUNT$,4,3) = WF$ 4627 PRECCOUNT$ = SPACE$(6) : MID$(PRECCOUNT$,1,4) = VA$ : MID$(PRECCOUNT$,5,2) = MID$(PC$,1,2) 4628 CRECCOUNT$ = SPACE$(6) : MID$(CRECCOUNT$,1,2) = MID$(PC$,3,2) : MID$(CRECCOUNT$,3,4) = FL$ 4629 REM ********************************************************************** 4630 REM * READ ARBSTAT-FORMAT AND CALL DEP TO PRINT IT ON CRT * 4631 REM ********************************************************************** 4632 FORMNAME$ = "DEPFORM .DEP" : FILENAME$ = FORMNAME$ 4634 GOSUB 9280 REM *** OPEN FORMAT-FILE 4636 GOSUB 9580 REM *** INIT FORMAT-BUFFER 4638 GOSUB 9674 REM *** READ FORMAT-REC. 4642 IF FORMBYTES$ <> "#&" THEN GOSUB 4770 : GOTO 16 4644 FIELDNO$ = "000" : MODE$ = "00" : SPECMOD$ = "000" 4646 LSET FLN$ = FIELDNO$ : LSET MO$ = MODE$ : LSET SM$ = SPECMOD$ 4647 REM ********************************************************************** 4648 REM * CALL THE DEP * 4649 REM ********************************************************************** 4650 F% = VARPTR(#2) : Z% = VARPTR(#1) : CALL INIT(F%,Z%) 4652 REM ********************************************************************** 4654 GOSUB 7240 REM *** TEST DEP GENERAL-STATUS 4656 ON PRIMST% GOTO 4680,4650,4650,4650,4650,4650,4650,16,4650,4650,4650,4650,4650,4650 4658 GOSUB 7280 REM *** PRINT ERRMSG. (DEP-ERROR) 4660 GOTO 16 4680 IF ARBSTAT% GOTO 4812 4681 XPOS% = 3:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,3,8);:XPOS% = 15:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,11,8);CHR$(13); 4682 XPOS% = 30:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,23,3);CHR$(13); 4683 XPOS% = 41:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,26,3);:XPOS% = 52:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,29,1); 4684 XPOS% = 63:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,30,3);:XPOS% = 73:YPOS% = 2:GOSUB 1990:PRINT MID$(NONZ$,33,3); 4685 XPOS% = 28:YPOS% = 7:GOSUB 1990: 4686 FOR N%=1 TO 6:IF MID$(NONZ$,38+N%,1)=" " THEN PRINT "0"; ELSE PRINT MID$(NONZ$,38+N%,1); 4687 NEXT N% 4688 XPOS% = 61:YPOS% = 7:GOSUB 1990:PRINT PRECCOUNT$;:XPOS% = 72:YPOS% = 7:GOSUB 1990:PRINT CRECCOUNT$; 4691 XPOS% = 25:YPOS% = 10:GOSUB 1990:PRINT MID$(NONZ$,51,4);:XPOS% = 25:YPOS% = 12:GOSUB 1990:PRINT MID$(NONZ$,19,4); 4692 XPOS% = 23:YPOS% = 14:GOSUB 1990:PRINT DRECCOUNT$;CHR$(13); 4693 XPOS% = 25:YPOS% = 16:GOSUB 1990:PRINT FORMCHAIN$;CHR$(13); 4697 XPOS% = 21:YPOS% = 22:GOSUB 1990:PRINT MID$(PSTATUS$,1,2);" ";:PRINT MID$(PSTATUS$,3,5); 4698 XPOS% = 8:YPOS% = 24:GOSUB 1990:PRINT OMODE$;:XPOS% = 19:YPOS% = 24:GOSUB 1990 4700 PRINT MID$(STATUS$,1,2);:XPOS% = 23:YPOS% = 24:GOSUB 1990:PRINT MID$(STATUS$,3,2); 4710 XPOS% = 27:YPOS% = 24:GOSUB 1990:PRINT MID$(STATUS$,5,2);CHR$(13); 4711 IF FORMNR% = 3 THEN GOSUB 4871 : GOTO 4748 4712 XPOS% = 28:YPOS% = 4:GOSUB 1990:PRINT KE$;:XPOS% = 40:YPOS% = 4:GOSUB 1990:PRINT KV$; 4714 XPOS% = 51:YPOS% = 4:GOSUB 1990:PRINT EC$;:XPOS% = 28:YPOS% = 5:GOSUB 1990:PRINT EE$; 4716 XPOS% = 40:YPOS% = 5:GOSUB 1990:PRINT VE$;:XPOS% = 40:YPOS% = 6:GOSUB 1990:PRINT VK$; 4718 XPOS% = 51:YPOS% = 6:GOSUB 1990:PRINT FK$; 4720 XPOS% = 40 : YPOS% = 7 : GOSUB 1990 4721 FOR N% = 1 TO 6 4722 IF MID$(NONZ$,44+N%,1) = " " THEN PRINT "0"; ELSE PRINT MID$(NONZ$,44+N%,1); 4723 NEXT N% 4724 P1% = 36 : P2% = 10 : XPOS% = P1% : YPOS% = P2% : GOSUB 1990 4726 FOR F% = 1 TO 211 STEP 15 4728 PRINT MID$(ADDR$,F%,15); 4730 XPOS% = P1% : P2% = P2% + 1 : YPOS% = P2% : GOSUB 1990 4732 NEXT F% 4734 P1% = 60 : P2% = 10 : XPOS% = P1% : YPOS% = P2% : GOSUB 1990 4736 FOR F% = 1 TO 121 STEP 15 4738 PRINT MID$(SUBR$,F%,15); 4740 XPOS% = P1% : P2% = P2% + 1 : YPOS% = P2% : GOSUB 1990 4742 NEXT F% 4744 XPOS% = 60 : YPOS% = 22 : GOSUB 1990 : PRINT MR$; 4748 XPOS% = 1:YPOS% = 25:GOSUB 1990:PRINT SPACE$(76);CHR$(13);" *** (ESC) *** ";CHR$(13); 4749 GOSUB 1000 : GOSUB 8210 REM *** CLOSE FORMAT-FILE 4755 IF VAL(ARBNR$) <= 2 AND FORMCHAINERROR% THEN GOTO 16 ELSE GOTO 1012 4758 REM ********************************************************************** 4760 REM * PRINT ERRMSG. IN LINE 25 * 4765 REM ********************************************************************** 4770 ERRMSGNR% = 9 : GOSUB 20000 4790 GOSUB 1000 : RETURN 4795 REM ********************************************************************** 4800 REM * PRINT ARBSTAT-DIR DATA ON CRT * 4805 REM ********************************************************************** 4810 FORMNR% = 2 : ARBSTAT% = 1 : GOSUB 9150 : GOTO 4630 REM *** INIT ARBSTAT-FIELD 4811 REM ***************** PRINT ARBSTAT-DIR ********************************** 4812 GOSUB 9180 REM *** READ ARBSTAT-DIR 4814 ID$ = "FRM" : P1% = 2 : P2% = 2 4815 FOR F% = 1 TO 2 4816 XPOS% = P1% : YPOS% = P2% : GOSUB 1990 4820 FOR I% = 15 TO 127 STEP 16 4825 IF MID$(ARBSTATDIR1$,I%+9,3) = ID$ THEN PRINT MID$(ARBSTATDIR1$,I%,8); 4827 XPOS% = P1% + 10:P1% = XPOS%:YPOS% = P2%:GOSUB 1990 4830 NEXT I% 4832 P1% = 2:XPOS% = P1%:YPOS% = P2% + 1:GOSUB 1990 4834 FOR I% = 143 TO 239 STEP 16 4836 IF MID$(ARBSTATDIR1$,I%+9,3) = ID$ THEN PRINT MID$(ARBSTATDIR1$,I%,8); 4837 XPOS% = P1% + 10:P1% = XPOS%:YPOS% = P2% + 1:GOSUB 1990 4838 NEXT I% 4840 XPOS% = 72:YPOS% = P2% + 1:GOSUB 1990 4842 IF MID$(ARBSTATDIR2$,10,3) = ID$ THEN PRINT MID$(ARBSTATDIR2$,1,8); 4844 P1% = 2:XPOS% = P1%:YPOS% = P2% + 2:GOSUB 1990 4846 FOR I% = 17 TO 129 STEP 16 4850 IF MID$(ARBSTATDIR2$,I%+9,3) = ID$ THEN PRINT MID$(ARBSTATDIR2$,I%,8); 4851 XPOS% = P1% + 10:P1% = XPOS%:YPOS% = P2% + 2:GOSUB 1990 4852 NEXT I% 4854 P1% = 12:XPOS% = P1%:YPOS% = P2% + 3:GOSUB 1990 4856 FOR I% = 145 TO 225 STEP 16 4860 IF MID$(ARBSTATDIR2$,I%+9,3) = ID$ THEN PRINT MID$(ARBSTATDIR2$,I%,8); 4861 XPOS% = P1% + 10:P1% = XPOS%:YPOS% = P2% + 3:GOSUB 1990 4862 NEXT I% 4864 P1% = 2 : P2% = 8 : ID$ = "DAT" 4866 NEXT F% 4867 ARBSTAT% = 0 : XPOS% = 68 : YPOS% = 24 : GOSUB 1990 : PRINT "1"; : GOTO 4748 4868 REM ********************************************************************** 4869 REM * PRINT FORMAT-NO. AND FORMAT-CHAIN-KEY ON CRT * 4870 REM ********************************************************************** 4871 P1% = 25 : P2% = 10 : I1% = 1 : I2% = 21 : F1% = 1 4872 FOR I% = 1 TO 8 4874 FOR F% = I1% TO I2% STEP 4 4875 XPOS% = P1% + 8 : YPOS% = P2% : P1% = XPOS% : GOSUB 1990 4876 IF MID$(ADDR$,F%,4) = " " GOTO 4880 4878 PRINT MID$(ADDR$,F%+1,3); : IF MID$(ADDR$,F%,1) = "*" THEN PRINT MID$(ADDR$,F%,1); ELSE PRINT CHR$(24); 4879 PRINT MID$(SUBR$,F1%,3); 4880 F1% = F1% + 3 4881 NEXT F% 4882 ON I% GOTO 4886,4888,4890,4892,4894,4896,4898 4884 RETURN 4886 P1% = 25 : P2% = 12 : I1% = 25 : I2% = 45 : GOTO 4900 4888 P1% = 25 : P2% = 14 : I1% = 49 : I2% = 69 : GOTO 4900 4890 P1% = 25 : P2% = 16 : I1% = 73 : I2% = 93 : GOTO 4900 4892 P1% = 25 : P2% = 18 : I1% = 97 : I2% = 117 : GOTO 4900 4894 P1% = 25 : P2% = 20 : I1% = 121 : I2% = 141 : GOTO 4900 4896 P1% = 25 : P2% = 22 : I1% = 145 : I2% = 165 : GOTO 4900 4898 P1% = 25 : P2% = 24 : I1% = 169 : I2% = 177 : GOTO 4900 4900 NEXT I% 5000 REM 5002 REM 5008 REM ********************************************************************** 5009 REM * OPEN A NEW FORMFILE * 5010 REM ********************************************************************** 5012 REM 5014 REM 5020 GOSUB 9100 REM *** OPEN ARBSTAT-FILE 5030 GOSUB 9170 REM *** READ ARBSTAT-DIR 5041 FILENAME$ = FORMNAME$ 5042 GOSUB 7410 REM *** FILE IN ARBSTAT-DIR ? 5044 IF FILEINDIR% THEN GOSUB 8170 : GOSUB 1873 : GOTO 1110 ELSE 5050 5050 GOSUB 7000 REM *** SPACE FOR MORE FILES IN ARBSTAT 5060 IF NOSPACEFLAG% THEN GOSUB 9220 ELSE GOSUB 9280 : GOTO 5110 5070 GOSUB 8170 : GOTO 16 REM *** CLOSE ARBSTAT 5110 REM ********************************************************************** 5112 REM * INIT. A NEW ARBSTAT-RECORD * 5114 REM ********************************************************************** 5120 NONZ50$ = SPACE$(54) 5130 MID$(NONZ50$,11,8) = MID$(FORMNAME$,1,8) 5140 MID$(NONZ50$,19,4) = "0000" : MID$(NONZ50$,23,3) = "S.." : MID$(NONZ50$,26,3) = "..." 5150 MID$(NONZ50$,29,1) = "N" 5170 MID$(NONZ50$,39,6) = "000000" 5175 GOSUB 5486 REM *** WRITE NEW START-FORMAT 5180 MID$(NONZ50$,45,6) = "000000" : SP$ = SPACE$(8) 5200 MODE$ = "03" : FIELDNO$ = "000" 5210 SPECMOD$ = "000" 5275 GOSUB 5310 : GOTO 5420 REM *** WRITE NEW FILENAME TO ARBSTAT-DIR 5280 REM ********************************************************************** 5282 REM * WRITE NEW ARBSTAT-DIR. POINTER * 5285 REM ********************************************************************** 5310 IF DIR2% = 1 GOTO 5380 5320 MID$(ARBSTATDIR1$,RELPOS1%,12) = MID$(FILENAME$,1,12) 5340 RELPOS1% = RELPOS1% +12 5350 MID$(ARBSTATDIR1$,RELPOS1%,4) = STR$(R1%) 5360 GOTO 5412 5380 MID$(ARBSTATDIR2$,RELPOS2%,12) = MID$(FILENAME$,1,12) 5400 RELPOS2% = RELPOS2% + 12 5410 MID$(ARBSTATDIR2$,RELPOS2%,4) = STR$(R1%) 5412 ARBSTATRECCOUNT$ = MID$(ARBSTATDIR1$,11,4) : ARBSTATRECCOUNT% = VAL(ARBSTATRECCOUNT$) 5414 ARBSTATRECCOUNT% = ARBSTATRECCOUNT% + 1 : ARBSTATRECCOUNT$ = STR$(ARBSTATRECCOUNT%) 5416 NARBSTATRECCOUNT$ = SPACE$(4) : RSET NARBSTATRECCOUNT$ = ARBSTATRECCOUNT$ 5418 MID$(ARBSTATDIR1$,11,4) = NARBSTATRECCOUNT$ 5419 RETURN 5420 GOSUB 9370 REM *** WRITE ARBSTAT-DIR 5440 GOSUB 9150 : GOSUB 9450 : GOSUB 7220 REM *** INIT ARBSTAT-FIELD/INIT A NEW ARBSTAT-ENTRY 5450 GOSUB 9550 REM *** WRITE ARBSTAT 5462 GOSUB 9570 REM *** INIT FORMAT-BUFFER 5470 GOSUB 6535 REM *** IF FORMAT-NR. IN FORMAT-DIR 5475 IF FORMNRUSE% THEN SFORMNR% = FORMNR% : FORMNR% = RFORMNR% : GOTO 6585 5480 IF FORMNRSP% THEN SFORMNR% = FORMNR% : FORMNR% = RSFORMNR% : GOTO 5530 ELSE GOTO 6610 5481 REM ********************************************************************** 5482 REM * SUB.: WRITE A NEW START-FORMAT-POINTER * 5485 REM ********************************************************************** 5486 FORMNR$ = STR$(FORMNR%) : NFORMNR$ = SPACE$(4) : RSET NFORMNR$ = FORMNR$ 5490 MID$(NONZ50$,51,4) = NFORMNR$ : RETURN 5500 REM ********************************************************************** 5510 REM * CALL THE DEP * 5520 REM ********************************************************************** 5530 F% = VARPTR(#2) : Z% = VARPTR(#1) : CALL INIT(F%,Z%) 5540 REM ********************************************************************** 5542 REM * RETURN FROM THE DEP / CHECK DEP-STATUS * 5544 REM ********************************************************************** 5550 GOSUB 7240 REM *** TEST DEP-STATUS 5560 ON PRIMST% GOTO 5530,5530,5580,5570,5570,5725,5530,5630,5530,5530,5530,5530,5530,5530 5570 GOSUB 7280 : GOTO 5650 REM *** PRINT ERRMSG. (DEP-ERROR) 5580 GOSUB 9640 REM *** WRITE FORMAT-REC. 5585 FORMNR% = SFORMNR% 5595 IF ASC(KEYINPUT$) = 6 THEN GOSUB 5486 5600 IF VAL(ARBNR$) = 1 AND OVERWRITE% = 1 GOTO 5616 5610 IF VAL(ARBNR$) <> 2 OR ADDFORM% = 1 THEN GOSUB 9680 ELSE GOTO 5616 5612 GOSUB 6490 REM *** WRITE FORMAT-NR. TO FORMAT-DIR. 5614 IF FORMNRWR% = 0 GOTO 6610 ELSE 5620 5616 GOSUB 6492 : IF FORMNRWR% = 0 GOTO 6610 REM *** OVERWRITE FORMAT-NR. IN FORMAT-DIR. 5620 GOSUB 7340 REM *** CALCULATE MAX. VARIABLE 5630 NEXTFORMFLAG% = 1 : GOTO 1012 5640 REM ********************************************************************** 5642 REM * USER EXIT * 5644 REM ********************************************************************** 5650 FORMNR% = SFORMNR% : IF ARBSTATOPEN% = 0 GOTO 5710 5653 RECCOUNT$ = MID$(NONZ50$,39,6) : IF VAL(RECCOUNT$) <= 0 THEN RECCOUNT% = 0 : GOTO 5658 ELSE RECCOUNT% = 1 5655 FORMNR$ = MID$(NONZ50$,51,4) : FORMNR% = VAL(FORMNR$) : GOSUB 6535 : IF FORMNRUSE% = 0 THEN GOSUB 6340 : GOTO 5630 5658 GOSUB 8210 REM *** CLOSE FORMAT-FILE 5665 IF RECCOUNT% = 0 THEN FORMNAME$ = FILENAME$ : GOTO 20710 5670 GOSUB 7500 REM *** TEST FORMAT-CHAIN-KEY 5675 GOSUB 8240 REM *** UPDATE THE ARBSTAT 5685 IF FORMCHAINERROR% THEN FORMNAME$ = FILENAME$ : ERRMSGNR% = 4 : GOSUB 20000 : GOSUB 1000 : GOTO 4592 5690 GOSUB 8170 REM *** CLOSE ARBSTAT-FILE 5710 GOTO 16 5720 REM ********************************************************************** 5721 REM * DELETE A FORMAT * 5722 REM ********************************************************************** 5725 F% = 1 : F1% = 1 5730 FOR FP% = 1 TO 45 5735 OFORMNR$ = MID$(ADDR$,F%+1,3) 5736 IF VAL(OFORMNR$) = SFORMNR% THEN MID$(ADDR$,F%,4) = SPACE$(4):MID$(SUBR$,F1%,3) = SPACE$(3):GOTO 5750 5740 F% = F% + 4 : F1% = F1% + 3 5742 NEXT FP% 5745 GOTO 5630 5750 GOSUB 6625 : GOTO 5630 REM *** DECREMENT RECORD-COUNTER 6000 REM ********************************************************************** 6002 REM * FORMAT UPDATE-MODE * 6004 REM ********************************************************************** 6010 GOSUB 9100 REM *** OPEN ARBSTAT-FILE 6030 GOSUB 9170 REM *** READ ARBSTAT-DIR. 6035 FILENAME$ = FORMNAME$ 6040 GOSUB 7410 REM *** FILE IN ARBSTAT-DIR ? 6050 IF FILEINDIR% = 0 THEN GOSUB 8170 : GOSUB 2110 : GOTO 1882 6055 R1$ = MID$(NAME$,13,4) : R1% = VAL(R1$) 6060 GOSUB 9150 : GOSUB 9564 REM *** INIT ARBSTAT-FIELD 6080 IF MID$(NONZ$,23,3) = "ERR" THEN GOSUB 6460 6090 IF MID$(NONZ$,11,8) <> MID$(FORMNAME$,1,8) THEN GOSUB 6410 : GOTO 5690 6100 NONZ50$ = NONZ$ : MID$(NONZ50$,23,3) = "S.." 6140 GOSUB 9280 REM *** OPEN FORMAT-FILE 6155 GOSUB 9580 REM *** INIT FORMAT-BUFFER 6160 ADDFORM% = 0 : GOSUB 6535 REM *** FORMAT-NR. IN FORMAT-DIR. ? 6162 IF FORMNRUSE% THEN SFORMNR% = FORMNR% : FORMNR% = RFORMNR% : GOTO 6166 6164 IF FORMNRSP% = 0 GOTO 6610 ELSE SFORMNR% = FORMNR% : FORMNR% = RSFORMNR% : GOTO 6360 6166 GOSUB 9674 REM *** READ FORMAT-REC. 6180 IF FORMBYTES$ <> "#&" THEN GOSUB 6334 : GOTO 5650 6190 MODE$ = "04" : SPECMOD$ = "000" 6200 GOSUB 9150 : GOSUB 9450 : GOSUB 9550 REM *** INIT ARBSTAT-FIELD AND WRITE ARBSTAT 6220 GOTO 5530 6331 REM ********************************************************************** 6332 REM * SUB.: PRINT ERRMSG. IN LINE 25 * 6333 REM ********************************************************************** 6334 ERRMSGNR% = 10 : GOSUB 20000 6338 GOSUB 1000 : RETURN 6339 REM ********************************************************************** 6340 REM * SUB.: PRINT ERRMSG. IN LINE 25 * 6341 REM ********************************************************************** 6342 ERRMSGNR% = 15 : GOSUB 20000 6345 GOSUB 1000 : RETURN 6350 REM ********************************************************************** 6352 REM * ADD A NEW FORMAT TO FORMAT-FILE IN FORMAT-UPDATE-MODE * 6354 REM ********************************************************************** 6360 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 6370 PRINT CHR$(144);"*** NEUES FORMAT ?? JA = (J) / NEIN = (ESC) ***";CHR$(128);CHR$(13); 6380 PRINT CHR$(7); : ESCINPUT$ = INPUT$(1) : IF ESCINPUT$ = "J" GOTO 6392 6390 IF ASC(ESCINPUT$) = 27 GOTO 5630 ELSE 6380 6392 MODE$ = "03" : ADDFORM% = 1 6394 PRINT SPACE$(76); : GOTO 6200 6400 REM ********************************************************************** 6402 REM * SUB.: PRINT ERRMSG. IN LINE 25 * 6404 REM ********************************************************************** 6410 ERRMSGNR% = 12 : GOSUB 20000 6430 GOSUB 1000 : RETURN 6440 REM ********************************************************************** 6445 REM * PRINT ERRMSG. IN LINE 25 * 6450 REM ********************************************************************** 6460 ERRMSGNR% = 13 : GOSUB 20000 6480 GOSUB 1000 : RETURN 6482 REM ********************************************************************** 6485 REM * SUB.: WRITE FORM NR. TO ARBSTAT-RECORD * 6488 REM ********************************************************************** 6490 F% = 1 : F1% = 1 : NEWFORMNR% = 1 : FORMNRWR% = 0 : FORMNR$ = STR$(FORMNR%):NFORMNR$=SPACE$(4):RSET NFORMNR$ = FORMNR$ 6491 UFORMNR$ = SPACE$(3) : GOTO 6495 6492 F% = 1 : F1% = 1 : NEWFORMNR% = 0 : FORMNRWR% = 0 : FORMNR$ = STR$(FORMNR%) 6493 NFORMNR$ = SPACE$(4) : RSET NFORMNR$ = FORMNR$ 6495 FOR FP% = 1 TO 45 6500 IF NEWFORMNR% = 1 THEN IF MID$(ADDR$,F%+1,3) = UFORMNR$ GOTO 6520 ELSE GOTO 6505 6502 OFORMNR$ = MID$(ADDR$,F%+1,3) : IF VAL(OFORMNR$) = FORMNR% GOTO 6520 6505 F% = F% + 4 : F1% = F1% + 3 6510 NEXT FP% 6515 FORMNRWR% = 0 : RETURN 6520 MID$(ADDR$,F%,4) = NFORMNR$ : MID$(SUBR$,F1%,3) = MID$(FC$,1,3) : FORMNRWR% = 1 : RETURN 6525 REM ********************************************************************** 6530 REM * SUB.: FORM NR. IN ARBSTAT ? / SPACE FOR A NEW FORMNR ? * 6532 REM ********************************************************************** 6535 F% = 1 : FORMNRUSE% = 0 : FORMNRSP% = 0 6540 FOR FP% = 1 TO 45 6545 OFORMNR$ = MID$(ADDR$,F%+1,3) : IF VAL(OFORMNR$) = FORMNR% GOTO 6570 6550 IF MID$(ADDR$,F%,4) = " " GOTO 6575 6555 F% = F% + 4 6560 NEXT FP% 6565 RETURN 6570 FORMNRUSE% = 1 : RFORMNR% = FP% : GOTO 6555 6575 IF FORMNRSP% THEN GOTO 6555 ELSE RSFORMNR% = FP% : FORMNRSP% = 1 : GOTO 6555 6578 REM ********************************************************************** 6580 REM * FORMNR IN USE ! OVERWRITE ? * 6582 REM ********************************************************************** 6585 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 : OVERWRITE% = 0 6590 PRINT CHR$(144)"* FORMAT NR. BELEGT !! UEBERSCHREIBEN = (J) / NEUE FORMAT NR. = (ESC) *";CHR$(128);CHR$(13); 6595 PRINT CHR$(7);:ESCINPUT$ = INPUT$(1):IF ESCINPUT$ = "J" THEN OVERWRITE% = 1 : GOTO 5530 6600 IF ASC(ESCINPUT$) = 27 GOTO 1012 ELSE 6595 6602 REM ********************************************************************** 6605 REM * PRINT ERRMSG. IN LINE 25 * 6608 REM ********************************************************************** 6610 ERRMSGNR% = 19 : GOSUB 20000 6616 GOSUB 1000 : GOTO 5630 6618 REM ********************************************************************** 6620 REM * SUB.: DECREMENT RECORD-COUNTER * 6622 REM ********************************************************************** 6625 RECCOUNT$ = MID$(NONZ50$,39,6) : RECCOUNT% = VAL(RECCOUNT$) 6630 RECCOUNT% = RECCOUNT% - 1 : RECCOUNT$ = STR$(RECCOUNT%) 6635 NRECCOUNT$ = SPACE$(6) : RSET NRECCOUNT$ = RECCOUNT$ 6640 MID$(NONZ50$,39,6) = NRECCOUNT$ : RETURN 6690 REM ********************************************************************** 6695 REM * SUB.: IF SPACE FOR MORE FILES IN ARBSTAT ? * 7000 REM ********************************************************************** 7010 R1% = 1 : DIR2% = 0 7020 FOR RELPOS1% = 15 TO 239 STEP 16 7030 R1% = R1% + 1 7040 IF MID$(ARBSTATDIR1$,RELPOS1%,1) = " " GOTO 7120 7050 NEXT RELPOS1% 7060 DIR2% = 1 7070 FOR RELPOS2% = 1 TO 225 STEP 16 7080 R1% = R1% + 1 7090 IF MID$(ARBSTATDIR2$,RELPOS2%,1) = " " GOTO 7120 7100 NEXT RELPOS2% 7110 NOSPACEFLAG% = 1 : RETURN 7120 NOSPACEFLAG% = 0 : RETURN 7200 REM ********************************************************************** 7205 REM * SUB.: CLEAR ADD/SUB/MUL. REG TO USE IT AS FORMATNO. - DIR. * 7210 REM ********************************************************************** 7220 MID$(MR$,1,15) = SPACE$(15) : MID$(ADDR$,1,225) = SPACE$(225) : MID$(SUBR$,1,135) = SPACE$(135) 7230 RETURN 7232 REM ********************************************************************** 7234 REM * SUB.: CHECK GENERAL-STATUS (DEP) * 7240 REM ********************************************************************** 7250 GENERALST$ = MID$(ST$,1,2) : PRIMST$ = MID$(ST$,3,2) : SEKST$ = MID$(ST$,5,2) 7260 GENERALST% = VAL(GENERALST$) : PRIMST% = VAL(PRIMST$) : SEKST% = VAL(SEKST$) 7270 ON GENERALST% GOTO 7330,7320,7320,7320,7320,7320,7320 7280 ERRMSGNR% = 21 : GOSUB 20000 7300 GOSUB 1000 : RETURN 7310 REM ********************************************************************** 7320 PRIMST% = 8 : RETURN 7330 RETURN 7332 REM ********************************************************************** 7334 REM * SUB.: CALCULATE THE MAX. VARIABLE POS. IN A FORMAT * 7340 REM ********************************************************************** 7350 VARPOS$ = MID$(NONZ50$,19,4) 7360 IF VAL(VA$) > VAL(VARPOS$) THEN VARPOS$ = VA$ 7362 NVARPOS$ = SPACE$(4) : RSET NVARPOS$ = VARPOS$ 7370 MID$(NONZ50$,19,4) = NVARPOS$ : RETURN 7380 REM ********************************************************************** 7390 REM * SUB.: FILE IN ARBSTAT-DIR ? * 7400 REM ********************************************************************** 7410 FILEINDIR% = 0 : DIR2% = 0 : NAME$ = SPACE$(16) 7412 FOR I% = 15 TO 239 STEP 16 7420 IF MID$(ARBSTATDIR1$,I%,12) = FILENAME$ GOTO 7480 7430 NEXT I% 7435 DIR2% = 1 7440 FOR I% = 1 TO 225 STEP 16 7450 IF MID$(ARBSTATDIR2$,I%,12) = FILENAME$ GOTO 7480 7460 NEXT I% 7470 FILEINDIR% = 0 : RETURN 7480 IF DIR2% = 1 THEN NAME$ = MID$(ARBSTATDIR2$,I%,16) ELSE NAME$ = MID$(ARBSTATDIR1$,I%,16) 7485 FILEINDIR% = 1 : RETURN 7490 REM ********************************************************************** 7495 REM * TEST THE FORM-CHAIN-KEY * 7500 REM ********************************************************************** 7510 ERRMSGNR% = 8 : GOSUB 20000 7520 F% = 1 : F1% = 1 : FORMCHAINERROR% = 0 7530 FOR FP% = 1 TO 45 7550 FORMNR$ = MID$(ADDR$,F%+1,3) : FORMCHAINKEY$ = MID$(SUBR$,F1%,3) 7555 IF VAL(FORMCHAINKEY$) <> VAL(FORMNR$) THEN GOTO 7570 7560 GOTO 7602 7570 F% = F% + 4 7580 NEXT FP% 7590 F2% = F1% + 2 : F2% = F2% Ø 3 : F2% = F2% * 4 - 3 7600 MID$(ADDR$,F2%,1) = "*" : FORMCHAINERROR% = 1 : GOTO 7610 7602 F2% = F1% + 2 : F2% = F2% Ø 3 : F2% = F2% * 4 - 3 7604 MID$(ADDR$,F2%,1) = " " 7610 IF F1% = 133 THEN RETURN ELSE F% = 1 : F1% = F1% + 3 : GOTO 7530 7990 REM ********************************************************************** 7995 REM * PRINT ERRMSG. IN LINE 25 * 8000 REM ********************************************************************** 8010 ERRMSGNR% = 16 : GOSUB 20000 8030 GOSUB 1000 : GOTO 5650 8050 REM ******************* FATAL SYSTEM ERROR ******************************* 8060 GOTO 8270 8100 REM ******************* DISC I/O ERROR *********************************** 8110 GOTO 8270 8120 REM ******************* DISC FULL **************************************** 8130 GOTO 5650 8140 REM ******************* CP/M DIR FULL ************************************ 8150 GOTO 8270 8160 REM ******************** CLOSE ARBSTAT *********************************** 8170 ERRFLAG% = 0 : CLOSE #1 8190 ARBSTATOPEN% = 0 : ARBSTATWRITE% = 0 : RETURN 8200 REM **************************** CLOSE FORMFILE ************************** 8210 ERRFLAG% = 0 : USRFORMFOPEN% = 0 8220 CLOSE #2 : RETURN 8222 REM ********************************************************************** 8224 REM * SUB.: UPDATE THE ARBSTAT-RECORD * 8230 REM ********************************************************************** 8240 IF FORMCHAINERROR% THEN ENTRYSTAT$ = "U.." ELSE ENTRYSTAT$ = "K.." 8245 MID$(NONZ50$,23,3) = ENTRYSTAT$ : LSET NONZ$ = NONZ50$ 8246 LSET SM$ = SPACE$(3) : LSET WF$ = SPACE$(3) : LSET VA$ = SPACE$(4) 8247 LSET PC$ = SPACE$(4) : LSET FL$ = SPACE$(4) 8250 GOSUB 9550 : RETURN 8252 REM ********************************************************************** 8254 REM * ERROR !!! WRITE ERROR NO. TO ARBSTAT * 8260 REM ********************************************************************** 8270 IF ARBSTATOPEN% = 0 AND ARBSTATWRITE% = 0 THEN GOTO 8330 8280 MID$(SP$,1,2) = STR$(ERR) 8290 MID$(SP$,3,5) = STR$(ERL) 8300 MID$(NONZ50$,23,3) = "ERR" : LSET NONZ$ = NONZ50$ 8310 GOSUB 9550 REM *** WRITE ARBSTAT 8330 GOTO 16 9000 REM ************************** OPEN ARBSTAT ****************************** 9100 FILENAME$ = "ARBSTAT.DEP" 9120 ERRFLAG% = 0 : OPEN "R",#1,FILENAME$,512 9125 ARBSTATOPEN% = 1 9130 RETURN 9140 REM ************************ SET ARBSTST-FIELD *************************** 9150 FIELD #1,54 AS NONZ$,8 AS SP$,2 AS MO$,3 AS FLN$,3 AS SM$,6 AS ST$,3 AS WF$,4 AS VA$,4 AS FC$,4 AS PC$,4 AS FL$,6 AS EE$,6 AS VE$,6 AS KE$,6 AS KV$,6 AS EC$,6 AS FK$,6 AS VK$,15 AS MR$,225 AS ADDR$,135 AS SUBR$ 9160 RETURN 9170 REM ************************* READ ARBSTAT DIR *************************** 9180 FIELD #1,255 AS ARBSTATDIR1$,255 AS ARBSTATDIR2$,2 AS NOTUSED$ 9200 ERRFLAG% = 0 : GET #1,1 9202 IF MID$(ARBSTATDIR1$,1,10) = "ARBSTATDIR" THEN RETURN 9210 ERRFLAG% = 8 : RETURN 9212 REM ********************************************************************** 9214 REM * SUB.: PRINT ERRMSG. IN LINE 25 * 9220 REM ********************************************************************** 9230 ERRMSGNR% = 17 : GOSUB 20000 9250 GOSUB 1000 : RETURN 9270 REM **************************** OPEN FORM FILE ************************ 9280 USRFORMFOPEN% = 1 9340 ERRFLAG% = 0 : OPEN "R",#2,FORMNAME$,1922 9350 RETURN 9360 REM ************************ WRITE ARBSTAT-DIR. ************************** 9370 FIELD #1,255 AS ARBSTATDIR1$,255 AS ARBSTATDIR2$,2 AS NOTUSED$ 9410 ERRFLAG% = 0 : PUT #1,1 9420 RETURN 9430 REM ************************ INIT A NEW ARBSTAT ************************** 9450 LSET NONZ$ = NONZ50$ 9470 LSET MO$ = MODE$ : LSET FLN$ = FIELDNO$ : LSET SM$ = SPECMOD$ 9530 RETURN 9540 REM ************************ WRITE ARBSTAT ******************************* 9550 ERRFLAG% = 0 : PUT #1,R1% 9555 ARBSTATWRITE% = 1 9560 RETURN 9562 REM ************************ READ ARBSTAT ******************************** 9564 ERRFLAG% = 0 9566 GET #1,R1% : RETURN 9570 REM ************************ INIT FORMATBUFFER-FIELD********************** 9580 FIELD #2,2 AS FORMBYTES$,255 AS FORMREC1$,255 AS FORMREC2$,255 AS FORMREC3$,255 AS FORMREC4$,255 AS FORMREC5$,255 AS FORMREC6$,255 AS FORMREC7$,135 AS FORMREC8$ 9585 RETURN 9640 REM ************************ WRITE FORMREC ******************************* 9650 ERRFLAG% = 0 9655 FORMBYTES1$ = "#&" : LSET FORMBYTES$ = FORMBYTES1$ 9660 PUT #2,FORMNR% 9670 RETURN 9672 REM ************************* READ FORMREC ******************************* 9674 ERRFLAG% = 0 9676 GET #2,FORMNR% 9678 RETURN 9680 REM ************************* INCREMENT RECCORD-COUNTER ****************** 9690 RECCOUNT$ = MID$(NONZ50$,39,6) : RECCOUNT% = VAL(RECCOUNT$) 9700 RECCOUNT% = RECCOUNT% + 1 : RECCOUNT$ = STR$(RECCOUNT%) 9705 NRECCOUNT$ = SPACE$(6) : RSET NRECCOUNT$ = RECCOUNT$ 9710 MID$(NONZ50$,39,6) = NRECCOUNT$ : RETURN 9900 REM ************************* ON ERROR HANDLING ************************** 9910 ON ERRFLAG% GOTO 8060,8060,8060,8060,8110,8130,8150,8010 9920 GOTO 16 10000 REM ************************ E R R O R ********************************** 10010 REM 10020 REM errflag% = 1 = "file not found" 10030 REM errflag% = 2 = "file already exists" 10040 REM errflag% = 3 = "bad filename" 10050 REM errflag% = 4 = "fatal error" 10060 REM errflag% = 5 = "disc i/o error" 10070 REM errflag% = 6 = "disc full" 10080 REM errflag% = 7 = "cp/m dir full" 10085 REM errflag% = 8 = "no arbstatdir" 10090 IF ERR < 50 OR ERR > 67 GOTO 10110 10100 ON ERR-49 GOTO 10110,10110,10110,10310,10110,10110,10110,10160,10310,10110,10110,10210,10110,10110,10310,10110,10110,10290 10110 GOSUB 10340 : ERRFLAG% = 4 : RESUME 9900 10160 ERRMSGNR% = 22 : GOSUB 20000 10190 GOSUB 1000 : ERRFLAG% = 5 : RESUME 9900 10210 ERRMSGNR% = 23 : GOSUB 20000 10240 GOSUB 1000 : ERRFLAG% = 6 : RESUME 9900 10290 GOSUB 10340 : ERRFLAG% = 7 : RESUME 9900 10310 ERRFLAG% = 1 : IF VAL(ARBNR$) = 11 THEN GOSUB 10380 : RESUME 20810 10312 IF VAL(ARBNR$) = 14 THEN RESUME 980 10314 RESUME 9900 10320 ERRFLAG% = 2 : RESUME 9900 10330 ERRFLAG% = 3 : RESUME 9900 10332 REM ********************************************************************* 10334 REM * SUB.: PRINT ERRMSG. IN LINE 25 * 10340 REM ********************************************************************* 10350 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 10360 PRINT CHR$(144);" *** FEHLER #";ERR;"/";ERL;" DATEI: ";FILENAME$;" (ON ERR) !! (ESC) ***";CHR$(128);CHR$(30);CHR$(13); 10370 GOSUB 1000 : RETURN 10372 REM ********************************************************************* 10374 REM * PRINT ERRMSG. IN LINE 25 * 10380 REM ********************************************************************* 10390 ERRMSGNR% = 24 : GOSUB 20000 10410 GOSUB 1000 : RETURN 20000 REM ********************************************************************* 20001 REM * READ AND PRINT ERROR-MSG. ON CRT * 20002 REM ********************************************************************* 20070 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 20080 PRINT CHR$(144);" *** "; 20090 ON ERRMSGNR% GOSUB 20120,20130,20140,20150,20160,20170,20180,20190,20200,20210,20220,20230,20240,20250,20260,20270,20280,20290,20300,20310,20320,20330,20340,20350 20092 IF ERRMSGNR% = 8 THEN PRINT " !! *** ";CHR$(128);CHR$(30);CHR$(13); : RETURN 20095 PRINT " !! (ESC) *** ";CHR$(128);CHR$(30);CHR$(13); 20115 RETURN 20120 PRINT "ARBEITS NR. FALSCH"; : RETURN REM *** MSG. 01 20130 PRINT "FORMATNAME FALSCH"; : RETURN REM *** MSG. 02 20140 PRINT "FORMATNAME BEREITS VORHANDEN"; : RETURN REM *** MSG. 03 20150 PRINT "VERKETTUNGSFEHLER"; : RETURN REM *** MSG. 04 20160 PRINT "FORMAT-DATEI NICHT VORHANDEN"; : RETURN REM *** MSG. 05 20170 PRINT "NAME DER ARBEITSDATEI FALSCH"; : RETURN REM *** MSG. 06 20180 PRINT "ARBEITSDATEI NICHT VORHANDEN"; : RETURN REM *** MSG. 07 20190 PRINT "FORMATVERKETTUNG ! BITTE WARTEN"; : RETURN REM *** MSG. 08 20200 PRINT "KEINE SYSTEM-FORMAT FÅR DIE ARBEITS-STATUS-DATEI"; : RETURN REM *** MSG. 09 20210 PRINT "FORMAT OHNE FORMATKENNUNG GELESEN"; : RETURN REM *** MSG. 10 20220 PRINT "KEINE SYSTEM-FORMATE"; : RETURN REM *** MSG. 11 20230 PRINT "LESEFEHLER IN DER ARBEITS-STATUS-DATEI"; : RETURN REM *** MSG. 12 20240 PRINT "ACHTUNG !! FORMAT-DATEI MIT FEHLER"; : RETURN REM *** MSG. 13 20250 PRINT "NEUE DISKETTE IN LAUFWERK 1 EINLEGEN"; : RETURN REM *** MSG. 14 20260 PRINT "FORMAT-DATEI OHNE START-FORMAT"; : RETURN REM *** MSG. 15 20270 PRINT "ARBEITS-STATUS-DATEI NICHT VORHANDEN"; : RETURN REM *** MSG. 16 20280 PRINT "ARBEITS-STATUS-DATEI VOLL"; : RETURN REM *** MSG. 17 20290 PRINT "FORMAT NR. FALSCH"; : RETURN REM *** MSG. 18 20300 PRINT "FORMAT NR. -BEREICH BELEGT !! MAX. 45 FORMATE"; : RETURN REM *** MSG. 19 20310 PRINT "KEIN PROGRAMM ";MID$(PROGNAME$,1,10); : RETURN REM *** MSG. 20 20320 PRINT "DEP FEHLER-STATUS"; : RETURN REM *** MSG. 21 20330 PRINT "SCHREIB- ODER LESEFEHLER AUF DER DISKETTE"; : RETURN REM *** MSG. 22 20340 PRINT "DISKETTE VOLL"; : RETURN REM *** MSG. 23 20350 PRINT "DATEI NICHT IN DER CP/M DATEIVERWALTUNG"; REM *** MSG. 24 20700 REM ********************************************************************* 20702 REM * DELETE A FILE * 20704 REM ********************************************************************* 20710 IF ARBSTATOPEN% GOTO 20730 ELSE GOSUB 9100 REM *** OPEN ARBSTAT-FILE 20730 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 : PRINT SPACE$(76); 20735 GOSUB 9180 REM *** READ ARBSTAT-DIR 20750 IF MID$(DATANAME$,1,1) = " " GOTO 20760 20755 FILENAME$ = DATANAME$ : GOTO 20770 20760 IF MID$(FORMNAME$,1,1) = " " GOTO 1013 20765 FILENAME$ = FORMNAME$ 20770 GOSUB 7410 REM *** FILE IN ARBSTAT-DIR ? 20780 IF FILEINDIR% THEN GOTO 20790 ELSE IF MID$(DATANAME$,1,1) = " " THEN GOSUB 3873 : GOTO 3110 ELSE GOSUB 4110 : GOTO 3982 20790 ERRFLAG% = 0 : KILL FILENAME$ REM *** KILL THE CP/M FILE 20810 IF DIR2% GOTO 20840 20820 MID$(ARBSTATDIR1$,I%,16) = SPACE$(16) 20830 GOTO 20841 20840 MID$(ARBSTATDIR2$,I%,16) = SPACE$(16) 20841 GOSUB 21020 REM *** DECREMENT ARBSTAT-RECORD-COUNTER 20842 GOSUB 9370 REM *** WRITE ARBSTAT-DIR 20850 XPOS% = 1 : YPOS% = 25 : GOSUB 1990 20860 PRINT CHR$(144);"*** ";MID$(FILENAME$,1,8);" GELØSCHT !!! "; 20870 IF VAL(ARBNR$) = 11 THEN PRINT "***";CHR$(128);CHR$(13);CHR$(7); : GOTO 1013 20880 PRINT "ANZAHL SÆTZE = 00 !! (ESC) ";CHR$(128);CHR$(13);CHR$(7); : GOSUB 1000 : GOTO 16 21000 REM ********************************************************************* 21005 REM * SUB.: DECREMENT ARBSTAT-RECORD-COUNTER * 21010 REM ********************************************************************* 21020 ARBSTATRECCOUNT$ = MID$(ARBSTATDIR1$,11,4) : ARBSTATRECCOUNT% = VAL(ARBSTATRECCOUNT$) 21030 ARBSTATRECCOUNT% = ARBSTATRECCOUNT% - 1 : ARBSTATRECCOUNT$ = STR$(ARBSTATRECCOUNT%) 21040 NARBSTATRECCOUNT$ = SPACE$(4) : RSET NARBSTATRECCOUNT$ = ARBSTATRECCOUNT$ 21050 MID$(ARBSTATDIR1$,11,4) = NARBSTATRECCOUNT$ 21060 RETURN 22190 REM ********************************************************************* 22195 REM * READ FROM CHAININF-FILE THE WORKNO. * 22200 REM ********************************************************************* 22210 ERRFLAG% = 0 : FILENAME$ = "CHAININF.DEP" 22220 OPEN "R",#5,FILENAME$,26 22240 FIELD #5,12 AS CHAININFO1$,12 AS CHAININFO2$,2 AS CHAININFO3$ 22250 ERRFLAG% = 0 : GET #5,1 22270 FORMNAME$ = CHAININFO1$ : DATANAME$ = CHAININFO2$ : ARBNR$ = CHAININFO3$ 22280 ERRFLAG% = 0 : CLOSE 22290 RETURN «eof»