Hi-Res (Software) Explained ?
- 1024MAK
- Posts: 5118
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: Hi-Res (Software) Explained ?
For normal CPU read cycles, use /RD low to enable the SRAM outputs.
For hi-rez, the SRAM outputs also need to be enabled when the Z80 signals refresh (/RFSH low) as this is when it puts an address formed by the I and R registers on the address bus. It is this address which is used to get the screen data (from the SRAM) which is "captured" by the ULA. The ULA then converts the parallel data it received, to a serial data stream, which feeds the display.
Note the above description is a simplified description.
Remember, the normal ZX81 screen system gets the Z80 to execute the display file, but the ULA forces the data bus to the CPU to zero, so that the CPU actually reads and executes a NOP. The actual data read from the SRAM is "captured" by the ULA. Which then uses the data byte to form part of a look-up address. This address is the table in the ROM that contains the data bytes that have the bit patterns of the numbers, letters and graphic characters. This look-up and data capture happens during the Z80 refresh cycle... The CPU then executes the next byte of the display file, and the process repeats (until the end of the line).
Mark
For hi-rez, the SRAM outputs also need to be enabled when the Z80 signals refresh (/RFSH low) as this is when it puts an address formed by the I and R registers on the address bus. It is this address which is used to get the screen data (from the SRAM) which is "captured" by the ULA. The ULA then converts the parallel data it received, to a serial data stream, which feeds the display.
Note the above description is a simplified description.
Remember, the normal ZX81 screen system gets the Z80 to execute the display file, but the ULA forces the data bus to the CPU to zero, so that the CPU actually reads and executes a NOP. The actual data read from the SRAM is "captured" by the ULA. Which then uses the data byte to form part of a look-up address. This address is the table in the ROM that contains the data bytes that have the bit patterns of the numbers, letters and graphic characters. This look-up and data capture happens during the Z80 refresh cycle... The CPU then executes the next byte of the display file, and the process repeats (until the end of the line).
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
Re: Hi-Res (Software) Explained ?
Yes, Thank you Mark, that is how i understood it as well.
One question came up, is the !REFSN on the back of the ZX81, the same as the !RFSH on the Z80 (i would make sense, except for the confusion it might cause)
Then the other thing i was wondering about, downloading some .P from some site, what section of memory is being used to store the HiRes initially, 'cause if that would be in let's say 8000h - BFFFh somewhere, i wouldn't get it to go.
Basically what i would like is just something out of the box, that should work on my system, just to make sure it actually does.
About the 1 being 0, i am sure i connected it to the !RD, but i started to doubt whether i should have connected it to the !WR early this morning, reading the end of the other thread.
One question came up, is the !REFSN on the back of the ZX81, the same as the !RFSH on the Z80 (i would make sense, except for the confusion it might cause)
Then the other thing i was wondering about, downloading some .P from some site, what section of memory is being used to store the HiRes initially, 'cause if that would be in let's say 8000h - BFFFh somewhere, i wouldn't get it to go.
Basically what i would like is just something out of the box, that should work on my system, just to make sure it actually does.
About the 1 being 0, i am sure i connected it to the !RD, but i started to doubt whether i should have connected it to the !WR early this morning, reading the end of the other thread.
Last edited by Rishi on Sun Sep 20, 2015 4:10 pm, edited 1 time in total.
32K SRAM WRX compatible, 32Bit IO-Port, ROM Ghost, ZX-Printer.
- 1024MAK
- Posts: 5118
- Joined: Mon Sep 26, 2011 10:56 am
- Location: Looking forward to summer in Somerset, UK...
Re: Hi-Res (Software) Explained ?
Yes. I don't know why, but in various ZX80/ZX81/ZX Spectrum documents, some of the edge-connector signals that connect directly to the Z80 CPU have slightly different namesRishi wrote:One question came up, is the !REFSN on the back of the ZX81, the same as the !RFSH on the Z80 (i would make sense, except for the confusion it might cause)
Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp
Standby alert
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb
Looking forward to summer later in the year.
Re: Hi-Res (Software) Explained ?
You can use my 1K hires routine and then when working with RAM-pack simply create the small screen on i.e. Address #6000.
Same result, memorypack works!
Same result, memorypack works!
Re: Hi-Res (Software) Explained ?
Yes it Does !!!olofsen wrote:Does http://bodo4all.cwsurf.de/zx/25thanni.html work?
32K SRAM WRX compatible, 32Bit IO-Port, ROM Ghost, ZX-Printer.
Re: Hi-Res (Software) Explained ?
Thank you all very much for your support. I am so happy it works, Now when i finish the Zaks book again, I will get into the Nitty Gritty of it all. To be Continued !
32K SRAM WRX compatible, 32Bit IO-Port, ROM Ghost, ZX-Printer.
Re: Hi-Res (Software) Explained ?
Of course the mind hardly ever stops to think about these things, It is almost as if the process continues in the background.
If that is so, i could try and mirror that area from E000h - FFFFh
I Think i am on the right track here aren't I ? Although i somehow have a suspicion that the area in memory that most programs use is actually 2000h - 3FFFh ?Rishi wrote: Then the other thing i was wondering about, downloading some .P from some site, what section of memory is being used to store the HiRes initially, 'cause if that would be in let's say 8000h - BFFFh somewhere, i wouldn't get it to go.
If that is so, i could try and mirror that area from E000h - FFFFh
32K SRAM WRX compatible, 32Bit IO-Port, ROM Ghost, ZX-Printer.
Re: Hi-Res (Software) Explained ?
In all my games I define a hiresscreenmemoryblock. This block is shown during hiresintrupt.Rishi wrote:Of course the mind hardly ever stops to think about these things, It is almost as if the process continues in the background.
I Think i am on the right track here aren't I ? Although i somehow have a suspicion that the area in memory that most programs use is actually 2000h - 3FFFh ?Rishi wrote: Then the other thing i was wondering about, downloading some .P from some site, what section of memory is being used to store the HiRes initially, 'cause if that would be in let's say 8000h - BFFFh somewhere, i wouldn't get it to go.
If that is so, i could try and mirror that area from E000h - FFFFh
The screen itself is filled with data written to positions on the screen. I only made 1 hiresgame with a fullscreen buffer.
(Available here http://minigamecompo.weebly.com/2k-page.html ). This game has a printingroutine that can print on y,x any character. Character outside normal numbers are considered as UDG and read from a memoryblock where they are defined. So code is from #4000 to #4800, UDG included. Screen is set at #6000
Re: Hi-Res (Software) Explained ?
Another day passed and in 3 steps i progressed.
Now the schematic looks like this.
0-8K ROM
8-16K Executable code (mirror 40-48K)
16 -32K RAM (mirror 48-64K)
32 -48K Data RAM
48 -64K Mirror to 16-32K
I haven't managed to execute anything from 8-16K yet, but i think it should be possible
Now the schematic looks like this.
0-8K ROM
8-16K Executable code (mirror 40-48K)
16 -32K RAM (mirror 48-64K)
32 -48K Data RAM
48 -64K Mirror to 16-32K
I haven't managed to execute anything from 8-16K yet, but i think it should be possible
32K SRAM WRX compatible, 32Bit IO-Port, ROM Ghost, ZX-Printer.