Tuesday, 3 October 2023

What we know ?

 So what do we know. Well, not much, in the github there's a list of what I could find out, and really it's pretty minimal. 

Some of it is clearly not true or metaphorical, especially.

1) The two chip solution. You might get it down to 3 ; a RAM chip, the Z80 and the ULA (by not having the inbuilt ROM and putting it on each cartridge - depends how big it is). 

Technology in 1983 didn't allow a two chip solution. ULAs didn't have enough RAM on it. RAM is the main driver of this design. 

I'm guessing Sir Clive was referring generically here to 'big chips' ?

2) The multitasking in 100 T-States. You could do task switching with the control of switching given to the Z80 in this, so say use RST8 when you want to yield, but you can't do real multitasking switches this quickly unless you don't use half the registers.

Why ? Well a Z80 has to save the following registers : AF AF' BC BC' DE DE' HL HL' IX and IY. that's by my counting 10 register pairs. The quickest way of writing these to memory is to push them on a stack, which takes 11 T-States or 15 T-States for IX and IY, so to save all of these and not do anything else is 11x8+15x2 = 88+30 = 118 T-States. Then you have to load the new state in, which  is another 118 T-States, then there's a couple of EXX and EX AF,'AF required. Then there's the saving and loading of the SP, and figuring out the next task. 

You can cheat ; you can store AF BC DE HL in the alternate set very fast, and then use them, but that means you can't use the alternate set and only have two tasks. If you task switch manually you can make preserving the state the applications job, or only guarantee AF BC DE HL

(Have I missed something obvious ?)

I'm not quite sure I see the point of this either. This is meant to be a cheap game console. I doubt things like the NES and Master System and any other consoles of the time multi tasked, and when they did it would be game specific. 

If I was bashing the price down, I'd have no OS at all (like the NES) which saves you the cost of putting the ROM in the unit ;  is there so much common code that you can justify giving the machine an Operating System permanently. 

There's a similar question over the tape interface. Given the "BASIC module" is a seperate sell, like the Intellivision or several other machines of that era, it would be cheaper to put the tape I/O hardware on the BASIC module. I'd actually have it cascading, so the BASIC module has it's own cartridge slot, because assuming minimal RAM on the LC3, which it states repeatedly, a BASIC cart will need some RAM in it to store programs in.

No comments:

Post a Comment

RAM, RAM, glorious RAM :)

Pacman in a UDG system The question is at root, do we have 1k RAM or 2k RAM to work with. We have certain requirements Each square on the sc...