Posted By
Andrea on 2020-08-04 15:37:46
| Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hello to all user's PLUS4 WORLD,
Here uder I have put a basic list for C= Commodore 16, but when I do RUN, the programm does not work, I think that it have need of memory with CLR, and perharps of the POKE, that I not know. Can you help me, please??
10 SCNCLR:REM PULISCE SCHERMO 20 COLOR0,1:REM COLORE SFONDO 30 COLOR4,1:REM COLORE BORDO 40 COLOR1,15:REM COLORE TESTO 50 GOSUB470 60 X=5:Y=10 70 C=3:L=4 80 REM C=COLORE CARATTERE 90 REM L=LUMINANZA COLORE 100 PRINT"score" 110 PRINT"{home}{down}";SC 120 REM METTE OGGETTI 130 FORC=1TO20 140 XD=INT(RND(5)*40+1) 150 YD=INT(RND(8)*20+1) 160 POKE3072+XD+40*YD,1 170 POKE2048+XD+40*YD,09+7*16 180 NEXTC 190 POKE3072+X+40*Y,0 200 POKE2048+X+40*Y,C+L*16 210 GETKEYK$ 220 IFK$="Z"THENGOSUB300:X=X-1 230 IFK$="X"THENGOSUB340:X=X+1 240 IFK$="K"THENGOSUB380:Y=Y-1 250 IFK$="M"THENGOSUB420:Y=Y+1 260 IFK$=CHR$(27)THENEND 270 POKE3072+X+40*Y,0 280 POKE2048+X+40*Y,C+L*16 290 GOTO210 300 XC=X:YC=Y:XC=XC-1 305 IFX<1THENX=X+1:RETURN210 310 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:PRINT"{home} {down}";SC 320 POKE3072+X+40*Y,32 330 RETURN 340 XC=X:YC=Y:XC=XC+1 345 IFX>1THENX=X-1:RETURN210 350 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:PRINT"{home} {down}";SC 360 POKE3072+X+40*Y,32 370 RETURN 380 XC=X:YC=Y:YC=YC-1 385 IFY<1THENY=Y+1:RETURN210 390 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:PRINT"{home} {down}";SC 400 POKE3072+X+40*Y,32 410 RETURN 420 XC=X:YC=Y:YC=YC+1 425 IFY>39THENY=Y+1:RETURN210 430 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:PRINT"{home} {down}";SC 440 POKE3072+X+40*Y,32 450 RETURN 460 REM DEFINIZIONE CARATTERE PETSCII 470 RESTORE550 480 FORA=832TO849 490 READB:POKEA,B:NEXTA:SYS832 500 RESTORE570:FORA=14336TO14336+39 510 READB:POKEA,B:NEXTA 520 POKE65298,PEEK(65298)AND251 530 POKE65299,PEEK(65299)AND30OR56 540 RETURN 550 DATA 162,0,189,0,208,157,0,56,189,0 560 DATA 209,157,0,57,202,208,241,96 570 DATA 28,28,8,62,93,28,20,54 580 DATA 126,60,126,126,255,255,255,126 590 DATA 60,66,165,153,153,165,66,60 600 DATA 0,56,124,254,254,124,56,16 610 DATA 60,126,219,255,126,102,60,0
I wait your good news Best Regards Andre Gasparrini from Italy
|
|
Posted By
George on 2020-08-04 16:13:37
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
I am not sure, but this {home} {down} are not ment to be written like this out, but this could be actual keystrokes on the c16 when typing the listing....
|
|
Posted By
Andrea on 2020-08-04 16:29:52
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hello,
I have tried to do this:
POKE55,240:POKE56,55:CLR
it could to be do well??
|
|
Posted By
Mad on 2020-08-04 16:43:18
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
I just tried to import it into Yape.
It produced error at all lines with PRINT"stuff";SC when replacing it with PRINT"stuff"SC the error is gone. So removing the semicolon helps (but a "stuff",SC also does work)
then it does print the score. I am no Basic crack at all, just tried to import the lines.. Perhaps that ; is only a problem on my machine.. Btw. In Yape a right mouse click can paste the whole file from the clipboard.
EDIT: George has a working listing.. Seems like the ";" is a different character in yours and in Georges listing :)
|
|
Posted By
George on 2020-08-04 16:56:25
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hi Andrea,
use CBM prg Studio: http://www.ajordison.co.uk/
10 SCNCLR:REM PULISCE SCHERMO 20 COLOR0,1:REM COLORE SFONDO 30 COLOR4,1:REM COLORE BORDO 40 COLOR1,15:REM COLORE TESTO 50 GOSUB470 60 X=5:Y=10 70 C=3:L=4 80 REM C=COLORE CARATTERE 90 REM L=LUMINANZA COLORE 100 PRINT"score" 110 char,0,1,str$(sc) 120 REM METTE OGGETTI 130 FORC=1TO20 140 XD=INT(RND(5)*40+1) 150 YD=INT(RND(8)*20+1) 160 POKE3072+XD+40*YD,1 170 POKE2048+XD+40*YD,09+7*16 180 NEXTC 190 POKE3072+X+40*Y,0 200 POKE2048+X+40*Y,C+L*16 210 GETKEYK$ 220 IFK$="Z"THENGOSUB300:X=X-1 230 IFK$="X"THENGOSUB340:X=X+1 240 IFK$="K"THENGOSUB380:Y=Y-1 250 IFK$="M"THENGOSUB420:Y=Y+1 260 IFK$=CHR$(27)THENEND 270 POKE3072+X+40*Y,0 280 POKE2048+X+40*Y,C+L*16 290 GOTO210 300 XC=X:YC=Y:XC=XC-1 305 IFX<1THENX=X+1:RETURN210 310 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:char,0,1,str$(sc) 320 POKE3072+X+40*Y,32 330 RETURN 340 XC=X:YC=Y:XC=XC+1 345 IFX>1THENX=X-1:RETURN210 350 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:char,0,1,str$(sc) 360 POKE3072+X+40*Y,32 370 RETURN 380 XC=X:YC=Y:YC=YC-1 385 IFY<1THENY=Y+1:RETURN210 390 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:char,0,1,str$(sc) 400 POKE3072+X+40*Y,32 410 RETURN 420 XC=X:YC=Y:YC=YC+1 425 IFY>39THENY=Y+1:RETURN210 430 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:char,0,1,str$(sc) 440 POKE3072+X+40*Y,32 450 RETURN 460 REM DEFINIZIONE CARATTERE PETSCII 470 RESTORE550 480 FORA=832TO849 490 READB:POKEA,B:NEXTA:SYS832 500 RESTORE570:FORA=14336TO14336+39 510 READB:POKEA,B:NEXTA 520 POKE65298,PEEK(65298)AND251 530 POKE65299,PEEK(65299)AND30OR56 540 RETURN 550 DATA 162,0,189,0,208,157,0,56,189,0 560 DATA 209,157,0,57,202,208,241,96 570 DATA 28,28,8,62,93,28,20,54 580 DATA 126,60,126,126,255,255,255,126 590 DATA 60,66,165,153,153,165,66,60 600 DATA 0,56,124,254,254,124,56,16 610 DATA 60,126,219,255,126,102,60,0
Edit: Lines 310, 350, 390, 430 were briken to the next line. If you just copy& paste Adreas code, the emulator assumes a commando instead of a codeline (no linenumber in front)
edit 2: Replace PRINT"{home}{down}";SC wirh char,0,1,str$(sc)
|
|
Posted By
Verona on 2020-08-04 17:24:02
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
The new code. And yes, {home} means the home button pressed in " mode.
I made some improvements in the subroutines, and added some basic time counting function.
10 SCNCLR:REM PULISCE SCHERMO 20 COLOR0,1:REM COLORE SFONDO 30 COLOR4,1:REM COLORE BORDO 40 COLOR1,15:REM COLORE TESTO 50 GOSUB470 60 X=5:Y=10 70 C=3:L=4 80 REM C=COLORE CARATTERE 90 REM L=LUMINANZA COLORE 100 PRINT"score" 110 PRINT"{home}{down}";SC 120 REM METTE OGGETTI 130 FORCC=1TO20 140 XD=INT(RND(5)*38+1) 150 YD=INT(RND(8)*20+1) 160 POKE3072+XD+40*YD,1 170 POKE2048+XD+40*YD,09+7*16 180 NEXTCC:TK=0 190 POKE3072+X+40*Y,0 200 POKE2048+X+40*Y,C+L*16 210 GETK$:TK=TK+1 220 IFK$="z"THENGOSUB300 230 IFK$="x"THENGOSUB340 240 IFK$="k"THENGOSUB380 250 IFK$="m"THENGOSUB420 260 IFK$=CHR$(27)THENEND 265 IFCO=20THENPRINT"{home}end score: time:";TK;"{home}{down}";SC:END 270 POKE3072+X+40*Y,0 280 POKE2048+X+40*Y,C+L*16 290 GOTO210 300 IFX<2THENRETURN210 305 X=X-1 310 IFPEEK(3072+X+40*Y)=1THENSC=SC+100:PRINT"{home}{down}";SC:CO=CO+1 320 POKE3072+X+1+40*Y,32 330 RETURN 340 IFX>38THENRETURN210 345 X=X+1 350 IFPEEK(3072+X+40*Y)=1THENSC=SC+100:PRINT"{home}{down}";SC:CO=CO+1 360 POKE3072+X-1+40*Y,32 370 RETURN 380 IFY<3THENRETURN210 385 Y=Y-1 390 IFPEEK(3072+X+40*Y)=1THENSC=SC+100:PRINT"{home}{down}";SC:CO=CO+1 400 POKE3072+X+40*(Y+1),32 410 RETURN 420 IFY>23THENRETURN210 425 Y=Y+1 430 IFPEEK(3072+X+40*Y)=1THENSC=SC+100:PRINT"{home}{down}";SC:CO=CO+1 440 POKE3072+X+40*(Y-1),32 450 RETURN 460 REM DEFINIZIONE CARATTERE PETSCII 470 RESTORE550 480 FORA=832TO849 490 READB:POKEA,B:NEXTA:SYS832 500 RESTORE570:FORA=14336TO14336+39 510 READB:POKEA,B:NEXTA 520 POKE65298,PEEK(65298)AND251 530 POKE65299,PEEK(65299)AND30OR56 540 RETURN 550 DATA 162,0,189,0,208,157,0,56,189,0 560 DATA 209,157,0,57,202,208,241,96 570 DATA 28,28,8,62,93,28,20,54 580 DATA 126,60,126,126,255,255,255,126 590 DATA 60,66,165,153,153,165,66,60 600 DATA 0,56,124,254,254,124,56,16 610 DATA 60,126,219,255,126,102,60,0
|
|
Posted By
Andrea on 2020-08-05 01:09:15
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hello to all Users's plus4,
I have fixed lines with CHAR,0,1,STR$(SC) and add line 20 for INIT RAM MAPPER, but I don't know if I well done.
The line 20 need for do space in RAM for numerical variables in theory. Correct me if I'm wrong.
10 REM INIT RAM MAPPER 20 POKE55,240:POKE56,55:CLR 30 SCNCLR:REM PULISCE SCHERMO 40 COLOR0,1:REM COLORE SFONDO 50 COLOR4,1:REM COLORE BORDO 60 COLOR1,15:REM COLORE TESTO 70 GOSUB530 80 X=5:Y=10 90 C=3:L=4:SC=0 100 REM C=COLORE CARATTERE 110 REM L=LUMINANZA COLORE 120 PRINT"SCORE" 130 CHAR,0,1,STR$(SC) 140 REM METTE OGGETTI 150 FORC=1TO20 160 XD=INT(RND(5)*40+1) 170 YD=INT(RND(8)*20+1) 180 POKE3072+XD+40*YD,1 190 POKE2048+XD+40*YD,09+7*16 200 NEXTC 210 POKE3072+X+40*Y,0 220 POKE2048+X+40*Y,C+L*16 230 GETKEYK$ 240 IFK$="Z"THENGOSUB320:X=X-1 250 IFK$="X"THENGOSUB370:X=X+1 260 IFK$="K"THENGOSUB420:Y=Y-1 270 IFK$="M"THENGOSUB470:Y=Y+1 280 IFK$=CHR$(27)THENEND 290 POKE3072+X+40*Y,0 300 POKE2048+X+40*Y,C+L*16 310 GOTO230 320 XC=X:YC=Y:XC=XC-1 330 IFX<1THENX=X+1:RETURN210 340 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:CHAR,0,1,STR$(SC) 350 POKE3072+X+40*Y,32 360 RETURN 370 XC=X:YC=Y:XC=XC+1 380 IFX>38THENX=X-1:RETURN210 390 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:CHAR,0,1,STR$(SC) 400 POKE3072+X+40*Y,32 410 RETURN 420 XC=X:YC=Y:YC=YC-1 430 IFY<3THENY=Y+1:RETURN210 440 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:CHAR,0,1,STR$(SC) 450 POKE3072+X+40*Y,32 460 RETURN 470 XC=X:YC=Y:YC=YC+1 480 IFY>23THENY=Y-1:RETURN210 490 IFPEEK(3072+XC+40*YC)=1THENSC=SC+100:CHAR,0,1,STR$(SC) 500 POKE3072+X+40*Y,32 510 RETURN 520 REM DEFINIZIONE CARATTERE PETSCII 530 RESTORE610 540 FORA=832TO849 550 READB:POKEA,B:NEXTA:SYS832 560 RESTORE630:FORA=14336TO14336+39 570 READB:POKEA,B:NEXTA 580 POKE65298,PEEK(65298)AND251 590 POKE65299,PEEK(65299)AND30OR56 600 RETURN 610 DATA 162,0,189,0,208,157,0,56,189,0 620 DATA 209,157,0,57,202,208,241,96 630 DATA 28,28,8,62,93,28,20,54 640 DATA 126,60,126,126,255,255,255,126 650 DATA 60,66,165,153,153,165,66,60 660 DATA 0,56,124,254,254,124,56,16 670 DATA 60,126,219,255,126,102,60,0
|
|
Posted By
Csabo on 2020-08-05 08:57:33
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Heh, I got this in an email this morning, fixed it and replied... Only to find out the forum has already fixed it as well
|
|
Posted By
Andrea on 2020-08-05 09:25:46
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Can I to use those pokes and. CLR for have more memory at the variables numeric in RAM ??
POKE55,240:POKE56,55:CLR
|
|
Posted By
Verona on 2020-08-05 10:22:42
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
If you need, then use the FRE(0) command in the code, it deploys a garbage collection and free some RAM. I used it repeatedly in the Evader (Kerülő) and it worked.
Like this:
230 FRE(0):GETK$
|
|
Posted By
Andrea on 2020-08-05 12:25:27
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hello Verona,
Are you from Verona city italy?
I need not to see memory free RAM wth command FRE(0), then know already, but I need of set to have more memory on numeric variables.
I hope there is some expert user:
POKE55,240:POKE56,55:CLR
|
|
Posted By
Verona on 2020-08-06 00:24:02
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
No, I am a Hungarian. But I liked that word. (And name. And I like the Italian culture.)
That pair of command is set $37F0 to the top of memory used by BASIC. ( Default is $4000, so actually, that will do no good. ) The STREND pointer is at POKE49 and POKE50 it is also the free memory's start adress, and here's the string memory's bottom (FRETOP) at POKE 51-52, variable's start address is at POKE 45-46.
Maybe it helps. But nowadays I am only coding in assembly. Much better.
FRE(0) is triggering garbage collection, this frees some unused RAM. It's not equals with PRINT FRE(0)!!! If you use variables with much calculations, you need this!
Likely, if you take out all of the FRE(0) commands from my BASIC game, Kerülő (Evader), the game will crash after a while. With that, it works, I didn't use POKEs, like these.
Dont use that POKEs of yours on a C16, rather integrate just this into your code and try it.
230 FRE(0):GETK$
|
|
Posted By
Andrea on 2020-08-06 12:25:57
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hello Verona,
Okey, I will use this:
230 FRE(0):GETK$
Therefore I can to use of the POKES with address: POKE51,byte:POKE52,byte and POKE45,byte:POKE46,byte for expansion memory mapper variables numeric? if I will use very variables numeric ??
See you later and thank you very much (^_^) Andrea
|
|
Posted By
Andrea on 2020-08-06 12:34:29
| Re: Problem to the BASIC listing, probably putting memory space to numeric variables with CLR
Hello Verona,
Listen!!!:
I tried to do 230 FRE(0):GETK$ but not work!! The BASIC C=16 he gives me ERROR !! To this point, what type of POKE I must put? Or It has need of a routine in code machine??
See you later & Thank again (^_^) Andrea
|
|
|
|