AMIGA alive

AMIGA alive

Thursday, December 26, 2024

Floppy drive disk detection repair - as not expected

A surprisingly simple repair to a microscopic, but essential problem with an Amiga 1200's floppy drive. 

This drive didn't work reliably, and at some point failed completely, not detecting disk media anymore. Only with a little bit of extra pushing on the disk, it would click and start reading, but immediately stop when released. A more thorough inspection was required.

The mechanism didn't feel very snappy when inserting the disk, so some dirt, lack of lubrication, or worn out spring was the first guess. But it turned out everything moves nicely. Next, the "disk inserted" switch was inspected, drenched in isopropyl alcohol, tested, even resoldered, it was fine, but the drive still didn't work. Suspecting a worn out disk "sledge", that prevents the switch from getting fully pressed down, a little bending was applied to some of the metal side pieces - with no success.

Amiga 1200 floppy drive without cover plate - the slightest touch would make it work.

Basically everything about this floppy drive was fine, only it still required some pressure on the top of the disk. With more inspection, cleaning, etc. it became a little bizarre: Only minimum pressure was required, the weight of a finger, creating microscopic movement.

The solution was found when looking at another, very similar floppy drive: The disk guides at the drive's front aren't supposed to be tilted to the inside. On the other drive, they're perfectly horizontal, parallel to the top edge.

That was a little unexpected. Amiga computers are old, this Amiga 1200's drive had the guides slightly bent, tilted towards the inside, for decades, and worked fine. But it makes sense, bent guides could prevent the disk "sledge" from fully touching down on the drive's base plate, thus not triggering the disk detection signal properly.

Bending the guides back to a (near) perfect horizontal position indeed fixed the problem.

Open drive, and disk "sledge" (top part), with straightened guides at the front.
A similar drive, used for comparison, on the left.

The lesson learned is that these guides wear out, and they were worn out on this drive. Who would've thought. They seem to hang in the air when no disk is inserted, and they're hard to see when a disk is in the drive. If you've never consciously looked at them, or even if you have, you assume they're build this way. And you probably don't expect that when they're bent down another 10th of a millimeter, they prevent the drive from working. 

It might have worked for decades, and it wasn't even expected to be wrong, but still: If it's bent, it's probably broken!

Missing screw on the backside - that's acceptable.

While at it, the casing of the drive was checked, so the sledge has no unnecessary action. This drive is missing a screw on the backside, but with a little straightening (bending... ;-) ) of the top piece, and making sure its sides fully snap into place on the drive's body, a tight fit can still be achieved.

Floppy drive immediately detects floppy disk again. Very good.

That was a very unexpectedly simple repair. The drive disassembly was unnecessary, it probably could've been done even without opening the Amiga computer. And it even was totally analog. Awesome.

Sunday, November 24, 2024

AMIGA alive "Quick Clips"

"Quick clips" are a number of quickly recorded and little edited videos of what you might call "everyday Amiga issues" - installing a software package, fixing some C code, transcoding a file from one format to another, and the likes.

So far, these "quick clips" can be found on the YouTube channel:

Rewriting AMOS code in C

Some "live" examples of how to translate AMOS code to C code. 

https://www.youtube.com/watch?v=_jRAXVnV6cg

How to run AmigaAMP 3 on AmigaOS 3.0

With a little bit of manual effort, AmigaAMP 3 is nearly fully usable on OS3.0.

https://www.youtube.com/watch?v=bTu3J9nA8tk

Speech synthesis with "say"

Some experimentation, and a little story, with AmigaOS' "say", translator.library, and narrator.device.

https://www.youtube.com/watch?v=4e4m2Yqt51A

How to sleep() with AmigaOS

How to substitute an eventually missing POSIX sleep() function in AmigaOS. 

https://www.youtube.com/watch?v=yBYEGYFmmhA

 

...with more to come. Is there anything specific you'd like to see? Leave a comment - here, or on one of the videos' pages.

"Quick Clips" full playlist:

https://www.youtube.com/playlist?list=PLFqkmsX-uEeIA7uBhdPvHLV1QCO27hU5l


Subscriptions to the channel are highly appreciated. :-)

Thanks for watching!


Friday, November 8, 2024

A little odd: TAG_DONE and TAG_END

Sometimes one might get confused when to use TAG_DONE in AmigaOS C-code, and when to use TAG_END. The answer is very simple: They're one and the same. But it turns out there might be a little bit of an unknown story to these two widely used tokens.

TAG_DONE showed up before TAG_END, in NDK1.3, along with struct TagItem, but not as part of the system includes, and the TagItem system wasn't used in system functions.

Or was it? This is a section of code from the file Read-Me1.3/A2024Docs/OpenA2024.c, which is part of NDK1.3.

