kevinboone / cpicom

A CP/M 2.2 emulator for the Raspberry Pi Pico
35 stars 5 forks source link

crashes/locks - mostly with BASIC interpreters #1

Open scruss opened 3 years ago

scruss commented 3 years ago

Hi - I hope these are useful reports, but cpicom appears to lock with no diagnostic output.

BBC BASIC

from BBC BASIC (Z80):

A> bbcbasic

Unrecognized BDOS-Function:
AF=3750  BC=002d  DE=01fe  HL=0277  SP=3cfc
Stack = 38a1  247  90a    0    0    0    0    0

Microsoft BASIC-80 Rev. 5.21

running asciiart.bas:

Actual output:

run
00000001111111111111111112222223

Expected output:

run
000000011111111111111111122222233347E7AB322222111100000000000000000000000000000
000001111111111111111122222222333557BF75433222211111000000000000000000000000000
000111111111111111112222222233445C      643332222111110000000000000000000000000
011111111111111111222222233444556C      654433332211111100000000000000000000000
11111111111111112222233346 D978 BCF    DF9 6556F4221111110000000000000000000000
111111111111122223333334469                 D   6322111111000000000000000000000
1111111111222333333334457DB                    85332111111100000000000000000000
11111122234B744444455556A                      96532211111110000000000000000000
122222233347BAA7AB776679                         A32211111110000000000000000000
2222233334567        9A                         A532221111111000000000000000000
222333346679                                    9432221111111000000000000000000
234445568  F                                   B5432221111111000000000000000000
                                              864332221111111000000000000000000
234445568  F                                   B5432221111111000000000000000000
222333346679                                    9432221111111000000000000000000
2222233334567        9A                         A532221111111000000000000000000
122222233347BAA7AB776679                         A32211111110000000000000000000
11111122234B744444455556A                      96532211111110000000000000000000
1111111111222333333334457DB                    85332111111100000000000000000000
111111111111122223333334469                 D   6322111111000000000000000000000
11111111111111112222233346 D978 BCF    DF9 6556F4221111110000000000000000000000
011111111111111111222222233444556C      654433332211111100000000000000000000000
000111111111111111112222222233445C      643332222111110000000000000000000000000
000001111111111111111122222222333557BF75433222211111000000000000000000000000000
000000011111111111111111122222233347E7AB322222111100000000000000000000000000000
Ok
scruss commented 3 years ago

Hang on, maybe MBASIC hasn't crashed: it's just going really really slowly. More than an hour ago it stalled at:

00000001111111111111111112222223

But now it's showing:

000000011111111111111111122222233347E7AB322222111100

This seems to be a slowdown. Even quite slow Z80s finish the benchmark in 2-3 minutes, so the emulator has suddenly got tremendously slow

kevinboone commented 3 years ago

Thanks for reporting this. Unfortunately, right now I'm struggling with a particularly vicious case of Covid-19. It's exhausting even operating a keyboard :/ I guess it's going to be a couple weeks before I can do much. Sorry about that.

scruss commented 3 years ago

eek! look after yourself!

guidol70 commented 3 years ago

Today I compiled also CPICOM and got the same hang with FRACTAL.BAS like the mentioned asciiart.bas - but everytime at different locations of the result (more or less calculated lines). RPi_Pico_FRACTAL_BAS

A compiled version of another fractal-program doesnt hang (MAND.COM) 11min 20sec MAND.zip MAND_RPI_Pico

But a short "TEST"-Program is running here in the interpreter since hours without hanging..its a short BASIC-loop and has now counted up to 960.000:

1 A=1
2 PRINT A;" - ";
3 A=A+1
4 GOTO 2

So it seems it needs a certain code/function to hang the prgram!?

BTW: YMODEM Transfer with TeraTerm is OK, but after the Transfer is complete I have to Ctrl-C the transfer to get back to the prompt - but the file is complete transfered....the yrecv is sending more CCCs after the completed transfer - which gives the chance to send another file via YMODEM ;)