====== NOSTROMO ====== {{:nostromo:1156224-ax_2.jpg?direct&200|}} {{:nostromo:nostromo1.gif?nolink|}} 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 [[https://archive.org/details/NEC_PC_6001_TOSEC_2012_04_23|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 ==== **NOSTROMO** feels much more like a game now that the following work: * The alien stalks the corridors around the storage rooms * The crew can knock down walls to break into store rooms * The crew can only carry five items max * The crew can drop items in the escape shuttle * The tally of items carried and stored in the shuttle now update Some of the remaining work to complete include: * Timer display (timer coded, display remaining) * The time expired screen * The alien killed you screen * The level completed screen * Score tally * Next level goal logic to update number of items needed of each type * Game configuration interface to choose video, audio, controls, expansions * 17 x AY-3-8910 audio cues playable through sound drivers * Joystick control (written, needs to be integrated) * Hallway display 1 and 2 for time trial * The alien animation screens for level 7 and beyond * The game over play again screen * The ASCII and AX-2 logo screens (already mocked up) * The NOSTROMO intro screen (already mocked up) * Do I need to add a PMODE 3 screen for Dragon output? * Debug the item placement to fix the occasional mis-placement into the wall * Correct the wall display blocks for SG4 mode after the CoCoVGA font change * Take advantage of red/blue artifact colors on RG6 screen) * Add artifact color switch * High score display for screen shots * Help Key mode for later levels ==== CODE ==== {{:nostromo:nostromo-repo-20230827.png|Repo stats 20230827}} All "code-" file prefixes have been changed to "ax2-" for starters. 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 mid-2023: ^ ^ CODE MODULE ^ DESCRIPTION ^ | ☐ | [[https://exileinparadise.com/AX2/*.BAS|*.BAS]] | Helper BASIC program for DOS command to run NOSTROMO | | ☐ | [[https://exileinparadise.com/AX2/ACVC/ax2-acvc-v00.asm|ax2-acvc-v00.asm]] | Video driver for CoCo3 ACVC / GIME | | ☐ | [[https://exileinparadise.com/AX2/CGROM60/ax2-cgrom60-v04.asm|ax2-cgrom60-v04.asm]] | Modified NEC PC-6001 font data | | ☐ | [[https://exileinparadise.com/AX2/COCOPSG/ax2-cocopsg-v00.asm|ax2-cocopsg-v00.asm]] | Audio driver for CoCoPSG by Ed "Zippster" Snider | | ☐ | [[https://exileinparadise.com/AX2/COCOVGA/ax2-vdgvga-v00.asm|ax2-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 | | ☐ | [[https://exileinparadise.com/AX2/CONFIG/ax2-config-v00.asm|ax2-config-v00.asm]] | Configuration menu and functions | | ☐ | [[https://exileinparadise.com/AX2/DCSG/ax2-dcsg-v00.asm|ax2-dcsg-v00.asm]] | Audio Driver for Texas Instruments Digital Complex Sound Generator (DCSG) SN76489N in the Game Master Cartridge | | ☐ | [[https://exileinparadise.com/AX2/GMC/ax2-gmc-v00.asm|ax2-gmc-v00.asm]] | Audio driver for Game Master Cartridge by John "Tuxdriver" Linville | | ☐ | [[https://exileinparadise.com/AX2/IRQ/ax2-timer-v00.asm|ax2-timer-v00.asm]] | Utility timer countdown code | | ☐ | [[https://exileinparadise.com/AX2/JOY/ax2-joy-v00.asm|ax2-joy-v00.asm]] | Controller driver for CoCo analog joystick ports | | ☐ | [[https://exileinparadise.com/AX2/KEYSCN/ax2-keyscn-v01.asm|ax2-keyscn-v01.asm]] | Controller driver for CoCo and Dragon 53/57-key keyboard [[:tandy_color_computer:keyscn]] [[:tandy_color_computer:keyscn2]] | | ☐ | [[https://exileinparadise.com/AX2/MIDI/ax2-midi-v00.asm|ax2-midi-v00.asm]] | Audio driver for CoCo MIDI / MIDI Maestro by Jim "go4retro" Brain | | ☐ | [[https://exileinparadise.com/AX2/MMMPI/ax2-mmmpi-v00.asm|ax2-mmmpi-v00.asm]] | Audio driver and utility code for MEGA-mini Multi-Pak Interface (MMMPI) by Ed "Zippster" Snider | | ☐ | [[https://exileinparadise.com/AX2/MPI/ax2-mpi-v00.asm|ax2-mpi-v00.asm]] | Utility driver for Multi-Pak Interface (MPI) | | ☐ | [[https://exileinparadise.com/AX2/ONEBIT/ax2-onebit-v00.asm|ax3-onebit-v00.asm]] | Audio driver for CoCo 1-bit DAC sound "beeper" | | ☐ | [[https://exileinparadise.com/AX2/OPL3/ax2-opl3-v00.asm|ax2-opl3-v00.asm]] | Audio driver for Yamaha OPL3 (YMF-262) FM-synthesis in the MEGA-mini Multi-Pack Interface | | ☐ | [[https://exileinparadise.com/AX2/ORCH90/ax2-orch90-v00.asm|ax2-orch90-v00.asm]] | Audio driver for the Orchestra90/CC stereo 8-bit DAC cartridge | | ☐ | [[https://exileinparadise.com/AX2/PIA/ax2-pia0-v00.asm|ax2-pia0-v00.asm]] | I/O driver for the Peripheral Interface Adapter (PIA) used in Keyboard, Multiplexer, and Interrupts | | ☐ | [[https://exileinparadise.com/AX2/PIA/ax2-pia1-v00.asm|ax2-pia1-v00.asm]] | I/O driver for the Peripheral Interface Adapter (PIA) used for the VDG, DAC Audio, Joystick ADC, RS232, Cassette, and Interrupts | | ☐ | [[https://exileinparadise.com/AX2/PSG/ax2-psg-v00.asm|ax2-psg-v00.asm]] | Audio driver for the General Instruments AY-3-8910 Programmable Sound Generator used in many CoCo audio devices | | ☐ | [[https://exileinparadise.com/AX2/RND/ax2-rnd-v00.asm|ax2-rnd-v00.asm]] | Utility pseudo-random number generator (PRNG) for placing resources in main game level | | ☐ | [[https://exileinparadise.com/AX2/SAM/ax2-sam-v00.asm|ax2-sam-v00.asm]] | I/O driver for the Synchronous Address Multiplexer (MC6883) | | ☐ | [[https://exileinparadise.com/AX2/SIXBIT/todo-dac-v00.asm|todo-dac-v00.asm]] | Audio driver for CoCo 6-bit DAC sound | | ☐ | [[https://exileinparadise.com/AX2/SSC/ax2-ssc-v00.asm|ax2-ssc-v00.asm]] | Audio driver for the Speech / Sound Cartridge with Narrator SP0256-AL2 and AY-3-891x PSG | | ☐ | [[https://exileinparadise.com/AX2/SSG/ax2-ssg-v00.asm|ax2-ssg-v00.asm]] | Audio driver for the Yamaha YM2149 Software-Controlled Sound Generator (SSG) used in the CoCo PSG | | ☐ | [[https://exileinparadise.com/AX2/SYMPHONY12/ax2-symphony12-v00.asm|ax2-symphony12-v00.asm]] | Audio driver for the Speech Systems Symphony-12 / Philharmonic-12 by Jim "go4retro" Brain | | ☐ | [[https://exileinparadise.com/AX2/VDG/ax2-vdgrg6-v01.asm|ax2-vdgrg6-v01.asm]] | Video driver for the CoCo 1/2/Dragon MC6847 Video Display Generator (VDG) in Resolution Graphics 6 (RG6) mode (aka PMODE4) | | ☐ | [[https://exileinparadise.com/AX2/VDG/ax2-vdgsg4-v00.asm|ax2-vdgsg4-v00.asm]] | Video driver for the CoCo 1/2/Dragon MC6847 Video Display Generator (VDG) in Semigraphics 4 (SG4) mode | | ☐ | [[https://exileinparadise.com/AX2/VDG/ax2-vdgt1-v00.asm|ax2-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 | | ☐ | [[https://exileinparadise.com/AX2/build.sh|build.sh]] | Utility script that assembles the code and packages it as a CoCo DSK file | | ☐ | [[https://exileinparadise.com/AX2/debug.sh|debug.sh]] | Utility script to test the work-in-progress code using MAME debugger | | ☐ | [[https://exileinparadise.com/AX2/nostromo.asm|nostromo.asm]] | The AX-2 Nostromo N60 BASIC/Z80 machine code port-in-progress to 6809 assembly | | ☐ | [[https://exileinparadise.com/AX2/run.sh|run.sh]] | Utility script to run the game in MAME from a menu to test 5 different video modes | | ☐ | [[https://exileinparadise.com/AX2/template3.asm|template3.asm]] | Source code template v3 | ===== SCREENSHOTS ===== Click for full size ... ^ MACHINE / MODE ^ COPYRIGHT SCREEN ^ MAIN LEVEL ^ | CoCo 1/2 VDG RG6 | {{:nostromo:2022-04-08-vdgrg6-copyright.png?direct&400|}} | {{:nostromo:2022-04-08-vdgrg6-main.png?direct&400|}} | | CoCo 3 ACVC 256x192x16 | {{:nostromo:2022-04-08-acvc-copyright.png?direct&400|}} | {{:nostromo:2022-04-08-acvc-main.png?direct&400|}} | ~ 2022-04-08 via MAME ===== SEE ALSO ===== [[http://boxequalsart.com/timeline-page.html|Timeline Page| BOX=ART]] \\ [[http://clrhome.org/table/|Z80 instruction set - ClrHome]] \\ [[https://readonlymemory.vg/ascii-corporation/|ASCII Corporation - Read-Only Memory]] \\ ===== RTS ===== Return to [[:Top]]