NEXT SD Card v.0.8e / NextZXOS v.1.99F / Core 1.10.051 / Firmware v.1.10

TBBLUE SD Distribution v.0.8e:

Latest distribution is always found at

Here’s the latest SD image with everything you need to get your Next updated and running!

IT IS RECOMMENDED TO PERFORM AN AB FLASHING to get you up and running as the Updater method may not work for all!!!!


As seen by the annoyingly huge letters above, this is a MAJOR update of the core (it’s so major I skipped over 0.8D!), firmware and system software. READ CAREFULLY below!!!!

In the links below you will find TBBLUE v.0.8e SD card distribution containing the following changes over version 0.8c:

System Software

  • New Firmware file 1.10 which adds support for Sega Megadrive 3 and 6 button pads, includes a credits screen (yes you Super Backers your name IS THERE – you earned it!) and HELP text for the first time. It also now includes the subversion (ie. 051) during the update process and more descriptive error messages if you use an older core which isn’t supported.
    This core also fixes a random corruption that occurred in the config.ini file in cards that were formatted with cluster sizes other than 16K and 32K.
    NOTICE: This firmware file exposed a long standing core bug which may require you to press F1 twice (or F1 and F4 in sequence) to hard reset to avoid error messages such as: “Error reading TBBLUE.FW” that can occur during boot. This is more of an annoyance than a bug, (it will be fixed in the following core version) and doesn’t affect your work in any way, so the team deems it production-worthy as it only affects boots after the initial one (ie after pressing F1). 
  • New Core v.1.10.51 (AKA: Don’t_get_dizzy_because_here_we_go – Read below)
    It is now safe to use nextreg, Copper or DMA to write to the hw registers. The conflict present in the previous public version of the core has been resolved where the Z80, copper and DMA attempt to access the hardware registers at the same time.
    A second Kempston port (IN 55 – 0x37) has been added which follows the same format as port 31 (0x1F).
    Supports Sega Megadrive 3 (and 6) button Joypads. Currently 4 buttons can be used at maximum. The buttons are returned by reading the Kempston joystick ports (IN 31 / IN 55). Sega 6 XYZ buttons are mirrored on ABC. The ‘MODE’ button on a Sega 6 pad cannot be read.
    Bits 7..0 are as follows:
    7: START
    6: A / X
    5: C / Z
    4: B / Y
    3: UP
    2: DOWN
    1: LEFT
    0: RIGHTThe following register has been updated to include these extra joypad modes.(R/W) 0x05 (05) => Peripheral 1 setting:
    bits 7-6 = joystick 1 mode (LSB)
    bits 5-4 = joystick 2 mode (LSB)
    bit 3 = joystick 1 mode (MSB)
    bit 2 = 50/60 Hz mode (0 = 50Hz, 1 = 60Hz)(0 after a PoR or Hard-reset)
    bit 1 = joystick 2 mode (MSB)
    bit 0 = Enable Scandoubler (1 = enabled)(1 after a PoR or Hard-reset)
    Joysticks modes:

    000 = Sinclair 2 (67890)
    001 = Kempston 1 (port 0x1F)
    010 = Cursor (56780)
    011 = Sinclair 1 (12345)
    100 = Kempston 2 (port 0x37)
    101 = MD 1 (3 or 6 button joystick port 0x1F)
    110 = MD 2 (3 or 6 button joystick port 0x37)

    The DAC has been updated to use the full 8 bits as it was previously using 7 bits significantly updating its quality.
    The DMA pre-scaler has also been fixed allowing BURST mode to function correctly as cycles are given to the Z80 to continue executing code.
    Mouse support has been greatly enhanced: It is now possible (for users of membrane keyboards) to plug in a PS/2 mouse directly into the PS/2 port without a splitter. CONFIG.INI setting PS2 should be set to 1 when plugging the mouse in directly into the board. REMEMBER TO PLUG IN THE MOUSE WITH THE POWER OFF!!!
    Mouse reading has been improved for smoother response by improving its polling and furthermore the ability to read the wheel for mice that have it is available on Kempston mouse register 0xFADF which returns the mouse wheel information. The value is 4 bits (0..15) and is returned in the top nibble (bits 7..4). It is the change since the last read as in X and Y.
    The palette can now be read using the PAL9 register!
    In the RPi accelerator port we have significant developments: TKPie support has been removed and replaced with a new SPI RPi interface. Also now RPi0Ws are finally supported
    Fans of SCANLINES (not me!) rejoice!!!! There are now 3 levels of scanline intensities as well as OFF (25%, 50% and 75%) to suit even your most twisted retro appetites!!! There’s also a new register and a change:
    Bit 1 of register 0x05 (Enabled scanlines) has been re-assigned to joystick control. The following register has been added with four possible scanline modes:

    (R/W) 0x09 (09) => Peripheral 4 setting:
    bits 7-2 = Reserved, must be 0
    bits 1-0 = scanlines (0 after a PoR or Hard-reset)
    00 = scanlines off
    01 = scanlines 75%
    10 = scanlines 50%
    11 = scanlines 25%

    Sprites received the update treatment as well: The sprite transparency now behaves as previously documented. The previous global transparency colour register does not affect sprites:

    (R/W) 0x14 (20) => Global transparency color
    bits 7-0 = Transparency color value (0xE3 after a reset)
    (Note this value is 8-bit only, so the transparency is compared only by the MSB bits of the final colour)
    (Note2 this only affects Layer 2, ULA and LoRes. Sprites uses register 0x4B for transparency)

    The sprites have now a new register for sprite transparency. Unlike the Global Transparency Colour register this refers to an index and  should be set when using indices other than 0xE3:

    (R/W) 0x4B (75) => Transparency index for Sprites
    bits 7-0 = Set the index value. (0XE3 after a reset)

    Timing has also been vastly improved and the ability to disable RAM contention has been added to improve performance using Bit 6 of the Peripheral 3 setting register

    (R/W) 0x08 (08) => Peripheral 3 setting:
    bit 7 = 128K paging enable (inverse of port 0x7ffd, bit 5)
    Unlike the paging lock in port 0x7ffd,
    this may be enabled or disabled at any time.
    Use “1” to disable the locked paging.
    bit 6 = “1” to disable RAM contention. (0 after a reset)
    bit 5 = Stereo mode (0 = ABC, 1 = ACB)(0 after a PoR or Hard-reset)
    bit 4 = Enable internal speaker (1 = enabled)(1 after a PoR or Hard-reset)
    bit 3 = Enable Specdrum/Covox (1 = enabled)(0 after a PoR or Hard-reset)
    bit 2 = Enable Timex modes (1 = enabled)(0 after a PoR or Hard-reset)
    bit 1 = Enable TurboSound (1 = enabled)(0 after a PoR or Hard-reset)
    bit 0 = Reserved, must be 0

    In the comms front, the UART buffer has been increased to 512 BYTES to improve data transfers.

    Window Clipping has been improved by fixing a couple of bugs. As a result the clipping window is now functioning as it should and transparency behaves correctly outside of said window.

    There have also been a few (translation: a lot) changes to the Z80N instruction set!
    There’s a new opcode: LDWS (LoaD Wasp Special) (0xED 0xA5), (DE) = (HL) : D++ : L++ 14Ts. BC is not modified. Flags are set as if an INC D instruction was executed. LDWS was suggested by Lyndon Sharp of WASP and can be seen in action in a couple of demos included in the distribution.
    OUTINB opcode has been fixed. OUTINB (0xED 0x90) 16Ts. This opcode had a bug and was deemed initially obsolete but was later found to be useful for copper and DMA program transfers as it does not increment the B register as OUTI does thus saving T cycles in the process.
    Finally the following opcodes have been removed as deemed redundant (via committee; you know what they say about committees – plus there are two many double consonants):
    POP x 0xED 0x8B and MIRROR DE 0xED 0x26

  • Updated NextΖΧOS 1.99F as always in two versions: one with Geoff Wearmouth’s Looking Glass v. 1.07 48K ROM (Default) which now brings keyboard support in line with what NextBASIC does (and fixes several bugs) and one with the standard 48K ROM. This is another MAJOR version that implements a myriad new features. Immediately obvious ones is the MultiFace-Like function (just press the M1 button and you’re there!), the Help screens upon boot, support for .nex files and of course the NEW NAME! Say HELLO to NextZXOS and please read CAREFULLY the document listed in the c:/docs/ folder as your program may be impacted. This version also includes new commands and guess what??? ZXZVM! So yeah, you can play Zork!!! Run to the Interactive Fiction archive and download EVERYTHING! (Yeah I know, just for that the update is TOTALLY worth it!)
  • Updated Looking Glass v.1.07 48K ROM by Geoff Wearmouth with improved compatibility (see above) has added features and as always further optimisations! 


  • Updated Dreamworld Pogie/Next Playable Demo by WASP Studios. This is a playable alpha version of the Kickstarter stretch goal release title. WASP-CopperAudio in this demo is FULLY functioning and the pace is frenetic! New portal design and bouncy mushrooms plus coins and points to be gathered here! CAUTION. YOU NEED A FRESHLY FORMATTED CARD or to use the new DEFRAG dot command because streaming audio will not work otherwise. Also note that both versions (this one and the previous one) are included under the same folder
  • Updated Warhawk/Next by Michael “Flash” Ware/Jim Bagley/Lobo Trans/Space Fractal. NOW sporting a total of 4 (yep count them, four!) levels and finally available in the new .nex format! (The old one is left in there for comparison as well, but you don’t really want to play that do you?)
  • Updated Nextoid! by Lampros Potamianos. NOW SUPPORTING KEMPSTON Joystick!!!! Just play it. You know you wanna!
  • New Darkstar/Next by Simon Brattel. The classic game, updated for the Next. Now includes ParaSys tidbits to let the code be examined remotely by Simon’s excellent Zeus dev system. You play an excellent game and learn a thing or two about remote debugging. One-two punch! Can’t beat this! Also. Go. Get. A. Cable. Oh and Zeus! Get Zeus! QUICK!


  • New Nxttel2 demo by SevenFFF / Robin Verhagen-Guest. Demo of the upcoming teletext terminal.
  • New Widescreen demo by SevenFFF / Robin Verhagen-Guest. An impressive demo of a true 320×192 screen; with a technique theorised a while ago but attempted here for the first time!
  • New “PaletteCycle” demo by David Saphier. As always emook is going to town with gfx AND sound. Enjoy responsibly!
  • New “BasicWindows” demo by Garry Lancaster. At last windowing facilities as per on the +3e via NextBASIC!
  • New “NextDAW” demo by Gari Biasillo. A full featured Digital Audio Workstation for the Next with a 20 min. time restriction on use and save disabled but with full editing capabilities for 9 channel audio goodness! Go on, release your inner Yianni! REQUIRES A MOUSE so now’s your chance to get one (and try the new PS2=1 option discussed above! Yep, I’m replugging the new core here; so sue me!)


  • New RUN “dot command” by Allen Albright. Introduces a path variable to NextZXOS and allows a search and launch of files via the command line.
  • New SPREDT “dot command” by Jim Bagley. Launches Jim’s sprite editor.
  • New NEXLOAD “dot command” by Jim Bagley. Allows programs compiled in the new .NEX “bigfile” format to be launched.
  • New DEFRAG “dot command” by Garry Lancaster. You need this; you did not know why but you do need this! Streaming facilities on NextZXOS will require unfragmented files to perform well (as seen on the latest Dreamworld Pogie included here). DEFRAG does exactly that! Say “Thank You” to Mr. Lancaster.
  • New NDAWPLAY “dot command” by Gari Biasillo. A player for NextDAW generated music files (see above).
  • Updated Next Plus Pack and drivers by Tim Gilberts. New mouse stuff? It’s got it. Updated UART support. Yup that too! RTC? It’s keeping with the times… Oh and source code. He’s awesome I know! Networking? It’s getting there. Huge hurrah for our resident Internet Guru!
  • New $  “dot command” by Garry Lancaster. Allows you to execute any other dot command with a BASIC string instead of literal arguments.
  • New LFN “dot command” by Garry Lancaster. Shows the long filename for any short filename.
  • New MEM “dot command” by Garry Lancaster.  Shows the amount of memory in your Next and how much is currently in use.
  • New MKP3D “dot command” by Garry Lancaster. Creates a virtual +3DOS drive image for use with +3 and (not quite yet, but in the fullness of time!) CP/M software.
  • New MKSWAP “dot command” by Garry Lancaster. Creates a swap file for use by machine-code +3e and Next software.
  • New TIMETEST utility by Kev Brady. Tests raster timing and Ts per frame.
  • New KEMPSTONTEST utility by Kev Brady. Tests joysticks and mice (and wheels) per Kempston standard. Also displays (handily so) core info and video resolution.


