Autor Thema: Listings abtippen und sammeln  (Gelesen 4144 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline CPCCoder

  • Moderator
  • Schreibgeschützter
  • *****
  • Beiträge: 39
  • Liked: 26
  • Karma: +7/-0
Listings abtippen und sammeln
« am: 22. August 2019, 09:20:57 »
Hallo an alle CPCler,

dieser Bereich soll den vielen Listings gewidmet werden, die es damals zu Hauf in verschiedenen Magazinen
und Büchern gab.

Es soll ja noch verrückte geben, die Heute noch Listings abschreiben und sammeln.
Wie in den alten Tagen. Retro pur.

Damals waren Spiele schlicht zu teuer und das Angebot an Listings in den Magazinen oftmals
sehr billig. Man setzte sich vor dem Heimcomputer seiner Wahl und schrieb die ellenlangen
Basiczeilen ab. Die, oftmals sehr viele Fehler hatten. Schreibfehler nisteten sich schnell ein.
Diese mussten dann gesucht und wieder richtig eingegeben werden.
Ich erinnere mich da an die schrecklichen Data-Zeilen mit Kollonnen von Zahlen.

Heute völlig undenkbar.

Nun, wer Basic-Listings oder auch Assembler-Listings hat, kann diese gerne hier veröffentlichen.
Am besten mit Angaben wie z.B.: Basic 1.0, CPC 464, Heft:Schneider Magazin 08'1985, Genre: Spiel, Anwendung ... ect.

Na dann viel Spass beim abtippen. Mal schauen was alles an Programmen hier zusammen kommt.

CPCCoder



« Letzte Änderung: 24. August 2019, 15:13:24 von CPCCoder »

Offline CPCCoder

  • Moderator
  • Schreibgeschützter
  • *****
  • Beiträge: 39
  • Liked: 26
  • Karma: +7/-0
Re: Listings abtippen uns sammeln
« Antwort #1 am: 23. August 2019, 17:12:52 »
Als Einstand das erstes Listing  (The Amstrad Program Book, 1984 Peter Goode)

Titel: Clear Path

Entering the Screen at top left you must "fly" across the city
and demolish the skycrapers by pressing the space bar to
release your boms.


 10 REM Clear Path
20 GOSUB 440
30 ENT 1,200,2,1
40 BY=-1
50 GOSUB 620
60 LOCATE 1,1:PAPER 5:PEN 10
70 PRINT"     SCORE :        ";
80 X=1:Y=3
90 LOCATE 1,1
100 PAPER 5:PEN 10: PRINT SCORE;
110 PAPER 0
120 TX=X+1:TY=Y
130 IF TX=20 Then TX=1:TY=Y+1
140 IF TY=25 AND TX=10 then LOCATE 5,4:PEN 13:Print"LANDED SAVELY":SC=SC+200:for w=1 to 1300:NEXT W:MODE 0:GOTO 50
150 XX=TX+1:YY=TY:IF XX=21 THEN XX=1:YY=YY+1
160 GOSUB 580
170 IF DD=32 then GOTO 250
180 PEN 8: LOCATE 5,4:PRINT"YOU CRASHED"
190 IF INKEY$=" " THEN GOTO 190
200 IF INKEY$<>" " THEN GOTO 200
210 RUN
220 SOUND 129,0:SOUND 130,0
230 FOR L=15 to STEP -1
240 SOUND &129,0,3,5,0,0,:L:NEXT L
250 LOCATE X,Y:PRINT"   ";
260 LOCATE TX,TY:PRINT CHR$(197);CHR$(202);
270 X=TX:Y=TY
280 IF INKEY(47)<>0 or BY<>-1 THEn GOTO 330
290 SOUND 1,10,280,4,0,1,0
300 BX=X+1
310 BY=Y+1
320 IF BY=26 THEN BY=-1
330 IF BY=-1 THEN GOTO 430
340 IF BY=25 THEN LOCATE BX,BY:PRINT" ";:BY=-1:SOUND 130,0:SOUND 129,0:GOTO 430
350 XX=BX:YY=BY+1
360 GOSUB 580
370 IF DD=32 THEN LOCATE BX,BY:PRINT" ";:LOCATE BX,BY+1:PEN 9:PRINT CHR$(252);:BY=BY+1:GOTO 430
380 SOUND 129,0
390 SOUND 139,0,100,3,0,0,RND(1)*4+10
400 SCORE=SCORE+10
410 LOCATE BX,BY:PRINT" ";
420 BY=BY+1:LOCATE BX,BY:PEN 8: PRINT CHR$(252)
430 Goto 90
440 REm PUT MACHINE VCODE JUST ABOVE RE-AGJUSTED HIMEM
450 MEMORY FRE(0)-&80
460 MC=HIMEM+1
470 TA=HIMEM+&7F
480 TH=INT(TA/256)
490 TL=TA-256*TH
500 POKE MC,&CD
510 POKE MC+1,&60
520 POKE MC+2,&BB
530 POKE MC+3,&32
540 POKE MC+4,TL
550 POKE MC+5,TH
560 POKE MC+6,&C9
570 RETURN
580 LOCATE XX,YY
590 CALL MC
600 DD=PEEK(TA)
610 RETURN
620 REm DRAW THE CITY SCAPE
630 MODE 0
640 BORDER 7
650 PEN 3
660 PAPER 1
670 FOR L=1 TO 20
680 FOR Q=25 to 24-RND(1)*4 STEP -1
690 LOCATE L,Q
700 PRINT CHR$(207);
710 NEXT Q
720 NEXT L
730 RETURN

« Letzte Änderung: 26. August 2019, 16:46:33 von Devilmarkus »

Offline oobdoo

  • CPC 6128
  • ****
  • Beiträge: 426
  • Liked: 116
  • Karma: +15/-0
  • Geschlecht: Männlich
  • :P
Re: Listings abtippen und sammeln
« Antwort #2 am: 25. August 2019, 14:20:55 »
dieser Bereich soll den vielen Listings gewidmet werden, die es damals zu Hauf in verschiedenen Magazinen
und Büchern gab.
Listing in eine digitale Form zu bringen gehört zur Digitalarchälogie.


Na dann viel Spass beim abtippen. Mal schauen was alles an Programmen hier zusammen kommt.
Ich muss unbedingt meinen Scanner mal testen ob damit ein Abtippen überflüssig werden kann.
Im Gegensatz zum 64er sollten da keine/kaum Sonderzeichen auftauchen.
CPC 464/6128, 464/6128+, GX4000 | Atari 2600, 600XL, 800XL/XE, Portfolio | C64/II/G/R/SX, VC20, TC64 | LC 80, MPF-I | ZX81, AX81, ZX Spectrum 48k, ZX Spectrum+2 | Amiga 500/600/2000, A2630, A2088

Offline CPCCoder

  • Moderator
  • Schreibgeschützter
  • *****
  • Beiträge: 39
  • Liked: 26
  • Karma: +7/-0
Re: Listings abtippen und sammeln
« Antwort #3 am: 25. August 2019, 15:23:17 »
@oobdoo

mit dem Scanner ist natürlich auch eine gute Idee von dir.
Aber ab und an, tippe ich ja gerne ein Listing ab. Halt so wie es früher
üblich war :)

