1K Real Chess for ZX80

Any discussions related to the creation of new hardware or software for the ZX80 or ZX81
Moggy
Posts: 3231
Joined: Wed Jun 18, 2008 2:00 pm

Re: ZX80 porting of Super Micro Chess 1K

Post by Moggy »

marste wrote: Sun Mar 19, 2017 12:13 am @Moggy: I'm Stefano! :)
Ha ha so I contacted YOU!!!! :lol:

Nice one Stefano touché. :D
User avatar
marste
Posts: 250
Joined: Sun Aug 10, 2014 9:58 pm
Location: Italy
Contact:

Re: ZX80 porting of Super Micro Chess 1K

Post by marste »

Moggy wrote: Sat Mar 18, 2017 11:39 pm Either way please persevere marste as quite a few of us would be grateful for your efforts,we have the original but poor game play 1k chess for the ZX80 so this much superior version would be very much appreciated /
As before (Super Micro Chess is the only program I ever did on ZX81) it will take some time for me to understand the platform, but I’m convinced it can be made in some way. I need just some time to work it on, and the support of this fantastic community! :)
Moggy
Posts: 3231
Joined: Wed Jun 18, 2008 2:00 pm

Re: ZX80 porting of Super Micro Chess 1K

Post by Moggy »

While I do not have the skills to help there are many here who do and I'm sure they will help but you have my full support for this most enjoyable version. :D

I think there are two Stefanos also and I confused you with the other one! :oops:
User avatar
marste
Posts: 250
Joined: Sun Aug 10, 2014 9:58 pm
Location: Italy
Contact:

Re: ZX80 porting of Super Micro Chess 1K

Post by marste »

FIrst willing to add the difference expressed by fruitcake (but lost because of focusing on display routine):
7. some graphic characters have different character codes

Second, seems to me that the routines $01AB and $01D0 are not reading keyboard (in LAST_K at $4026) and without it I would have to reimplement this logic (simple - I need just the "row" - but consuming few precious bytes)... Is it possible instead to call the $013C? And in case, what will be the proper way to call it?
User avatar
marste
Posts: 250
Joined: Sun Aug 10, 2014 9:58 pm
Location: Italy
Contact:

Re: ZX80 porting of Super Micro Chess 1K

Post by marste »

marste wrote: Sat Mar 25, 2017 10:48 pm Second, seems to me that the routines $01AB and $01D0 are not reading keyboard (in LAST_K at $4026) and without it I would have to reimplement this logic (simple - I need just the "row" - but consuming few precious bytes)... Is it possible instead to call the $013C? And in case, what will be the proper way to call it?
$0196 seems even better taking care of a lot of initializations:

Code: Select all

L0196:
        OUT     ($FF),A         ;; (11) stops the VSYNC pulse

        LD      A,$EC           ;; ( 7) the value for R register
        LD      B,$19           ;; there are 25 HALTs including the initial
                                ;; one.
        LD      HL,($400C)      ;; point HL to D-FILE the first HALT
                                ;; instruction.
        SET     7,H             ;; now point to the DFILE echo in the 
                                ;; top 32K of address space.

        CALL    L01AD           ;; routine DISP-2

        LD      A,$F3           ;; prepare to set the R refresh register to $F3.
        INC     B               ;; increment the line count
        DEC     HL              ;; decrement screen address.
        DEC     (IY+$23)        ;; decrement RESULT_hi the blank line counter.
        JR      L013C           ;; back to display and read
Did someone used it?
(I mean, can it be called from a user program?)
User avatar
marste
Posts: 250
Joined: Sun Aug 10, 2014 9:58 pm
Location: Italy
Contact:

Re: ZX80 porting of Super Micro Chess 1K

Post by marste »

Today I was a bit sad so I did a deep session on this project to forget things. The result is the Super Micro Chess ZX80 Technology Preview! :)
zx80sm1k.o
(829 Bytes) Downloaded 145 times

Things are almost running. I had to remove a lot of ballast (150 bytes more or less) in order to have the required space, and restructure even more than I thought the main loop with move input, with what hopefully will become - not sure if now is already - a flicker free display! :)

This impacted the initial move logic but overall gameplay should be similar. Even more, I made something more efficient so should even be a bit quicker.

Strange thing is that is running on one emulator (no$zx) but not the other (EightyOne). @Moggy or other ZX80 users: can you describe me what is happening on a real ZX80? (soon I'll have the possibility to test it also myself thanks to a nice person that offered to fix and "elaborate" my ZX81! :))

If on the real ZX80 is working, meaning the program is running and display is visible, the remaining bugs should not be so difficult to be removed. Let's hope, else I would wait to be able to test myself with a deep debugging session...
Moggy
Posts: 3231
Joined: Wed Jun 18, 2008 2:00 pm

Re: ZX80 porting of Super Micro Chess 1K

Post by Moggy »

Great stuff Marste will test tonight. :D
Moggy
Posts: 3231
Joined: Wed Jun 18, 2008 2:00 pm

Re: ZX80 porting of Super Micro Chess 1K

Post by Moggy »

@Marste

I tried this on no$zx like you did and after a few moves white stopped moving at all.

I then tried on real ZX80 and all you get is the"K" cursor, no listing and when you type RUN you get error code 0/118. :(
User avatar
marste
Posts: 250
Joined: Sun Aug 10, 2014 9:58 pm
Location: Italy
Contact:

Re: ZX80 porting of Super Micro Chess 1K

Post by marste »

Seems then that eightyone behaviors were closer to the real one, and no$zx was not accurate enough despite autorun management...

Peaty.

Seems that despite being more simple it is not emulated very well!

I have to make more tests with a real (or almost real) one....
Moggy
Posts: 3231
Joined: Wed Jun 18, 2008 2:00 pm

Re: ZX80 porting of Super Micro Chess 1K

Post by Moggy »

marste wrote: Fri Apr 07, 2017 12:21 am Seems then that eightyone behaviors were closer to the real one, and no$zx was not accurate enough despite autorun management...

Peaty.

Seems that despite being more simple it is not emulated very well!

I have to make more tests with a real (or almost real) one....
Are you using ZX81 with 5 resistors on the CPU and ZX80 ROM as your "ZX80"?

If so it works very well but you have to power on/off a few times to make it run, something to do with stopping the NMI.
I think a slightly larger capacitor is needed to delay CPU reset but it is a good way to make a ZX80.

I tried SZ81 emulator also and it did not work with this.

Many thanks for your time and efforts Marste it is very much appreciated. :D
Post Reply