#define NONEWINCLUDES       1   /* don't have 1.3 includes yet  */

#if NONEWINCLUDES       /* Some additional definitions  */

/********** from intuition/screens.h ************/

#define NS_EXTENDED     0x1000  /* NewScreen.Extension is valid     */

struct TagItem
{
    ULONG   ti_Tag;     /* identifies the type of this item */
    ULONG   ti_Data;    /* type-specific data, can be a pointer */
};

/* ---- system tag values ----------------------------- */
#define TAG_DONE   (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_IGNORE (1L) /* ignore this item, not end of array       */
#define TAG_MORE   (2L) /* ti_Data is pointer to another array of TagItems
             * note that this tag terminates the current array
             */

Note the condition "#if NONEWINCLUDES". It looks as if these definitions were part of some "new includes" that weren't part of the distribution (yet?). 

There appears to be a nice little oddity here:

NS_EXTENDED (and TagItem) can't be found in intuition/screens.h, while other sections of the code (not shown here) can. The code contains a copy of NewScreen structure definition, only extended with an extra field, type TagItem pointer. It then creates an instance of that NewScreen structure, with type NS_EXTENDED, and calls OpenScreen() with that structure. There's no mentioning of NS_EXTENDED, or a TagItem pointer field in the Autodocs of OpenScreen() in this version of the NDK.

Does that mean that AmigaOS1.3 already had an (almost) undocumented feature, that would only be made (really) public with AmigaOS2?

TAG_END appears in NDK2.0, in new system include file utility/tagitem.h, as a clone of TAG_DONE, along with struct TagItem etc.:

NDK2.0-4/include/utility/tagitem.h

#define TAG_DONE   (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_END TAG_DONE

This NDK's version of intuition/screens.h also defines an ExtNewScreen structure that has the extra TagItem pointer field. 

Looking at the usage of TAG_DONE and TAG_END, across all files that are supplied with NDK2.0, there seems to be no preference. Maybe TAG_END was really just introduced to avoid interruptions in workflow, because many developers would intuitively think, and type, "end" instead of "done"?

Another tiny oddity is a change that appears in NDK3.1. It has a slightly different definition of TAG_END: It's still identical, but for some unexplainable reason, TAG_END isn't bound to TAG_DONE anymore. Instead, a comment explains why both use the same value.

Includes\&Libs/include_h/utility/tagitem.h

#define TAG_DONE (0L) /* terminates array of TagItems. ti_Data unused */
#define TAG_END (0L) /* synonym for TAG_DONE */

We'll probably never find out what happened, precisely.
But that's ok. Fortunately, TAG_DONE and TAG_END are either synonyms, or simply the same. ;-)



Thursday, October 31, 2024

Great Amiga Demos!

Just in case you didn't notice: There's a growing number of Amiga demo videos on the YouTube channel.

Amiga demos are just fun to watch, and oftentimes feature some fantastic music. 

This is a collection of classic Amiga "multimedia", featuring demos by Ephidrena, Capsule, The Black Lotus, Spaceballs, Digital, Parallax, etc., captured from real hardware. Part of the mission is to preserve and expose the Amiga's somehow unique video capabilities, with lots of different screen resolutions, different bitmap color modes, interlaced and non-interlaced screens, changes in screen size (aka overscan), and programming of the Copper video co-processor, which results in some effects that are normally hidden beyond borders of the screen. (See for example the pink spinning shape in Digital's "Lethal Exit", that expands for a couple of seconds - nifty.)

To get you started, here's Spaceballs' "State of the Art" from 1992:


Spaceballs - State of the Art (1992) demo

Maybe you wanna subscribe to the channel to get notified of new uploads?

"Great Amiga Demos" YouTube playlist:
https://youtube.com/playlist?list=PLFqkmsX-uEeK9ij8dvSnpTiY24ZZ7LbhS

 

Friday, October 25, 2024

"It’s a reckoning": Worms 30th anniversary

In 2025, Cult game "Worms" by Team17 will have its 30th birthday. To celebrate the occasion, a new, free release of the game is planned - with levels created by the Amiga demo scene!

"Worms - The Directors Cut" (1997) cover artwork

According to sources (see end of article) "Worms" developer Andy Davidson has announced a reimagining of "Worms DC" ("Director's Cut") 1.5, that is set for release in January 2025, and for free. That's a very nice gift to the Amiga scene. 

Actually, he doesn't refer to the occasion a celebration, but a reckoning - which is quite fitting for the game.

