Forum > Other OS

Status of Z80 cross compiler?

<< < (2/4) > >>

Bogen85:

--- Quote from: Wysardry on December 23, 2022, 11:24:17 pm ---Is there any advantage to installing Lazarus for this particular project? Would it add anything useful, or just make the process more complicated than it needs to be.

--- End quote ---

The answer to that is very subjective. For me the Lazarus IDE is very "complicated" and I see no value in it as I'm not doing GUI work.
But many others who use Free Pascal like the Lazarus IDE and recommend it for all things Free Pascal related...

So, like I said, subjective...


--- Quote from: Wysardry on December 23, 2022, 11:24:17 pm ---I was considering using a simpler editor, such as Geany or CudaText.

--- End quote ---

I use CudaText (and a terminal, with a Makefile in my project to build it with FPC).

I don't have time to be overwhelmed by an IDE that I've not figured out what benefits it really adds... (where those benefits outweigh the complications that come with it)

Same with the likes of Microsoft's VSCode and IntelliJ, I've tried to force myself for weeks at the time to get use to them and learn to appreciate the value they supposedly add...
They do add some value, I will agree. But at the cost of being too complex and overwhelming overall as an environment to develop software in.

And always go back to something simple like CudaText, my project sources, a Makefile in those, and a terminal...
So to me Lazarus feels to be along the same vein. Too overwhelming and I can't get past that to appreciate the value it adds.

PascalDragon:

--- Quote from: Wysardry on December 23, 2022, 11:24:17 pm ---Is there any advantage to installing Lazarus for this particular project? Would it add anything useful, or just make the process more complicated than it needs to be.
--- End quote ---

Lazarus provides code completion and other such gimmicks. Whether you use them with Windows or for embedded development doesn't matter, they make working with code easier nevertheless.

Wysardry:
Thanks. I'll try both options.

Would I need to change any of the existing code to add a new Z80 machine or will the existing system automatically look for the right files and directories based on the name provided to it?

Also, is there existing code for memory bank switching for machines with over 64Kb RAM? I know the later Spectrum models used bank/page switching to allow the CPU to access more memory, although I never used one.

I did own an Enterprise 128 and an Amstrad CPC6128, both of which had a similar feature. I vaguely remember the Memotech MTX series and the Sam Coupe also having models with 128Kb or more.

PascalDragon:

--- Quote from: Wysardry on December 27, 2022, 07:26:06 pm ---Would I need to change any of the existing code to add a new Z80 machine or will the existing system automatically look for the right files and directories based on the name provided to it?
--- End quote ---

There is no automatism for this. As I said, look at the changes I did for MSX-DOS to see what needs to be done.


--- Quote from: Wysardry on December 27, 2022, 07:26:06 pm ---Also, is there existing code for memory bank switching for machines with over 64Kb RAM? I know the later Spectrum models used bank/page switching to allow the CPU to access more memory, although I never used one.
--- End quote ---

No, there is no preexisting mechanism for that especially as that mechanism is board-specific. What my plan was - for MSX-DOS - is to use far calls and data for this as a transparent mechanism from the language side with a platform specific implementation for it.

af0815:
Bankswitiching CPC :
http://norecess.cpcscene.net/advancedmemoryusage.html
MSX (2)
https://blog.qiqitori.com/2022/11/msx-msx2-bank-switching-and-short-simple-ram-test-in-basic/

ZXSpectrum:
https://github.com/tebl/ZX-Interface-2.021/blob/main/documentation/bank_switching.md

Common is, a Z80 can only adressing 64k. All other must be done with hardware support and every system have it own switching. Common is most, a call to the banking registers with a out command. And you must take care not to switch the bank, where your code is running :-) and the interrupts must be disabled for this. After the bank is switched, must have to take care if the bank 0 was switched. The interrupthandlers depends on the mode of interrupt. And this handler should not destroyed by the switichg mechanismen (or copied to the new bank).


Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version