Well, this page is all about DVE, DOS VECTREX EMULATOR, by Keith Wilkins.
Minor changes done by Malban.
There are still some 'features' not emulated.
Actually nobody will probably ever need these features, since they never
occur in any 'real' cartridge.
But I also had in mind to use the emulator as a development platform for
writing new vectrex games. In order to achieve an ambitious goal like that, it
would be nice if the emulator actually emulated all features of the vectrex,
even the 'strange' behaviour ones... .
Since I'm in no way a technical person I need some help.
This is where you might come handy :-) If you are a knowledgeable person.
Perhaps you only want to peek at these pages and look what the emulator can
and can't yet do... that's all right also.
If you are a becoming vectrex programmer you might even find some usefull
information to avoid 'traps'.
; this game was written in April 1998 by Malban
; it is public domain
;
; comments and vectrex talk are welcome
; my email: Malban@email.de
;
;
; following command line was used to assemble:
;
; C:>as09.exe -w200 -h0 -l -mcti test.asm >error
;
; I used the 6809 assembler:
; as09 [1.11].
; Copyright 1990-1994, Frank A. Vorstenbosch, Kingswood Software.
; Available at:
; http://www.falstaff.demon.co.uk/cross.html
;
; some OS functions
Wait_Recal EQU $F192 ;
Dot_here EQU $F2C5 ;
Intensity_a EQU $F2AB ;
Moveto_d EQU $F312 ;
music7 EQU $FEC6 ;
; VIA registers...
VIA_t1_cnt_lo EQU $D004 ; VIA timer 1 count register lo
; (scale factor)
;***************************************************************************
ORG 0
; start of vectrex memory with cartridge name...
DB "g GCE 1998", $80 ; 'g' is copyright sign
DW music7 ; music from the rom
DB $F8, $50, $20, -$46 ; hight, width, rel y, rel x
; (from 0,0)
DB "VECTREX TEST", $80 ; some game information,
; ending with $80
DB $F8, $50, $5, -$20 ; hight, width, rel y, rel x
; (from 0,0)
DB "MALBAN", $80 ; some game information,
; ending with $80
DB 0 ; end of game header
;***************************************************************************
; here the cartridge program starts off
entry_point:
LDD #$b898 ; this is $98b8 which is
; 39096 cycles
STD $C83D ; setting the refresh timer,
; appr. 26Hz
LDA #$ff ; scale of $ff
STA VIA_t1_cnt_lo ; set to the scaling 'poke'
LDA #$7f ; load maximum brighness
JSR Intensity_a ; and set it
round_entry:
JSR Wait_Recal ; first of, allways do a recall
JSR Dot_here ; now 'print' a supposed dot to 0, 0
LDD #$0000 ; CLR D (move to no position)
; zero is taken correctly as zero,
; the OS doesn't do a stupid '-'
; and thinks it's a '255', it correctly
; tests for positive or negative,
; so a 0, 0 is ok here
JSR Moveto_d ; now move another (relative) 0, 0
JSR Dot_here ; print another dot
LDB #10 ; wait for 10*255 'delays'
JSR wait_256_B ; quite a few cycles...
; (10000? 20000? dunno)
JSR Dot_here ; and another dot
BRA round_entry ; restart everything!
;***************************************************************************
; a small nothing destroying (apart from flags)
; wait routine
wait_256_1:
PSHS A ; save A
LDA #255 ; loop 255
wait_256_1_loop:
DECA ; decrement 1
BNE wait_256_1_loop ; if not zero... go on
PULS A ; restore A
RTS ; and go back
;***************************************************************************
; a small nothing destroying (apart from flags)
; wait routine, b times the above smaller wait...
wait_256_B:
PSHS B ; save B
wait_256_B_loop:
JSR wait_256_1 ; do one 255 waiter
DECB ; decrement counter
BNE wait_256_B_loop ; if not 0 do another loop
PULS B ; restore B
RTS ; and go back
;***************************************************************************
END entry_point
;***************************************************************************
In order to compile the above test program you need, the above mentioned assembler, go get it at its homepage:
http://www.falstaff.demon.co.uk/cross.html In order to run DVE, you gotta have it first, look at my homepage for it for the newest (probably beta) version: vectrexcs/ Schematics and technical information can be found on many vectrex concerning pages. e.g.: http://www.monmouth.com/~pcjohn
http://website.lineone.net/~raven
ftp://ftp.csus.edu/pub/vectrex/
Malban