008
08.11.2023, 16:07 Uhr
Dirk mit KC-4
|
den BasicoderLoader (also Zeile 1-999) für PCW Joyce wo du es erwähnst hab ich heute Nacht beim suchen gefunden, hab ich noch im unsortieren Basicode Ordner, vielleicht hat jemand so einen PCW Joyce und braucht das Programm: (und wie du siehst auch hier zu 100% in Basic umgesetzt, also muss es das auch für den KC 85 /3/4 für Caos-Basic geben)
1 RANDOMIZE (60*PEEK(64503!)+PEEK(64504!)):IF PEEK(&HF000)=&H7E THEN 10 2 GOSUB 957:GOTO 984 10 GOTO 1000:REM BASICODE-3 f}r Amstrad PCW v 1.0 20 GOSUB 100:CLEAR:SV=7:OSETCHAR=&HF000:OSETPOINT=&HF0BA:OPOINT2=&HF256:ODRAW=&HF162:OGETCUR=&HF263:OREADCHAR=&HF277:OFINDCHAR=&HF287 21 HO=39:VE=23:HG=659:VG=247 28 GOTO 1010 100 PRINT CHR$(27)"e"CHR$(27)"c?"CHR$(27)"b"CHR$(0);:WIDTH 255 101 PRINT CHR$(27)"E"CHR$(27)"H";:HO=0:VE=0:GOSUB 952:RETURN 110 HO=MAX(0,HO):HO=MIN(39,HO):VE=MAX(0,VE):VE=MIN(23,VE):PRINT CHR$(27)"Y"CHR$(32+VE)CHR$(32+HO);:RETURN 120 CALL OGETCUR:HO=PEEK(&HF26C):VE=PEEK(&HF26D):RETURN 150 PRINT CHR$(27)"p ";SR$;" "CHR$(27)"q";:RETURN 200 IN=0:IN$=INKEY$:IF IN$<>"" THEN IN=ASC(IN$) 201 CN=-32*((IN>96) AND (IN<126)):IN=IN-CN:IF CN=32 THEN IN$=CHR$(IN) 202 IN=IN-27*(IN=1):IN=IN-23*(IN=6):IF IN=127 THEN GOSUB 120:IF HO>0 THEN IN$=CHR$(27)+"D "+CHR$(27)+"D" ELSE IN=0:IN$="" 203 RETURN 210 GOSUB 200:IF IN$<>"" THEN RETURN ELSE 210 220 POKE &HF278,VE:POKE &HF27A,HO:CALL OREADCHAR:CALL OFINDCHAR:IN=PEEK(&HF276):RETURN 250 PRINT CHR$(7);:RETURN 260 RV=RND:RETURN 270 FR=FRE(""):RETURN 280 OPTION RUN:IF FR=1 THEN OPTION STOP 281 RETURN 300 SR$=STR$(SR):IF SR>=0 THEN SR$=MID$(SR$,2) 301 RETURN 310 IF CN=0 THEN SR$=DEC$(SR,STRING$(CT,"#")) ELSE SR$=DEC$(SR,STRING$(CT-CN-1,"#")+"."+STRING$(CN,"#")) 311 IF LEFT$(SR$,1)="%" THEN SR$=STRING$(CT,"*") 312 RETURN 330 FOR OF=1 TO LEN(SR$) 331 IF ASC(MID$(SR$,OF,1))>95 THEN GOSUB 340 332 NEXT OF 333 RETURN 340 OSR=ASC(MID$(SR$,OF,1))-32 341 SR$=LEFT$(SR$,OF-1)+CHR$(OSR)+MID$(SR$,OF+1) 342 RETURN 350 LPRINT SR$;:RETURN 360 LPRINT:RETURN 400 IF SV=0 THEN 450 401 IF SD=0 THEN RETURN ELSE OP=SP:ODUUR=SD 402 OP=MAX(SP,11):OP=MIN(SP,112) 403 SD=SD*0.45:ODUUR=MAX(SD,1):ODUUR=MIN(SD,255) 412 OFREQ=880*(2^((OP-69)/12)):OCW=ROUND(400000!/3/OFREQ)-4:OCW=MAX(OCW,1):OCW=MIN(OCW,255) 413 OHLW=0.2*ODUUR*OFREQ:OHLW=MAX(OHLW,1):OHLW=MIN(OHLW,65535!) 415 OADR=&HF404:OLW=OHLW-256*INT(OHLW/256):POKE OADR,(OHLW-OLW)/256:OADR=&HF403:POKE OADR,OLW:OADR=&HF401:POKE OADR,OCW:OADR=&HF400 416 CALL OADR:RETURN 450 OSD=SD*3.45 451 OSD=OSD-1 452 GOSUB 200:IF IN=0 THEN 453 ELSE IF SV<>0 THEN 454 453 IF OSD>0 THEN 451 ELSE 457 454 SD=INT(OSD/3.45) 455 RETURN 457 SD=0:GOTO 455 500 ON NF+1 GOTO 541,541,516,521,516,521,516,521 516 OPEN "I",#2,NF$:INPUT #2,OBESTAND$:IN=0:RETURN 521 PRINT NF$:OPEN "O",#3,NF$:IN=0:RETURN 540 IN$="":IN=1:ON (NF+2)/2 GOTO 541,551,551,551 541 OTX$=CHR$(27)+"p Arbeit mit Tape am Parallelport au~erhalb Basic mit BCREAD.COM / BCWRIT.COM "+CHR$(27)+"q":GOSUB 951:RETURN 551 IN$=OBESTAND$:IF EOF(2) THEN 559 ELSE LINE INPUT #2,OBESTAND$ 552 IF OBESTAND$<>"" THEN OU$=MID$(OBESTAND$,1,1):IF ASC(OU$)=26 THEN OBESTAND$="":IN=1:RETURN 553 IF EOF(2) THEN 559 554 IN=0:RETURN 559 RETURN 560 IN=1:ON (NF+1)/2 GOTO 561,575,575,574 561 GOSUB 541:RETURN 575 PRINT #3,SR$:IN=0:RETURN 580 ON NF+1 GOTO 541,541,591,593,591,593,591,593 591 CLOSE #2:RETURN 593 PRINT #3,CHR$(26):PRINT #3,CHR$(26):CLOSE #3:RETURN 600 PRINT CHR$(27)"f"CHR$(27)"c"CHR$(0)CHR$(27)"b?";:GOSUB 101:RETURN 620 GOSUB 655:OPH%=INT(OHO*HG):OPV%=INT(OVE*VG):OPM%=CN XOR 1:CALL OSETPOINT(OPV%,OPH%,OPM%):CALL OPOINT2(OPV%,OPH%):RETURN 630 GOSUB 655:OPH%=INT(OHO*HG):OPV%=INT(OVE*VG):OPM%=CN XOR 1:CALL ODRAW(OPV%,OPH%,OPM%):CALL OPOINT2(OPV%,OPH%):RETURN 650 GOSUB 655:OVE=MIN(OVE,0.972):OPV%=INT(OVE*VG):FOR OPT%=0 TO LEN(SR$)-1:OPH%=INT(OHO*HG)+OPT%*16:OPH%=MIN(OPH%,652):OPC%=-(CN=0)*ASC(MID$(SR$,OPT%+1,1))-32*(CN=1):CALL OSETCHAR(OPV%,OPH%,OPC%):NEXT OPT%:RETURN 655 OHO=MAX(0,HO):OHO=MIN(OHO,0.998):OVE=MAX(0,VE):OVE=MIN(OVE,0.995):RETURN 950 GOSUB 100:INPUT;"welches BasiCode-Programm laden (ENTER f}r R}ckkehr zu Mallard Basic) : ",IN$:IF IN$<>"" THEN CHAIN MERGE IN$,10,ALL,DELETE 1000-:ELSE CLEAR:PRINT CHR$(27)"E"CHR$(27)"H":END 951 GOSUB 120:OLEN=0.5*(90-LEN(OTX$)):PRINT CHR$(27)"0"CHR$(27)"Y@ ";:PRINT STRING$(OLEN,32);OTX$;:GOSUB 110:WHILE INKEY$="":WEND 952 PRINT CHR$(27)"0"CHR$(27)"Y@ BasiCode-3 f}r Mallard Basic auf Amstrad PCW / Schneider JOYCE ";:GOSUB 110:RETURN 953 REM Grafik-Routinen aus "SCREENY" von J. Steingr{ber & U. Baumgarten, PCAI 2'88 954 REM Sound-Routine aus "JOYCE COMPOSER" von P.-R. Wolter, PCAI 10'89 955 REM GOSUB 220 nach M. Anton Joyce-Sonderheft 1'87 und Norbert Finke PCAI 6/7'91 956 REM dynamische Berechnung des XBIOS-Vektors nach einem Hinweis von Werner Cirsovius 957 MEMORY &HEFFF:OADR=&HF000:A$="7EEB5E235660694EFEF93802D6F832B1F07AFE02380E2804160018087BFEC93803D6C85F437BE6F85FED53B2F07932B4F078":GOSUB 982:OADR=OADR+50 958 A$="E60732B5F0473EFF2804CB3F10FC6F2F6722B6F06926002929297CC6B86722B8F0015CF0CD5AFCE900C90608C521B1F05E7E":GOSUB 982:OADR=OADR+50 959 A$="34E6074F1600EB297CC6B6675E2356EB290600B7ED42E5DDE12AB8F0ED5BB2F0DD19561E003AB5F047B72806CB3ACB1B10FA":GOSUB 982:OADR=OADR+50 960 A$="3A20F42AB6F0A4B23220F43A21F4A5B3CD22F421B8F034C110AEC90000000000000000007EEB5E235660694E47ED435BF1ED":GOSUB 982:OADR=OADR+50 961 A$="535DF101D4F0CD5AFCE900C9ED4B5BF1ED5B5DF178325CF17AFE02380E2804160018087BFED03803D6CF5F437BE6F85FED53":GOSUB 982:OADR=OADR+50 962 A$="5DF179E603325BF178E607325FF1473E802804CB3F10FC6F2F672260F1215CF15E7EE6074F1600EB297CC6B6675E2356EB29":GOSUB 982:OADR=OADR+50 963 A$="0600B7ED42E5DDE1ED5B5DF1DD193A5BF1DD46002A60F1B7200678A4DD7700C91F300678B5DD7700C978A528F618EB000000":GOSUB 982:OADR=OADR+50 964 A$="000000007EEB5E235660694E473A46F22A47F23246F2ED4342F2ED5344F22247F2900601200105300405052F3C4F783249F2":GOSUB 982:OADR=OADR+50 965 A$="AF47ED5211010020011B30091B1B7C2F677D2F6F23ED534BF2E5D1E5AFED427C324DF217E13006D5C5C5E1D1C1224EF2CB3C":GOSUB 982:OADR=OADR+50 966 A$="CB1D2250F2ED4352F2ED5354F201D8F1CD5AFCE900C9ED4B42F2ED5B44F2CDDCF03A4DF217380D2A44F2ED4B4BF2092244F2":GOSUB 982:OADR=OADR+50 967 A$="180BED4B42F23A49F2803243F22A50F2ED4B52F2AFED422250F23026ED4B54F2092250F23A4DF217300D2A44F2ED4B4BF209":GOSUB 982:OADR=OADR+50 968 A$="2244F2180BED4B42F23A49F2803243F22A4EF22B224EF2CB7C2897C900000000000000000000000000000000000000007E32":GOSUB 982:OADR=OADR+50 969 A$="46F2EB5E2356ED5347F2C9CD5AFCBF00226CF2C9000000000000000000000016001E00216EF2CD5AFC84F2C9CF64170190F2":GOSUB 982:OADR=OADR+50 970 A$="CD5AFCE900C91620DD216EF2FD2100B9DD7E00FDBE002038DD7E01FDBE012030DD7E02FDBE022028DD7E03FDBE032020DD7E":GOSUB 982:OADR=OADR+50 971 A$="04FDBE042018DD7E05FDBE052010DD7E06FDBE062008DD7E07FDBE072872143E7FBA2807010800FD0918B31620FD2100B9DD":GOSUB 982:OADR=OADR+50 972 A$="7E00EEFFFDBE002046DD7E01EEFFFDBE01203CDD7E02EEFFFDBE022032DD7E03EEFFFDBE032028DD7E04EEFFFDBE04201EDD":GOSUB 982:OADR=OADR+50 973 A$="7E05EEFFFDBE052014DD7E06EEFFFDBE06200ADD7E07EEFFFDBE07280F143E7FBA2807010800FD0918A316007A3276F2C9":GOSUB 982 974 OADR=&HF400:A$="0E00210000CD09F4C9F33E0BD3F84110FE3E0CD3F84110FE2B7CB5C20AF4FBC900003221F42AB6F0ED5B20F4DD7E10CB7C28":GOSUB 982:OADR=OADR+50 975 A$="0ECB7A2806CBFFCBF71804CBBFCBB7CB74280ECB722806CBEFCBE71804CBAFCBA7CB6C280ECB6A2806CBDFCBD71804CB9FCB":GOSUB 982:OADR=OADR+50 976 A$="97CB64280ECB622806CBCFCBC71804CB8FCB87DD7710DD7E18CB5C280ECB5A2806CBFFCBF71804CBBFCBB7CB54280ECB5228":GOSUB 982:OADR=OADR+50 977 A$="06CBEFCBE71804CBAFCBA7CB4C280ECB4A2806CBDFCBD71804CB9FCB97CB44280ECB422806CBCFCBC71804CB8FCB87DD7718":GOSUB 982:OADR=OADR+50 978 A$="DD7E00CB7D280ECB7B2806CBFFCBF71804CBBFCBB7CB75280ECB732806CBEFCBE71804CBAFCBA7CB6D280ECB6B2806CBDFCB":GOSUB 982:OADR=OADR+50 979 A$="D71804CB9FCB97CB65280ECB632806CBCFCBC71804CB8FCB87DD7700DD7E08CB5D280ECB5B2806CBFFCBF71804CBBFCBB7CB":GOSUB 982:OADR=OADR+50 980 A$="55280ECB532806CBEFCBE71804CBAFCBA7CB4D280ECB4B2806CBDFCBD71804CB9FCB97CB45280ECB432806CBCFCBC71804CB":GOSUB 982:OADR=OADR+50 981 A$="8FCB87DD7708C9":GOSUB 982:GOTO 995 982 FOR I=1 TO LEN(A$) STEP 2:POKE OADR+(I-1)/2,VAL("&H"+MID$(A$,I,2)):NEXT I:RETURN 983 PRINT" ";:A$="1B70202020"+A$+"2020201B71":FOR I=1 TO LEN(A$) STEP 2:PRINT CHR$(VAL("&H"+MID$(A$,I,2)));:NEXT I:PRINT:RETURN 984 A$="9E9A9A9C202020202020202020202020202020202020209A20202020969A9A9A9C202020202020202020202020209E2020202020202020202020202020202020969A9A9A9C":GOSUB 100:HO=0:VE=11:GOSUB 110:GOSUB 983 985 A$="95202095202020969A9A9A9C2020969A9A9A9C202020209E2020202095202020202020969A9A9A9C2020969A9A9A9D2020969A9A9A9C202020202020202020202020202095":GOSUB 983 986 A$="979A9A9B9C2020969A9A9A9D2020939A9A9A9C202020209520202020952020202020209520202095202095202020952020979A9A9A9920202020929A982020202020209A9D":GOSUB 983 987 A$="952020209520209520202095202020202020952020202095202020209520202020202095202020952020952020209520209520202020202020202020202020202020202095":GOSUB 983 988 A$="9B9A9A9A992020939A9A9A9B2020939A9A9A99202020209B20202020939A9A9A992020939A9A9A992020939A9A9A9B2020939A9A9A9920202020202020202020939A9A9A99":GOSUB 983 989 PRINT:PRINT" f}r Mallard Basic auf Amstrad PCW (P) 2004 Thomas Rademacher (JOYCE-User-AG e.V.)" 990 HO=28:VE=31:GOSUB 110:PRINT CHR$(27)"p welches BasiCode-Programm laden: "CHR$(27)"q";:INPUT;"",IN$ 991 IF IN$<>"" THEN CHAIN MERGE IN$,10,ALL,DELETE 957-999 995 A=256*PEEK(2)+PEEK(1)+87:IF A=&HFC5A THEN 998 996 AH=VAL("&H"+LEFT$(HEX$(A,4),2)):AL=VAL("&H"+RIGHT$(HEX$(A,4),2)):POKE &HF057,AL:POKE &HF058,AH:POKE &HF0CF,AL:POKE &HF0D0,AH 997 POKE &HF1D3,AL:POKE &HF1D4,AH:POKE &HF264,AL:POKE &HF265,AH:POKE &HF27F,AL:POKE &HF280,AH:POKE &HF28B,AL:POKE &HF28C,AH 998 RETURN -- Ich kann 2 Dinge wirklich nur gut, zum einen war es die Fallschirmjägerei und zum anderen Computer. Fragt man, was ich nun besser kann, würden einige sagen das eine, andere würden das andere sagen. Aber im Grunde ist beides gleich: ein großes Abenteuer |