Prepare the card as per the instructions here. Firmware file will be replaced.

********BIG LETTER WARNINGS*********

USERS OF FlashAir CARDS are advised to perform ALL file copy operations locally on their PC/MAC and NOT over the air.

*******IMPORTANT NOTES**********

  • If your current firmware is older than 1.10.10 you may experience issues with your keyboard and/or display. Please follow the expanded instructions in the previous versions of the TBBLUE distributions and the Quick Start guide here to flash your core or the quick instructions on step #2 below. (Try the instructions below first and if you get stuck check the previous versions)
  • Default config.ini settings assume an HDMI monitor. If you’re using a VGA monitor you should delete your config.ini file located in c:/tbblue/ and replace it with either of the config.ini.VGA.50Hz or  config.ini.VGA.60Hz files (also located there) renamed to config.ini.  YOU ARE STRONGLY ADVISED TO EXPERIMENT WITH DIFFERENT DISPLAY SETTINGS (Display modes 0 to 6 that is) TO ACHIEVE THE BEST RESULTS FOR YOUR DISPLAY AS THE DEFAULT CHOSEN (HDMI) ALTERS THE TIMINGS SLIGHTLY AND CERTAIN –OLDER– PROGRAMS MAY NOT DISPLAY PROPERLY (especially certain Demos). VGA modes (Settings 0…6) ARE  timing accurate although the user may experience faster execution as each setting with the exception of 0 makes things faster (but keeping timings relative)

