home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
86xx
/
8605.d64
/
hypra-basic
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
6KB
|
190 lines
5 IFFG<>0THEN10
7 FG=1:LOAD"BASIC .ASS",8,1
10 DIMA%(100):AN=1:MD=1:POKE53280,0:POKE53281,0:F=1:POKE646,F:MP=12600
15 POKE55,56:POKE56,49
20 HL$=" "
30 H$="[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
40 REM****HAUPTMENUE*******
50 PRINTCHR$(147)TAB(9)" HAUPTMENUE [146] HYPRA-BASIC":PRINTH$:AN=1:MD=1
60 PRINT"FOLGENDE OPTIONEN SIND MOEGLICH:":PRINTH$:PRINT
70 PRINTTAB(5)"[F1][146] ERWEITERUNG ERSTELLEN
80 [153][163]5)"[F3]WAIT ERWEITERUNG ABSPEICHERN
90 PRINTTAB(5)"[F5][146] PARAMETER EINGEBEN
100 [153][163]5)"[F7]WAIT PARAMETER ANZEIGEN"
110 [153][163]5)"[F2]WAIT PROTOKOLL":[153]:[153]H$
115 [153][163]10)"BITTE WAEHLEN SIE !!"
120 [151]198,0:[146]198,1:[161]S$:S[178][198](S$)
130 [139]S[179]133[176]S[177]137[167]120
140 S[178]S[171]132
150 [145]S[141]210,410,600,800,11000
160 [137]50
200 [143]*****ERWEITERUNGERSTELLEN***
210 [141]1010
220 [151]211,8:[151]214,0:[158]58640:[153]"SIND SIE SICHER ? (J/N)"
230 [151]198,0:[146]198,1:[161]S$:[139]S$[179][177]"J"[176]AN[178]0[167][142]
240 [141]10010
250 [153][199](147)"SIE MUESSEN JETZT ZWEI SPEICHERBEREICHE"
260 [153]"AUSWAEHLENEN":[153]:[153]"1) BEREICH FUER BEFEHLSTABELLE.DIESER"
270 [153][163]3)"DARF NUR IM 'NORMALEN RAM' LIEGEN.
280 PRINT:PRINT"2) BEREICH FUER DIE ERWEITERUNG.HIER
290 [153][163]3)"IST DER SPEICHERBEREICH BELIEBIG.":[153]
292 [153]"FALLS BEIDE PROGRAMMTEILE NACHEINANDER"
293 [153]"STEHEN SOLLEN,BITTE BEI 'BEFEHLE' NUR"
294 [153]"<RETURN> DRUECKEN.":[153]H$
295 [153]"DIE BEFEHLSTABELLE BRAUCHT";HG" BYTES":[153]H$
300 [133]"1) TABELLE:";SD$:SD[178][197](SD$):[139]SD[178]0[167]250
305 [153][163]12)SD[170]HG
310 [133]"ON2) BEFEHLE:";MA$:MA[178][197](MA$):MS[178]MA
320 [139]MA[178]0[167][142]
330 [153][199](147)"ERWEITERUNG WIRD GENERIERT":[153]
340 LA[178]SD[170]162[170]HA:[141]10410
350 [129]KI[178]1[164]AN:MO%[178]A%(KI):[153]MO%,
360 HM[178][181](MO%[173]70)[170]1:[139]MD[179][177]HM[167][141]10210
370 [141]10660:[130]:[142]
400 [143]*****PROGRAMMABSPEICHERN**
410 [153][199](147)[163]10)"ERWEITERUNG SPEICHERN":[153]H$
420 [153]"BEIM ABSPEICHERN KOENNEN ZWEI VERSCHIE- DENE";
430 [153]" FILES ABGELEGT WERDEN.":[153]
440 [153]"1) BEFEHLSTABELLE"
450 [153]"2) MODULE":[153]
460 [153]"DIES IST ERFORDERLICH,WENN BEIDE PRO-"
470 [153]"GRAMMTEILE UNABHAENGIG VONEINANDER
480 PRINT"EXISTIEREN. FALLS SIE BEIDE PROGRAMME"
490 PRINT"GEMEINSAM GENERIERT HABEN, GEBEN SIE UN-";
500 PRINT"TER MODULE EINEN LEERSTRING EIN.":PRINTH$
510 INPUT"TABELLE:";NA$
520 INPUT"BEFEHLE:";NB$:PRINTH$
525 PRINT"SIND SIE SICHER,DASS DIE RICHTIGE DIS- "
527 PRINT"KETTE IM LAUFWERK IST? (J/N)"
528 POKE198,0:WAIT198,1:GETA$:IFA$="N"THENRETURN
530 IFNB$=""THENSYS(MP+362)"@:"+NA$,8,SD,MA+1:RETURN
540 SYS(MP+362)"@:"+NA$,8,SD,BT+1
550 SYS(MP+229)MS,MA+1,MP+2000
560 CLOSE1:OPEN1,8,1,"@:"+NB$:PRINT#1,CHR$(MS-INT(MS/256)*256);CHR$(MS/256);
570 N=MA+1-MS
580 FORI=0TON-1:PRINT#1,CHR$(PEEK(MP+2000+I));:NEXT:CLOSE1
590 RETURN
600 REM*******PARAMETEREINGEBEN***
610 PRINTCHR$(147)TAB(10)"PARAMETER EINGEBEN":PRINTH$
615 INPUT"MODULNUMMER :";MO$
620 INPUT"WIEVIELE BEFEHLE:";AB
630 PRINTH$
640 FORI=1TOAB
650 POKE211,0:POKE214,5:SYS58640:PRINTI"[157]) ";:INPUT"NAME:";NA$(I):PRINTH$
660 INPUT" STARTADRESSE:";AS$(I)
670 INPUT" ENDADRESSE :";AE$(I)
680 INPUT" DATENBYTES :";AD$(I)
690 PRINTH$:NEXT
700 PRINTTAB(10)"SIND SIE SICHER (J/N)"
710 POKE198,0:WAIT198,1:GETA$:IFA$="N"THENRETURN
720 CLOSE1:OPEN1,8,1,"@:"+MO$+"MODUL,S"
730 PRINT#1,STR$(AB)
740 FORI=1TOAB:PRINT#1,NA$(I):PRINT#1,AS$(I):PRINT#1,AE$(I):PRINT#1,AD$(I)
750 NEXT:CLOSE1:RETURN
800 REM******PARAMETERANZEIGEN****
810 PRINTCHR$(147)TAB(10)"PARAMETER ANZEIGEN":PRINTH$
820 INPUT"VON MODULNUMMER:";M1
830 INPUT"BIS MODULNUMMER:";M2:PRINTH$
840 FORK=M1TOM2:POKE214,5:SYS58640
845 FORI=1TO15:PRINTHL$:NEXT
850 POKE211,0:POKE214,5:SYS58640
860 MO%=K:GOSUB10530:PRINT"MODULNUMMER:"K:PRINT"ANZAHL DER BEFEHLE:"AB:PRINTH$
870 FORI=1TOAB
880 POKE214,9:SYS58640:PRINTI"[157]) NAME:"NA$(I);LEFT$(HL$,10):PRINT
890 PRINT"STARTADRESSE:"AS(I);LEFT$(HL$,10)
900 PRINT"ENDADRESSE :"AE(I);LEFT$(HL$,10)
910 PRINT"DATENBYTES :"AD(I);LEFT$(HL$,10)
930 PRINTH$:PRINTTAB(6)"WEITER MIT BELIEBIGER TASTE"
940 POKE198,0:WAIT198,1:NEXT:NEXT:RETURN
999 END
1000 REM*****MODULEAUSWAEHLEN*****
1010 PRINTCHR$(147)TAB(10)"MODULE AUSWAEHLEN!"
1020 PRINTH$
1040 PRINT"BITTE MODULNUMMERN EINGEBEN:"
1050 PRINTH$
1060 FORI=1TO19:PRINTHL$:NEXT
1070 PRINTH$:PRINTTAB(5)" E [146] = ENDE F [146] = FEHLER";
1080 POKE211,30:POKE214,2:SYS58640:POKE19,1:INPUTMN$:POKE19,0:PRINT
1090 IFLEFT$(MN$,1)="E"THENAN=AN-1:RETURN
1100 IFLEFT$(MN$,1)="F"ANDAN>1THENAN=AN-1:MN$=" ":GOTO1130
1110 IFLEN(MN$)>3ORVAL(MN$)=0THEN1080
1120 A%(AN)=VAL(MN$)
1130 Z=INT(AN/10)+4:S=(AN-(Z-4)*10)*4:POKE211,S:POKE214,Z:SYS58640:PRINTMN$
1150 IFMN$<>" "THENAN=AN+1
1160 GOTO1080
10000 REM****LAENGEDECODEBESTIMMEN*
10010 HG=0:HA=0:AB=0:ZB=0:FORJI=1TOAN
10015 HM=INT(A%(JI)/70)+1:IFHM<>MDTHENGOSUB10210
10020 CLOSE1:OPEN1,8,0,MID$(STR$(A%(JI)),2,4)+"MODUL,S"
10030 INPUT#1,A$:H=VAL(A$):ZB=ZB+H
10040 FORJ=1TOH
10050 INPUT#1,H1$,H2$(J),H3$(J),H4$(J):HA=HA+LEN(H1$)+6
10060 NEXT
10070 HB=(VAL(H3$(H))+VAL(H4$(H)))-VAL(H2$(1)):IFHB>HGTHENHG=HB
10090 CLOSE1:NEXT
10100 HG=INT((HG/256)+1)*256:HG=HG+HA+170:RETURN
10200 REM****MODULDISKAUSGEBEN****
10210 H1=PEEK(211):H2=PEEK(214)
10212 FORX=1984TO2023:POKEX-1156,PEEK(X):POKEX,32:X1=X1+1:NEXT
10215 POKE211,0:POKE214,24:SYS58640
10220 PRINTTAB(3)"[152]BITTE MODULDISK NR."HM" EINLEGEN! ";
10230 MD=HM:POKE646,F:POKE198,0:WAIT198,1
10240 FORX=1984TO2023:POKEX,PEEK(X-1156):POKEX+54272,F:NEXT:POKE211,H1
10250 POKE214,H2:SYS58640:RETURN
10300 REM******PROGRAMMLADEN*****
10310 HI=INT(LA/256):LO=LA-256*HI
10330 SYS(57812)NA$,8,0:POKE780,0:POKE781,LO:POKE782,HI:SYS65493
10340 RETURN
10400 REM******DECODEROUTINEHOLEN**
10410 H=LA:LA=SD:SYS(MP+229)13025,13184,SD
10430 LA=H:H=SD+11:HI=INT(H/256):LO=H-256*HI:POKESD+1,LO:POKESD+6,HI
10440 H=SD+161:HI=INT(H/256):LO=H-256*HI:POKESD+25,LO:POKESD+29,HI
10460 HI=INT(LA/256):LO=LA-256*HI:POKESD+103,LO:POKESD+107,HI
10470 POKELA-1,0:BT=SD+161:RETURN
10500 REM*****PARAMETERLADEN*****
10530 FL$=MID$(STR$(MO%)+"MODUL,S,R",2,13)
10540 CLOSE2:OPEN2,8,2,FL$
10550 INPUT#2,A$:AB=VAL(A$)
10560 FORJI=1TOAB:INPUT#2,NA$(JI):INPUT#2,A$:AS(JI)=VAL(A$)
10570 INPUT#2,A$:AE(JI)=VAL(A$)
10580 INPUT#2,A$:AD(JI)=VAL(A$)
10590 NEXT
10600 CLOSE2:RETURN
10610 REM****BEFEHLSTABELLEBEARBEITEN**
10615 YY=LEN(NA$(I)):POKEBT,YY
10620 FORK=1TOYY:POKEBT+K,ASC(MID$(NA$(I),K,1)):NEXT:BT=BT+K
10630 HI=INT(PZ/256):LO=PZ-256*HI:POKEBT,LO:POKEBT+1,HI
10635 HI=INT(MA/256):LO=MA-256*HI:POKEBT+2,LO:POKEBT+3,HI
10636 LE=AE(AB)+AD(AB)-AS(1):POKEBT+4,INT(LE/256):BT=BT+5
10640 RETURN
10650 REM**********VERSCHIEB**********
10660 GOSUB10530:A$=STR$(MO%)+"ERW .ASS":NA$=MID$(A$,2,13):GOSUB10310:PZ=LA
10670 N1=PZ:FORI=1TOAB:GOSUB10610:N=AS(I)
10680 SYSMP,PZ:A=PEEK(247)
10690 IFA<>3THEN10740
10700 A1=PEEK(249)+256*PEEK(250)
10710 IFA1<AS(1)ORA1>AE(AB)+AD(AB)THEN10750
10720 A1=A1-AS(1):A1=N1+A1:HI=INT(A1/256):LO=A1-256*HI
10730 POKEPZ+1,LO:POKEPZ+2,HI
10740 IFA=0THENA=1
10750 PZ=PZ+A:N=N+A:IFN<>AE(I)+1THEN10680
10760 PZ=PZ+AD(I):NEXT
10770 SYS(MP+229)LA,PZ,MA
10780 MA=MA+LE+1:RETURN
11000 REM******PROTOKOLL********
11010 PRINTCHR$(147)TAB(12)"PROTOKOLL":PRINTH$
11020 GN=3
11025 CLOSE1:OPEN1,GN
11030 PRINT#1,"ERWEITERUNG HYPRA-BASIC VERSION 1.1":PRINT#1,H$
11040 PRINT#1,"ANZAHL DER BEFEHLE: ";ZB
11050 PRINT#1,"STARTADRESSE BEFEHLSTABELLE:";SD
11060 PRINT#1,"STARTADRESSE DER MODULE: ";MS:PRINT#1,H$
11070 PRINT#1,"BYTES FUER TABELLE: ";HG
11080 PRINT#1,"BYTES FUER BEFEHLE: ";MA-MS:PRINT#1,H$
11082 PRINT#1,"DIE ERWEITERUNG ENTHAELT FOLGENDE MODULE":PRINT#1
11085 FORI=1TOKI-1:PRINT#1,A%(I);:NEXT:PRINT#1
11090 IFFK=1THENFK=0:GN=3:CLOSE1:RETURN
11100 PRINT#1,H$:PRINT#1," AUSGABE AUF DRUCKER (J/N)"
11110 POKE198,0:WAIT198,1:GETA$:IFA$="N"THENCLOSE1:RETURN
11120 GN=4:FK=1:CLOSE1:GOTO11025