De-compiling The Missing Link extension help

STOS-related stuff in here please

Moderators: exxos, simonsunnyboy, Mug UK, Zorro 2, Moderator Team

User avatar
exxos
Hardware Guru
Hardware Guru
Posts: 4933
Joined: Fri Mar 28, 2003 8:36 pm
Location: England
Contact:

De-compiling The Missing Link extension help

Postby exxos » Sun Feb 01, 2015 11:25 pm

Were the sources ever available for the ML extension ? Or maybe someone here can decompile it with the intention of updating it ?

The Missing Link extension is fantastic on the ST. Though there are simply no functions in the STOS extensions for sprites or bobs, world functions etc :(

I think the main 2 issues are resolution and colours. Of course the ML commands were all geared up for 320x200 so its unclear if higher ranges would actually work. I assume there was no error checking to check for values over 320x200 so I assume the resolution part wouldn't be a issue. Though the entire extension was geared up for 16 colours. If the colours could be updated so the extensions support 256 colours then it would allow the missing link extension to be used on the Falcon with 640 x 400 in 256 colour modes.

While there are a lot of Falcon STOS commands, there isn't much in the way of sprite or map functions. So creating a game on the falcon is actually somewhat limited without some updates somewhere :(
4MB STFM 1.44 FD- VELOCE+ 020 STE - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - various clutter

http://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
http://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.
http://ataristeven.exxoshost.co.uk/Steem.htm Latest Steem Emulator

mlynn1974
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 129
Joined: Mon Mar 03, 2008 10:33 pm
Contact:

Re: De-compiling The Missing Link extension help

Postby mlynn1974 » Mon May 18, 2015 12:18 am

The sources were never released to my knowledge. You could buy the extension in the compiled format and you'd get the source code to some demos to show you how to use it and probably some support by snail mail.

Misty and The Missing Link were both written by Colin A. Watt and Billy Allan with some commands based on the earlier FastCopy and BitCopy assembly routines. I used to see them at The Barras in Glasgow at the Phoenix PD stall but I lost touch with them after uni. They were very friendly and helpful.

Billy discovered how to write extensions for STOS then they applied the same process to build up the extension for the interpreter and the compiler. They may have had to write to Mandarin to find out this information.

I did some testing with the extension it was at my suggestion they added the hertz command to change 50\60Hz and reboot.
Some commands didn't make it into the extension such as a fast line drawing routine and Neil's Raster extension. Tony from DigiTech wrote a nice one bitplane line drawing assembly routine based on Bresenham's algorithm which I used.

They kept Misty and The Missing Link fairly 'lean and mean' as C++ programmers would say today.
I don't know if anyone else on here remembers those days, I'm talking about 1991-1992. Maybe DML will have more information.
Last edited by mlynn1974 on Mon May 18, 2015 11:51 pm, edited 2 times in total.
Still got, still working: Atari 4Mb STe, 520STFM, 2.5Mb STF.
Hardware: Cumana CSA 354, Ultimate Ripper, Blitz Turbo, Synchro Express II (US and UK Versions).

mlynn1974
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 129
Joined: Mon Mar 03, 2008 10:33 pm
Contact:

Re: De-compiling The Missing Link extension help

Postby mlynn1974 » Mon May 18, 2015 12:38 am

The main problem with STOS is that it is line number based so inserting or renumbering a listing is a pain.
It was easier to maintain code in AMOS because it was more procedural.

I seem to remember that STOS was tokenised so listings would take less memory, but I don't know how the extensions would be allocated new unique tokens so you could have any combination of extensions loaded.

The extensions used for the demos were:
Better Than Life (Bitcopy),
Pandoras Box (Bitcopy, some screens were pure STOS),
Cunning Demos (Missing Link),
Misty Demos (Misty extension, Overstos).

The games that were written with ML were pretty good:
Frank and The Lost Aubergine:
https://www.youtube.com/watch?v=w8FVLrzbrZc
The Race:
https://www.youtube.com/watch?v=HVKt_j6Nz6
The Race (Rewritten):
https://www.youtube.com/watch?v=nIEHEbkTc_M
Balls:
https://www.youtube.com/watch?v=ct1fnKHtX3k
Death Incarnate:
https://www.youtube.com/watch?v=q_Q7j31T9dQ
Violent Death:
https://www.youtube.com/watch?v=zTXpJAD5PDg
https://www.youtube.com/watch?v=V-YsrzR6hcI

There was mentioned the possibility of a hardware scrolling extension for STOS but I don't think it was ever implemented.
Still got, still working: Atari 4Mb STe, 520STFM, 2.5Mb STF.
Hardware: Cumana CSA 354, Ultimate Ripper, Blitz Turbo, Synchro Express II (US and UK Versions).

mlynn1974
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 129
Joined: Mon Mar 03, 2008 10:33 pm
Contact:

Re: De-compiling The Missing Link extension help

Postby mlynn1974 » Fri Jun 26, 2015 12:30 am

I don't know if this is useful but I disassembled bitcopy using EasyRider because it's not much different from skopy in ML.
It does range checking to ensure the screen coordinates are valid but it doesn't implement clipping at all and the block must be on a 16 pixel boundary. Bitcopy was designed to be fast and nothing else.

Interestingly it uses this:
MOVE.W 0(A0),0(A1)
MOVE.W 8(A0),8(A1)
MOVE.W 16(A0),16(A1)
Which takes 20 clock cycles each according to my cc sheet.
A move.w with 2 adds add dn,an would take 4 cc each so 12+4+4=20 which is the same. He could have saved 8 cc by making the first MOVE.W (A0),(A1). It probably saves a few bytes of memory not using the adds.

For the Falcon and non-planar displays it would need to be totally rewritten.

STOS was great back in the day, but it's a difficult trade-off between assembly programming and greater productivity by using a high level language. Compiling and debugging using a C Compiler on the ST with just a floppy drive would be very slow.
Still got, still working: Atari 4Mb STe, 520STFM, 2.5Mb STF.
Hardware: Cumana CSA 354, Ultimate Ripper, Blitz Turbo, Synchro Express II (US and UK Versions).

User avatar
exxos
Hardware Guru
Hardware Guru
Posts: 4933
Joined: Fri Mar 28, 2003 8:36 pm
Location: England
Contact:

Re: De-compiling The Missing Link extension help

Postby exxos » Thu Mar 24, 2016 9:20 pm

BUMP:

Thought I would bump this topic in light of recent STOS issues with TML extension..
4MB STFM 1.44 FD- VELOCE+ 020 STE - Falcon 030 CT60 - Atari 2600 - Atari 7800 - Gigafile - SD Floppy Emulator - PeST - various clutter

http://www.exxoshost.co.uk/atari/ All my hardware guides - mods - games - STOS
http://www.exxoshost.co.uk/atari/last/storenew/ - All my hardware mods for sale - Please help support by making a purchase.
http://ataristeven.exxoshost.co.uk/Steem.htm Latest Steem Emulator

User avatar
dml
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 3472
Joined: Sat Jun 30, 2012 9:33 am

Re: De-compiling The Missing Link extension help

Postby dml » Thu Mar 24, 2016 11:10 pm

mlynn1974 wrote:They kept Misty and The Missing Link fairly 'lean and mean' as C++ programmers would say today.
I don't know if anyone else on here remembers those days, I'm talking about 1991-1992. Maybe DML will have more information.


Hey!

:)

