Recent posts

Anyone know why I get the below error when trying to import Ianna.

You cannot view this attachment.

Amstrad CPC hardware / Display lag of LCDs and scaler...
Last post by eto - Yesterday at 23:44
If you get the impression that in some games, you just won't be as quick as you have been in the 80s, it's not necessarily a result of you getting old. It might also be, that your fancy LCD display just has a too big lag and your reactions are inaccurate, as you are watching a slightly time-delayed version of your own game.

CRTs by design have no lag. Whatever happens at the monitor port of your CPC will instantly have an effect on your monitor. Not so for modern LCDs. There are chips inside the displays which work on the data they are receiving and by this add a bit (or a bit too much) lag to the output of your CPC. This lag can be so low, that you will hardly notice. But it can easily be as high as 5 frames. Imagine that, you are looking at a bullet on your screen that's still far away, but for  your CPC you have already been hit and are dead already. You might make the game responsible for being too inaccurate - or think you are getting old - but in reality, it's just a crappy display lag.

There are options to test input lag, but I wanted to have something, that works on the CPC and is so easy, that it can be replicated with minimum effort.

The only hardware required to test your display is a LED, a resistor, a printer port connector, a short piece of ribbon cable and a phone that can make movies at 120 or 240fps.

To get a baseline of what you can expect, I have tested these displays and screen convertes, which I had access to:

  • LCD TV 15", Scart Input
  • LCD TV 15", Scart and VGA Input (15kHz compatible)
  • LCD TV 19", Scart
  • Benq 17" LCD (15kHz compatible)
  • Scart2HDMI converter (RGB compatible) (with 2 different TVs of the above)
  • GBS8200 Upscaler (with GBS Control mod installed)

What I would have loved to test, but couldn't, due to lack of hardware:

- Modern TV sets (my LCDs are at least 10 years old)

The tests were performed with the above mentioned, very simple set-up. The LED is connected to the printer port. The LED is switched on, then the screen is turned into bright yellow (ink switch) and after a few seconds back to dark blue. This gets repeated 5 times. The activity is filmed with an Iphone at 240fps and the videos then are analysed on a PC to identify the lag between the LED turning on and the change on screen being visible.

To "calibrate" the test and get an idea of the impact of the set-up and test program (BASIC) the first test was done using a CRT (CTM 644) which, by design, should not have any input lag.

I am aware this is not a perfect set-up and will most likely have a variation, but it's extremely simple to build and repeat, so anyone who is interested can easily repeat the test with his own equipment.


The CRT test revealed, that the set-up chosen has a quite constant baseline of 8ms between the LED turning on and the result being visible on the CRT.

Screens with direct input:

1) The Benq was closest to the CRT with 8-15ms of lag and an average of 12ms.
2) Both 15" LCD TVs followed closely with 13ms each (on SCART input)
3) The 15" LCD TV reached 15ms on its VGA input
4) The 19" LCD TV was last with over 100ms of lag


1) GBS 8200 plus GBS Control had a lag between 25 and 50ms, depending on the screen (Benq 17": 25ms, Dell 20": 33ms, 19" LCD TV: 50ms)
2) Scart2HDMI is at least 90ms and up to 130ms, depending on the scaling resolution and the display (with the 19" LCD TV again being slowest)

I also tested the GBS on a Laptop screen, which had a 60ms lag for dark->bright switches and 25ms for bright->dark switches.

First Conclusions:

  • If you want to be sure your display set-up performs well, you should test it.
  • Avoid Scart2HDMI solutions. Yes, they are easy to get, cheap and simple, but they will crush your gameplay. A 100ms lag is equivalent to a 5 frames delay.
  • GBS8200 with GBSControl mod was pretty good for a cheap sub 50€ solution and was adding less than a frame of lag. It requires some work though as you need to solder the GBS Control mod to it and need to put it inot a case.

Games / Retro-Sanctuary (Turrican)
Last post by ComSoft6128 - Yesterday at 20:36
Agree or disagree?

The other comparisons are also worth looking at but I yet had the time work thru all of them.
Programming / Re: Locomotive Shell 1.0 - Ext...
Last post by zhulien - Yesterday at 20:30
Just a short update.  I have it now reliably able to extend commands and edit them, list etc.  The only issue currently is that for extended commands, I have to modify where it works out line numbers so that while, wend and other loop constructs work (goto).  These actually have calculated and stored addresses and since I've now got support for multi-byte commands, i need to modify where it calculates these addresses.

As much as I think the Locomotive BASIC is ingenenious in the way it is coded, it is equally terrible.  I believe they were aiming for the best BASIC within 16kb - and I think they really did achieve that, but now we need to live with oddities because of that even though we now can extend it to 64kb or perhaps more.
Thanks for the info, very interesting.

If I specify @a%[0] in a CALL command (for a variable defined as "DIM a%[2]"), that after the CALL command, DE contains the address for the first data element and as you indicated the integer elements are stored contiguously but also IY contains the address of the variable name.

If, however, I specify @a[0] (for a variable defined as "DIM a[2]"), this appears to not work. DE contains the same address as above but the data is not there!

Quote from: ComSoft6128 on Yesterday at 13:17however it will not allow the user to run a BBS on a 6128.
Is the goal to run it on a CPC? Or a BBS that can be used by a CPC (and other computers)? I thought we are looking for a client program.

I would probably look for a BBS that can be run on a hosted webserver and supports telnet.

Btw: The M4 already has a telnet client:

There were one or two CPM BBS programs for the 6128 and the PCW but unfortunately I don't have any info on them.

The program that @eto has highlighted is an AMSDOS program and I used it for years to connect to BBS & eventually an email service, however it will not allow the user to run a BBS on a 6128.
At its core, a BBS just sends a text stream to your computer. To allow for a bit of styling it uses control characters/sequences. If these sequences follow a standard, any computer system that understands this standard will be compatible with your BBS. A typical standard was VT100 / ANSI

I just found this ANSI terminal for the Amstrad, which sounds promising:

However I do not really know how to set-up a BBS today, especially if you want to connect to it over the internet.
My article at should tell you everything you need to know about variable storage on the CPC.

There's no way to get the address of an entire array, whatever that would mean. But all the elements are stored contiguously, so if you get the address of @a[0] then the rest of the array will follow straight after.

The final table in the article gives details of when information is stored about the array structure. The downside is you'll have to walk it backwards but the size is variable depending on the number of dimensions.
Amstrad CPC hardware / Re: Easiest way to turn on/off...
Last post by eto - Yesterday at 12:03
Quote from: pelrun on Yesterday at 11:47You don't actually need to "calibrate" against a CRT. The latency there is (effectively) zero, as the electron beam is directly driven by the monitor output. It's orders of magnitude faster than the CPU can even do a single write operation, so there's nothing to measure.
Indeed, but I need it to calibrate my set-up. I'm not yet sure what is the correct way to turn on the LED and print something on screen. The set-up with the CRT will allow to do that in a way that I can make sure, the whole set-up is reliable. Or: if I don't manage to get it perfect and e.g. will always have 1 frame in my 240Hz video even with CRT, I will know that I have to deduct 1 frame from the LCD tests to compensate my imperfect set-up. 
Powered by SMFPacks Menu Editor Mod