Jump to content

nippur72's Photo


Member Since 13 Jan 2012
OFFLINE Last Active Yesterday, 9:46 AM

Posts I've Made

In Topic: Any info on Video Technology Laser 500 computer?

Fri Sep 14, 2018 10:04 AM

another little discovery: from a picture of a Laser 770 (link below) it can be seen that such machine has no expansion slot; in its place there are the two disk drive connectors. The missing expansion slot means it cannot load external ROMs implying the DOS ROM must be onboard. 


So the ROM labeled "VTL 27-0401-00-00 // 6133-7081 // 8611MAK" in MESS/MAME is wrong, the label is from Laser 700 but the dumped content is from Laser 350/500.



In Topic: Any info on Video Technology Laser 500 computer?

Wed Sep 12, 2018 3:31 PM

In order to get precise timings for my emulator, I hooked the interrupt vector and used the raster line as a reference. The idea was to change the screen colors, perform delay loops see where the raster is tracing. I did that first on the real hardware and then on the emulator, adjusting the timings accordingly.


In the process I've discovered a number of interesting things:

- there are 576 visible scanlines plus 24 hidden, for a total of 625 lines (standard PAL)

- each scanline is repeated twice, thus halving the vertical resolution

- the CPU NMI interrupt is generated at the end of the 576th line, not at 625 as I believed (this is good because that gives extra CPU time for videogames)

- the visible text area (24 character rows) is not centered vertically, it is one row up (5 chars above, 7 chars below).

- the Z80 cpu executes 190 clock cycles per scanline


Now here is where my calculations do fail: 190 cycles x (576/2) x 50 Hz = 2736000 = ~ 2.7 Mhz which is much below the 3.6 Mhz of the theoretical CPU speed. Where is the missing Megahertz?


And I am pretty sure of the timings because the emulator speed matches precisely the real hardware. Perhaps it's the time spent fetching/decoding the instruction? Or am I missing something else?

In the picture below, I change color to yellow at the start of the NMI interrupt, then wait a bit and change to red/gray. This is how I measured the time elapsed in drawing the screen. On a separate measure I tried to wait to the last scanlines to assess where the frame ends. Since the CPU is locked in the delay, the cursor became very laggy and unresponsive. Waiting too much caused the interrupt routine to skip a beat and show flashing colors.


In Topic: Any info on Video Technology Laser 500 computer?

Wed Sep 12, 2018 10:12 AM

Trying to emulate as accurate as possible, I noticed there is a little "snow" effect when you switch the video to the missing page 3 (available only on L350). That happens only when keys on the keyboard are pressed. Do you have any explanation why this happens?


Of course switching to page 3 it's of no use since the screen goes all white due to 0xFF being constantly read on the data bus. It's just a curiosity.


Try it yourself:

OUT &H44, 8

In Topic: Any info on Video Technology Laser 500 computer?

Wed Sep 12, 2018 9:43 AM

@carlsson, yes the joysticks were the JS20 in the picture, they attached to the expansion slot (not memory expansion). If I remember well it is the same port we attached the printer, the plotter and the light pen. I think it is connected directly to the I/O ports of the Z80. 

@Bonstra ok for the keyboard, thanks, I got it working now... it was the most difficult part. It responds only to 6800-6fff (when mapped in bank 2) not to just any address in the 16K space. I also believe they added the extra lines when they decided to move from 350 to 500. Indeed the 350 is a 500 in a 310 case which does not have "extended" keys. The ROM is able to detect which machine is running depending on the availability of bank 3. If bank 3 is found then Laser 350 is assumed and the "KEY n" basic command is disabled.

The emulator is almost finished, I only have to fix minor details (exact timings etc). It's very handy when doing cross development, it's much more quick and accurate than MAME.

In Topic: Any info on Video Technology Laser 500 computer?

Tue Sep 11, 2018 5:37 AM

I just reverse engineered the joysticks: they are port &h2b (directions+fire1) and &h27 (fire2) in negated logic