home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AMOS PD CD
/
amospdcd.iso
/
extensions
/
jd
/
_newprogs
/
_installjdlibs.amos
/
_installjdlibs.amosSourceCode
Wrap
AMOS Source Code
|
1994-03-13
|
8KB
|
291 lines
Set Buffer 20
Resource Screen Open 0,700,256,0
Flash Off
Hide : Show
Limit Mouse
Paper 6 : Pen 7
Cls
V#=0
Restore DAT1
Read LIBS
Global ABK,ADAT,BK,STMX,STAD,LIBS
STMX=64
Dim ST$(STMX)
Dim LIB$(LIBS),VER$(LIBS),SLOT$(LIBS),SLOT(LIBS)
Dim PST$(LIBS),PL(LIBS)
Dim SUC(LIBS),NCOP(LIBS),SIB(LIBS),LIBLEN(LIBS)
Global LIB$(),ST$(),LIBLEN()
BK=10
Restore DAT2
For C=1 To LIBS
Read LIB$(C),VER$(C),SLOT$(C),LIBLEN(C)
LIB$(C)="AMOSPro_"+LIB$(C)+".Lib"
Next
DAT1:
Data 3
DAT2:
Data "JDColour","V1.4","Slot 20",9364
Data "Prt","V1.3","Slot 21",3580
Data "JD","V5.3","Slot 22",37804
For C=1 To LIBS
PST$(C)=LIB$(C)+" - "+VER$(C)+" - "+SLOT$(C)
PL(C)=Len(PST$(C))
Next
For C=1 To LIBS
PL=Max(PL,PL(C))
Next
For C=1 To LIBS
If PL(C)<PL Then PST$(C)=Space$(PL-PL(C))+PST$(C)
Next
Pen 7 : Curs Off : Print : Centre "Installiere JD.Libs" : Print : Print : Pen 3
For C=1 To LIBS
Print : Centre PST$(C)
Next
Print
Pen 4 : Paper 7 : TEST_FILES : If Param=1 Then Goto _END2
Pen 3 : Paper 6
Print : Print : Centre "Die neuen Libs sind leider nicht 100% kompatibel zu den �lteren Versionen!"
Print : Centre "Bitte alle *.AMOS-Files, die Befehle der Libs beinhalten, als *.ASC-File speichern!"
Pen 7
REQUESTER["Bereit zum Installieren?"," Ja ","Nein"]
If Param=2 Then Goto _END3
Paper 6 : Cls : Print : Centre "Installiere JD.Libs" : Print : Print : Pen 3
BNAME$="S:AMOSPro_Interpreter_Config"
MN_LOADIT[BNAME$]
_CHECK_AMOS : V#=Param# : If V#<1.1 Then Pen 4 : Paper 7 : Centre "F�r die Libs ist AMOSPro V1.1 oder h�her erforderlich!" : End
For C=1 To LIBS
SLOT(C)=Val(SLOT$(C)-"Slot ")+15
Next
For C=1 To LIBS
Locate ,4+C : Centre LIB$(C) : Print
VER$="" : V#=0.0
If ST$(SLOT(C))="" Then ST$(SLOT(C))=LIB$(C) : SUC(C)=1 : BS=1
If SUC(C)=1 Then Goto SKIP
If Upper$(ST$(SLOT(C)))=Upper$(LIB$(C)) Then VERSION[ST$(1)+LIB$(C)] : VER$=Param$
If VER$=VER$(C) Then SUC(C)=1 : NCOP(C)=1 : Goto SKIP
V#=Val(VER$-"V")
If V#>0.0 Then If V#<Val(VER$(C)-"V") Then SIB(C)=1 : Goto SKIP
Centre LIB$(C)+" konnte nicht eingebunden werden!" : Print
Centre SLOT$(C)+" ist belegt: "+ST$(SLOT(C)) : Print
Memorize X : Memorize Y
REQUESTER["Soll ich neu belegen?"," Ja ","Nein"] : SIB(C)=Param
Remember X : Remember Y
Paper 6 : Pen 3
SKIP:
Next
For C=1 To LIBS
If SUC(C)=0 Then If SIB(C)=1 Then ST$(SLOT(C))=LIB$(C) : SUC(C)=1 : BS=1
Next
SUC=0
For C=1 To LIBS
SUC=SUC+SUC(C)
Next
If SUC=0 Then Goto _END
SUC=0
If BS=1 Then MN_SAVEIT[BNAME$]
For C=1 To LIBS
If NCOP(C)=1 Then SUC(C)=0 : Goto NE
If SUC(C)=1 Then FILE_COPY["JD_Install:APSystem/"+LIB$(C),ST$(1)+LIB$(C)] : SUC(C)=Param
NE:
Next
Print : Print : Print
For C=1 To LIBS
If SUC(C)<>0 Then Centre "Konnte "+LIB$(C)+" nicht kopieren!" : SUC=1 : Print
Next
NCOP=0
For C=1 To LIBS
NCOP=NCOP+NCOP(C)
Next
Print
If NCOP=3 Then SUC=2 : Centre "Die aktuellen Libs waren bereits installiert!"
If SUC=0 Then Centre "Installation erfolgreich abgeschlossen!"
If SUC=1 Then Centre "Bitte erforderliche Libs per Hand kopieren!"
_END:
Print : Print : Centre "Die neuen Accessories und Proceduren bitte falls"
Print : Centre "erw�nscht per Hand kopieren und einbinden!"
_END2:
Erase All
Wait 5*50
Cls
Locate 0,15
If SUC=0 Then Centre Border$("Viel Spa� mit den neuen AMOSPro-Erweiterungen",1)
If SUC<>0 Then Centre Border$("Auf Wiedersehen!",1)
Wait 5*50
Erase BK
End
_END3:
Erase BK
Cls
Locate 0,15 : Centre Border$("Na, dann eben nicht... Schade!",1)
Wait 25
Shoot
Wait 2*50
End
Procedure MN_LOADIT[F$]
If Exist(F$)=0 Then Pen 4 : Paper 7 : Centre "Konfiguration nicht gefunden!" : End
Open In 1,F$ : L=Lof(1) : Close
Reserve As Work BK,L+8*1024
Bload F$,Start(BK) : ABK=Start(BK)
If Peek$(ABK,4)="PId1"
STAD=ABK+Leek(ABK+4)+8
If Peek$(STAD,4)="PIt1"
ADAT=ABK+8
A=STAD+8
For ST=1 To STMX
L=Peek(A+1) : Exit If L=$FF
ST$(ST)=Peek$(A+2,L)
Add A,L+2
Next
End If
End If
End Proc
Procedure MN_SAVEIT[F$]
If Exist(F$+".old") Then Kill F$+".old"
Rename F$ To F$+".old"
AP=STAD+8
For S=1 To STMX
Poke AP,0
Poke AP+1,Len(ST$(S))
Poke$ AP+2,ST$(S)
Add AP,2+Len(ST$(S))
Next
Poke AP,0 : Poke AP+1,$FF : Add AP,2
Loke STAD+4,AP-STAD-8
AP=AP+AP mod 2
Bsave F$,ABK To AP
End Proc
Procedure TEST_FILES
F=0
For C=1 To LIBS
F$=""
F$="JD_Install:APSystem/"+LIB$(C)
If Exist(F$)=0 Then Goto FEHLER
FIND_LENGTH[F$]
FILE_LENGTH=Param
If FILE_LENGTH<>LIBLEN(C) Then Goto FEHLER2
Goto RES
FEHLER:
F=1
Print : Centre F$+" existiert nicht!" : Goto RES
FEHLER2:
F=1
Print : Centre F$+" hat eine falsche L�nge!"
RES:
Next
End Proc[F]
Procedure FILE_COPY[SOURCE$,DEST$]
SUC=1
If Exist(SOURCE$)=0 Then Pop Proc[SUC]
FIND_LENGTH[SOURCE$]
FILE_LENGTH=Param
A$=Disc Info$("SYS:") : P=Instr(A$,":") : F=Val(Mid$(A$,P+1))
If F>LL+1024 Then If Exist(DEST$+".old") Then Kill DEST$+".old"
If F>LL+1024 Then If Exist(DEST$) Then Rename DEST$ To DEST$+".old"
If F<=LL+1024 Then If Exist(DEST$) Then Kill DEST$
LONG_FILE_COPY[SOURCE$,DEST$,FILE_LENGTH]
SUC=0
End Proc[SUC]
Procedure FIND_LENGTH[SOURCE$]
Open In 1,SOURCE$
L=Lof(1)
Close
End Proc[L]
Procedure LONG_FILE_COPY[SOURCE$,DEST$,L]
VBK=11
Reserve As Work VBK,L
Centre "Lade "+SOURCE$
Bload SOURCE$,Start(VBK)
Centre "Speichere "+SOURCE$
Bsave DEST$,Start(VBK) To Start(VBK)+L
Centre SOURCE$+" ... installiert" : Print
Erase VBK
End Proc
Procedure VERSION[F$]
VBK=11
Open In 1,F$ : L=Lof(1) : Close
Reserve As Work VBK,L
Bload F$,Start(VBK) : VABK=Start(VBK)
For X=VABK+L-20 To VABK+L
If Peek$(X,6)="$VER: " Then V$=Peek$(X+6,3) : Exit
Next
V$="V"+V$
Erase VBK
End Proc[V$]
Procedure REQUESTER[A$,B$,C$]
Reserve Zone 2
Show
While Mouse Key=1 : Wend
BREITE=Screen Width : HOEHE=Screen Height
HALB=BREITE/2 : TBREITE=BREITE/8 : HBREIT=TBREITE/2 : THOEHE=HOEHE/8-1 : TBREITE=TBREITE-1
A=Len(A$)*8+60
B=Len(B$)*8+60
C=Len(C$)*8+60
LASTLENG=Max(A,B+C)
Get Block 241,0,0,BREITE,HOEHE
Ink 0 : Bar HALB-LASTLENG/2+5,HOEHE-40 To HALB+LASTLENG/2+5,HOEHE-5
Ink 2 : Bar HALB-LASTLENG/2,HOEHE-45 To HALB+LASTLENG/2,HOEHE-10
Ink 5 : Box HALB-LASTLENG/2,HOEHE-45 To HALB+LASTLENG/2,HOEHE-10
Paper 2 : Pen 7
Locate 1,THOEHE-4 : Centre A$
X1=HALB-LASTLENG/2+20 : X2=HALB-LASTLENG/2+B-20
X3=HALB+LASTLENG/2-C+20 : X4=HALB+LASTLENG/2-20
Box X1,HOEHE-27 To X2,HOEHE-15
Box X3,HOEHE-27 To X4,HOEHE-15
X Mouse=X Hard(X1+(X2-X1)/2) : Y Mouse=Y Hard(HOEHE-21)
Curs Off
Locate HBREIT-(LASTLENG-60)/16,THOEHE-2 : Print Zone$(B$,1)
Locate HBREIT+(LASTLENG-60)/16-Len(C$),THOEHE-2 : Print Zone$(C$,2)
REQUES1:
IN=Mouse Zone
If Inkey$=Chr$(13) Then Z=1 : Goto REQUES2
If Inkey$=Chr$(27) Then Z=2 : Goto REQUES2
If Mouse Key=1 and IN=1 Then Z=1 : Goto REQUES2
If Mouse Key=1 and IN=2 Then Z=2 : Goto REQUES2
Goto REQUES1
REQUES2:
Put Block 241,0,0
Del Block 241
Hide
End Proc[Z]
Procedure _CHECK_AMOS
F$=ST$(1)
F$=F$-"APSystem/"
F$=F$+"AMOSPro"
VBK=11
Open In 1,F$ : L=Lof(1) : Close
Reserve As Work VBK,L
Bload F$,Start(VBK) : VABK=Start(VBK)
For X=VABK To VABK+L
If Peek$(X,6)="$VER: " Then V$=Peek$(X+6,3) : Exit
Next
V#=Val(V$)
Erase VBK
End Proc[V#]