Flashing the new core

WARNING (again; it’s getting annoying I KNOW!):

THE INSTRUCTIONS BELOW ARE GENERIC AND APPLY TO ALL DISTRIBUTIONS. HOWEVER FOR THIS ***MAJOR*** (we’ve said that many times but I hope you get it this time for certain) UPDATE, the AntiBrick (AB) update method IS RECOMMENDED (and in some cases required). So SKIP DIRECTLY TO THAT UNLESS YOU KNOW WHAT THE HECK YOU’RE DOING! You HAVE BEEN WARNED!

1. For people with functioning keyboards after boot and/or membranes (but which also have PS/2 keyboards)

Let the machine boot normally, then press and hold U on your PS/2 keyboard, then tap momentarily on F1 (still holding U) and release U when you see the updater module. Press Y, wait until all flashing is completed, then power down the Next and REMOVE ALL CABLES. Wait a little and then plug everything back up again. If you have a VGA you need to replace your config.ini (see above) or edit it and set the second number after the machine type to 0. If you’re in Brazil, Japan, the USA or Canada or any country that uses normally an NTSC TV signal (or a PAL 60 signal), chances are your monitor only supports 60Hz, so go ahead and tap F3 now -or alternatively you can change the [50_60] setting to 1 from config.ini or by editing the settings at boot time with the EDITOR module (Press SPACEBAR when prompted on boot then press to edit your settings)

