I admit I took too long, Finally, the zx81 console is fully sorted, if you had problems with the 64 or 128 lines mode, it's time to check it out again.
I put in also a funny mid resolution text option for the udg pseudo graphics mode, ideas and comments are welcome
ZX81 VT ANSI console modes fixed
Re: ZX81 VT ANSI console modes fixed
Still something is broken, it was hidden underneath the buggy configuration.
I think it is the numeric oputput routines but it could be elsewhere in the library: the touchy IX and IY registers are not fully preserved, I think.
I think it is the numeric oputput routines but it could be elsewhere in the library: the touchy IX and IY registers are not fully preserved, I think.
Re: ZX81 VT ANSI console modes fixed
I found the culript, it is those few standard functions altering AF', __printf_doprint.asm being the major hassle.
.. to check it, I altered it locally in this way:
; Save the far pointer on z80
IF __CPU_Z80__
exx
push bc
push de
exx
; ex af,af
; push af
; ex af,af
... the problem vanishes.
I see that AF' is rarely used, I think this is the only relevant hiccup in the ZX81 libraries.
I'll apply this "temporary" workaround locally, keeping a copy of __printf_doprint.asm and conio/vpeek_screendollar.asm, and leaving the other few file (and far ptr) related functions untouched.
.. to check it, I altered it locally in this way:
; Save the far pointer on z80
IF __CPU_Z80__
exx
push bc
push de
exx
; ex af,af
; push af
; ex af,af
... the problem vanishes.
I see that AF' is rarely used, I think this is the only relevant hiccup in the ZX81 libraries.
I'll apply this "temporary" workaround locally, keeping a copy of __printf_doprint.asm and conio/vpeek_screendollar.asm, and leaving the other few file (and far ptr) related functions untouched.
Re: ZX81 VT ANSI console modes fixed
New text option for the 32K ZX81 with WRX mod.
It will produce a 42x32 rows text page, in interlaced mode.
"ansicolums" can be set with values between 32 and 42 with good results.
Some sort of special user interaction is necessary to calibrate the picture invoking hrg_phase() in the first program menu.
'hrgpage' MUST be specified too, I should probably add a default configuration (does IFDEF exist in z80asm?).
It will produce a 42x32 rows text page, in interlaced mode.
"ansicolums" can be set with values between 32 and 42 with good results.
Some sort of special user interaction is necessary to calibrate the picture invoking hrg_phase() in the first program menu.
'hrgpage' MUST be specified too, I should probably add a default configuration (does IFDEF exist in z80asm?).
You do not have the required permissions to view the files attached to this post.