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]" 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 IFA1AE(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