To make the new release really special, Amiga demo groups are encouraged to submit their level designs, via a forum thread at amigans.net - which is a nice, and interesting idea. Graphics artists that are active in the demo scene have created some of the most stunning visuals ever seen on Amiga screens, so some eye candy can certainly be expected. "Worms" isn't a very complex game, but maybe, given the deep understanding of maths, bits, and bytes, in these circles, even some unusual, challenging designs might show up, that give the gameplay an unexpected twist.

"Worms - The Director's Cut" (1997) in-game screen

Basically, "Worms" levels are just bitmap images, so all that's required to create one is a paint program such as Deluxe Paint or Personal Paint. A couple of details regarding color palette and depth have to be respected, obviously. 

More details, and your place to submit your application (well, there's no specific process - just leave a note) can be found at this URL:

https://www.amigans.net/modules/news/article.php?storyid=3282

Additional sources:
http://amiga-news.de/de/news/AN-2024-10-00078-DE.html

Thursday, August 29, 2024

Amiga in the movies: Robot Ninja (1989)

An Amiga 500 was spotted in 1989 splatter-comic movie "Robot Ninja" - both on screen, and behind the scenes.

Robot Ninja (1989) poster artwork (see end of article)

The movie is a very gory, but also funny and slightly tragic low-budget sci-fi/horror production. If this fits your taste, it's really enjoyable, with a lot of handdrawn comic panels thrown in, goofy, but (very) rough characters, and some actually quite ambitious, visionary storytelling, complete with dream sequence, Terminator rip-off scene, and everything.

"Robot Ninja" was written, produced, directed, and edited by J. R. Bookwalter, who also supplied some of the music. 

The opening credits might look somehow familiar to longtime Amiga users.

A couple of frames from the opening credits

The comic panel sections of the opening sequence feature some animated text - could this be some Deluxe Paint animations that we're looking at?

A couple of frames from the opening sequence, with comic panels, and animation

Only a few minutes into the movie, we get a little news report that features some sort of artwork of the "Robot Ninja". 

Is Robot Ninja connected to the Ridgeway Murders... ?

So far, all of this feels very much like something Amiga. It wouldn't be surprising if one shows up in the movie... and indeed, soon a machine can be seen that looks remarkably like an Amiga 500.

Someone is playing a game...

...on a computer with some extra equipment...

...that looks very much like an Amiga 500...

...and runs a GUI with a blue background.

So after this character has played a round of "Lords of the Rising Sun", he returns to what seems to be AmigaOS Workbench 1.x.

More artwork shows up during the movie - isn't there a faint title bar, that maybe says "Deluxe Paint"? And there's another news report, that uses a font that just looks all familiar.

The "Robot Ninja" shown on the computer display - with title bar.

The font used by this TV station looks very familiar.

We get to see more of the computer equipment. There seems to be a dot matrix printer on the left side (maybe a Star LC-10?), and a floppy drive right next to the keyboard. And is there another, bigger printer, on the right side?

1989 computer workstation in "Robot Ninja"

In this sequence, the movie's anti-hero is in very bad shape after a heavy fight - he tries to decipher what's written on the computer display, but he's dizzy, and his vision is blurry.

Robot Ninja can't properly see the computer display.

But then, finally, all doubts are dispelled: Yes, this is an Amiga 500. With a red LED. 

It's really an Amiga 500, with PSU, 1010 floppy drive, and 1084 monitor!

The movie's ending credits feature some digitized images with a little bit of animation.

A couple of frames from the pictures during the ending credits.

When the credits' text (Topaz font? Opal font?) begins to roll, it gives more clues about Amiga usage during production, and some enthusiastic praise for the computer.

Amiga 500 in "Robot Ninja" ending credits

The titles, and we can pretty safely assume also the digital artwork in the movie, were indeed created on an Amiga 500, as was the music by Mr. Bookwalter. Maybe the entire editing was done with some gen-locking, VHS-recorder-controlling Amiga setup, at "The Imagination Industry" and Richard B. Perrine?

"Robot Ninja" is a very nice example of Amiga usage in movie production. Looking at its imaginative, bold style, it's a perfect tie-in with the idea of the allround-creative Amiga user. Mr. Bookwalter obviously is one such person. He felt he had to put the machine into the movie, give it big credit, and the fact that he did the work for "Robot Ninja" on an Amiga 500 is pretty cool in itself. It's proof that even the lowest-cost model, a literal bedroom-computer, can be a (low-res) film industry workhorse. 

Now, why isn't there a "Robot Ninja" game for the Amiga?

*

https://www.imdb.com/title/tt0100503/

https://en.wikipedia.org/wiki/Robot_Ninja

"Robot Ninja" poster image:
https://en.wikipedia.org/wiki/Robot_Ninja#/media/File:Robot_Ninja_(1989)_poster.jpg
https://theschlockpit.com/2020/03/29/in-praise-of-robot-ninja-1989/