P.S.
Natürlich kann man auch seine eigene Listing/Programme hier posten.
Egal aus welchen Bereich auch immer

Offline Devilmarkus

  • Administrator
  • CPC 464+
  • *****
  • Beiträge: 1015
  • Liked: 320
  • Karma: +33/-0
Re: Listings abtippen und sammeln
« Antwort #4 am: 26. August 2019, 16:47:35 »
Coole Sache!

Würdest du bitte bei Listings das nächste mal den [code]-Tag verwenden? Wäre super!
Hab deinen ersten Beitrag mal eben fix so editiert...

Hoffe, hier kommen noch viel mehr Listings rein :)
http://cpcwiki.de
Dein Deutsches CPCWiki!

Offline mv

  • Schreibgeschützter
  • *
  • Beiträge: 6
  • Liked: 11
  • Karma: +2/-0
Re: Listings abtippen uns sammeln
« Antwort #5 am: 16. Februar 2020, 00:49:33 »
Als Einstand das erstes Listing  (The Amstrad Program Book, 1984 Peter Goode)
Titel: Clear Path
...

Eigentlich wollte ich nur mal schnell das Progrämmchen "clearpath" mit CPCBasic ausprobieren.
Erst musste ich für CPCBasic ein paar Tippfehler oder Einscan-Unschärfen in den Zeilen 230 und 240 korrigiert (auch wenn das "Dead Code" ist). Und dann den MC-Code mit CALL &BB60 durch COPYCHR$ ersetzen.
Es gab aber merkwürdige Effekte. So war die Score-Anzeige an der falschen Stelle und der Flieger rechts wurde nicht gelöscht.
Für den Flieger rechts war ein Leerzeichen zuviel in Zeile 250 verantwortlich.

