Super-X 1.22 added to downloads

by NYYRIKKI on 24-04-2011, 11:58
Topic: Software
Tags: Utilities

In 1991 Romi released the first version of his great debugger under the name 'Lord'. It was a very simple debugger that had only fraction of today's typical features. He had a vision of how a good debugger should work with maximum outcome and minimum effort from user. Therefore he continued his work and the great Super-X was born! Now we can celebrate the 20th birthday with version 1.22 that continues the original ideology.

Today, people are used to use 'online' debuggers, so a native 40-column 'offline' debugger might look like an outdated blast from the past. However, the unique and innovative features of Super-X, such as debug stack and global offset, makes current online debuggers look like user depreciative dinosaurs when it comes to powerful patching of programs. With new memory virtualization you can for example read self relocating code and follow the jumps without moving a single byte or breaking a sweat with address translations. It's all done for you already and always just few key clicks away.

Do you need to test some hardware features? No problem, all of the memory and I/O devices are accessible directly from the debugger. If you don't want to use assembler you can even write your own small test routines directly to memory. If you like to make bigger changes and use assembler for those, that is fine as well. Just export the routines using the embedded powerful disassembler which is now even better than before. Even disassembling self modifying code to ready to use assembler is not a problem anymore.

Have you ever wanted to mix BASIC and assembler routines, but writing X-BASIC inline ML sounds like a task next to impossible? Don't worry, now Super-X can do all the hard work for you, and it still just takes a few key clicks.

This new version has an impressive number of changes implemented:

  • Super-X source can now be compiled with Sjasm v.0.42b8 instead of M80/L80
  • Disassembler labeling engine has been redone to support disassembling of self modifying code
  • The disassember doesn't put the 'END'-text anymore into the output file
  • Corrected indenting in assembler data export
  • Added possibility to export X-BASIC (MSX-BASIC kun compiler) inline ML
  • The I-command in MULTI-mode now defaults to 20 lines
  • BASIC _CHCPU now supports also Z80 DRAM (MSX turbo-R only)
  • The VR command has been removed. Variables can be now always referred to with @. Values can be set also with =
  • New special variables added: @B (begin), @E (end), @S (size / start)
  • Variables can now be used as parameters to return a 16bit address (assembler, CL etc.)
  • In main menu full screen editing works fine now
  • Now Super-X comes with updated English documentation
  • Hidden feature: Repeat previous byte in DUMP-mode has been documented
  • LD & SV commands now support offset & loading to anywhere in memory
  • LD command now corrects end address automatically if it is too long
  • Global offset has been implemented
  • New keyboard shortcut: ^Z = Set global offset to Zero (ASCII,DUMP,CHAR,DISASM)
  • Check sum type has been removed from statusbar
  • Global offset has been added to status bar
  • Pressing Esc on BASE address setting does not quit to the main menu anymore (ASCII,DUMP,CHAR,DISASM)
  • Internal help updated
  • On DISASM-mode ^O allows setting global Offset (relative)
  • OF command added for setting global offset (absolute)
  • KL command is now fixed to use new flexible disk routines
  • Fixed bug in internal CLS routine (insert mode works now properly)
  • RS (RESISTER) is now known as RG (REGISTER)
  • New command "TP" to type file on screen
  • CO command now accepts any number or parameters (1-3)
  • SD command parameter order changed to match other disk commands
  • Math operations OR, XOR and MOD are now represented with |, ^ and % in commands

If you you hadn't heard of Super-X before, read on. With this tool you can swap seamlessly between different editors: ASCII, HEX, Assembler/DATA input, Disassembler or even Character/Sprite editor. Only two key clicks are required.

Also, Super-X has possibility to add notes to different memory addresses and I/O ports. If you need to do decimal/hex/binary calculations, no problem Super-X has also powerful calculator engine to help you.

Do you want to make Japanese translations? Super-X can read Japanese texts even without Kanji-ROM! Want to edit sectors? Files? Use break points? Move ML routines without breaking them? Calculate check sums? Search lines from BASIC programs? Compare/find/fill data? Get an overview of your computer's inside? Don't worry! Super-X has commands for all your needs. Super-X can even support MSX-DOS2 (not required) including directories and memory mappers. Only thing you need is MSX2 with disk drive and all these features are available for you and for free. The only thing that hasn't been confirmed yet is its capabilities to find Easter eggs during these days!

