This is an old revision of the document!
NOSTROMO
AX-2: Uchuu Yusousen Nostromo (Space Freighter Nostromo)
Designed and Programmed for the Commodore Pet 2001 by Akira Takiguchi in 1981
Ported to the NEC-PC6001 by Masakuni Mitsuhashi aka Hiromi Ohba aka Mitsu in 1982
Cover Artwork by Masashi Iwasaki
Published by ASCII Entertainment in Japan
Ported to Radio Shack TRS-80 Micro Color Computer MC-10 by Jim Gerrie in 2015 and 2018
Ports to Tandy Radio Shack Color Computer and Dragon Data Dragon 32/64 underway
NEC PC-6001 PORT
PROCESSOR | NEC microPD780C-1 (Zilog Z80-compatible) Microprocessor (MPU) @ 3.8MHz |
VIDEO | Motorola M5C6847P-1 (MC6847-Compatible) Video Display Generator (VDG) |
AUDIO | General Instruments AY-3-891x Programmable Sound Generator (PSG) |
FIRMWARE | Microsoft / NEC N60 BASIC ROM (20KB) |
MAIN STORAGE | 16KB - 32KB RAM |
EXTERNAL STORAGE | ROM Cartridge, Cassette |
CONTROLS | “chiclet” Keyboard, Digital Joysticks (not used in AX-2 Nostromo) |
Memory Layout: NOSTROMO Memory Map
N60 BASIC Listing: NOSTROMO.BAS
Z80 Machine Code: NOSTROMO.Z80
Nostro-19xx-Mode_1,_Page_1-.cas available from the TOSEC NEC PC6001 2012-04-23 collection at http://archive.org
MC-10 PORTS
PROCESSOR | Motorola MC6803 @ 0.89 MHz |
VIDEO | Motorola MC6847 Video Display Generator (VDG) |
AUDIO | 1-bit DAC |
FIRMWARE | Microsoft BASIC ROM (8KB) |
MAIN STORAGE | 4KB RAM |
EXTERNAL STORAGE | ROM Cartridge, Cassette |
CONTROLS: 48-key “chiclet” Keyboard |
2015-11 NOSTROMO: https://jimgerrie.blogspot.com/2015/11/
2018-05 NOSTRO: https://jimgerrie.blogspot.com/2018/05/uchuu-yusousen-nostromo.html
COCO / DRAGON PORT
PROCESSOR | Motorola MC6809 or Hitachi HD6309 @ 0.89/1.789 MHz |
VIDEO | Motorola MC6847, 6847T1 Video Display Generator (VDG) or TCC1014 Advanced Color Video Chip (ACVC) Graphics Interrupt Memory Enhancement (GIME) |
AUDIO | 1-bit DAC, 6-bit DAC, Cassette and Cartridge pass-through multiplexer, many expansions detailed on Tandy Color Computer |
FIRMWARE | Microsoft Color BASIC ROM (8KB), Extended BASIC (8KB), Disk BASIC (8KB), Super Extended BASIC (8KB) |
MAIN STORAGE | 4KB - 512KB RAM |
EXTERNAL STORAGE | ROM Cartridge, Cassette, Floppy, Hard Disk |
CONTROLS | 53/57-key “chiclet”, “melty”, or full-key Keyboard, Analog Joysticks, Digital Joysticks |
UPDATES
Finally … an AX-2 NOSTROMO for CoCo Update? Really? TL;DR real life interrupts exploded late 2021 and the hits just kept coming until recently.
Late 2021 to early 2022 … distractions dealing with the dregs of some CoCo community drama give way and by April 2022 I am making good progress again converting the Z80 disassembly into progress on the 6809 version.
May 31 2022 - my wife is hospitalized (she has since recovered nearly completely) but then my son ends up in hospital (he's recovered too) … then later my daughter (and yes she's okay too)… and then when everyone is finally back home … CoCoTALK! is “retired” unexpectedly and it takes an all hands on deck scramble to carry on as the CoCo Nation show which leads into early this year … where work goes into overdrive leaving me very little after work focus.
2023 UPDATE: New year development picking back up after a very rough 2022 … starting with a restructuring of the entire working / development directory to take better advantage of the new Pulsar editor which has evolved from the ashes of the Atom editor discontinued by Microsoft last year.
Along the way as possible, I've kept poking at the Z80 disassembly converting small pieces here and there until hitting a really frustrating blocker in the “move player around the map” code which has been months of tests, fails, and disappointments.
2023/06 UPDATE: … which tonight I found was caused by my own mistranslations of some of the Z80 logic. I have not given up… and tonight I started at the top of the F600 player move block and just started recoding instruction by instruction following the original Z80. I found and fixed a couple of logic / flow stupidity I'd incorrectly added… which got me chugging up to the main problem I've been stumbling against over and over no matter what I tried… the code that checks where the player can move or not on the map.
Tonight I finally got the keypress, direction set/check, player update, direction test and other pieces in ASMF600 … working? Really? After so much reality interrupt and so many occasional tests and fails I had practically given up - but now it works?
… I've finally gotten the real ported code back to the same interactive spot I'd gotten the CoCo3 only screen mockup up to back in 2021. The player moves. Next - the wall and treasure collision / pickups … then the alien move…. its finally working enough to start making progress again.
CODE
All “code-” file prefixes have been changed to “ax2-” for starters.
I am also looking at making the entire git development directory available.
Just the top-level source directory content needed to build the game are shown below.
Additional repo directories of various tests, mockups, and such created along the way are not shown, but are represented in the repo statistics above.
The code below gives you an example of where I got to by the end of 2022:
CODE MODULE | DESCRIPTION | |
---|---|---|
☐ | build.sh | Utility script that assembles the code and packages it as a CoCo DSK file |
☐ | code-acvc-v00.asm | Video driver for CoCo3 ACVC / GIME |
☐ | code-cocopsg-v00.asm | Audio driver for CoCoPSG by Ed “Zippster” Snider |
☐ | code-config-v00.asm | Configuration menu and functions |
☐ | code-dcsg-v00.asm | Audio Driver for Texas Instruments Digital Complex Sound Generator (DCSG) SN76489N in the Game Master Cartridge |
☐ | code-findmem3-v00.asm | Utility to find memory total present for configuration module |
☐ | code-gmc-v00.asm | Audio driver for Game Master Cartridge by John “Tuxdriver” Linville |
☐ | code-joy-v00.asm | Controller driver for CoCo analog joystick ports |
☐ | code-keyscn-v01.asm | Controller driver for CoCo and Dragon 53/57-key keyboard keyscn keyscn2 |
☐ | code-midi-v00.asm | Audio driver for CoCo MIDI / MIDI Maestro by Jim “go4retro” Brain |
☐ | code-mmmpi-v00.asm | Audio driver and utility code for MEGA-mini Multi-Pak Interface (MMMPI) by Ed “Zippster” Snider |
☐ | code-mpi-v00.asm | Utility driver for Multi-Pak Interface (MPI) |
☐ | code-onebit-v00.asm | Audio driver for CoCo 1-bit DAC sound “beeper” |
☐ | code-opl3-v00.asm | Audio driver for Yamaha OPL3 (YMF-262) FM-synthesis in the MEGA-mini Multi-Pack Interface |
☐ | code-orch90-v00.asm | Audio driver for the Orchestra90/CC stereo 8-bit DAC cartridge |
☐ | code-pia0-v00.asm | I/O driver for the Peripheral Interface Adapter (PIA) used in Keyboard, Multiplexer, and Interrupts |
☐ | code-pia1-v00.asm | I/O driver for the Peripheral Interface Adapter (PIA) used for the VDG, DAC Audio, Joystick ADC, RS232, Cassette, and Interrupts |
☐ | code-psg-v00.asm | Audio driver for the General Instruments AY-3-8910 Programmable Sound Generator used in many CoCo audio devices |
☐ | code-rnd-v00.asm | Utility pseudo-random number generator (PRNG) for placing resources in main game level |
☐ | code-sam-v00.asm | I/O driver for the Synchronous Address Multiplexer (MC6883) |
☐ | code-ssc-v00.asm | Audio driver for the Speech / Sound Cartridge with Narrator SP0256-AL2 and AY-3-891x PSG |
☐ | code-ssg-v00.asm | Audio driver for the Yamaha YM2149 Software-Controlled Sound Generator (SSG) used in the CoCo PSG |
☐ | code-symphony12-v00.asm | Audio driver for the Speech Systems Symphony-12 / Philharmonic-12 by Jim “go4retro” Brain |
☐ | code-timer-v00.asm | Utility timer countdown code |
☐ | code-vdgrg6-v01.asm | Video driver for the CoCo 1/2/Dragon MC6847 Video Display Generator (VDG) in Resolution Graphics 6 (RG6) mode (aka PMODE4) |
☐ | code-vdgsg4-v00.asm | Video driver for the CoCo 1/2/Dragon MC6847 Video Display Generator (VDG) in Semigraphics 4 (SG4) mode |
☐ | code-vdgt1-v00.asm | Video driver for the CoCo 1/2/Dragon MC6847 Video Display Generator (VDG) in Semigraphics 4 (SG4) mode with VDG Lowercase font support |
☐ | code-vdgvga-v00.asm | Video driver for the CoCo 1/2/Dragon MC6847 Video Display Generator (VDG) in Semigraphics 4 (SG4) mode with custom NEC PC6001-like font using CoCoVGA by Brendan Donahe |
☐ | data-alienred.asm | Semigraphic picture data for the alien |
☐ | data-asciipub-v02.asm | Semigraphic picture data for the ASCII Publishing logo |
☐ | data-ax2logo-v02.asm | Semigraphic picture data for the AX-2 logo |
☐ | data-cgrom60-v04.asm | Modified NEC PC-6001 font data |
☐ | data-copyright-v00.asm | Semigraphic picture data for the original copyright page |
☐ | data-intro-v03.asm | Semigraphic picture data for the introduction screen |
☐ | data-mainlvl-v02.asm | Semigraphic picture data for the main game level screen |
☐ | debug.sh | Utility script to test the work-in-progress code using MAME debugger |
☐ | nostromo.asm | The AX-2 Nostromo N60 BASIC/Z80 machine code port-in-progress to 6809 assembly |
☐ | run.sh | Utility script to run the game in MAME from a menu to test 5 different video modes |
☐ | template1.asm | Source code template v1 |
☐ | template2.asm | Source code template v2 |
☐ | template3.asm | Source code template v3 |
☐ | todo-clockirq.asm | Work in progress clock IRQ code to merge to timer module |
☐ | todo-crc16.asm | Work in progress cyclic redundancy check code to merge to configuration module |
☐ | todo-dac.asm | Work in progress DAC audio playback code for six-bit DAC |
☐ | todo-findmem2.asm | Work in progress memory tally code to merge to configuration module |
☐ | todo-findmem.asm | Work in progress memory tally code to merge to configuration module |
☐ | todo-gimeversion.asm | Work in progress ACVC / GIME version detector code to merge to ACVC module (if needed) |
☐ | todo-irq.asm | Work in progress interrupt handler/manager code |
☐ | todo-psymon-coco3.asm | Work in progress “onboard debugger” to merge utility functions if needed |
☐ | todo-rnd.asm | Work in progress alternate pseudo-random number generator if needed |
☐ | todo-romchk-coco.asm | Work in progress ROM identification code if needed for configuration module |
☐ | todo-romdump.asm | Work in progress ROM-to-RAM code if needed for setup module |
SCREENSHOTS
Click for full size …
~ 2022-04-08 via MAME
SEE ALSO
RTS
Return to Top