ULA revistited.

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: ULA revistited.

Post by PokeMon »

Paul wrote:Hi Andy.
As the ULA does so, would it be possible to activate ROMCS only when a opcode is fetched? Peeking the ROM isn't really required, except for pixeldata which is fetched like an opcode.
So what would happen if you wouldn't enable the ROM when not fetching opcodes?
Am I missing something?
That would not work because the ROM code reads also from ROM. It does outside M1 cycle for maybe adress data or operands, M1 shows only beginning of a new instruction cycle. Also the code read internal tables from ROM with jump addresses like these:

Code: Select all

; ------------------------
; THE 'TABLE OF ADDRESSES'
; ------------------------
;
; starts with binary operations which have two operands and one result.
; three pseudo binary operations first.

;; tbl-addrs
L1923:  DEFW    L1C2F           ; $00 Address: $1C2F - jump-true
        DEFW    L1A72           ; $01 Address: $1A72 - exchange
        DEFW    L19E3           ; $02 Address: $19E3 - delete

; true binary operations.

        DEFW    L174C           ; $03 Address: $174C - subtract
        DEFW    L17C6           ; $04 Address: $176C - multiply
        DEFW    L1882           ; $05 Address: $1882 - division
        DEFW    L1DE2           ; $06 Address: $1DE2 - to-power
        DEFW    L1AED           ; $07 Address: $1AED - or

        DEFW    L1AF3           ; $08 Address: $1B03 - no-&-no
        DEFW    L1B03           ; $09 Address: $1B03 - no-l-eql
        DEFW    L1B03           ; $0A Address: $1B03 - no-gr-eql
        DEFW    L1B03           ; $0B Address: $1B03 - nos-neql
        DEFW    L1B03           ; $0C Address: $1B03 - no-grtr
        DEFW    L1B03           ; $0D Address: $1B03 - no-less
        DEFW    L1B03           ; $0E Address: $1B03 - nos-eql
        DEFW    L1755           ; $0F Address: $1755 - addition
And have more, key code tables, instruction tables (like PEEK, POKE, LIST, GOTO and so on).
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: ULA revistited.

Post by PokeMon »

Paul wrote: So: is it possible to enable the rom during opcode fetches AND refresh, but not during peeks.
We are talking about the ULA. That's the master of everything :lol:
No, because same reason as above.
I wouldn't say that ULA is the master.
Without the CPU the ULA does nothing spectecular (but generates SYNC signal for the monitor without help of the CPU :mrgreen: ).
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: ULA revistited.

Post by PokeMon »

Andy Rea wrote:well not sure that inplementing ZX80 support on ZX81 hardware and allow extra functionallity too....

anyway can't use 101 on ZX80 the location needs to be an instruction so that under normal code execution M1 is low so ULA will not interfere, but when peeking that location it's safe to return any value, location 101 in ZX80 rom is an operand byte, so can't be used in this fashion....

However location 77 (i like easy numbers) contains $FE, the CP n Instruction so i should be able to use that location, and add some extra logic to dwitch between ZX80 / ZX81 mode 8-)

So my proposal was not too bad with 104. :mrgreen:
I think it's not a good idea to change rom code in general. Maybe it's better to extend standard rom code after it does initialization.
If Andy needs only 6 bit instead of 8 bits for control of the ULA he might use 0068h / 104 decimal.
There he find a $FA code (JP M,....)
But $FE gives you one more bit for control features. ;)

By the way, I have a ZX81 board with damaged ULA, so I can test for you when you are ready.
It it works, I pay for it. :lol:
User avatar
Andy Rea
Posts: 1606
Joined: Fri May 09, 2008 2:48 pm
Location: Planet Earth
Contact:

Re: ULA revistited.

Post by Andy Rea »

Anybody still here :lol:

Things are going well on the cards are.

almost full compatibility with original ULA, Why almost? The composite video output (with back porch), which does not work with the UHF modulator :? emitter follower circuit is now part of the ULA so can be connected directly to TV or monitor.

Software programmble 'Extra features' are to be :-

1. Turbo mode, run the CPU at double normal speed (requires you to change the CPU to one capable of 6.5Mhz), during the top and bottom margins during slow mode
2. Trigger Turbo mode in fast mode. (because of the way the turbo mode works, when switching to fast your left with the processor running at 3.25Mhz), with a simple poke you can trigger Turbo in fast mode.
3. Rompatch enable, this feature allows switching between fast and slow mode whilst turbo is active. by patching a single byte of the rom so that the nmi generator can still be detected when the cpu is running in turbo.
4. M1not Mod, allows the user to rub Machine code in the 32-48K region, unmodifies Zeddies can not do this.
5. invertable border, want a black border? No Problem.
6. invertable Video, want white on black characters? No problem.
7. uk/us selection, inverts what the ula normally reports (probably only useful to software developers)
8. feature Lock, once the features are set you can lock them, until a reset or power cycle.

All features can be controlled from software with a few 'pokes' this allows easy use in BASIC as well as machine code.

There is at this time at least 1 additional output, a constant 3.25Mhz clock output, intended for use with AY/Zon-X modules, this allows music/sounds to be played at the correct pitch even when Turbo mode is active.

To use all of the features some soldering is required :geek: however the ULA can also be used without, and will act as a normal ula.

I've got everything except PCB needed to build 25 of these bad boys :twisted: the PCB's should be here in a week or so...

Regards Andy
what's that Smell.... smells like fresh flux and solder fumes...
User avatar
Paul
Posts: 1517
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ULA revistited.

Post by Paul »

Please count me in for two.
Cheers Paul
In theory, there is no difference between theory and practice. But, in practice, there is.
sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: ULA revistited.

Post by sirmorris »

Me too!
User avatar
siggi
Posts: 990
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: ULA revistited.

Post by siggi »

And me too :D

Siggi
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
PokeMon
Posts: 2264
Joined: Sat Sep 17, 2011 6:48 pm

Re: ULA revistited.

Post by PokeMon »

Yes I need one or two ULA too.
Do you have already an idea of the price ?
I hope it's not more than a used ZX81. :mrgreen:
User avatar
Paul
Posts: 1517
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: ULA revistited.

Post by Paul »

What happens to zxpand when in turbo mode? Does it work faster?
In theory, there is no difference between theory and practice. But, in practice, there is.
sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: ULA revistited.

Post by sirmorris »

I doubt it will be much faster, the zeddy ends up polling a lot of the time. That said, LOADs and CATs should improve because the bits where data is being read and characters printed will go faster.

C
Post Reply