I do remember those days - although I don't remember a lot of the details re: what people were actually doing. I knew Colin quite well and still in touch with Neil Stewart today. I didn't know Billy at all. I was fiddling about with STOS stuff around the same time (probably the tail end of that) but I didn't pick up the 'magic info' they got from Mandarin on making proper extensions so I've no idea how that works.

One particular day had Colin, Neil and myself trying to figure out how a new bootsector/bootstrap routine would work in Colin's ST only after it had been put in another ST first. Every time. Despite being write-protected. We tried it over and over. I think we put it down to cosmic radiation and biscuit crumbs, and moved on.

I remember Colin being very good at making maps for games, game puzzles and so on. He also nearly started a fight in a cinema once because some people were talking over the film!

The Barras in Glasgow at the Phoenix PD - ***yarrrr!*** :-p definitely a hangout for the local ST scene.

User avatar
CiH
Atari God
Atari God
Posts: 1098
Joined: Wed Feb 11, 2004 4:34 pm
Location: Middle Earth (Npton) UK
Contact:

Re: De-compiling The Missing Link extension help

Postby CiH » Thu Mar 24, 2016 11:45 pm

The Barras in Glasgow at the Phoenix PD - ***yarrrr!*** :-p definitely a hangout for the local ST scene.


I remember a certain diskmag going under the initials "PB" that spent a lot of time there, and liked to keep the rest of us updated on its status too. :mrgreen:
"Where teh feck is teh Hash key on this Mac?!"

User avatar
dml
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 3472
Joined: Sat Jun 30, 2012 9:33 am

Re: De-compiling The Missing Link extension help

Postby dml » Thu Apr 14, 2016 2:57 pm

FYI (for others who might want it)... I recently reversed and patched TML (LINK1.E??) for the 128-tile limit (well, increased it to 256 tiles).

The STOS extension disassembled easily but some jumptables needed to be done by hand before code could be added in some places.

The Compiler extension did not disassemble so easily - it's all size-sensitive regions and word-offset tables into code with no label associations. But other than this there was less case-specific crap in the compiler extension needing manually reversed, compared with the other one.

I can post the source if anyone finds it helpful. There are still a few small areas needing manually disassembled to rel-labels but they are inside some music stuff and probably doesn't need messed with anytime soon.

[EDIT]

Sorry, almost forgot to add the "Yaarrrrr!!!!" :angel:

User avatar
dml
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 3472
Joined: Sat Jun 30, 2012 9:33 am

Re: De-compiling The Missing Link extension help

Postby dml » Sun Apr 17, 2016 9:19 am

In case anyone else needs it...

https://dl.dropboxusercontent.com/u/129 ... _patch.zip

Here's the patched LINK1 and the R-E'd source code for both interpreter and compiler extensions. The patch increases the 128-tile limit to 256 tiles, making it a bit more useful. I might have broken something else in the process but it seems ok so far. VASM to assemble this one, but Devpac should work if you fix the if/else syntax.

The 'honesty_check' function in the source was just a quick guess but might not be correct so you might as well ignore it. I think the registration stuff is actually in LINK2.EX? anyway...

OverlordMRK
Atarian
Atarian
Posts: 3
Joined: Thu Aug 31, 2017 10:25 pm

Re: De-compiling The Missing Link extension help

Postby OverlordMRK » Tue Dec 12, 2017 11:16 pm

Hi dml, your link to the patched version of the map editor seems to have expired, any chance you can re-upload this? Would greatly appreciate it :) is it still working out okay? No issues with increasing the limit to 256 tiles?


Social Media

     

Return to “STOS”

Who is online

Users browsing this forum: No registered users and 1 guest