CPCWiki forum

General Category => Technical Support => Software related => Topic started by: ComSoft6128 on 18:42, 04 March 21

Title: 6128 Plus BASIC problem?
Post by: ComSoft6128 on 18:42, 04 March 21
Hi,
Looking for some help.

This lovely little slideshow will Run on the 6128 but not the 6128 Plus - it displays the loading screen but then locks - any idea why?
I've Listed the BASIC loader in the video below.


https://www.youtube.com/watch?v=Qf7czqw8qAM (https://www.youtube.com/watch?v=Qf7czqw8qAM)


Dsk file at CPCPOWER:
https://www.cpc-power.com/index.php?page=detail&num=12148 (https://www.cpc-power.com/index.php?page=detail&num=12148)
Title: Re: 6128 Plus BASIC problem?
Post by: Bryce on 19:24, 04 March 21
Possibly using an undocumented CRTC trick that the Plus didn't support?

Bryce.
 
Title: Re: 6128 Plus BASIC problem?
Post by: ComSoft6128 on 19:30, 04 March 21
Anything in the BASIC program look "iffy"?


Not sure about a CRTC trick - it makes no attempt at all to load the Mode 2 screens ::)
Title: Re: 6128 Plus BASIC problem?
Post by: Animalgril987 on 19:48, 13 March 21
The machine code loading section is messy, and the error line variable (L) cannot point to the correct DATA statement.
Did someone do a "RENUM" without altering variable L? It should start at 40 and be incremented by 10..
Title: Re: 6128 Plus BASIC problem?
Post by: ComSoft6128 on 20:18, 13 March 21
Hi @Animalgril987 (https://www.cpcwiki.eu/forum/index.php?action=profile;u=3936) ,


Thanks for the reply,


No, no change to the original 1990 code. Possibly it was written before the author ever saw a Plus and never had a chance to Run it on one?
I've worked round the problem by recording it on a 6128 and it works fine on that :)


Cheers,


Peter
Title: Re: 6128 Plus BASIC problem?
Post by: Animalgril987 on 22:44, 13 March 21
Hi Peter.
No probs :D
But I wouldn't have thought the messiness in that area of the program would cause it to fail on the Plus. There must be something in the m/c code the Plus doesn't like..
I don't have a plus, so I can't test it myself.


Alan.
Title: Re: 6128 Plus BASIC problem?
Post by: dragon on 12:34, 14 March 21
Amstrad remove some commands in plus firmware. Causing some address directions change.


So some programs that try access the firmware directly using calls can fail, because they call wrong direction..


Try load it with this cartridge.


https://www.cpcwiki.eu/imgs/7/7a/Basic_%28F%29_%28White_Label%29.zip

Title: Re: 6128 Plus BASIC problem?
Post by: Animalgril987 on 14:50, 14 March 21
Thanks for the info, Dragon. :D
Title: Re: 6128 Plus BASIC problem?
Post by: ComSoft6128 on 15:53, 14 March 21
Never knew that, thank you :)
Title: Re: 6128 Plus BASIC problem?
Post by: Animalgril987 on 00:19, 17 March 21
After some investigation, it turns out that  the machine code does a fair amount of reprogramming the 8255 PPI.


As the Plus ASIC emulation of the PPI is not perfect, the Plus will throw a wobbly ( usually no keyboard response or sound).
The exact problem is a couple of points where the PPI control register is reprogrammed.
In a real PPI, this clears the output registers, but they are not cleared in the emulation.


I don't have a plus to test,it on, but I think modifying the program to send 0x00h to PPI ports A and C immediately after the control port writes SHOULD make it Plus friendly.


Alan.



Title: Re: 6128 Plus BASIC problem?
Post by: Animalgril987 on 21:53, 18 March 21
@ComSoft6128 (https://www.cpcwiki.eu/forum/index.php?action=profile;u=2226) : Hi Peter.
If you can send attach a dsk of the Basic program, when I get a mo I'll tidy up the code loader and insert extra OUT commands into the machine code to try and make it Plus compatible.


Alan.
Title: Re: 6128 Plus BASIC problem?
Post by: megachur on 08:24, 19 March 21
Hello,

First to search something like that :

Firstly, please try it on real hardware...

If there no 'bug', then the emulator you are using is not accurate with ASIC hardware.

Then we can find in the code the 'bug' and maybe fix it for +

Secondly, the ASIC use a partial PPI hardware implementation. That is why some 'tricks' with PPI don't work with ASIC. Also some tricks with ASIC don't work with PPI also !Recently, Ast have found one that not work in emulators like WinAPE for example...

Finally, the ASIC has not yet been sufficiently analyzed to know its exact hardware operation!

Note for example that it works at 40Mhz while most emulators make it work like the Gate Array, that is to say at 8Mhz!


Title: Re: 6128 Plus BASIC problem?
Post by: ComSoft6128 on 09:06, 19 March 21
@ComSoft6128 (https://www.cpcwiki.eu/forum/index.php?action=profile;u=2226) : Hi Peter.
If you can send attach a dsk of the Basic program, when I get a mo I'll tidy up the code loader and insert extra OUT commands into the machine code to try and make it Plus compatible.


Alan.


Hi @Animalgril987 (https://www.cpcwiki.eu/forum/index.php?action=profile;u=3936) ,
Thanks for the offer but I have worked around the problem by Running it on a 6128.
There is a link in my original post to the file at CPCPOWER if you want to check that out.


@megachur (https://www.cpcwiki.eu/forum/index.php?action=profile;u=2838),

Thanks for the info.
I've been trying to Run this program on real hardware but as per above I've worked round it.


Cheers,


Peter
Title: Re: 6128 Plus BASIC problem?
Post by: Animalgril987 on 18:57, 27 March 21
This version runs on a Plus emulator (at least until the "Turn disk over" message  :D ).


Don't know about a real Plus, though...


(Filename changed because I was fed up of having to use copy curser to get a tilde ( editting done on a real CPC)).  :D