CPCWiki forum

General Category => Programming => Topic started by: Nemo59 on 15:27, 22 April 21

Title: TP-TOOLS v1.0 for Amstrad CPC6128 and 6128+
Post by: Nemo59 on 15:27, 22 April 21
https://youtu.be/2IWSLU0uK8w (https://youtu.be/2IWSLU0uK8w)


Hi all, the 3" dsk image is attached here ;D
Cpm+ is included. Tu run the program :

|cpm
Readme


EDIT : It's better with the good attached file ;D
Title: Re: TP-TOOLS v1.0 for Amstrad CPC6128 and 6128+
Post by: GUNHED on 17:59, 22 April 21
Pretty cool stuff for good old Turbo Pascal.  :) :) :)
Title: Re: TP-TOOLS v1.0 for Amstrad CPC6128 and 6128+
Post by: Nemo59 on 20:18, 22 April 21
I did not measure it but I have the curious impression that moving a memory block between two 2 banks is faster than moving the same amount of data  within the same bank ... I use the XMOVE command of CPM + for interbank transfert.

How does moving a memory block between two ram banks work in practice? What do the Z80 for this ?
Title: Re: TP-TOOLS v1.0 for Amstrad CPC6128 and 6128+
Post by: andycadley on 21:29, 22 April 21
If both banks can be present in address space simultaneously, you just page them in and do the copy directly.


More generally, you copy some data into a buffer, switch pages, copy it back, switch pages and repeat as necessary.
Title: Re: TP-TOOLS v1.0 for Amstrad CPC6128 and 6128+
Post by: Nemo59 on 23:29, 22 April 21

Move data from bank to bank (*) is a Bios command in CPM+, so it's very easy to use but it's a black box for me. I guess it use a buffer somewhere?
[And in fact my impression was wrong.  With Turbo Pascal / CPM+:

Copy 16kB from bank 1 to bank 1 takes  ~ 0.116 sec
Copy 16kB from bank 0 to bank 1 (or  1 to 0) takes ~ 0.245 sec, just the double of time, not bad I think...


In my Pascal program I use a lot of this because the screen is not in the same bank aera than the program.


(*) Bank in CPM is a different definition than in Amsdos. On the CPC6128 there is 3 banks of memory in the CPM point of view. Bank 0 and 1 share 16ko in common. I dont understand what is the use for Bank 3. I suspect its for buffers. With a personalised CPM I think it would be possible to use overlays in a very interesting way. I tried some things but I get only crashes ;D Create your own CPM§ package seems possible but very complex and not so much documented.