Page 10 of 11

Re: SPeccy ON the ZeddY

Posted: Mon Oct 15, 2018 1:53 pm
by siggi
olofsen wrote: Mon Oct 08, 2018 11:25 pm Attached are a Sponzy version, and a ZX81 program to start it, so that TAPs such as FLIPPIT can be loaded via USB on the ZXmore.
Is the Sponzy-Rom in the ZIP a special version (patched?) or ZSOLT's original version?
Just to avoid possible confusion ...

Siggi

Re: SPeccy ON the ZeddY

Posted: Tue Oct 16, 2018 8:00 am
by olofsen
Yes, it is a special version (with a tiny patch for the tape loading) of the latest Sponzy I obtained from Zsolt.

Re: SPeccy ON the ZeddY

Posted: Tue Oct 16, 2018 11:24 pm
by Shaun_B
Unfortunately I've not been able to get this to work - running the file at instance one takes me to the SPONZY instance somehow (I assime instance 2 but also I have the SPONZY on instance 7). But I can't seem to load any TAP files (or at least I don't know how to).

Do you have a dumb-down instructions?

Regards,

Shaun.

Re: SPeccy ON the ZeddY

Posted: Wed Oct 17, 2018 11:10 am
by zsolt
Hi,
siggi wrote: Mon Oct 15, 2018 1:53 pm Is the Sponzy-Rom in the ZIP ..... ZSOLT's original version?
Not exactly: it is different in the "startup" and the "new" section and "DI" instructions have been removed from the entire code.
And Erik found a bug during tests of his driver program, which has been fixed.

And now i made some changes in the NMI handler too:

Code: Select all

;
; ------------------------------------
; THE 'NON-MASKABLE INTERRUPT' ROUTINE
; ------------------------------------
;
L0066:				; size	! Ts	! 
	push af			; 1	! 11	! save ACC & Flags

;;-	ld a,(NMICNT)		; 3	! 13	! decrement
	ld a,i			; 2	! 9	!  decrement

	dec a			; 1	! 4	! and store

;;-	ld (NMICNT),a		; 3	! 13	! counter
	ld i,a			; 2	! 9	! counter

	jr z,NMI_1		; 2	! 7/12	! --> L003A
	;
	pop af			; 1	! 10	! restore ACC & Flags
	;
	ret			; 1	! 10	! cont.orig.task

This mod gives back 8 Tstates / NMI to the user program, so speed is increasing (~5%). :D

Enjoy,
Zsolt
sponzy2018.zip
(12.81 KiB) Downloaded 268 times
ps: I try to incorporate also the novelties of the "bigbang" ROM

Re: SPeccy ON the ZeddY

Posted: Fri Nov 09, 2018 11:05 am
by siggi
Hi Zsolt
would it be sufficient to copy the bytes from $66 to "ret" into Erik's patched rom to have the full speed also with this patched rom?

And is it not possible to have only one rom (including Erik's patches)?

Siggi

Re: SPeccy ON the ZeddY

Posted: Fri Nov 09, 2018 1:51 pm
by zsolt
Hi,
siggi wrote: Fri Nov 09, 2018 11:05 am And is it not possible to have only one rom (including Erik's patches)?
It is more than possible :D just use the sponzy2018.rom above - it contains Erik's patch.
Regards,
Zsolt

Re: SPeccy ON the ZeddY

Posted: Fri Nov 09, 2018 8:20 pm
by siggi
Shaun_B wrote: Tue Oct 16, 2018 11:24 pm Unfortunately I've not been able to get this to work - running the file at instance one takes me to the SPONZY instance somehow (I assime instance 2 but also I have the SPONZY on instance 7). But I can't seem to load any TAP files (or at least I don't know how to).
AFAIK it does not work on all filenames. Currently only a-z and numbers could be used as filename (but not long filenames, only 8.3 format).
And the program name inside the TAP must exactly match the filename (uppercase/LOWERCASE!) (e. g. file "jsw16k.tap" containing program "jsw16k").
Load it using command LOAD "jsw16k"
Examples.zip
(6.5 KiB) Downloaded 244 times
But I don't know what to do, if the program name inside the TAP is longer or does contain other characters ...

Siggi

Edit: Try this program (I were able to load it):
viewtopic.php?f=14&p=32310#p32282

Re: SPeccy ON the ZeddY: Graphics?

Posted: Sat Nov 10, 2018 11:12 am
by siggi
Hi ZSOLT
I just tried to get the graphic chars of Sponzy rom (pressing SHIFT-G)
chars 1-8 and Q-Y show the correct characters (like on ZX81)
But chars A-H give wrong pixel patterns.

Don't this ZX81 graphic chars exist on Speccy?

Siggi

Re: SPeccy ON the ZeddY

Posted: Sun Nov 11, 2018 6:44 pm
by zsolt
Hi Siggi,

No, these are ZX81-specific patterns, but ...
In SPONZY they are available as UDGs (chr$ 144 ... chr$ 164), which are defined during the startup:

Code: Select all

L0000:
	out ($FD),a		; Switch NMI off!

	LD	DE,$FFFF	; Set pointer to top of possible physical RAM.
	JP	L11CB		; Jump forward to common code at START-NEW.

; -------------------
;; START-NEW
; -----------------------

L11CB:
	ld a,d			;
	and e			;
	ld b,a			; Save the flag to control later branching.
L11CE:
	ld a,$3F		;

; -----------------------
; THE 'RAM CHECK' SECTION
; -----------------------


; then later...


	inc b			; now test if we arrived here from NEW.
	jr nz,RAM_SET		; forward to RAM-SET if we did.

;	This section applies to START only.
;
	ld sp,hl		; set up the machine stack pointer.
	call setPRAMT		; set P-RAMT to the highest working RAM
				; address.
	ld de,$3EAF		; address of last byte of 'U' bitmap in ROM.

; Copy INVERSE of the standard characters A - U.
; there are 21 user defined graphics.

	ld bc,$A830		; 21 standard (B) and 6 extra ZX81 chars (C).
FILL_INV
	ld a,(de)		; get pattern byte
	cpl			; invert it
	ld (hl),a		; put pattern byte
	dec hl			; decrement
	dec de			; the pointers
	djnz FILL_INV		; next

	inc hl			; update to start of inv. 'A' in RAM.
	ld ($5C7B),hl		; make UDG system variable address the first bitmap.

	ld de,$004F		; address of extra characters
	add hl,de		; set pointer

	ex de,hl		; switch pointers
	ld hl,$3CFF		; last address of extra characters in ROM
	lddr			; fill

	ld hl,($5C7B)		; restore
	dec hl			; pointer

	ld c,$40		; set the values of
	ld ($5C38),bc		; the PIP and RASP system variables.

;	The NEW command path rejoins here.
RAM_SET
After the normal startup you can use (and redefine) the UDG set.
After the normal startup you can use (and redefine) the UDG set.
the UDGs from keyboard in "G" mode
the UDGs from keyboard in "G" mode
I think, i found the reason of the problem: if 'DE' <> $FFFF at beginning of the 'START-NEW' section, then value of 'B' will be other than $FF. This means that UDG initialization is not done - as in case of the 'NEW' instruction.

The solution for 'ZTOS.p':

Code: Select all

	ld de,LAST_RAM_ADDR	; the latest address in front of the USB-driver
	ld b,$FF		; signal of 'STARTUP'
	jp L11CE		; entry point of 'START-NEW'
It's my fault, because we (Erik and me) did not talk about the startup :cry: sorry.
Zsolt

Re: SPeccy ON the ZeddY

Posted: Sun Nov 11, 2018 7:31 pm
by olofsen
The attachment on the previous page with ZTOS.P is updated to do the startup as described in the previous post, and I think it is indeed solved :)