2. For people with Perixx PS/2 keyboards and/or keyboards with a similar controller on board AND people with membranes that are not functioning or having trouble entering the UPDATER module.
  • Enter AntiBrick (AB) mode by removing all cables (including HDMI), pressing and holding M1 and Drive (simulaneously), then reapplying power (no HDMI or VGA yet) waiting a few seconds (2-3) and releasing the keys, then reconnecting the display lead that worked for you previously. Press Y for update. If Y cannot be pressed then the press M1 button for or Drive button for N
  • Follow the instructions in Step 1 to boot the system.

Download the distribution

 TBBLUE distribution v.0.8e (zip format) (Download Here)

 TBBLUE distribution v.0.8e (7z format) (Download Here)


Article image: Image of cards piling up by MrGAWN

TBBLUE: Victor Trucco
Contributors: Fabio Belavenuto, Garry Lancaster, Allen Albright, Mark Smith

Dreamworld Pogie: Lyndon J Sharp/Phoebus Dokos (WASP – / Distributed under License
Orb Run: Matt Davies ( Distributed under License
Spectron 2084: Robin Verhagen-Guest / Distributed under License
Nxtel2: Robin Verhagen-Guest / Distributed under License
nextDAW: Gari Biasillo (
Warhawk: Michael Ware, Jim Bagley, Lobo Trans, Space Fractal / Distributed under License
Nextoid!: Lampros Potamianos  (WASP – / Distributed under License
3D Monster Maze, 3D Defender, Trashman: Malcolm Evans / Distributed under License
cave81: Marco Varesio / Distributed under License
Mouse driver: Tim Gilberts and Chris Cowley
UART driver: Tim Gilberts
RTC driver: Tim Gilberts
PS/2 keymap: Phoebus Dokos  (WASP –
NextZXOS: Garry Lancaster (
Looking Glass: Geoff Wearmouth (
ZX80/81 Emulators: Paul Farrow (
Demos: David Saphier (, Geoff Wearmouth, Michael Ware, Jim Bagley, Gari Biasillo, Robin Verhagen-Guest
Utilities: Jim Bagley, Geoff Wearmouth, John M Kerr (, Kev Brady
Dot Commands: esxDOS team and contributors, Allen Albright, Tim Gilberts, Jim Bagley, Garry Lancaster, David Saphier, Gari Biasillo, Victor Trucco



The following people made this release possible and I don’t have enough words to thank them!
BUG HUNTING: Kev “The Terminator” Brady. He Hastas La Vistas Bugs!, Tim “Prifathro” Gilberts, Geoff “Warm Toffee” Wearmouth, Garry “Relentless” Lancaster, Allen “Professor X” Albright
BUG FIXING: EVERYONE (Garry, Jim, Allen, Robin “The Unexpected Demon” ,Tim, Michael, Lampros, Gari, Kev, Geoff, David)
TESTING: Kev Brady (he doesn’t sleep, honest), Tim “Fampir” Gilberts (he neither!), Gari “I eat Verdi For Breakfast” Biasillo and of course Someone Else (not David)™

Thank you guys, I couldn’t have done it without you!!!!!

And last but not least; ultra kudos go to Mike “Teddy Roosevelt” Cadwallader; who’s the reason why we’re all getting our cased Nexts!