[VG5000] struggling on converting binary files to k7

Cette catégorie traite de développements récents pour nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Carl, Papy.G, fneck

Répondre
Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

[VG5000] struggling on converting binary files to k7

Message par nitrofurano » 28 juil. 2013 00:17

hi,
as a next step on the VG5000 development, i started trying to code a binary to .k7 converter - it would embed a binary file into a .k7 image tape (i did a similar converter for zx-spectrum .tap file once) - for that converter, i used sdlBasic on Linux (later i'll recode it on Python)

http://pastebin.com/EBCM2aCg

the source and the result is in the attachment - and when i try to load the .k7 file with cload, it shows an error message "Ligne non définie" after "Trouvé:exampl"

maybe i needed to add a loader in Basic before, or enter "cload" in a different way? the idea would be about having that .bin file (compiled from Boriel's ZX-Basic Compiler) loaded and executed automatically, just like those good old games for VG5000 available in .k7 files as well

any ideas? thanks in advance! :)
Fichiers joints
example01.bin.k7.zip
(723 Octets) Téléchargé 40 fois

Markerror
Messages : 1350
Enregistré le : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par Markerror » 28 juil. 2013 08:06

Hello Paulo,

Unfortunately, the VG5000 can't execute binary files (that's seems weird, but it's like that).

Philips commercial games files are a mix of a basic file (with just the CALL &"xxxx" command) and the binary code.

Markerror

Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par nitrofurano » 28 juil. 2013 16:04

and how these .k7 files are saved, or, how the .k7 header (including a tokenized ‘CALL &"5000"’ (or whatever) somewhere ), that i could use as a template for having it automatically gererated from a script after getting compiled binaries from any cross-compiler, whatever Boriel's ZX-Basic Compiler, z88dk (a cross-c compiler), wla-dx (a cross-assembler), etc.

Markerror
Messages : 1350
Enregistré le : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par Markerror » 01 août 2013 13:58

Hi,

I spent a little time to create an example of a executable file for the VG5000. I think it may help you :-).

Markerror

; VG5000 header example
; T&J/GPA in july 2013 !

; Example of Z80 code launched automatically by a Basic CALL
; Same tchnic as the one used in commercial games from Philips
; Basic line is 10 CALL 18954 followed by asm code.

; Use WINAPE to create the K7 file, then load it in DCVG5K with
; classical CLOAD command. Press a key to clear the screen.
; No need to save HL and IX registers as the program does not
; return to Basic.

ORG &49D1
WRITE "TEST.K7"

length equ &3B ; length of the file (without header)
checksum equ &132F ; sum of datas between 'main' and 'file_footer'

; file header

db &D3,&D3,&D3,&D3,&D3,&D3,&D3,&D3,&D3,&D3,&4D,&56,&47,&35,&30,&30
db &30,&00
db &31,&30,&00,&00,&00 ; line 10 !
db &00,&00,&00,&FB,&49 ; &49FB = exec address of a Basic file
defw length
defw checksum
db &D6,&D6,&D6,&D6,&D6,&D6,&D6,&D6,&D6,&D6

; &49FB
; Basic file that calls binary code

db &00,&08,&4A,&0A,&00 ; line 10
db &9F,&31,&38,&39,&35,&34,&3A,&00 ; CALL 18954 / &4A0A
db &00,&00

; binary code
; &4A0A

main DI
LD HL,&4803
LD A,(color)
INC A
CP &8
JR NZ,main2
XOR A
main2
LD (color),A
LD C,A ; save bits 0 to 2

RLA ; rotation to set the color
RLA ; to bits 4 to 6
RLA
RLA
ADD A,C
OR &80 ; bit 7 on
LD (HL),A
CALL &9E ; should clear screen and fill it with new color

LD A,&1
LD (&47FB),A ; ask for screen refresh

EI
HALT


main1
CALL &32B7 ; scan key
AND A ; no key pressed ?
JR Z,main1
JR main

color db &00

; file_footer
db &00

Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par nitrofurano » 02 août 2013 22:32

thanks! :)

Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par nitrofurano » 02 août 2013 23:31

btw, based on your help, i tried what i'm sending in the attachment - tried to "cload", and it shows "Mauvais fichier"... - any clue? :S (thanks in advance again! :) )
Fichiers joints
vg5000_borielzxbasiccompiler_example01c.zip
(5.45 Kio) Téléchargé 46 fois

Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par nitrofurano » 02 août 2013 23:50

btw, perhaps the "mauvais fichier" error message appears because the checksum isn't considering the tokenized-basic bytes after the 0xD6 10 bytes sequence, and "main"? so i tried to add 576 to the checksum, and the error persists...
Fichiers joints
vg5000_borielzxbasiccompiler_example01c2.zip
(5.92 Kio) Téléchargé 40 fois

Markerror
Messages : 1350
Enregistré le : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par Markerror » 03 août 2013 10:15

Hi,

Gosh... You are right, the checksum must take datas from &49FB to file_footer, not main in my example...

I have fixed your test file example01.k7 and managed to load it correctly in memory.

Correct values for length and checksum are :

&15F
&9D27

When you encounter a checkum error, it display the message "Mauvais fichier"
If the length is wrong and the file too short comparing to the length value, it might just say "Trouvé <file>" then DcVG5K say that there is no more file on the K7 (not tested).

Markerror
Fichiers joints
Fixed_example01.zip
(418 Octets) Téléchargé 45 fois

Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par nitrofurano » 03 août 2013 12:04

yes, works! thanks! \o/ - this is a very significant goal in the cross-compiling development, at least in my humble viewpoint! :)
Fichiers joints
vg5000_borielzxbasiccompiler_example01d.zip
(6.04 Kio) Téléchargé 41 fois

Avatar du membre
nitrofurano
Messages : 95
Enregistré le : 26 juil. 2013 15:30
Localisation : Porto
Contact :

Re: [VG5000] struggling on converting binary files to k7

Message par nitrofurano » 03 août 2013 13:42

Markerror a écrit :I spent a little time to create an example of a executable file for the VG5000. I think it may help you :-).
(...)
Markerror, here in the attachment is your assembly snippet as inline-assembly into Boriel's ZX-Basic Compiler, which seems to work fine! :) - btw, do you know where from can i test more VG5000 snippets in assembly that i could use for Boriel's ZX-Basic Compiler development improvement? thanks! :)
Fichiers joints
vg5000_zxbasiccompiler_example01e_frommarkerror.zip
(5.99 Kio) Téléchargé 40 fois

Répondre