SPeccy ON the ZeddY

Anything Sinclair ZX Basic related; history, development, tips - differences between BASIC on the ZX80 and ZX81
User avatar
siggi
Posts: 1029
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post 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
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
olofsen
Posts: 189
Joined: Wed Jan 08, 2014 12:29 pm

Re: SPeccy ON the ZeddY

Post by olofsen »

Yes, it is a special version (with a tiny patch for the tape loading) of the latest Sponzy I obtained from Zsolt.
Shaun_B
Posts: 474
Joined: Wed Apr 22, 2009 10:22 am

Re: SPeccy ON the ZeddY

Post 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.
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post 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 416 times
ps: I try to incorporate also the novelties of the "bigbang" ROM
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
siggi
Posts: 1029
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post 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
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post 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
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
siggi
Posts: 1029
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post 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 390 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
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
siggi
Posts: 1029
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY: Graphics?

Post 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
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post 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
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
olofsen
Posts: 189
Joined: Wed Jan 08, 2014 12:29 pm

Re: SPeccy ON the ZeddY

Post 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 :)
Post Reply