Jake In The Caves - Illegal Function Call in 4640

Page 1/3
| 2 | 3

Par Hit-Biter

Master (166)

Portrait de Hit-Biter

15-09-2022, 01:19

OK Guys, looking for a little advice on tracing this Error ! The line in question is :-

4640 POKE I,VAL("&H"+A$)

So my understanding is that POKE is writing data to a specific memory address. I don't fully understand memory addresses,bus addresses, stacks, registers etc so errr yea but I'm currently assuming its got something to do with the all those DATA statements. However a little help in narrowing the search would be appreciated as I've little experience in tracing issues with a command of this type. Syntax is easy, others not so much but i can follow the program structure in some cases but this command is foreign to me :/

The program listing can be found in Nr 13 MSX Computer Magazine Page 57.

https://www.msxcomputermagazine.nl/archief/mcm-13/

Dank u well

Paul

!login ou Inscrivez-vous pour poster

Par gdx

Enlighted (6215)

Portrait de gdx

15-09-2022, 02:28

Illegal function call occurs when the parameter after the comma is incorrect. A$ has probably taken a bad value. What is A$ worth when the error occurs? It should be a string of one or two characters corresponding to a hexadecimal value between 0 and FF.

Par Manuel

Ascended (19468)

Portrait de Manuel

15-09-2022, 07:38

This part of the program is poking bytes into memory, probably a machine code program. You made a mistake in the data lines. You can use the ICP program to check whether the typed in lines are correct... That's the best way.

Par ro

Scribe (4963)

Portrait de ro

15-09-2022, 08:25

aaaaaah, the old Jake In The Caves. I used too like this one very much. Wasn't it Stefan van der Loef who wrote that?

Par Hit-Biter

Master (166)

Portrait de Hit-Biter

15-09-2022, 09:38

Thanks guys, I suspected it was a DATA issue. Manuel or someone can you eleborate on the ICP Program ? I assume its some sort of checksum program as i see the checksum values on the side of the listing.

Par Hit-Biter

Master (166)

Portrait de Hit-Biter

15-09-2022, 09:51

gdx wrote:

Illegal function call occurs when the parameter after the comma is incorrect. A$ has probably taken a bad value. What is A$ worth when the error occurs? It should be a string of one or two characters corresponding to a hexadecimal value between 0 and FF.

How do i check the value of A$ ? PRINT A$ after the program crashes ?

Par gdx

Enlighted (6215)

Portrait de gdx

15-09-2022, 10:05

Yes, just after the error occurs.

Par Hydragon

Paladin (751)

Portrait de Hydragon

15-09-2022, 13:02

Hit-Biter wrote:

Thanks guys, I suspected it was a DATA issue. Manuel or someone can you eleborate on the ICP Program ? I assume its some sort of checksum program as i see the checksum values on the side of the listing.

That ICP program:
"Invoer Controle Programma 4" can be found on page 8 Wink

Par Hit-Biter

Master (166)

Portrait de Hit-Biter

15-09-2022, 14:46

Guys ! Is this program compatible with MSX 1 or is it only MSX 2 ?

Par ToriHino

Paladin (856)

Portrait de ToriHino

15-09-2022, 15:39

Hit-Biter wrote:

Guys ! Is this program compatible with MSX 1 or is it only MSX 2 ?

When you click on the link in MCM to run it, you can see that it starts from an MSX 1.

Par Hit-Biter

Master (166)

Portrait de Hit-Biter

15-09-2022, 15:48

Ahhh sorry for the presumably dumb question. I just get an error in dutch mentioning 'MSX 2 disk'

Page 1/3
| 2 | 3