|
Post by jedie on Aug 29, 2014 10:41:42 GMT -5
I have created DragonPy: github.com/jedie/DragonPyIt's a Open Source Emulator for 6809 CPU based system like Dragon 32 / CoCo written in Python... The Vectrex used also the 6809 CPU and it seems that i must only implement the 6522 interface adapter... So it should be manageable complicated to support a Vectrex in DragonPy, too. Maybe it will be not really playable. Because to timing... But maybe it would be just interesting. So my first question: Where can i find the origin, latest version of the system ROM? (Or does it only exist a initial release of the ROM without any update?) I found vectrex.tar.Z from www.vectrex.com/Mirrors/FTP_Mirror/ and the exec.com has the SHA-1 is c34c67a35fd5ffef8fd2127411f00d2bddd5dc51 and has a size of 4KB On www.vectrexworld.com/#!emu-roms-and-overlays/c84h i found the link put system.img in the map bios/vectrex -> dl.dropboxusercontent.com/u/109462691/vectrex/SYSTEM.zip It contains a 8KB file called SYSTEM.IMG with SHA1: 65d07426b520ddd3115d40f255511e0fd2e20ae7 I also found the old DOS Emulator dve004 it has the same 8KB SYSTEM.IMG file... I found www.playvectrex.com/designit/chrissalo/bios.htm the disassembly of the Vectrex ROM. It says "4KB BIOS"... www.playvectrex.com/designit/fredtaft/vecprogman_v1.pdf says ROM contains the resident game ‘Mine Storm’ and the Executive.So, contains the 8KB SYSTEM.IMG file the 4KB BIOS and a 4KB GAME ?!?! The disassembly refer a "VECTREX.INC", where can i find it?
|
|
|
Post by kokovec on Aug 30, 2014 0:24:10 GMT -5
I believe that's the ROM. There's also the DAC,MUX,RAM, and deflector circuitry that might need to be emulated. Not to mention the joysticks.
It's awesome that you made a Python 6809 emulator.
|
|
|
Post by christophertumber on Aug 30, 2014 0:35:24 GMT -5
SYSTEM.IMG is the internal ROM. It is essentially the boot loader or Operating System. It includes both the BIOS and Minestorm game.
You probably don't need the source code, however VECTREX.INC will be the include file of the disassembly. Should be available from the same place.
BTW, you will also need to emulate the AY-3-8912 if you want sound.
|
|
|
Post by jedie on Aug 30, 2014 6:17:47 GMT -5
I haven't made anything with sound. IMHO it will be problematic to support sound, because of timing.
Where can i find more information about DAC and MUX ?!?
|
|
|
Post by jedie on Aug 31, 2014 15:08:37 GMT -5
I just started to add vertex, with: github.com/jedie/DragonPy/commit/65539a7057ea42deec3efc56b74b0d131504f8ae The 6522 is only a dummy implementation. So you will not see anything. But it is possible to "see" the startup trace lines. Only the read/write to 6522 output looks like this: MainProcess/CPU-Thread f151| TODO: 6522 write $9f to $d002 MainProcess/CPU-Thread f151| TODO: 6522 write $ff to $d003 MainProcess/CPU-Thread f156| TODO: 6522 write $01 to $d000 MainProcess/CPU-Thread f156| TODO: 6522 write $00 to $d001 MainProcess/CPU-Thread f15b| TODO: 6522 write $98 to $d00b MainProcess/CPU-Thread f15d| TODO: 6522 write $7f to $d004 MainProcess/CPU-Thread f357| TODO: 6522 write $cc to $d00c MainProcess/CPU-Thread f359| TODO: 6522 write $00 to $d00a MainProcess/CPU-Thread f35e| TODO: 6522 write $00 to $d001 MainProcess/CPU-Thread f360| TODO: 6522 write $03 to $d000 MainProcess/CPU-Thread f362| TODO: 6522 write $02 to $d000 MainProcess/CPU-Thread f364| TODO: 6522 write $02 to $d000 MainProcess/CPU-Thread f368| TODO: 6522 write $01 to $d000 MainProcess/CPU-Thread f1a5| TODO: 6522 write $30 to $d008 MainProcess/CPU-Thread f1a5| TODO: 6522 write $75 to $d009 MainProcess/CPU-Thread f30e| TODO: 6522 write $ff to $d004 MainProcess/CPU-Thread f312| TODO: 6522 write $7f to $d001 MainProcess/CPU-Thread f314| TODO: 6522 write $00 to $d000 MainProcess/CPU-Thread f31a| TODO: 6522 write $ce to $d00c MainProcess/CPU-Thread f31c| TODO: 6522 write $00 to $d00a MainProcess/CPU-Thread f31e| TODO: 6522 read byte from $d000 - Send 0x00 back MainProcess/CPU-Thread f31e| TODO: 6522 write $01 to $d000 MainProcess/CPU-Thread f320| TODO: 6522 write $7f to $d001 MainProcess/CPU-Thread f322| TODO: 6522 write $00 to $d005 MainProcess/CPU-Thread f33d| TODO: 6522 read byte from $d00d - Send 0x00 back MainProcess/CPU-Thread f33d| TODO: 6522 read byte from $d00d - Send 0x00 back MainProcess/CPU-Thread f33d| TODO: 6522 read byte from $d00d - Send 0x00 back
|
|
alx
Vector Runner
Posts: 10
|
Post by alx on Sept 1, 2014 7:43:02 GMT -5
I've just looked a little bit into it: - d800-dfff accesses ram+via simultaneously! (not a good idea) - 8000-c7ff can also be used by a cartridge - the ram is shadowed every 1k - the via is shadowed every 16 bytes - the vector table looks not right (i.e. reset vector is at $fffe and the bios let it point to $f000) - the cartridge can be written to (some cartridges have their own ram)
|
|
|
Post by kokovec on Sept 7, 2014 12:55:39 GMT -5
- the cartridge can be written to (some cartridges have their own ram) On that last point I took advantage of that fact and got Coco Extended Basic running on the Vectrex using a 32K nvSRAM chip. The BASIC code took up 14K of space so that left 18K of user BASIC memory. I modified the native "PLAY" command to work with the Vectrex BIOS routines but never got around to the drawing routines. The prototype board This is the PCB which I have yet to populate. Here you can see the cart programmer and Vectrex serial/USB adapter which allows the Vec to output to a PC terminal
|
|
|
Post by kokovec on Sept 7, 2014 12:57:08 GMT -5
And here's an example of a BASIC program running on the Vectrex using extended basic commands.
|
|