Ich dachte erst, vielleicht war etwas beim Kopieren vom Listing ins Forum schief gelaufen, also habe ich JavaCPC (ist ja super authentisch! ;) installiert und cpath.cdt angeschaut. Die Version darin war aber identisch.

Auf cpc-power habe ich noch eine andere Version gefunden, die nicht die Einscan-Unschärfen aufwies.
Die lief zwar auf CPC 464 aber nicht auf CPC 6128. Dort konnte der Flieger ohne Crash die Stadt wegradieren.
Und ich lernte, dass es eine Unterschied bei TXT RD CHAR (oder COPYCHR$) bei den Systemen gibt. Auf dem CPC 6128 muss man vorher z.B. den richtigen PEN setzen. Danach klappte es. Hier das Ergebnis mit leichten Anpassungen:

10 REM CLEAR PATH
20 GOSUB 440
30 ENT 1,200,2,1
40 BY=-1
50 GOSUB 620
60 LOCATE 1,1:PAPER 5:PEN 10
70 PRINT "     SCORE :        ";
80 X=1:Y=3
90 t!=time+((inkey(53)>=0)+2)*25:while time<t!:call &bd19:wend:LOCATE 11,1
100 PAPER 5:PEN 10:PRINT SCORE;
110 PAPER 0
120 TX=X+1:TY=Y
130 IF TX=20 THEN TX=1:TY=Y+1
140 IF TY=25 AND TX=10 THEN LOCATE 5,4:PEN 13:PRINT "LANDED SAFELY":SC=SC+200:FOR W=1 TO 1300/10:call &bd19:NEXT W:MODE 0:GOTO 50
150 XX=TX+1:YY=TY:IF XX=21 THEN XX=1:YY=YY+1
160 pen 3:GOSUB 580:pen 10
170 IF DD=32 THEN GOTO 250
180 PEN 8:LOCATE 5,4:PRINT "YOU CRASHED"
190 IF INKEY$=" " or inkey(47)>=0 THEN GOTO 190
200 IF INKEY$<>" " THEN GOTO 200
210 RUN
220 SOUND 129,0:SOUND 130,0
230 FOR L=15 TO 0 STEP -1
240 SOUND &129,0,3,5,0,0,L:NEXT L
250 LOCATE X,Y:PRINT "  ";
260 LOCATE TX,TY:PRINT CHR$(197);CHR$(202);
270 X=TX:Y=TY
280 IF INKEY(47)<>0 OR BY<>-1 THEN GOTO 330
290 SOUND 1,10,280,4,0,1,0
300 BX=X+1
310 BY=Y+1
320 IF BY=26 THEN BY=-1
330 IF BY=-1 THEN GOTO 430
340 IF BY=25 THEN LOCATE BX,BY:PRINT " ";:BY=-1:SOUND 130,0:SOUND 129,0:GOTO 430
350 XX=BX:YY=BY+1
360 pen 3:GOSUB 580:pen 10:'TTT
370 IF DD=32 THEN LOCATE BX,BY:PRINT " ";:LOCATE BX,BY+1:PEN 9:PRINT CHR$(252);:BY=BY+1:GOTO 430
380 SOUND 129,0
390 SOUND 130,0,100,3,0,0,RND(1)*4+10
400 SCORE=SCORE+10
410 LOCATE BX,BY:PRINT " ";
420 BY=BY+1:LOCATE BX,BY:PEN 9:PRINT CHR$(252);
430 GOTO 90
440 REM PUT MACHINE CODE JUST ABOVE RE-ADJUSTED HIMEM
450 MEMORY FRE(0)-&80
460 MC=HIMEM+1
470 TA=HIMEM+&7F
480 TH=INT(TA/256)
490 TL=TA-256*TH
500 POKE MC,&CD
510 POKE MC+1,&60
520 POKE MC+2,&BB
530 POKE MC+3,&32
540 POKE MC+4,TL
550 POKE MC+5,TH
560 POKE MC+6,&C9
570 RETURN
580 LOCATE XX,YY
590 if PEEK(&BB60)<>&CF THEN DD=asc(copychr$(#0)):goto 610 else CALL MC
600 DD=PEEK(TA)
610 RETURN
620 REM DRAW THE CITY-SCAPE
630 MODE 0
640 BORDER 7
650 PEN 3
660 PAPER 1
670 FOR L=1 TO 20
680 FOR Q=25 TO 24-RND(1)*4 STEP -1
690 LOCATE L,Q
700 PRINT CHR$(207);
710 NEXT Q
720 NEXT L
730 RETURN

Verfügbar auch auf: https://benchmarko.github.io/CPCBasic/cpcbasic.html?database=apps&example=games/clearpa&sound=true

In dem Buch gibt es ja noch einige andere Programme, die CALL &BB60 benutzen...

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 2943
  • Liked: 720
  • Karma: +36/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Listings abtippen und sammeln
« Antwort #6 am: 16. Februar 2020, 16:03:57 »
Ja, stimmt. Da gibt's ein paar wenige Unterschiede. Jedesmal wenn man sie fast vergessen hat stolpert man wieder drüber  ;)
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)

Offline Im Wald

  • Schreibgeschützter
  • *
  • Beiträge: 1
  • Liked: 4
  • Karma: +1/-0
Re: Listings abtippen und sammeln
« Antwort #7 am: 19. Februar 2020, 04:09:37 »
TXT RD CHAR ist schrecklich und arg.

10 REM Clear Path
30 ENT 1,200,2,1
40 BY=-1
50 GOSUB 620
60 LOCATE 1,1:PAPER 5:PEN 10
70 PRINT"SCORE :             ";
80 X=1:Y=3:GX=32:GY=366
90 LOCATE 10,1
100 PAPER 5:PEN 10: PRINT SC;
110 PAPER 0
120 TX=X+1:TY=Y:GX=GX+32
130 IF TX=20 THEN TX=1:TY=Y+1:GX=0:GY=GY-16:LOCATE x,y:PRINT"  ";
140 IF TY=25 AND TX=10 THEN LOCATE 5,4:PEN 13:PRINT"LANDED SAFELY":SC=SC+200:FOR w=1 TO 1300:NEXT W:MODE 0:GOTO 50
150 XX=GX+32:YY=GY:IF XX=640 THEN XX=0:YY=YY-16
170 IF TEST(XX,YY)=0 THEN GOTO 250
180 PEN 8: LOCATE 5,4:PRINT"YOU CRASHED"
190 IF INKEY$=" " THEN GOTO 190
200 IF INKEY$<>" " THEN GOTO 200
210 RUN
250 LOCATE X,Y:PRINT"  ";
260 LOCATE TX,TY:PRINT CHR$(197);CHR$(202);
270 X=TX:Y=TY
280 IF INKEY(47)<>0 OR BY<>-1 THEN GOTO 330
290 SOUND 1,10,280,4,0,1,0
300 BX=GX+32
310 BY=GY-16
320 IF BY<0 THEN BY=-1
330 IF BY=-1 THEN GOTO 430
340 IF BY=14 THEN MOVE BX,BY:TAG:PRINT" ";:TAGOFF:BY=-1:SOUND 130,0:SOUND 129,0:GOTO 430
350 XX=BX:YY=BY-16
370 IF TEST(XX,YY)=0 THEN MOVE BX,BY:TAG:PRINT" ";:PLOT -2,-2,9:MOVE BX,BY-16:PRINT CHR$(252);:TAGOFF:BY=BY-16:GOTO 430
380 SOUND 129,0
390 SOUND 139,0,100,3,0,0,RND(1)*4+10
400 SC=SC+10
410 MOVE BX,BY:TAG:PRINT" ";:TAGOFF
420 BY=BY-16:PLOT -2,-2,8:MOVE BX,BY:TAG:PRINT CHR$(252);:TAGOFF
430 GOTO 90
620 REM DRAW THE CITY SCAPE
630 MODE 0
640 BORDER 7
650 PEN 3
660 PAPER 1
670 FOR L=2 TO 20
680 FOR Q=25 TO 24-RND(1)*4 STEP -1
690 LOCATE L,Q
700 PRINT CHR$(207);
710 NEXT Q
720 NEXT L
730 RETURN

Offline TFM

  • Administrator
  • CPC 6128+
  • *****
  • Beiträge: 2943
  • Liked: 720
  • Karma: +36/-0
  • Geschlecht: Männlich
  • FutureSoft und CPC - Ein starkes Team!
    • FutureOS
Re: Listings abtippen und sammeln
« Antwort #8 am: 19. Februar 2020, 21:46:04 »
Herzlich Willkommen 'Im Wald'.  :)
TFM of FutureSoft
http://www.FutureOS.de --> Das Betriebssystem FutureOS (Update: 7.8.2019)
http://futureos.cpc-live.com/files/LambdaSpeak_RSX_by_TFM.zip --> RSX ROM für LambdaSpeak (Update: 28.08.2019)