DataMuseum.dk

Presents historical artifacts from the history of:

Ohio Scientific Inc.

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Ohio Scientific Inc.

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦02c4f4f1f⟧

    Length: 6128 (0x17f0)
    Notes: OS65UFile, OSU65U-BASIC
    Names: »KFILE«

Derivation

└─⟦2f57871a3⟧ Bits:30009355 Ohio Scientific OS-OMS Nucleus, delvist oversat til dansk
    └─⟦this⟧ »KFILE« 

BASIC

00001 PRINT"** PROGRAM NOT EXECUTABLE FROM CONSOLE **":RUN"DBMSYS","PASS"
00002 CLOSE:CLEAR:REM 1/79  KEY FILE CREATE  (KFILE)
00004 REM POKE ON DISC ERROR GOTO 50000
00005 POKE2888,0:FLAG5:FLAG11:DIMAY$(100),AX(100),AW(100)
00009 DV(2)=PEEK(9832):IF DV(2)>127 THEN DV(2)=DV(2)-128+4
00010 DV$(2)=CHR$(DV(2)+65):REM CALCULATE CURRENT DEVICE
00011 FOR I=1 TO 27:PRINT:NEXT I
00012 PRINT"     DB-2  -  OPRET N\GLE FIL"
00013 PRINT"     ========================":PRINT:PRINT:PRINT
00020 PRINT"*** MASTERFILEN SKAL EKSISTERE F\R OPRETTELSEN AF N\GLEFILEN"
00030 PRINT
00095 INPUT"P] HVILKEN STATION LIGGER MASTER FILEN ";DV$(3):PRINT
00096 IFLEN(DV$(3))<>1THENPRINT:PRINT"** FORKERT !!!!":GOTO 95
00097 IFDV$(3)<"A"ORDV$(3)>"E"THENPRINT:PRINT"*** FORKERT STATION":GOTO95 
00100 INPUT"INDTAST NAVNET P] MASTER FILEN, KODEORD ";MN$,MP$
00101 IFMN$=""ORMP$=""THENPRINT:PRINT"*** FORKERT !!!":GOTO100
00102 IFLEN(MN$)<5THENMN$=MN$+" ":GOTO102
00103 IFLEN(MN$)=6ANDRIGHT$(MN$,1)="0"GOTO106
00104 IFLEN(MN$)>6THENPRINT:PRINT"*** UGYLDIGT FILNAVN":GOTO100
00105 IFLEN(MN$)<6THENMN$=MN$+"0":REM XXXXX0
00106 IFMP$="."ORMP$="."THENMP$="ANAN"
00107 IFLEN(MP$)<>4THENPRINT:PRINT"*** UGYLDIGT KODEORD":GOTO100
00110 DEVDV$(3):OPENMN$,MP$,1:REM LINE 50000 ON ERROR
00111 INDEX<1>=K9:INPUT%1,EODF:INDEX<1>=20:INPUT%1,BODF:INDEX<1>=31
00112 INPUT%1,ML:INDEX<1>=42:INPUT%1,KT:REM REC LEN & # OF REC
00115 REM GET FIELD NAMES,LENGHTS & OFFSETS
00116 REM AY$(N)=NAME AX(N)=LENGTH AW(N)=OFFSET
00117 AV=0:AU=1:A1=118:INDEX<1>=53:REM AV=OFFSET AU=# OF FIELDS
00118 INPUT%1,AY$(AU):INPUT%1,AX(AU):AW(AU)=AV
00119 AV=AV+AX(AU):IFINDEX(1)<BODFTHENAU=AU+1:GOTOA1
00120 IFINDEX(1)>BODFTHENPRINT:PRINT"ERROR** FILE HEADER ERROR":GOTO3140
00130 PRINT:PRINT:PRINT
00140 INPUT"INDTAST STATIONEN SOM N\GLE FILEN SKAL OPRETTES P] ";DV$(1)
00141 IF LEN(DV$(1))<>1THENPRINT:PRINT"*** FORKERT STATION  !!!":GOTO140 
00142 IFDV$(1)<"A"ORDV$(1)>"E"THENPRINT"*** FORKERT STATION !!!":GOTO140 
00150 PRINT
00158 INPUT"INDTAST N\GLE FIL NR. (1-7) ";KN:PRINT
00159 IF INT(KN)=KN AND KN>0 AND KN<=7 GOTO 162
00160 PRINT"*** FORKERT NUMMMER !!!":GOTO 158
00162 KN$=LEFT$(MN$,5)+RIGHT$(STR$(KN),1)
00166 KR$="R"
00170 INPUT"INDTAST N\GLE FILENS KODEORD ";KP$:PRINT
00175 IF KP$="." THEN KP$="ANAN"
00180 IF LEN(KP$)<>4 THENPRINT"*** FORKERT KODEORD !!!":GOTO 170
00200 XX=0:FORX=1TOAU:AT$="("+MID$(STR$(X),2)+") "+AY$(X)
00201 XX=XX+1:IFXX=1THENPRINTAT$;:GOTO203
00202 XX=0:PRINTTAB(38);AT$
00203 NEXTX:XX=0:PRINT:PRINT
00205 PRINT:INPUT"INDTAST FELTNAVN ELLER ^FELTNR.";N$
00206 IFLEFT$(N$,1)<>"^"THENFORX=1TOAU:IFN$=AY$(X)THENGH=1:TR=X
00207 IFLEFT$(N$,1)<>"^"THENNEXT:IFGH<1THENPRINT:PRINT"FORKERT !":GOTO205
00208 IFLEFT$(N$,1)<>"^"THENGH=0:GOTO235
00214 IFLEFT$(N$,1)<>"^"ORLEN(N$)>3THENPRINT:PRINT"FORKERT !!":GOTO205
00215 X=ASC(RIGHT$(N$,1)):IFX<47ORX>58THENPRINT:PRINT"FORKERT !!":GOTO205
00220 Y=VAL(MID$(N$,2)):IFY<1ORY>AUTHENPRINT:PRINT"FORKERT !!":GOTO205   
00225 TR=VAL(MID$(N$,2)):N$=AY$(TR)
00235 EODF=43+LEN(N$)
00240 PRINT
00248 REM BRANCH POINT
00250 INPUT"NY ELLER DUPLIKERET INFORMATION (N ELLER D) ";QA$
00260 IF LEFT$(QA$,1)="D" GOTO 500
00265 IF LEFT$(QA$,1)<>"N" THENPRINT"*** FORKERT !!":GOTO250
00270 REM NEW DATA GET PARAM CODE
00289 PRINT
00290 INPUT"INDTAST MAX. L[NGDE FOR HVER N\GLE ";KL
00291 IF KL=INT(KL)AND KL>0 GOTO 300
00292 PRINT"*** FORKERT L[NGDE !!":GOTO290
00300 KK=(KT*(KL+12)*1.2)+EODF:REM EODF=BODF OF KEY FILE
00301 KK=INT(KK)
00305 GOTO 1010:REM RUN TO DATA STUFF
00310 REM END OF NEW USER SUPPLIED INFO
00500 KL=AX(TR)
01000 KK=(KT*(KL+12))+EODF:REM EODF=BODF OF KEY FILE AT THIS TIME
01010 CLOSE 1:REM CLOSE MASTER FILE
01011 DEV DV$(2)
01090 REM PASS VALUES TO 'MACCRE'
02000 OPEN"PASVAL","PASS",1
02030 PRINT %1,DV$(1):REM ? DEVICE TO CREATE ON
02040 PRINT %1,KN$:REM ? FILE NAME
02050 PRINT %1,KK:REM ? FILE LEN
02060 PRINT %1,"D":REM ?FILE TYPE
02070 PRINT %1,KR$:REM ? ACCESS RIGHTS
02080 PRINT %1,KP$:REM ? KEY FILE PASSWORD
02090 PRINT %1,DV$(2):REM ? RTN DEVICE
02100 PRINT %1,"KFILE":REM ? CALLER NAME
02110 PRINT %1,".":REM ? CALLER PW
02120 PRINT %1,2200:REM RTN LINE #
02121 INDEX<1>=300:PRINT%1,DV$(1):PRINT%1,DV$(2)
02122 PRINT%1,KN$:PRINT%1,KP$:KN=KN+10:PRINT%1,KN:REM FILE TYPE (11-17)
02123 PRINT%1,EODF:PRINT%1,ML:PRINT%1,BODF:PRINT%1,N$:CLOSE1:PRINT
02124 IFQA$="D"THENKL=KL-1
02125 FORX=1TO32:PRINT:NEXT:PRINT"N\GLE FIL NAVN";TAB(25);KN$
02126 PRINT"P] STATION";TAB(25);DV$(1):PRINT"FIL TYPE";TAB(25);"DATA"
02127 PRINT"TILGANG";TAB(25);"READ":PRINT"KODEORD";TAB(25);KP$:PRINT
02128 PRINT:PRINT"FELT";TAB(25);N$:PRINT"MAX. FELT L[NGDE";TAB(24);KL
02129 PRINT"TOTAL FIL L[NGDE";TAB(24);KK:PRINT
02130 INPUT"   ER DETTE KORREKT (J/N) ";A$:IFLEFT$(A$,1)="N"GOTO2
02131 IFLEFT$(A$,1)<>"J"THENPRINT:PRINT"FORKERT !!":GOTO2130
02132 PRINT:PRINT:INPUT"EXIT (E) ELLER FORS[TTELSE (F) ";DC$
02133 IFDC$<>"E"ANDDC$<>"F"THENPRINT:PRINT"FORKERT !!":GOTO2132
02134 IFDC$="E"THENCLOSE:DEVDV$(2):FLAG10:FLAG12:RUN"DBMSYS","PASS"
02135 FORX=1TO32:PRINT:NEXT
02149 FLAG 10:FLAG 12:POKE 2888,27
02150 RUN"MACCRE","PASS",2
02160 REM OPEN FILE THAT SAVED VALUES
02200 OPEN"PASVAL","PASS",1
02205 FLAG 9:FLAG 11
02210 INPUT %1,ER$:REM LOOK FOR OK
03000 INDEX<1>=300
03005 INPUT%1,DV$(1)
03006 INPUT%1,DV$(2)
03010 INPUT %1,KN$:INPUT %1,KP$
03030 INPUT %1,KN: REM GET FILE TYPE
03040 INPUT %1,EODF: REM GET END OF FILE
03044 INPUT %1,ML
03048 INPUT %1,BODF
03050 INPUT %1,N$: REM GET FIELD NAME
03051 CLOSE 1
03052 IF ER$="OK" THEN 3055
03053 PRINT:PRINT"*** FIL OPRET FEJL ****"
03054 PRINT:PRINT ER$:CLOSE 1:GOTO 3150
03055 DEV DV$(1)
03058 OPEN KN$,KP$,2
03065 KN$=LEFT$(KN$,5): REM CHOP OFF KEYFILE #
03070 PRINT %2,KN$: REM ? KEYFILE NAME
03080 INDEX<2>=6:REM POSITION INDEX FOR TYPE
03090 PRINT %2,KN: REM ? KEYFILE TYPE
03100 INDEX<2>=9:REM POSITION INDEX FOR END OF FILE MRK'R
03110 PRINT %2,EODF: REM ? END OF DATA FILE MRK'R
03113 INDEX<2>=20:REM MASTER LEN OF REC
03114 PRINT %2,ML
03117 INDEX<2>=31:REM MASTER FILE BODF
03118 PRINT %2,BODF
03120 INDEX<2>=42:REM POSITION INDEX FOR FIELD LABLE
03130 PRINT %2,N$: REM ? FILED NAME
03140 CLOSE  2:REM SHUT DOWN FILE 2
03144 KN$=LEFT$(KN$,5)+RIGHT$(STR$(KN),1)
03145 DEVDV$(2):PRINT:PRINT"N\GLE FIL ";KN$;" ER BLEVET OPRETTET.":PRINT
03150 FLAG 12: REM DISABLE LEADING SPACE SUPPR
03155 POKE2888,27:FLAG6
03160 RUN"DBMSYS","PASS"
50000 DE=PEEK(10226):DL=PEEK(11774)+PEEK(11775)*256:PRINT
50010 N=N+1:IFN<2GOTO50030
50020 PRINT"*** KONTROLER AT ALLE DISKETTER ER ANBRAGT KORREKT ***"
50030 PRINT"*** FEJL ";DE;" I LINIE ";DL;" ***"
50040 PRINT:INPUT"TAST RETURN, HVIS FORS[TTELSE";QS$:FLAG12
50050 DEVDV$(2):FLAG6:RUN"DBMSYS","PASS"

Full view