home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh7x
/
sh72b.d64
/
super-install
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
6KB
|
178 lines
10 REM ********************************
20 REM ** -- SUPER-INSTALL -- **
30 REM ** M. SCHACHT / M.KLEMM **
40 REM ** BERLIN 51 (C) 1985 **
50 REM ********************************
60 POKE53280,0:POKE53281,0:POKE53272,23:PRINTCHR$(147)CHR$(159)CHR$(9)
61 POKE788,52:REM STOP BLOCKIEREN
62 DIMLA$(11),DT(36),IN(255),BI(255),IN$(16)
65 FORI=0TO38:BL$=BL$+CHR$(32):NEXT
67 PO=23:PT=10:PR$="... BITTE WARTEN ...":GOSUB100
70 REM ------------TABELLENWERTEVORGABE
73 FORI=0TO31:BI(I)=I+128:BI(I+32)=I+32:BI(I+64)=I:BI(I+96)=I+64
74 BI(I+128)=I+192:BI(I+160)=I+96:BI(I+192)=I+64:BI(I+223)=I+95:NEXT:BI(255)=94
75 FORI=0TO255:IN(I)=I:NEXT:POKE631,17:POKE198,1
76 RESTORE:FORI=0TO36:READDT(I):NEXT
77 FORI=0TO11:READLA$(I):NEXT
78 ZE=10:N$="CODETABELLEN NAME":AD=49152:TX$="TEXTPROGRAMM"
80 GOTO919
98 :
99 REM ----------AUSDRUCK POSITIONIEREN
100 POKE214,PO-1:PRINT:POKE211,PT:PRINTCHR$(145)PR$:RETURN
198 :
199 REM -------------------VORBLAETTERN
200 IFII=240THENRETURN
205 II=II+16:FORI=0TO15:POKE214,I+4:PRINT:POKE211,23:PRINTLEFT$(BL$,3)
210 POKE214,I+4:PRINT:POKE211,22:PRINTIN(I+II)
220 POKE(1236+I*40),BI(I+II):POKE(1242+I*40),BI(IN(I+II)):NEXT:RETURN
298 :
299 REM ---------------ZURUECKBLAETTERN
300 IFII<=0THENRETURN
305 II=II-16:FORI=15TO0STEP-1:POKE214,I+4:PRINT:POKE211,23:PRINTLEFT$(BL$,3)
310 POKE214,I+4:PRINT:POKE211,22:PRINTIN(I+II)
320 POKE(1236+I*40),BI(I+II):POKE(1242+I*40),BI(IN(I+II)):NEXT:RETURN
598 :
599 REM -------EDITOR(IDEE:DATA BECKER)
600 IN=0:POKE214,PO-1:PRINT:POKE211,PT:PRINTFR$;" ";
605 POKE204,0
609 POKE212,1:GETIN$:IFIN$=""THEN609
610 IFNU=0THEN616
611 IFIN=0THEN615
612 IFIN$=CHR$(20)THEN620
613 IFIN$=CHR$(17)ORIN$=CHR$(145)THENPOKE631,ASC(IN$):POKE198,1:IN$=CHR$(13):GOTO625
614 IFIN$="S"ORIN$="L"ORIN$="_"THENPOKE631,ASC(IN$):POKE198,1:IN$=CHR$(13):NU=0:GOTO625
615 :IFASC(IN$)<48ORASC(IN$)>57THEN605
616 IFIN$=CHR$(29)ORIN$=CHR$(157)THENIN$="":GOTO605
617 IFIN$="_"ORIN$=CHR$(145)ORIN$=CHR$(17)THENPOKE204,1:POKE212,0:RETURN
618 IFIN$=CHR$(13)ANDIN=0THENIN$="":GOTO605
620 POKE207,0
625 IFIN$=CHR$(13)THENPOKE204,1:PRINTCHR$(32):IN$="":GOTO650
630 IFIN$=CHR$(20)THENGOSUB660:GOTO605
635 IFIN>LL-1THEN605
640 PRINTIN$;
645 IN$(IN)=IN$:IN=IN+1:GOTO605
650 FORSL=0TOIN-1
655 IN$=IN$+IN$(SL):NEXT:RETURN
660 IFIN=0THENRETURN
665 POKE212,0:POKE207,0:PRINTCHR$(157)CHR$(32)CHR$(32)CHR$(157)CHR$(157);
670 IN=IN-1:IN$(IN)="":RETURN
698 :
699 REM ------------------------ANZEIGE
700 IFZE>18THENZE=3:POKE198,0:PO=21:PT=26:PR$=CHR$(32):GOSUB100
705 ZE=ZE+1:PT=26:POKE214,ZE-1:PRINT:POKE211,PT:PRINTCHR$(32)CHR$(158);
715 PRINTCHR$(157)CHR$(17)CHR$(18)CHR$(32)CHR$(146)CHR$(159):IFZE=4THENGOSUB200
720 RETURN
740 :
750 IFZE<5THENZE=20:POKE198,0:PO=6:PT=26:PR$=CHR$(32):GOSUB100
755 ZE=ZE-1:PT=26:POKE214,ZE+1:PRINT:POKE211,PT:PRINTCHR$(32)CHR$(158);
765 PRINTCHR$(157)CHR$(145)CHR$(18)CHR$(32)CHR$(146)CHR$(159):IFZE=19THENGOSUB300
770 RETURN
798 :
799 REM ----------------------EDITIEREN
800 FR$="":PO=ZE+1:PT=22:LL=3:NU=1:POKE214,PO-1:PRINT:POKE211,23:PRINTLEFT$(BL$,4)
810 POKE631,ASC(X$):POKE198,1:GOSUB600:IFVAL(IN$)>255THENX$=CHR$(32):GOTO800
820 IN(II+ZE-4)=VAL(IN$):POKE1242+(ZE-4)*40,BI(VAL(IN$))
830 RETURN
898 :
899 REM --------------HAUPTMENUE LAYOUT
900 POKE214,0:PRINT:POKE211,7:FORQ=1TO25:PRINTCHR$(175);:NEXT
905 PR$="ZEICHEN CODE":PO=3:PT=12:GOSUB100
909 POKE214,1:PRINT:FORQ=1TO21:POKE211,7:PRINTCHR$(165):POKE211,31:PRINTCHR$(145)CHR$(167):NEXT
910 PR$="[163][163][163][163][163][163][163] [163][163][163][163]":PO=4:PT=12:GOSUB100
915 PR$=CHR$(18)+" SICHERN [221] LADEN [221]_ ENDE ":PO=23:PT=7:GOSUB100:PRINTBL$
916 RETURN
917 :
918 REM ------------HAUPTMENUE ABFRAGEN
919 GOSUB900:II=-16:GOSUB200:GOSUB2350:REM VORGABEN LISTEN
920 GETX$:IFX$=""THEN920
925 IFASC(X$)>47ANDASC(X$)<58THENGOSUB800:GOTO920
930 IFX$<>"S"ANDX$<>"L"ANDX$<>CHR$(17)ANDX$<>CHR$(145)ANDX$<>"_"ANDX$<>CHR$(24)THEN920
940 IFX$=CHR$(17)ANDII+ZE<259THENGOSUB700:GOTO920
945 IFX$=CHR$(17)ANDII+ZE>258THENII=-16:GOSUB700:GOTO920
950 IFX$=CHR$(145)ANDII+ZE>4THENGOSUB750:GOTO920
955 IFX$=CHR$(145)ANDII+ZE<5THENII=256:GOSUB750:GOTO920
960 IFX$="S"THENGOSUB1100:PO=24:PT=0:PR$=BL$:GOSUB100:GOTO920
970 IFX$="L"THENGOSUB1000:PO=24:PT=0:PR$=BL$:GOSUB100:GOTO920
980 IFX$=CHR$(24)THENGOSUB3000
985 IFX$="_"THENPOKE788,49:PRINTCHR$(147):END
990 GOTO920
998 :
999 REM ----------------INDEXFELD LADEN
1000 FR$="CODE LADEN:":LL=16:PO=23:PT=7:NU=0:GOSUB600:N$=IN$
1002 IFIN$="_"ORIN$=CHR$(145)ORIN$=CHR$(17)THENPOKE631,ASC(IN$):POKE198,1:RETURN
1005 OPEN15,8,15:OPEN1,8,2,IN$+",P,R":GOSUB2200:REM FEHLER
1010 IFFE<>0THEN1090
1020 GET#1,Z$,V$:AD=ASC(Z$+CHR$(0))+256*ASC(V$+CHR$(0)):REM ADRESSE
1030 FORI=0TO36:GET#1,X$:NEXT:REM UEBERLESEN
1040 FORI=0TO255:GET#1,X$:IN(I)=ASC(X$+CHR$(0)):NEXT
1045 GET#1,L$:LE=ASC(L$+CHR$(0))-1
1050 TX$="":FORI=0TOLE:GET#1,X$:TX$=TX$+X$:NEXT:GOSUB2350:REM TEXTPRG.NAME
1060 II=-16:GOSUB200:REM NEU LISTEN
1090 CLOSE1:CLOSE15:IN$="":RETURN
1098 :
1099 REM -------------INDEXFELD SICHERN
1100 FR$="CODE SICHERN:":LL=16:PO=23:PT=7:NU=0:GOSUB600:N$=IN$
1101 GOSUB1190:IFPEEK(198)=1THENRETURN
1102 FR$="ADRESSE <DEZ>:":LL=5:GOSUB600:AD=VAL(IN$):GOSUB1190:IFPEEK(198)=1THENRETURN
1103 GOSUB2400:AA=AD:GOSUB2450:IFAD=0THEN1102
1104 FR$="TEXTPROGRAMM:":LL=16:GOSUB600:TX$=IN$:GOSUB1190:IFPEEK(198)=1THENRETURN
1110 OPEN15,8,15:OPEN1,8,1,"@:"+N$:GOSUB2200:REM FEHLER
1112 IFFE<>0THENCLOSE1:CLOSE15:IN$="":RETURN
1115 GOSUB2350:REM STATUSZEILE
1120 PRINT#1,CHR$(LB);CHR$(HB);:REM ADRESSE
1125 K=0:FORI=ADTO(AD+36):PRINT#1,CHR$(DT(K));:K=K+1:NEXT:REM MASCHINENPRG DRUCKER
1130 K=0:FORI=(AD+36)TO(AD+36+255):PRINT#1,CHR$(IN(K));:K=K+1:NEXT:REM INDEXFELD
1135 PRINT#1,CHR$(LEN(TX$));
1140 K=1:FORI=(AD+36+255)TO(AD+36+255+LEN(TX$)-1)
1145 PRINT#1,CHR$(ASC(MID$(TX$,K,1)));:K=K+1:NEXT:REM NAME
1150 CLOSE1:CLOSE15:GOSUB3000:IN$="":RETURN
1188 :
1189 REM --------------ABFRAGE AUSSTIEG
1190 PO=24:PT=0:PR$=BL$:GOSUB100
1191 IFIN$="_"ORIN$=CHR$(145)ORIN$=CHR$(17)THENPOKE631,ASC(IN$):POKE198,1:RETURN
1192 PO=23:PT=7:RETURN
2198 :
2199 REM ------------------------FEHLER
2200 INPUT#15,FE,FE$:IFFE=0THEN2220
2210 PR$=BL$:PO=24:PT=0:GOSUB100:PR$=FE$:PT=(40-LEN(FE$))/2:GOSUB100:GOSUB2300
2220 RETURN
2298 :
2299 REM -----------------WARTESCHLEIFE
2300 FORQ=1TO2500:NEXT:RETURN
2348 :
2349 REM -------------------STATUSZEILE
2350 PO=1:PT=0:PR$=BL$:GOSUB100:AD$=RIGHT$(STR$(AD),LEN(STR$(AD))-1)
2352 PR$=CHR$(30)+CHR$(34)+N$+CHR$(47)+AD$+CHR$(47)+TX$+CHR$(34)+CHR$(159)
2353 IFLEN(PR$)>40THENPR$=LEFT$(PR$,39)+CHR$(34)
2355 PT=INT((41-LEN(PR$))/2):GOSUB100:RETURN
2398 :
2399 REM --------------ADRESSE ANPASSEN
2400 AA=AD+11:GOSUB2450:DT(1)=LB:DT(6)=HB
2405 AA=AD+35:GOSUB2450:DT(20)=LB:DT(21)=HB:DT(28)=LB:DT(29)=HB
2410 AA=AD+37:GOSUB2450:DT(24)=LB:DT(25)=HB
2420 RETURN
2448 :
2449 REM -----------------HIGH/LOW BYTE
2450 HB=INT(AA/256):LB=AA-HB*256:RETURN
2998 :
2999 REM -------LADEPROGRAMM GENERIEREN
3000 PO=23:PT=7:PR$=CHR$(18)+"MIT CTRL-X LADER ERZEUGEN":GOSUB100
3002 PO=24:PR$="PROGRAMM WIRD GELOESCHT !":GOSUB100
3003 GETX$:IFX$=""THEN3003
3005 IFX$<>CHR$(24)THENGOSUB915:RETURN
3010 PRINTCHR$(147);LA$(0)
3020 PRINT:PRINT:PRINTLA$(1);CHR$(34);N$;CHR$(34);LA$(2):PRINTLA$(3)
3030 PRINTLA$(4);CHR$(34);LA$(5);STR$(AD);LA$(6);CHR$(34);LA$(7);CHR$(34);TX$;
3040 PRINTCHR$(34);LA$(7);CHR$(34);LA$(2):PRINTLA$(8)
3050 PRINTLA$(9);CHR$(34);LA$(10)+TX$;CHR$(34);LA$(11)
3060 POKE631,19:FORI=632TO637:POKEI,13:NEXT:POKE198,7:END
4998 :
4999 REM ---------------DRUCKERPROGRAMM
5000 DATA169,11,141,38,3,169,192,141,39,3,96,72,165,154,201,4,208,12,104,140
5010 DATA35,192,168,185,37,192,72,172,35,192,104,76,202,241,255,255,255
5998 :
5999 REM ------------DATAS-LADEPROGRAMM
6000 DATA "NEW" , "1 PRINTCHR$(147):IFA=0THENA=1:LOAD"
6010 DATA ",8,1"
6020 DATA "3 PRI