Vhd interface for victor hc90/95

صفحة 19/25
12 | 13 | 14 | 15 | 16 | 17 | 18 | | 20 | 21 | 22 | 23 | 24

بواسطة popolon_

Champion (420)

صورة popolon_

01-05-2023, 16:42

Is there anywhere rs-232 usage implementation in asm for MSX? Would need to be like server that just receives requests and gives commands towards vhd card and responds back to serial if response is needed. And what would be the max sustainable baud rate?

بواسطة popolon_

Champion (420)

صورة popolon_

02-05-2023, 20:18

Trying to dig C9D rom assembler code using ghidra deassembler. Checking the extensions provided. So C9D card provides basic extensions VP (for VHD), SUPER0/SUPER1/SUPER2/SUPER3/SUPER4 (for superimpose setting), and TP32 (for that RS-232 interface).
For example SUPER0 extension command (C9D provides that even though we have that implemented already in HC9x roms) there is a check if computer is MSX1 or not (address 0x2d read). And based on that there is different logic. So this would mean that the code for SUPER0 extension is same as in IF-7900 cartridge, or that at some point Victor made generic code (for that IF-7910?). Actually IF-7900 manual did not list SUPER0 command, only those 1-4. But is that just missing from manual?

بواسطة popolon_

Champion (420)

صورة popolon_

02-05-2023, 22:39

In C9D rom, there seems to be a also subcommand under VP that is not listed in IF-7900 manual.
At least i saw something like VP("VOL", A) parsing from disassembly.
Maybe also possible to give it as VP("VOL123"), but not sure as it seems only the inquiry commands are parsed in code, so visible in assembly. But not have today time to test it actually.

بواسطة popolon_

Champion (420)

صورة popolon_

03-05-2023, 08:41

_VP("VOL",A): PRINT A gives constant "1.4" output, so some version info? But those S1/2/3 already contained version info.

It is possible to give many subcommands inside one VP, separated by ":" char
e.g.
_VP("g1000:S+0")

بواسطة mars2000you

Enlighted (6555)

صورة mars2000you

03-05-2023, 09:11

popolon_ wrote:

_VP("VOL",A): PRINT A gives constant "1.4" output, so some version info? But those S1/2/3 already contained version info.

Probably more easy to use than decoding N2 and N3 bits of VHD system status and I think it refers to the firmware version, so it seems me different.

Probably the history of the versions is as follows:
- IF-7510 : version 1.0
- IF-7900 : version 1.1
- IF-7910 : version 1.2
- IF-C9C : version 1.3
- IF-C9D : version 1.4

But we don't know in which version (1.2, 1.3 or 1.4) the extra command has been added.

بواسطة mars2000you

Enlighted (6555)

صورة mars2000you

03-05-2023, 09:32

popolon_ wrote:

When finding out the current VP command logic towards I/O ports in C9D, i noticed that in C9D rom there is TP32 basic extension command, for that RS-232 interface.
Cannot verify it, but at least following gave I/O errors:
CALL TP32 ( A )
CALL TP32 ( A, B )
CALL TP32 ( A, B, C )
Not sure if those parameters are just strings, but those must not start with numbers. So maybe string variables can be given as input?

CALL TP32 is probably related to the use of this interface with a touch panel mentioned in Victor catalog and probably refers to the GD-M15T RGB monitor with touch panel. TP would mean "TOUCH PANEL" and I guess this instruction is to initialize the connection between the computer and the touch panel.

بواسطة popolon_

Champion (420)

صورة popolon_

03-05-2023, 21:22

There are similarity in MSX and X1.
-Both are sending string commands through I/O port with always ending "\r" -char.
-all command strings send towards I/O port seems to be same in MSX and X1, at least for game case. So even though the VP subcommand strings were not same, for example those S1,S2,S3 vs R1,R2,R3, the actual send string commands towards I/O port are same (R1,R2,R3). So is this co-incidence or did Victor made the code for sharp side also? Or somebody specified some interface at some point? but in X1 case there is no 8049 CPUs but HD6305X2P and HD6303RP CPUs.
-that RG in X1 game code (road blaster) is actually same string that MSX also sends towards VHD card I/O port when inquiring that frame/page number. MSX gets 3 bytes back from I/O port.
-in MSX case however 0x18 byte is send first before sending actual command string bytes.
-in X1 case it seems 0x18 byte is only send once during init, but not 100% sure.
But I have not located the RG usage in X1 game code, any other command usage can be found. Not sure how this RG is used/referenced in the asm code. I would have checked in what format it gets the data (in MSX case three bytes are read from I/O port).

بواسطة popolon_

Champion (420)

صورة popolon_

11-05-2023, 15:02

Yes! VHD book arrived. It is very usefull. 215 pages. It contains VHD interpeter language commands and example listings for basic.
And specs about how data is on AHD and VHDPC disk. Not going to scan it soon...
IMG_20230511_155541594_HDR.jpeg
IMG_20230511_155533014.jpeg

بواسطة mars2000you

Enlighted (6555)

صورة mars2000you

11-05-2023, 17:24

Probably not directly usable by MSX or X1 players, but aimed at developers creating VHD games for these systems. However, it is interesting to know how the data are written on the VHD of course.

بواسطة popolon_

Champion (420)

صورة popolon_

12-05-2023, 06:59

Anyway now i have keywords to look from X1 interpreter code. And there was also VP commands explained in same detail as in IF 7900 manual.

But it seems the reason why MSX and X1 sends same strings towards I/O port is that actually VHD player uses those. And book listes all command strings used, also for AHD specific.

And one curiosity is that in X1, there is speech syntesizer ic inside VO-20PC unit, and there is one command for that.

صفحة 19/25
12 | 13 | 14 | 15 | 16 | 17 | 18 | | 20 | 21 | 22 | 23 | 24