If all this reading material above dazzles you, have a look at these three Super-X videos: Custom fonts, Konami games in English on MSX turbo R, Editing DOS-files.

Relevant link: Super-X 1.22

Comments (9)


Enlighted (6128)

NYYRIKKI's picture

24-04-2011, 17:54

If you have made some good looking English index-file (TNK) for Super-X, please drop me a mail!

By nikodr

Paladin (750)

nikodr's picture

26-04-2011, 13:23

Nyyrikki as usual your projects are of the finest quality.May i ask that now that we have such tools,people write some guides regarding z80 asm ?In other platforms such as spectrum,c64 there are many articles regarding the use of the machine and z80,in msx not many books are available for begginers,i would love to have some docs regarding z80,interrupt handlers,gfx and vdp,i know of the karoshi forum and a site or 2 that have some info but that tool made me want to learn more advanced stuff for msx.
Again congratulations,by the way,what tools did you use to create that application?Is it written on a real msx?


Enlighted (6128)

NYYRIKKI's picture

26-04-2011, 15:54

Nyyrikki as usual your projects are of the finest quality.May i ask that now that we have such tools,people write some guides regarding z80 asm ?In other platforms such as spectrum,c64 there are many articles regarding the use of the machine and z80,in msx not many books are available for begginers,i would love to have some docs regarding z80

Best documentation of Z80 is called "The Undocumented Z80 documented"

interrupt handlers

Interrupt handling is not very hard... Z80 has 3 different interrupt modes, but only mode 1 is practically usable on MSX platform. In this mode Z80 disables interrupts and CALLs address #38 when interrupt happens. Interrupt handler is simply a routine that does usually following:
1) saves the registers that it is going to alter.
2) Tells the device causing the interrupt, that it can now lower the interrupt line
3) Does something usefull (like plays a note, calculates time, reads keyboard, changes screen color or something like that)
4) Restores the registers back to original state
5) Enables interrupts again and RETurns to do what ever the Z80 was doing before it got interrupted.

If you let BIOS to handle interrupts you just need to place a call to your program using a HOOK. There are two hooks that can be used in #FD9A and #FD9F (5 bytes space for each) One is called on every interrupt and the other is called only when VDP screen refresh interrupt happens.

Here is one example that you might want to check out. It is example of extremely simple music player converted from BASIC to assembler.

Here is BASIC example of usage of VDP line interrups.

MSX2 Technical handbook has also good examples & explanations if you need more info. (Look end of chapter 5)

gfx and vdp

Here is very nice version of MSX2 VDP Programmer's quide. It explains also the different graphic modes.

Again congratulations,by the way,what tools did you use to create that application?Is it written on a real msx?

You can compile it on real MSX, but that requires some patience as it takes about coffee break to get it compiled and if there is an error, you need to start all over again. Now I compiled this on Windows (Sjasm v.0.42b8) because modern PC's can do the same in about 1ms... It might sound a bit lame to use PC, but cross development saves so much time that it is quite a must for me as time is something that I don't have much these days.

I used ConTEXT for editing the source (It has syntax highlighting and possibility to configure compile buttons) and testing was done on BlueMSX.

By edoz

Prophet (2510)

edoz's picture

26-04-2011, 21:22

I like the movies .. but for me it looks a 'bit' to complex for me. But it is realy crazy what you can do with the MSX. Hopefully I will use your program some day.. because it looks verry cool!


Enlighted (6128)

NYYRIKKI's picture

27-04-2011, 08:50

I think looking just the movies is kind of "jump to the deep end". These movies are demonstrating the advanced ways to use the program and not really "How to get started" videos. I think that if you first read the documentation the whole program and it's logic will open up a lot better.

By MicroTech

Champion (389)

MicroTech's picture

28-04-2011, 11:31

Excellent work NYYRIKKI!
A debugger with sources is always a "juicy" font of inspiration Cool
Are you going to make maintenance of Super-X or adding new features?


Enlighted (6128)

NYYRIKKI's picture

28-04-2011, 13:44

I'm trying to keep up the current development speed (one update in every 10 years) but this is not a promise. Tongue


Enlighted (6128)

NYYRIKKI's picture

24-04-2012, 02:25

One year has passed, so I added few new videos:

Making ROM-loader:

Making Rasterbars:

By st1mpy

Paladin (956)

st1mpy's picture

14-02-2015, 21:16

Do anyone have the original Japanese documentation for it please?