Atari ST: First impressions

A few months ago I got an Atari 1040 STF. I knew nothing about it when I got it, except that it was a similar to the Amiga.

Atari 1040 STF

The Atari ST, the Amiga and the Macintosh were computers released in the mid 80’s, all of them based on the Motorola 68k, and all of them came with a windows-based GUI.  This was a revolutionary step compared to the 8-bit machines which were CLI text-driven.

The base “ST” model includes:

  • 8 Mhz Motorola 68000 CPU
  • Yamaha YM2149 3-voice square-wave plus 1-voice white noise (mono)
  • 512Kb or 1Mb RAM (520 vs 1040 models)
  • 3 video modes:
    • 320 x 200 x 16 colors (from a 512 color palette).
    • 640 x 200 x 4 colors (from a 512 color palette)
    • 640 x 400 x 2 colors (I believe this is only B/W)
  • Midi In / Out: Apparently a killer feature for musicians.

Compared with the 8-bit home computers like the C64/C128, the Atari ST is a good improvement. From only 64K/128K RAM to 512K (or 1024K) RAM, an 8 Mhz CPU (vs. 1 or 2 Mhz) and Midi. But there are no hardware sprites (no blitter), and the music is chiptune, like in the C64. The C64 SID chip might be even better. The video modes are OKish. Having a 320×200 @ 16 colors from a palette of 512 is nice, but not that impressive. It is worth noting that the Atari ST (like the Amiga and the Macintosh) don’t have “text video modes”, they only have “graphic” ones.

Continue reading “Atari ST: First impressions”

Advertisements

64K RAM Ought to be Enough: a demo for the PCjr

Updated 2018–10–08

A demo for the IBM PCjr by Pungas de Villa Martelli. It was presented at Flashparty 2018 and won the Demo category.

Requirements

An IBM PCjr with at least 64k RAM.

Download

Technical description

The demo is divided in the boot loader and demo 3 parts

Boot loader

Boot loader
Boot loader

The demo is intended to work with a 64K RAM (or more) PCjr. Booting from its own boot loader is needed to save precious memory. DOS alone takes ~20K of RAM. That is 30% of the total memory. You don’t want to waste that memory.

Continue reading “64K RAM Ought to be Enough: a demo for the PCjr”

Cromemco System 3 computer

The Cromemco System Three is a Z-80 based computer. Which is nice, because I always wanted to learn Z-80 (this is my second Z-80 computer, the other one is a MSX2).

But What I like about the Cromemco is how well-built it is. I love it.

The computer is that not big, but it is a very heavy computer.

At the moment I don’t have the needed cables to test it. If I can’t find them, I might be able to build them myself (or not). If manage to get the cables, and provided that the computer works, I promise to write a game or something for it 🙂

Photos:

Cromemco System Three

Continue reading “Cromemco System 3 computer”

Performance of the 8088 on PC, PCjr and Tandy 1000

It’s well-known that you should measure the performance of your code, and not rely only on the opcode’s “cycle counts”.

But how fast is an IBM PC 5150 compared to a PCjr ? or to a Tandy 1000? or how fast is the Tandy 1000 HX in fast mode (7.16Mhz) compared to the slow mode (4.77Mhz) ? Or how fast is a nop compared to a cwd ?

I created a test (perf.asm) that measures the performance of different opcodes and run it on different Intel 8088 machines. I run the test multiple times just to make sure the results were stable enough. All interrupts were disabled, except the Timer (of course). And on the PCjr the NMI is disabled as well.

Without further ado, here are the results:

Continue reading “Performance of the 8088 on PC, PCjr and Tandy 1000”

IBM PCjr: Zero-day Data-destroy vulnerability

An IBM PCjr with two joysticks. That’s all you need to destroy your data

IBM PCjr zero-day data-destroy vulnerability (AKA: Joykill).

Description:

This vulnerability allows local and remote attackers to destroy the contents of the floppy diskette. User interaction is required to exploit this vulnerability. The issue results from the lack of proper validation when starting the manufacturing system test.

Exploit (local):

Continue reading “IBM PCjr: Zero-day Data-destroy vulnerability”

IBM PCjr BIOS dump

IBM PCjr BIOS dump

The IBM PCjr BIOS is very well documented in the IBM PCjr Technical Reference manual (a must read for every PCjr developer).

The only problem is that navigating that code is not easy. It has all the problems from scanned books:

  • the fonts don’t look good
  • no hyper-links
  • and difficult to search

So I dumped the BIOS and started analyzing it with IDA Pro – Free version. I added some of the original comments from the Technical Reference manual, and added some comments of my own.

If can browse it using either:

Or just clone the project from github: https://github.com/ricardoquesada/bios-8088/tree/master/ibm_pcjr

This is still Work-in-Progress. I add comments in “let’s see how this portion of the BIOS work“-basis.

 

BTW, the Tandy 1000HX BIOS dump is here: https://github.com/ricardoquesada/bios-8088/tree/master/tandy_1000hx

Update: Updated links