[fpc-devel] FPC and Z80
Marco van de Voort
fpc at pascalprogramming.org
Mon Apr 27 21:42:29 CEST 2020
Op 2020-04-27 om 21:24 schreef Florian Klämpfl:
> Well, for 6502 working 16-bit ptr indirect via volatile zp memory
> locations needs to be implemented anyway :-)
>>
>> Does that CPU have no hardware stack at all, or only limited (128/256
>> bytes or so?)
>
> It has a full stack but too little registers to use it efficiently for
> local variables: it has 3 8 bit registers pair plus accumulator (so 7
> 8 bit registers),
Then you need a parallel software stack for parameters and local vars,
and keep the hw stack for return addresses only.
But like with the c=64 without 16-bit regs you probably need some form
of indirect addressing via zeropage base pointers to access that stack(
if>8bit). IIRC the 6502 had very little free ZPs, but a lot more if you
can reuse the locations used by the interpreter (e.g. backup/restore if
you want to be able to return to basic)
> two of them can be used as pairs for indirect addressing, so this
> makes life very hard
That is already more than the 6502 has. Afaik the instruction pointer
is the only 16-bit one. But if an basic interpreter can do it, so can a
compiled program?
More information about the fpc-devel
mailing list