Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
nostromo:top [2024/07/16 20:21] – [UPDATES] robertnostromo:top [2025/03/19 19:32] (current) – [Walking Through The Code] robert
Line 2: Line 2:
 {{:nostromo:1156224-ax_2.jpg?direct&200|}} {{:nostromo:nostromo1.gif?nolink|}} {{:nostromo:1156224-ax_2.jpg?direct&200|}} {{:nostromo:nostromo1.gif?nolink|}}
  
-AX-2: Uchuu Yusousen Nostromo (Space Freighter 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 =====+Designed and Programmed for the Commodore Pet 2001 by **Akira Takiguchi** in 1981
  
-| PROCESSOR | NEC microPD780C-1 (Zilog Z80-compatible) Microprocessor (MPU) @ 3.8MHz | +===== NEC PC-6001 Port =====
-| 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]] \\ +Ported to the NEC-PC6001 by **Masakuni Mitsuhashi** aka **Hiromi Ohba** aka **Mitsu** in 1982
-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]]+Cover Artwork by **Masashi Iwasaki**
  
-===== MC-10 PORTS ===== +Published by **ASCII Entertainment** in Japan
-| 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/]] \\ +  * [[NEC PC-6001 Port]]  
-2018-05 NOSTRO: [[https://jimgerrie.blogspot.com/2018/05/uchuu-yusousen-nostromo.html]] +    * Memory Layout: [[NOSTROMO Memory Map]] 
 +    * N60 BASIC Listing: [[NOSTROMO.BAS]] 
 +    * Z80 Machine Code: [[NOSTROMO.Z80]] 
 +      * [[http://clrhome.org/table/|Z80 instruction set - ClrHome]] 
 +    [[https://readonlymemory.vg/ascii-corporation/|ASCII Corporation Read-Only Memory]] 
 +    * [[http://boxequalsart.com/timeline-page.html|Timeline Page| BOX=ART]] \\
  
-===== COCO / DRAGON PORT ===== +===== MC-10 Ports ===== 
-| PROCESSOR | Motorola MC6809  or Hitachi HD6309 @ 0.89/1.789 MHz | +Ported to Radio Shack **TRS-80 Micro Color Computer MC-10** by **Jim Gerrie** in 2015 and 2018 
-| 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 ====+  * [[MC-10 Ports]] 
 +    * 2015-11 NOSTROMO: [[https://jimgerrie.blogspot.com/2015/11/]] 
 +      * [[https://github.com/jggames/trs80mc10/tree/master/quicktype/Arcade/Nostromo|MC-10 NOSTROMO.BAS]] 
 +    * 2018-05 NOSTRO: [[https://jimgerrie.blogspot.com/2018/05/uchuu-yusousen-nostromo.html]] 
 +      * [[https://github.com/jggames/trs80mc10/tree/master/quicktype/Arcade/Nostro|MC-10 NOSTRO.BAS]] 
 +  
 +===== CoCo / Dragon Port =====
  
-**NOSTROMO** feels much more like a game now that the following work: +Port underway for the **TRS-80 Color Computer** "CoCo" and **Dragon Data Dragon 32/64**
-  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: +  [[CoCo Dragon Port]] 
-  Timer display (timer coded, display remaining) +    [[Updates]] 
-  * The time expired screen +    [[Source Code]] 
-  * The alien killed you screen +    [[Screenshots]]
-  * 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 +
-==== CODE ====+
  
-{{:nostromo:nostromo-repo-20230827.png|Repo stats 20230827}}+===== Walking Through The Code =====
  
-All "code-" file prefixes have been changed to "ax2-" for starters.+As I have worked through the NEC PC6001 port I have found many nooks and crannies to explore and decisions about how to my port to the CoCo along the way.
  
-Just the top-level source directory content needed to build the game are shown below.+The NEC PC-6001 loads the NOSTRO cassette data into the BASIC program memory.
  
-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 cassette file continues past the last line of tokenized BASIC codeloading Z80 binary machine code and more data into the memory after the lines of BASIC.
  
-The code below gives you an example of where got to by the mid-2023:+I've decided to build this table to organize my findings and help complete what's left to port.
  
-^ ^ CODE MODULE DESCRIPTION +BASIC Lines  Z80 Addresses  Purpose  
-☐ | [[https://exileinparadise.com/AX2/*.BAS|*.BAS]] | Helper BASIC program for DOS command to run NOSTROMO | +| 1 -             | [[Copyright]] REMarks 
-| ☐ | [[https://exileinparadise.com/AX2/ACVC/ax2-acvc-v00.asm|ax2-acvc-v00.asm]] | Video driver for CoCo3 ACVC / GIME | +10                | [[One Time Setup]] | 
-| ☐ | [[https://exileinparadise.com/AX2/CGROM60/ax2-cgrom60-v04.asm|ax2-cgrom60-v04.asm]] | Modified NEC PC-6001 font data | +      E164 E17D | [[Memory Setup]] | 
-| ☐ | [[https://exileinparadise.com/AX2/COCOPSG/ax2-cocopsg-v00.asm|ax2-cocopsg-v00.asm]] | Audio driver for CoCoPSG by Ed "Zippster" Snider | +      E240 E255 | [[Replace Line 10]] | 
-| ☐ | [[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  | +80-90             | [[Finish Setup]] | 
-| ☐ | [[https://exileinparadise.com/AX2/CONFIG/ax2-config-v00.asm|ax2-config-v00.asm]] | Configuration menu and functions +| :!more ... | | | 
-☐ [[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 | +5000              | [[Find Next Screen]] |
-| ☐ | [[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]] Return to [[:Top]]
-