Jake In The Caves - Illegal Function Call in 4640

ページ 1/3
| 2 | 3

By Hit-Biter

Master (175)

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

ログイン/登録して投稿

By gdx

Enlighted (6438)

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.

By Manuel

Ascended (19683)

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.

By ro

Scribe (5061)

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?

By Hit-Biter

Master (175)

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.

By Hit-Biter

Master (175)

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 ?

By gdx

Enlighted (6438)

gdx さんの画像

15-09-2022, 10:05

Yes, just after the error occurs.

By Hydragon

Paladin (751)

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

By Hit-Biter

Master (175)

Hit-Biter さんの画像

15-09-2022, 14:46

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

By ToriHino

Paladin (927)

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.

By Hit-Biter

Master (175)

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'

ページ 1/3
| 2 | 3