<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://calebneedscollege.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Legg</id>
	<title>Public Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://calebneedscollege.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Legg"/>
	<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php/Special:Contributions/Legg"/>
	<updated>2026-04-24T18:46:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=6510_-_STA_-_0x99_-_Absolute,Y&amp;diff=341</id>
		<title>6510 - STA - 0x99 - Absolute,Y</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=6510_-_STA_-_0x99_-_Absolute,Y&amp;diff=341"/>
		<updated>2023-10-07T22:57:15Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;==Synopsis== Stores value of A into the location of BASE+Y.  ==Assembly Demo== &amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;  ; Subroutine BlankScreen() ; write ' ' to the memory from $0428 t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
Stores value of A into the location of BASE+Y.&lt;br /&gt;
&lt;br /&gt;
==Assembly Demo==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
C000: A0 00      LDY  #$00&lt;br /&gt;
C002: A9 20      LDA  #$20    ; ' ' space character&lt;br /&gt;
C004: 99 00 04   STA  $0400,Y&lt;br /&gt;
C007: 99 00 05   STA  $0500,Y&lt;br /&gt;
C00A: 99 00 06   STA  $0600,Y&lt;br /&gt;
C00D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
C010: 88         DEY&lt;br /&gt;
C011: D0 F1      BNE  $C004&lt;br /&gt;
C013: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==BASIC Demo==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1 fora=49152to49171:readb:pokea,b:nexta &lt;br /&gt;
49152 data 160,0,169,32,153,0,4,153    &lt;br /&gt;
49160 data 0,5,153,0,6,153,235,6      &lt;br /&gt;
49168 data 136,208,241,96  &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Commodore_64_6510_CPU_Explained&amp;diff=340</id>
		<title>Commodore 64 6510 CPU Explained</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Commodore_64_6510_CPU_Explained&amp;diff=340"/>
		<updated>2023-10-07T22:43:24Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;==Opcodes== 6510 - STA - 0x99 - Absolute,Y&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Opcodes==&lt;br /&gt;
[[6510 - STA - 0x99 - Absolute,Y]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=339</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=339"/>
		<updated>2023-10-07T21:30:02Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1CD3 - Main Loop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - FireSirenSound ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
&lt;br /&gt;
; A register is number of sound ticks remaining&lt;br /&gt;
&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end FireSirenSound&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 18C8 - Reduce E35 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8 ; Reduce E35&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E ;Print null terminated string&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26 ; End of game via fatality, jump&lt;br /&gt;
1ED1: A9 10      LDA  #$10  ; else proceed&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26 ; If zero, no celebration sounds or bonus&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=338</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=338"/>
		<updated>2023-10-07T20:33:26Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1CD3 - Main Loop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - FireSirenSound ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
&lt;br /&gt;
; A register is number of sound ticks remaining&lt;br /&gt;
&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end FireSirenSound&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 18C8 - Reduce E35 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8 ; Reduce E35&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26 ; If zero, no celebration&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=337</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=337"/>
		<updated>2023-10-07T20:22:05Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1CD3 - Main Loop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - FireSirenSound ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
&lt;br /&gt;
; A register is number of sound ticks remaining&lt;br /&gt;
&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end FireSirenSound&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 18C8 - Reduce E35 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8 ; Reduce E35&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=336</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=336"/>
		<updated>2023-10-07T20:20:07Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* - */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - FireSirenSound ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
&lt;br /&gt;
; A register is number of sound ticks remaining&lt;br /&gt;
&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end FireSirenSound&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 18C8 - Reduce E35 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=335</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=335"/>
		<updated>2023-10-07T20:06:17Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - FireSirenSound ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
&lt;br /&gt;
; A register is number of sound ticks remaining&lt;br /&gt;
&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end FireSirenSound&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; FireSirenSound($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=334</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=334"/>
		<updated>2023-10-07T19:24:53Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0F8C - SubroutineB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
&lt;br /&gt;
; A register is number of sound ticks remaining&lt;br /&gt;
&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=333</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=333"/>
		<updated>2023-10-07T07:04:11Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1C54 Main */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; Countdown lives at winning&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register - Bonus point &amp;quot;twang&amp;quot;&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991_-_Magazine_Variant&amp;diff=332</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991_-_Magazine_Variant&amp;diff=332"/>
		<updated>2023-10-07T02:21:09Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&lt;br /&gt;
;  0x0801 is BASIC RAM &lt;br /&gt;
0801: 0B 08      ;pointer to 0x080B in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 70 17      ;0x1770 is BASIC line number 6000&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 32 34 30 37;ASCII parameters of 2407 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0967&lt;br /&gt;
080A: 00         ;End of line&lt;br /&gt;
080B: 00         ;Empty pointer to indicate&lt;br /&gt;
080C: 00         ;the end of a BASIC program&lt;br /&gt;
080D: 20 20 20   &lt;br /&gt;
0810: 20 20 20 20 20 20   &lt;br /&gt;
0816: A0 C4      LDY  #$C4      ; Copy 196 bytes as a group&lt;br /&gt;
0818: B9 3C 08   LDA  $083C,Y   ; Copy 083D - 0900&lt;br /&gt;
081B: 99 F8 00   STA  $00F8,Y   ;   into 0F9 - 1BC&lt;br /&gt;
081E: B9 FD 08   LDA  $08FD,Y   ; Copy 08FE - 09C1&lt;br /&gt;
0821: 99 33 03   STA  $0333,Y   ;   into 334 - 3F7&lt;br /&gt;
0824: 88         DEY&lt;br /&gt;
0825: D0 F1      BNE  $0818&lt;br /&gt;
0827: A0 09      LDY  #$09      ; Copy 9 bytes as a group&lt;br /&gt;
0829: B9 0C 08   LDA  $080C,Y   ; Copy 080D - 0815&lt;br /&gt;
082C: 99 FF 03   STA  $03FF,Y   ;   into 0400 - 0408&lt;br /&gt;
082F: 88         DEY&lt;br /&gt;
0830: D0 F7      BNE  $0829&lt;br /&gt;
0832: A9 3C      LDA  #$3C      ;Load $1F3C into&lt;br /&gt;
0834: 85 2D      STA  $2D       ;ZeroPage $2D-$2E&lt;br /&gt;
0836: A9 1F      LDA  #$1F      ;Basic variables&lt;br /&gt;
0838: 85 2E      STA  $2E       ;pointer&lt;br /&gt;
083A: 4C 00 01   JMP  $0100&lt;br /&gt;
083D: 11 EA      ORA  ($EA),Y ; this code segment is copied to 0x00F9&lt;br /&gt;
083F: 04 3C      DOP  $3C&lt;br /&gt;
0841: 1F 81 16   SLO  $1681,X&lt;br /&gt;
0844: B9 6E 09   LDA  $096E,Y  ; New Address: 0100&lt;br /&gt;
0847: 99 E8 07   STA  $07E8,Y&lt;br /&gt;
084A: C8         INY&lt;br /&gt;
084B: D0 F7      BNE  $0844&lt;br /&gt;
084D: EE 02 01   INC  $0102&lt;br /&gt;
0850: EE 05 01   INC  $0105&lt;br /&gt;
0853: C6 F9      DEC  $F9&lt;br /&gt;
0855: D0 ED      BNE  $0844&lt;br /&gt;
0857: A2 03      LDX  #$03&lt;br /&gt;
0859: 20 34 03   JSR  $0334&lt;br /&gt;
085C: F0 33      BEQ  $0891&lt;br /&gt;
085E: C9 07      CMP  #$07&lt;br /&gt;
0860: D0 16      BNE  $0878&lt;br /&gt;
0862: A2 01      LDX  #$01&lt;br /&gt;
0864: 20 34 03   JSR  $0334 ; this code segment is copied to 0x0120&lt;br /&gt;
0867: D0 0A      BNE  $0873&lt;br /&gt;
0869: A2 04      LDX  #$04&lt;br /&gt;
086B: 20 34 03   JSR  $0334&lt;br /&gt;
086E: 18         CLC&lt;br /&gt;
086F: 69 07      ADC  #$07&lt;br /&gt;
0871: 10 05      BPL  $0878&lt;br /&gt;
0873: A2 0A      LDX  #$0A&lt;br /&gt;
0875: 20 34 03   JSR  $0334&lt;br /&gt;
0878: 85 A8      STA  $A8&lt;br /&gt;
087A: A5 A7      LDA  $A7&lt;br /&gt;
087C: 85 A9      STA  $A9&lt;br /&gt;
087E: A5 FE      LDA  $FE&lt;br /&gt;
0880: 85 F7      STA  $F7&lt;br /&gt;
0882: A5 FF      LDA  $FF&lt;br /&gt;
0884: 85 F8      STA  $F8&lt;br /&gt;
0886: 20 6C 03   JSR  $036C&lt;br /&gt;
0889: A5 F8      LDA  $F8&lt;br /&gt;
088B: 85 FF      STA  $FF&lt;br /&gt;
088D: A5 F7      LDA  $F7&lt;br /&gt;
088F: 85 FE      STA  $FE&lt;br /&gt;
0891: E8         INX&lt;br /&gt;
0892: 20 34 03   JSR  $0334&lt;br /&gt;
0895: D0 1E      BNE  $08B5&lt;br /&gt;
0897: A2 08      LDX  #$08&lt;br /&gt;
0899: 20 34 03   JSR  $0334&lt;br /&gt;
089C: A0 02      LDY  #$02&lt;br /&gt;
089E: 84 A8      STY  $A8&lt;br /&gt;
08A0: 85 A6      STA  $A6&lt;br /&gt;
08A2: 18         CLC&lt;br /&gt;
08A3: A5 FC      LDA  $FC&lt;br /&gt;
08A5: 65 A6      ADC  $A6&lt;br /&gt;
08A7: 85 F7      STA  $F7&lt;br /&gt;
08A9: A5 FD      LDA  $FD&lt;br /&gt;
08AB: 65 A7      ADC  $A7&lt;br /&gt;
08AD: 85 F8      STA  $F8&lt;br /&gt;
08AF: 20 6C 03   JSR  $036C&lt;br /&gt;
08B2: 4C 13 01   JMP  $0113&lt;br /&gt;
08B5: E8         INX          ;this code segment is copied to 0x0171&lt;br /&gt;
08B6: 20 34 03   JSR  $0334&lt;br /&gt;
08B9: D0 1C      BNE  $08D7&lt;br /&gt;
08BB: A0 03      LDY  #$03&lt;br /&gt;
08BD: 84 A8      STY  $A8&lt;br /&gt;
08BF: E8         INX&lt;br /&gt;
08C0: 20 34 03   JSR  $0334&lt;br /&gt;
08C3: F0 08      BEQ  $08CD&lt;br /&gt;
08C5: A2 08      LDX  #$08&lt;br /&gt;
08C7: 20 34 03   JSR  $0334&lt;br /&gt;
08CA: 4C 5C 01   JMP  $015C&lt;br /&gt;
08CD: A2 0F      LDX  #$0F&lt;br /&gt;
08CF: 20 34 03   JSR  $0334&lt;br /&gt;
08D2: E6 A7      INC  $A7&lt;br /&gt;
08D4: 4C 5C 01   JMP  $015C   ;this code segment is copied to 0x0190&lt;br /&gt;
08D7: E8         INX&lt;br /&gt;
08D8: 20 34 03   JSR  $0334&lt;br /&gt;
08DB: D0 0A      BNE  $08E7&lt;br /&gt;
08DD: E8         INX&lt;br /&gt;
08DE: 20 34 03   JSR  $0334&lt;br /&gt;
08E1: 18         CLC&lt;br /&gt;
08E2: 69 04      ADC  #$04&lt;br /&gt;
08E4: A8         TAY             ; this code segment is copied to 0x01a0&lt;br /&gt;
08E5: D0 D6      BNE  $08BD&lt;br /&gt;
08E7: E8         INX&lt;br /&gt;
08E8: 20 34 03   JSR  $0334&lt;br /&gt;
08EB: D0 0A      BNE  $08F7&lt;br /&gt;
08ED: A2 02      LDX  #$02&lt;br /&gt;
08EF: 20 34 03   JSR  $0334&lt;br /&gt;
08F2: 18         CLC&lt;br /&gt;
08F3: 69 06      ADC  #$06&lt;br /&gt;
08F5: D0 ED      BNE  $08E4&lt;br /&gt;
08F7: A2 08      LDX  #$08&lt;br /&gt;
08F9: 20 34 03   JSR  $0334&lt;br /&gt;
08FC: D0 E6      BNE  $08E4&lt;br /&gt;
08FE: A9 00      LDA  #$00&lt;br /&gt;
0900: 85 A7      STA  $A7   ;01bc&lt;br /&gt;
0902: A4 FB      LDY  $FB&lt;br /&gt;
0904: F0 0C      BEQ  $0912&lt;br /&gt;
0906: 06 FA      ASL  $FA&lt;br /&gt;
0908: 2A         ROL  A&lt;br /&gt;
0909: 26 A7      ROL  $A7&lt;br /&gt;
090B: C6 FB      DEC  $FB&lt;br /&gt;
090D: CA         DEX&lt;br /&gt;
090E: D0 F2      BNE  $0902&lt;br /&gt;
0910: A8         TAY&lt;br /&gt;
0911: 60         RTS&lt;br /&gt;
0912: 48         PHA&lt;br /&gt;
0913: B1 FE      LDA  ($FE),Y&lt;br /&gt;
0915: 85 FA      STA  $FA&lt;br /&gt;
0917: A9 08      LDA  #$08&lt;br /&gt;
0919: 85 FB      STA  $FB&lt;br /&gt;
091B: 68         PLA&lt;br /&gt;
091C: A4 FE      LDY  $FE&lt;br /&gt;
091E: D0 02      BNE  $0922&lt;br /&gt;
0920: C6 FF      DEC  $FF&lt;br /&gt;
0922: C6 FE      DEC  $FE&lt;br /&gt;
0924: C0 E7      CPY  #$E7&lt;br /&gt;
0926: D0 DE      BNE  $0906&lt;br /&gt;
0928: A4 FF      LDY  $FF&lt;br /&gt;
092A: C0 07      CPY  #$07&lt;br /&gt;
092C: D0 D8      BNE  $0906&lt;br /&gt;
092E: A9 37      LDA  #$37&lt;br /&gt;
0930: 85 01      STA  $01&lt;br /&gt;
0932: 58         CLI&lt;br /&gt;
0933: 4C 00 0E   JMP  $0E00&lt;br /&gt;
0936: A4 A8      LDY  $A8&lt;br /&gt;
0938: F0 22      BEQ  $095C&lt;br /&gt;
093A: A5 F7      LDA  $F7&lt;br /&gt;
093C: 38         SEC&lt;br /&gt;
093D: E5 A8      SBC  $A8&lt;br /&gt;
093F: B0 03      BCS  $0944&lt;br /&gt;
0941: C6 F8      DEC  $F8&lt;br /&gt;
0943: 38         SEC&lt;br /&gt;
0944: 85 F7      STA  $F7&lt;br /&gt;
0946: A5 FC      LDA  $FC&lt;br /&gt;
0948: E5 A8      SBC  $A8&lt;br /&gt;
094A: B0 02      BCS  $094E&lt;br /&gt;
094C: C6 FD      DEC  $FD&lt;br /&gt;
094E: 85 FC      STA  $FC&lt;br /&gt;
0950: B1 F7      LDA  ($F7),Y&lt;br /&gt;
0952: 88         DEY&lt;br /&gt;
0953: 91 FC      STA  ($FC),Y&lt;br /&gt;
0955: 98         TYA&lt;br /&gt;
0956: D0 F8      BNE  $0950&lt;br /&gt;
0958: C4 A9      CPY  $A9&lt;br /&gt;
095A: F0 0A      BEQ  $0966&lt;br /&gt;
095C: B1 F7      LDA  ($F7),Y&lt;br /&gt;
095E: C6 FD      DEC  $FD&lt;br /&gt;
0960: C6 F8      DEC  $F8&lt;br /&gt;
0962: C6 A9      DEC  $A9&lt;br /&gt;
0964: 10 EC      BPL  $0952&lt;br /&gt;
0966: 60         RTS&lt;br /&gt;
&lt;br /&gt;
0967: 78         SEI&lt;br /&gt;
0968: E6 01      INC  $01&lt;br /&gt;
096A: 4C 16 08   JMP  $0816&lt;br /&gt;
096D: 60         RTS&lt;br /&gt;
096E: 20 08 0A   JSR  $0A08&lt;br /&gt;
0971: 00         BRK&lt;br /&gt;
0972: 9E 33 35   SHX  $3533,Y&lt;br /&gt;
0975: 38         SEC&lt;br /&gt;
0976: 34 20      DOP  $20,X&lt;br /&gt;
0978: 22         JAM&lt;br /&gt;
0979: 0E 5E 4B   ASL  $4B5E&lt;br /&gt;
097C: 60         RTS&lt;br /&gt;
097D: C0 0B      CPY  #$0B&lt;br /&gt;
097F: 44 49      DOP  $49&lt;br /&gt;
0981: 58         CLI&lt;br /&gt;
0982: 91 20      STA  ($20),Y&lt;br /&gt;
0984: BA         TSX&lt;br /&gt;
0985: E1 05      SBC  ($05,X)&lt;br /&gt;
0987: 8D 10 78   STA  $7810&lt;br /&gt;
098A: 08         PHP&lt;br /&gt;
098B: F1 38      SBC  ($38),Y&lt;br /&gt;
098D: A8         TAY&lt;br /&gt;
098E: 63 20      RRA  ($20,X)&lt;br /&gt;
0990: 23 66      RLA  ($66,X)&lt;br /&gt;
0992: 66 80      ROR  $80&lt;br /&gt;
0994: 7E 00 70   ROR  $7000,X&lt;br /&gt;
0997: 14 0F      DOP  $0F,X&lt;br /&gt;
0999: 34 42      DOP  $42,X&lt;br /&gt;
099B: C0 5F      CPY  #$5F&lt;br /&gt;
099D: FC 06 C0   TOP  $C006,X&lt;br /&gt;
09A0: 57 7C      SRE  $7C,X&lt;br /&gt;
09A2: 22         JAM&lt;br /&gt;
09A3: 05 C4      ORA  $C4&lt;br /&gt;
09A5: 72         JAM&lt;br /&gt;
09A6: C1 53      CMP  ($53,X)&lt;br /&gt;
09A8: FC 07 30   TOP  $3007,X&lt;br /&gt;
09AB: 84 BE      STY  $BE&lt;br /&gt;
09AD: 3C F4 08   TOP  $08F4,X&lt;br /&gt;
09B0: 18         CLC&lt;br /&gt;
09B1: 10 05      BPL  $09B8&lt;br /&gt;
09B3: 82 00      DOP  #$00&lt;br /&gt;
09B5: 0E 21 00   ASL  $0021&lt;br /&gt;
09B8: C1 53      CMP  ($53,X)&lt;br /&gt;
09BA: CC 07 88   CPY  $8807&lt;br /&gt;
09BD: FE 2D 06   INC  $062D,X&lt;br /&gt;
09C0: 9F 1F 00   AXA  $001F,Y&lt;br /&gt;
09C3: 1C 3F C5   TOP  $C53F,X&lt;br /&gt;
09C6: 5F 80 C8   SRE  $C880,X&lt;br /&gt;
09C9: 0B 10      ANC  #$10&lt;br /&gt;
09CB: 33 00      RLA  ($00),Y&lt;br /&gt;
09CD: A2 2D      LDX  #$2D&lt;br /&gt;
09CF: 40         RTI&lt;br /&gt;
09D0: F4 54      DOP  $54,X&lt;br /&gt;
09D2: F0 F9      BEQ  $09CD&lt;br /&gt;
09D4: 48         PHA&lt;br /&gt;
09D5: 14 0B      DOP  $0B,X&lt;br /&gt;
09D7: 01 E2      ORA  ($E2,X)&lt;br /&gt;
09D9: A7 E0      LAX  $E0&lt;br /&gt;
09DB: 07 C0      SLO  $C0&lt;br /&gt;
09DD: 01 0F      ORA  ($0F,X)&lt;br /&gt;
09DF: 80 A3      DOP  #$A3&lt;br /&gt;
09E1: A7 CA      LAX  $CA&lt;br /&gt;
09E3: 21 47      AND  ($47),Y&lt;br /&gt;
09E5: A2 58      LDX  #$58&lt;br /&gt;
09E7: 28         PLP&lt;br /&gt;
09E8: 0A         ASL  A&lt;br /&gt;
09E9: 01 84      ORA  ($84,X)&lt;br /&gt;
09EB: 50 91      BVC  $097E&lt;br /&gt;
09ED: 07 20      SLO  $20&lt;br /&gt;
09EF: E6 00      INC  $00&lt;br /&gt;
09F1: 44 1B      DOP  $1B&lt;br /&gt;
09F3: 80 D0      DOP  #$D0&lt;br /&gt;
09F5: A9 F2      LDA  #$F2&lt;br /&gt;
09F7: 90 79      BCC  $0A72&lt;br /&gt;
09F9: 28         PLP&lt;br /&gt;
09FA: 10 00      BPL  $09FC&lt;br /&gt;
09FC: 70 FC      BVS  $09FA&lt;br /&gt;
09FE: 17 3C      SLO  $3C,X&lt;br /&gt;
0A00: C5 7C      CMP  $7C&lt;br /&gt;
0A02: A1 B3      LDA  ($B3,X)&lt;br /&gt;
0A04: E5 20      SBC  $20&lt;br /&gt;
0A06: 13 59      SLO  ($59),Y&lt;br /&gt;
0A08: 2C 16 85   BIT  $8516&lt;br /&gt;
0A0B: C5 5F      CMP  $5F&lt;br /&gt;
0A0D: 91 57      STA  ($57),Y&lt;br /&gt;
0A0F: F4 04      DOP  $04,X&lt;br /&gt;
0A11: C0 58      CPY  #$58&lt;br /&gt;
0A13: 7C 1E 8A   TOP  $8A1E,X&lt;br /&gt;
0A16: 85 A2      STA  $A2&lt;br /&gt;
0A18: A0 7C      LDY  #$7C&lt;br /&gt;
0A1A: C9 DF      CMP  #$DF&lt;br /&gt;
0A1C: F8         SED&lt;br /&gt;
0A1D: 01 80      ORA  ($80,X)&lt;br /&gt;
0A1F: 4C F9 48   JMP  $48F9&lt;br /&gt;
0A22: C4 21      CPY  $21&lt;br /&gt;
0A24: 04 20      DOP  $20&lt;br /&gt;
0A26: 78         SEI&lt;br /&gt;
0A27: 8A         TXA&lt;br /&gt;
0A28: 9F 02 B6   AXA  $B602,Y&lt;br /&gt;
0A2B: 04 E1      DOP  $E1&lt;br /&gt;
0A2D: C9 F2      CMP  #$F2&lt;br /&gt;
0A2F: F7 79      ISB  $79,X&lt;br /&gt;
0A31: 70 68      BVS  $0A9B&lt;br /&gt;
0A33: 84 E2      STY  $E2&lt;br /&gt;
0A35: C8         INY&lt;br /&gt;
0A36: 07 81      SLO  $81&lt;br /&gt;
0A38: 1C E6 E7   TOP  $E7E6,X&lt;br /&gt;
0A3B: CB 4C      AXS  #$4C&lt;br /&gt;
0A3D: 07 18      SLO  $18&lt;br /&gt;
0A3F: 40         RTI&lt;br /&gt;
0A40: 2C 3C 34   BIT  $343C&lt;br /&gt;
0A43: 02         JAM&lt;br /&gt;
0A44: 3E F2 B3   ROL  $B3F2,X&lt;br /&gt;
0A47: 38         SEC&lt;br /&gt;
0A48: F3 F3      ISB  ($F3),Y&lt;br /&gt;
0A4A: E5 AC      SBC  $AC&lt;br /&gt;
0A4C: 23 50      RLA  ($50,X)&lt;br /&gt;
0A4E: 08         PHP&lt;br /&gt;
0A4F: 00         BRK&lt;br /&gt;
0A50: E0 F8      CPX  #$F8&lt;br /&gt;
0A52: 2F 7E 33   RLA  $337E&lt;br /&gt;
0A55: 9A         TXS&lt;br /&gt;
0A56: 9F 2F 85   AXA  $852F,Y&lt;br /&gt;
0A59: 03 AF      SLO  ($AF,X)&lt;br /&gt;
0A5B: 85 0F      STA  $0F&lt;br /&gt;
0A5D: 1D 01 E0   ORA  $E001,X&lt;br /&gt;
0A60: 3F 69 04   RLA  $0469,X&lt;br /&gt;
0A63: 07 E4      SLO  $E4&lt;br /&gt;
0A65: E7 CB      ISB  $CB&lt;br /&gt;
0A67: 5D E7 A1   EOR  $A1E7,X&lt;br /&gt;
0A6A: 03 11      SLO  ($11,X)&lt;br /&gt;
0A6C: DA         NOP&lt;br /&gt;
0A6D: 7F F9 D9   RRA  $D9F9,X&lt;br /&gt;
0A70: E0 29      CPX  #$29&lt;br /&gt;
0A72: F4 B6      DOP  $B6,X&lt;br /&gt;
0A74: 0A         ASL  A&lt;br /&gt;
0A75: 7C 24 E2   TOP  $E224,X&lt;br /&gt;
0A78: 3F 80 00   RLA  $0080,X&lt;br /&gt;
0A7B: 1F 14 0E   SLO  $0E14,X&lt;br /&gt;
0A7E: 10 9B      BPL  $0A1B&lt;br /&gt;
0A80: 08         PHP&lt;br /&gt;
0A81: 9D 9C 2C   STA  $2C9C,X&lt;br /&gt;
0A84: A9 1F      LDA  #$1F&lt;br /&gt;
0A86: 86 38      STX  $38&lt;br /&gt;
0A88: 0A         ASL  A&lt;br /&gt;
0A89: 1E 1A A1   ASL  $A11A,X&lt;br /&gt;
0A8C: 32         JAM&lt;br /&gt;
0A8D: 8F 81 B0   SAX  $B081&lt;br /&gt;
0A90: E6 A1      INC  $A1&lt;br /&gt;
0A92: 58         CLI&lt;br /&gt;
0A93: 28         PLP&lt;br /&gt;
0A94: 0A         ASL  A&lt;br /&gt;
0A95: EA         NOP&lt;br /&gt;
0A96: C0 2A      CPY  #$2A&lt;br /&gt;
0A98: D3 0C      DCP  ($0C),Y&lt;br /&gt;
0A9A: 9C 3A 80   SHY  $803A,X&lt;br /&gt;
0A9D: 97 5C      SAX  $5C,Y&lt;br /&gt;
0A9F: 0F 05 00   SLO  $0005&lt;br /&gt;
0AA2: A3 06      LAX  ($06,X)&lt;br /&gt;
0AA4: 5E 8A 94   LSR  $948A,X&lt;br /&gt;
0AA7: 62         JAM&lt;br /&gt;
0AA8: A4 E8      LDY  $E8&lt;br /&gt;
0AAA: 28         PLP&lt;br /&gt;
0AAB: 2E 8A 88   ROL  $888A&lt;br /&gt;
0AAE: 62         JAM&lt;br /&gt;
0AAF: A1 28      LDA  ($28,X)&lt;br /&gt;
0AB1: 9A         TXS&lt;br /&gt;
0AB2: AA         TAX&lt;br /&gt;
0AB3: 98         TYA&lt;br /&gt;
0AB4: 9A         TXS&lt;br /&gt;
0AB5: FE 98 1B   INC  $1B98,X&lt;br /&gt;
0AB8: FF 90 1F   ISB  $1F90,X&lt;br /&gt;
0ABB: 57 D0      SRE  $D0,X&lt;br /&gt;
0ABD: FD 55 FC   SBC  $FC55,X&lt;br /&gt;
0AC0: F5 A9      SBC  $A9,X&lt;br /&gt;
0AC2: 7C 3E AA   TOP  $AA3E,X&lt;br /&gt;
0AC5: F0 0F      BEQ  $0AD6&lt;br /&gt;
0AC7: AB E8      ATX  #$E8&lt;br /&gt;
0AC9: 05 AF      ORA  $AF&lt;br /&gt;
0ACB: EF 2E 02   ISB  $022E&lt;br /&gt;
0ACE: 60         RTS&lt;br /&gt;
0ACF: 04 D8      DOP  $D8&lt;br /&gt;
0AD1: C6 8D      DEC  $8D&lt;br /&gt;
0AD3: 4C C1 92   JMP  $92C1&lt;br /&gt;
0AD6: 61 52      ADC  ($52,X)&lt;br /&gt;
0AD8: 80 14      DOP  #$14&lt;br /&gt;
0ADA: 1A         NOP&lt;br /&gt;
0ADB: 05 05      ORA  $05&lt;br /&gt;
0ADD: 38         SEC&lt;br /&gt;
0ADE: 14 08      DOP  $08,X&lt;br /&gt;
0AE0: 85 40      STA  $40&lt;br /&gt;
0AE2: 5F F5 5C   SRE  $5CF5,X&lt;br /&gt;
0AE5: 2A         ROL  A&lt;br /&gt;
0AE6: A5 5C      LDA  $5C&lt;br /&gt;
0AE8: 08         PHP&lt;br /&gt;
0AE9: A9 5C      LDA  #$5C&lt;br /&gt;
0AEB: 2E 2A A0   ROL  $A02A&lt;br /&gt;
0AEE: 3B 3D F0   RLA  $F03D,Y&lt;br /&gt;
0AF1: 2E 06 40   ROL  $4006&lt;br /&gt;
0AF4: 3B 02 00   RLA  $0002,Y&lt;br /&gt;
0AF7: 2E DF 05   ROL  $05DF&lt;br /&gt;
0AFA: 3B 64 F1   RLA  $F164,Y&lt;br /&gt;
0AFD: C2 88      DOP  #$88&lt;br /&gt;
0AFF: 00         BRK&lt;br /&gt;
0B00: FC 00 07   TOP  $0700,X&lt;br /&gt;
0B03: 96 00      STX  $00,Y&lt;br /&gt;
0B05: 19 69 C0   ORA  $C069,Y&lt;br /&gt;
0B08: 3E 99 40   ROL  $4099,X&lt;br /&gt;
0B0B: 5B A9 50   SRE  $50A9,Y&lt;br /&gt;
0B0E: 57 D9      SRE  $D9,X&lt;br /&gt;
0B10: F0 69      BEQ  $0B7B&lt;br /&gt;
0B12: A7 F0      LAX  $F0&lt;br /&gt;
0B14: F5 6A      SBC  $6A,X&lt;br /&gt;
0B16: 7C EA A6   TOP  $A6EA,X&lt;br /&gt;
0B19: 68         PLA&lt;br /&gt;
0B1A: FB 66 7B   ISB  $7B66,Y&lt;br /&gt;
0B1D: F0 4E      BEQ  $0B6D&lt;br /&gt;
0B1F: 55 58      EOR  $58,X&lt;br /&gt;
0B21: 1F 79 DD   SLO  $DD79,X&lt;br /&gt;
0B24: 3E 55 95   ROL  $9555,X&lt;br /&gt;
0B27: 07 AE      SLO  $AE&lt;br /&gt;
0B29: 95 0E      STA  $0E,X&lt;br /&gt;
0B2B: E9 66      SBC  #$66&lt;br /&gt;
0B2D: 01 DD      ORA  ($DD,X)&lt;br /&gt;
0B2F: 76 00      ROR  $00,X&lt;br /&gt;
0B31: BF 5F 00   LAX  $005F,Y&lt;br /&gt;
0B34: DE EC 00   DEC  $00EC,X&lt;br /&gt;
0B37: 0F BC 00   SLO  $00BC&lt;br /&gt;
0B3A: 02         JAM&lt;br /&gt;
0B3B: D8         CLD&lt;br /&gt;
0B3C: 3A         NOP&lt;br /&gt;
0B3D: 78         SEI&lt;br /&gt;
0B3E: 9F 7B 86   AXA  $867B,Y&lt;br /&gt;
0B41: 60         RTS&lt;br /&gt;
0B42: 00         BRK&lt;br /&gt;
0B43: 3F 50 02   RLA  $0250,X&lt;br /&gt;
0B46: E5 9C      SBC  $9C&lt;br /&gt;
0B48: 03 5E      SLO  ($5E,X)&lt;br /&gt;
0B4A: B4 06      LDY  $06,X&lt;br /&gt;
0B4C: 59 BB 09   EOR  $09BB,Y&lt;br /&gt;
0B4F: B6 7B      LDX  $7B,Y&lt;br /&gt;
0B51: 0A         ASL  A&lt;br /&gt;
0B52: BA         TSX&lt;br /&gt;
0B53: 57 36      SRE  $36,X&lt;br /&gt;
0B55: 59 E5 3D   EOR  $3DE5,Y&lt;br /&gt;
0B58: 5D 5D 16   EOR  $165D,X&lt;br /&gt;
0B5B: 77 6D      RRA  $6D,X&lt;br /&gt;
0B5D: DE 57 59   DEC  $5957,X&lt;br /&gt;
0B60: D6 7A      DEC  $7A,X&lt;br /&gt;
0B62: DF DD EA   DCP  $EADD,X&lt;br /&gt;
0B65: 64 DD      DOP  $DD&lt;br /&gt;
0B67: E7 64      ISB  $64&lt;br /&gt;
0B69: BF 75 B4   LAX  $B475,Y&lt;br /&gt;
0B6C: 2D 56 70   AND  $7056&lt;br /&gt;
0B6F: 3E B9 E0   ROL  $E0B9,X&lt;br /&gt;
0B72: 05 A5      ORA  $A5&lt;br /&gt;
0B74: 80 0D      DOP  #$0D&lt;br /&gt;
0B76: 5E 8B 0D   LSR  $0D8B,X&lt;br /&gt;
0B79: 1F D5 22   SLO  $22D5,X&lt;br /&gt;
0B7C: 04 B0      DOP  $B0&lt;br /&gt;
0B7E: 00         BRK&lt;br /&gt;
0B7F: CA         DEX&lt;br /&gt;
0B80: 86 D2      STX  $D2&lt;br /&gt;
0B82: E2 11      DOP  #$11&lt;br /&gt;
0B84: 51 2C      EOR  ($2C),Y&lt;br /&gt;
0B86: 40         RTI&lt;br /&gt;
0B87: 41 0D      EOR  ($0D,X)&lt;br /&gt;
0B89: A9 C0      LDA  #$C0&lt;br /&gt;
0B8B: 03 67      SLO  ($67,X)&lt;br /&gt;
0B8D: 2B DC      ANC  #$DC&lt;br /&gt;
0B8F: 20 02 30   JSR  $3002&lt;br /&gt;
0B92: C2 F1      DOP  #$F1&lt;br /&gt;
0B94: E2 4C      DOP  #$4C&lt;br /&gt;
0B96: 59 1C 07   EOR  $071C,Y&lt;br /&gt;
0B99: A9 33      LDA  #$33&lt;br /&gt;
0B9B: E5 31      SBC  $31&lt;br /&gt;
0B9D: B1 E1      LDA  ($E1),Y&lt;br /&gt;
0B9F: 21 50      AND  ($50),Y&lt;br /&gt;
0BA1: 04 01      DOP  $01&lt;br /&gt;
0BA3: C8         INY&lt;br /&gt;
0BA4: 3F 48 9C   RLA  $9C48,X&lt;br /&gt;
0BA7: 78         SEI&lt;br /&gt;
0BA8: 20 DC 51   JSR  $51DC&lt;br /&gt;
0BAB: 3C 87 6E   TOP  $6E87,X&lt;br /&gt;
0BAE: 06 02      ASL  $02&lt;br /&gt;
0BB0: 07 05      SLO  $05&lt;br /&gt;
0BB2: 03 08      SLO  ($08,X)&lt;br /&gt;
0BB4: 01 04      ORA  ($04,X)&lt;br /&gt;
0BB6: FF F9 FD   ISB  $FDF9,X&lt;br /&gt;
0BB9: F8         SED&lt;br /&gt;
0BBA: FA         NOP&lt;br /&gt;
0BBB: FC F7 FE   TOP  $FEF7,X&lt;br /&gt;
0BBE: FB D5 33   ISB  $33D5,Y&lt;br /&gt;
0BC1: EF DF BF   ISB  $BFDF&lt;br /&gt;
0BC4: 05 13      ORA  $13&lt;br /&gt;
0BC6: 95 22      STA  $22,X&lt;br /&gt;
0BC8: 43 A2      SRE  ($A2,X)&lt;br /&gt;
0BCA: CC 49 46   CPY  $4649&lt;br /&gt;
0BCD: 45 44      EOR  $44&lt;br /&gt;
0BCF: 20 C5 4E   JSR  $4EC5&lt;br /&gt;
0BD2: B0 10      BCS  $0BE4&lt;br /&gt;
0BD4: 47 59      SRE  $59&lt;br /&gt;
0BD6: 5A         NOP&lt;br /&gt;
0BD7: 28         PLP&lt;br /&gt;
0BD8: 12         JAM&lt;br /&gt;
0BD9: D3 45      DCP  ($45),Y&lt;br /&gt;
0BDB: 43 54      SRE  ($54,X)&lt;br /&gt;
0BDD: 4F 52 3A   SRE  $3A52&lt;br /&gt;
0BE0: 1D 1D 20   ORA  $201D,X&lt;br /&gt;
0BE3: 58         CLI&lt;br /&gt;
0BE4: 58         CLI&lt;br /&gt;
0BE5: 58         CLI&lt;br /&gt;
0BE6: 9D 94 58   STA  $5894,X&lt;br /&gt;
0BE9: 00         BRK&lt;br /&gt;
0BEA: C7 41      DCP  $41&lt;br /&gt;
0BEC: 4D 45 20   EOR  $2045&lt;br /&gt;
0BEF: 4F 56 45   SRE  $4556&lt;br /&gt;
0BF2: 52         JAM&lt;br /&gt;
0BF3: AA         TAX&lt;br /&gt;
0BF4: C1 9F      CMP  ($9F,X)&lt;br /&gt;
0BF6: C3 88      DCP  ($88,X)&lt;br /&gt;
0BF8: 47 52      SRE  $52&lt;br /&gt;
0BFA: 02         JAM&lt;br /&gt;
0BFB: 0D 55 4C   ORA  $4C55&lt;br /&gt;
0BFE: 41 54      EOR  ($54,X)&lt;br /&gt;
0C00: A0 42      LDY  #$42&lt;br /&gt;
0C02: 53 21      SRE  ($21),Y&lt;br /&gt;
0C04: C5 CD      CMP  $CD&lt;br /&gt;
0C06: 21 0D      AND  ($0D),Y&lt;br /&gt;
0C08: 53 49      SRE  ($49),Y&lt;br /&gt;
0C0A: A4 20      LDY  $20&lt;br /&gt;
0C0C: 41 43      EOR  ($43,X)&lt;br /&gt;
0C0E: 43 4F      SRE  ($4F,X)&lt;br /&gt;
0C10: 4D 50 4C   EOR  $4C50&lt;br /&gt;
0C13: 49 53      EOR  #$53&lt;br /&gt;
0C15: 48         PHA&lt;br /&gt;
0C16: 45 44      EOR  $44&lt;br /&gt;
0C18: 21 00      AND  ($00),Y&lt;br /&gt;
0C1A: 05 22      ORA  $22&lt;br /&gt;
0C1C: BD C1 D2   LDA  $D2C1,X&lt;br /&gt;
0C1F: 20 20 D3   JSR  $D320&lt;br /&gt;
0C22: D4 D2      DOP  $D2,X&lt;br /&gt;
0C24: C9 CB      CMP  #$CB&lt;br /&gt;
0C26: C5 00      CMP  $00&lt;br /&gt;
0C28: 42         JAM&lt;br /&gt;
0C29: 59 20 CB   EOR  $CB20,Y&lt;br /&gt;
0C2C: 45 56      EOR  $56&lt;br /&gt;
0C2E: 49 4E      EOR  #$4E&lt;br /&gt;
0C30: 20 C4 49   JSR  $49C4&lt;br /&gt;
0C33: 58         CLI&lt;br /&gt;
0C34: 4F 4E 00   SRE  $004E&lt;br /&gt;
0C37: 31 39      AND  ($39),Y&lt;br /&gt;
0C39: 39 30 80   AND  $8030,Y&lt;br /&gt;
0C3C: 07 1F      SLO  $1F&lt;br /&gt;
0C3E: 00         BRK&lt;br /&gt;
0C3F: 06 20      ASL  $20&lt;br /&gt;
0C41: 09 05      ORA  #$05&lt;br /&gt;
0C43: 09 00      ORA  #$00&lt;br /&gt;
0C45: 80 14      DOP  #$14&lt;br /&gt;
0C47: 00         BRK&lt;br /&gt;
0C48: 51 28      EOR  ($28),Y&lt;br /&gt;
0C4A: 14 06      DOP  $06,X&lt;br /&gt;
0C4C: 20 F7 FB   JSR  $FBF7&lt;br /&gt;
0C4F: F7 00      ISB  $00,X&lt;br /&gt;
0C51: F7 05      ISB  $05,X&lt;br /&gt;
0C53: C0 01      CPY  #$01&lt;br /&gt;
0C55: F7 09      ISB  $09,X&lt;br /&gt;
0C57: FB 36 18   ISB  $1836,Y&lt;br /&gt;
0C5A: D0 1C      BNE  $0C78&lt;br /&gt;
0C5C: 64 0C      DOP  $0C&lt;br /&gt;
0C5E: 14 12      DOP  $12,X&lt;br /&gt;
0C60: 00         BRK&lt;br /&gt;
0C61: 00         BRK&lt;br /&gt;
0C62: F4 20      DOP  $20,X&lt;br /&gt;
0C64: 89 3C      DOP  #$3C&lt;br /&gt;
0C66: 90 04      BCC  $0C6C&lt;br /&gt;
0C68: 20 00 10   JSR  $1000&lt;br /&gt;
0C6B: 84 10      STY  $10&lt;br /&gt;
0C6D: B9 10 42   LDA  $4210,Y&lt;br /&gt;
0C70: 10 E3      BPL  $0C55&lt;br /&gt;
0C72: 3C 00 02   TOP  $0200,X&lt;br /&gt;
0C75: 60         RTS&lt;br /&gt;
0C76: 20 00 27   JSR  $2700&lt;br /&gt;
0C79: 00         BRK&lt;br /&gt;
0C7A: 04 02      DOP  $02&lt;br /&gt;
0C7C: 01 68      ORA  ($68,X)&lt;br /&gt;
0C7E: A0 08      LDY  #$08&lt;br /&gt;
0C80: 80 81      DOP  #$81&lt;br /&gt;
0C82: 00         BRK&lt;br /&gt;
0C83: 9C 00 10   SHY  $1000,X&lt;br /&gt;
0C86: 03 02      SLO  ($02,X)&lt;br /&gt;
0C88: A0 81      LDY  #$81&lt;br /&gt;
0C8A: 22         JAM&lt;br /&gt;
0C8B: 00         BRK&lt;br /&gt;
0C8C: 06 00      ASL  $00&lt;br /&gt;
0C8E: 72         JAM&lt;br /&gt;
0C8F: 02         JAM&lt;br /&gt;
0C90: 40         RTI&lt;br /&gt;
0C91: 04 03      DOP  $03&lt;br /&gt;
0C93: 80 06      DOP  #$06&lt;br /&gt;
0C95: 8A         TXA&lt;br /&gt;
0C96: 00         BRK&lt;br /&gt;
0C97: 18         CLC&lt;br /&gt;
0C98: C8         INY&lt;br /&gt;
0C99: 00         BRK&lt;br /&gt;
0C9A: 09 00      ORA  #$00&lt;br /&gt;
0C9C: 01 01      ORA  ($01,X)&lt;br /&gt;
0C9E: 04 01      DOP  $01&lt;br /&gt;
0CA0: 00         BRK&lt;br /&gt;
0CA1: A2 00      LDX  #$00&lt;br /&gt;
0CA3: AC 03 0E   LDY  $0E03&lt;br /&gt;
0CA6: E2 7E      DOP  #$7E&lt;br /&gt;
0CA8: FD 42 FA   SBC  $FA42,X&lt;br /&gt;
0CAB: 27 2E      RLA  $2E&lt;br /&gt;
0CAD: F0 30      BEQ  $0CDF&lt;br /&gt;
0CAF: 59 AB 04   EOR  $04AB,Y&lt;br /&gt;
0CB2: F0 08      BEQ  $0CBC&lt;br /&gt;
0CB4: AA         TAX&lt;br /&gt;
0CB5: CE 41 1C   DEC  $1C41&lt;br /&gt;
0CB8: 4C A3 10   JMP  $10A3&lt;br /&gt;
0CBB: 4A         LSR  A&lt;br /&gt;
0CBC: 86 05      STX  $05&lt;br /&gt;
0CBE: 08         PHP&lt;br /&gt;
0CBF: CE 34 14   DEC  $1434&lt;br /&gt;
0CC2: D0 10      BNE  $0CD4&lt;br /&gt;
0CC4: E4 00      CPX  $00&lt;br /&gt;
0CC6: 20 20 80   JSR  $8020&lt;br /&gt;
0CC9: AF 5F D1   LAX  $D15F&lt;br /&gt;
0CCC: 59 04 E0   EOR  $E004,Y&lt;br /&gt;
0CCF: 18         CLC&lt;br /&gt;
0CD0: 14 DF      DOP  $DF,X&lt;br /&gt;
0CD2: 0C 01 86   TOP  $8601&lt;br /&gt;
0CD5: A2 48      LDX  #$48&lt;br /&gt;
0CD7: F0 0F      BEQ  $0CE8&lt;br /&gt;
0CD9: A0 24      LDY  #$24&lt;br /&gt;
0CDB: 86 CE      STX  $CE&lt;br /&gt;
0CDD: 61 D6      ADC  ($D6,X)&lt;br /&gt;
0CDF: 73 C6      RRA  ($C6),Y&lt;br /&gt;
0CE1: 0B AA      ANC  #$AA&lt;br /&gt;
0CE3: AC 16 04   LDY  $0416&lt;br /&gt;
0CE6: D0 74      BNE  $0D5C&lt;br /&gt;
0CE8: 20 60 E0   JSR  $E060&lt;br /&gt;
0CEB: 29 FB      AND  #$FB&lt;br /&gt;
0CED: 84 4E      STY  $4E&lt;br /&gt;
0CEF: E0 A0      CPX  #$A0&lt;br /&gt;
0CF1: FB A9 20   ISB  $20A9,Y&lt;br /&gt;
0CF4: 85 FC      STA  $FC&lt;br /&gt;
0CF6: 3D 0F D8   AND  $D80F,X&lt;br /&gt;
0CF9: 85 FE      STA  $FE&lt;br /&gt;
0CFB: A2 08      LDX  #$08&lt;br /&gt;
0CFD: E8         INX&lt;br /&gt;
0CFE: 76 B1      ROR  $B1,X&lt;br /&gt;
0D00: FD 91 FB   SBC  $FB91,X&lt;br /&gt;
0D03: 88         DEY&lt;br /&gt;
0D04: D0 F9      BNE  $0CFF&lt;br /&gt;
0D06: E6 FC      INC  $FC&lt;br /&gt;
0D08: E6 FE      INC  $FE&lt;br /&gt;
0D0A: CA         DEX&lt;br /&gt;
0D0B: D0 F0      BNE  $0CFD&lt;br /&gt;
0D0D: A5 01      LDA  $01&lt;br /&gt;
0D0F: 09 04      ORA  #$04&lt;br /&gt;
0D11: 85 01      STA  $01&lt;br /&gt;
0D13: AD 70 27   LDA  $2770&lt;br /&gt;
0D16: 09 90      ORA  #$90&lt;br /&gt;
0D18: 54 0E      DOP  $0E,X&lt;br /&gt;
0D1A: DC A0 00   TOP  $00A0,X&lt;br /&gt;
0D1D: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
0D20: 99 00 24   STA  $2400,Y&lt;br /&gt;
0D23: C8         INY&lt;br /&gt;
0D24: C0 20      CPY  #$20&lt;br /&gt;
0D26: D0 F5      BNE  $0D1D&lt;br /&gt;
0D28: E8         INX&lt;br /&gt;
0D29: 37 07      RLA  $07,X&lt;br /&gt;
0D2B: 5A         NOP&lt;br /&gt;
0D2C: CE AD 05   DEC  $05AD&lt;br /&gt;
0D2F: D0 55      BNE  $0D86&lt;br /&gt;
0D31: C2 15      DOP  #$15&lt;br /&gt;
0D33: 10 42      BPL  $0D77&lt;br /&gt;
0D35: 50 BC      BVC  $0CF3&lt;br /&gt;
0D37: 3A         NOP&lt;br /&gt;
0D38: 60         RTS&lt;br /&gt;
0D39: BC 07 44   LDY  $4407,X&lt;br /&gt;
0D3C: 04 82      DOP  $82&lt;br /&gt;
0D3E: 24 9C      BIT  $9C&lt;br /&gt;
0D40: 34 09      DOP  $09,X&lt;br /&gt;
0D42: 08         PHP&lt;br /&gt;
0D43: 3B 09 AA   RLA  $AA09,Y&lt;br /&gt;
0D46: 4D C2 01   EOR  $01C2&lt;br /&gt;
0D49: 4E 42 BA   LSR  $BA42&lt;br /&gt;
0D4C: 33 01      RLA  ($01),Y&lt;br /&gt;
0D4E: EA         NOP&lt;br /&gt;
0D4F: 0B 8D      ANC  #$8D&lt;br /&gt;
0D51: 04 36      DOP  $36&lt;br /&gt;
0D53: 15 1A      ORA  $1A,X&lt;br /&gt;
0D55: C9 02      CMP  #$02&lt;br /&gt;
0D57: 11 83      ORA  ($83),Y&lt;br /&gt;
0D59: 10 AB      BPL  $0D06&lt;br /&gt;
0D5B: 64 8A      DOP  $8A&lt;br /&gt;
0D5D: 38         SEC&lt;br /&gt;
0D5E: 21 8D      AND  ($8D),Y&lt;br /&gt;
0D60: F8         SED&lt;br /&gt;
0D61: A3 85      LAX  ($85,X)&lt;br /&gt;
0D63: 24 F0      BIT  $F0&lt;br /&gt;
0D65: 06 A9      ASL  $A9&lt;br /&gt;
0D67: 81 04      STA  ($04,X)&lt;br /&gt;
0D69: 54 C8      DOP  $C8,X&lt;br /&gt;
0D6B: A1 A7      LDA  ($A7,X)&lt;br /&gt;
0D6D: 20 78 17   JSR  $1778&lt;br /&gt;
0D70: 1F 49 1F   SLO  $1F49,X&lt;br /&gt;
0D73: 29 1D      AND  #$1D&lt;br /&gt;
0D75: D0 0D      BNE  $0D84&lt;br /&gt;
0D77: A9 0A      LDA  #$0A&lt;br /&gt;
0D79: 58         CLI&lt;br /&gt;
0D7A: DC E5 80   TOP  $80E5,X&lt;br /&gt;
0D7D: C8         INY&lt;br /&gt;
0D7E: 93 C2      AXA  ($C2),Y&lt;br /&gt;
0D80: 20 E0 02   JSR  $02E0&lt;br /&gt;
0D83: 44 43      DOP  $43&lt;br /&gt;
0D85: C6 43      DEC  $43&lt;br /&gt;
0D87: 10 F3      BPL  $0D7C&lt;br /&gt;
0D89: CE D0 3C   DEC  $3CD0&lt;br /&gt;
0D8C: 14 2B      DOP  $2B,X&lt;br /&gt;
0D8E: C9 CD      CMP  #$CD&lt;br /&gt;
0D90: 05 50      ORA  $50&lt;br /&gt;
0D92: 43 1A      SRE  ($1A,X)&lt;br /&gt;
0D94: 08         PHP&lt;br /&gt;
0D95: EE C8 07   INC  $07C8&lt;br /&gt;
0D98: CC 19 5E   CPY  $5E19&lt;br /&gt;
0D9B: 0E CE F0   ASL  $F0CE&lt;br /&gt;
0D9E: 04 AD      DOP  $AD&lt;br /&gt;
0DA0: 34 E8      DOP  $E8,X&lt;br /&gt;
0DA2: 0C 80 C1   TOP  $C180&lt;br /&gt;
0DA5: A0 1B      LDY  #$1B&lt;br /&gt;
0DA7: CE 68 06   DEC  $0668&lt;br /&gt;
0DAA: D0 46      BNE  $0DF2&lt;br /&gt;
0DAC: A9 03      LDA  #$03&lt;br /&gt;
0DAE: 8D 3B DC   STA  $DC3B&lt;br /&gt;
0DB1: 06 0E      ASL  $0E&lt;br /&gt;
0DB3: 0A         ASL  A&lt;br /&gt;
0DB4: 60         RTS&lt;br /&gt;
0DB5: 60         RTS&lt;br /&gt;
0DB6: 00         BRK&lt;br /&gt;
0DB7: E2 51      DOP  #$51&lt;br /&gt;
0DB9: 07 03      SLO  $03&lt;br /&gt;
0DBB: 78         SEI&lt;br /&gt;
0DBC: CC 0B 90   CPY  $900B&lt;br /&gt;
0DBF: 06 A7      ASL  $A7&lt;br /&gt;
0DC1: 8A         TXA&lt;br /&gt;
0DC2: C0 FA      CPY  #$FA&lt;br /&gt;
0DC4: 71 18      ADC  ($18),Y&lt;br /&gt;
0DC6: B9 01 60   LDA  $6001,Y&lt;br /&gt;
0DC9: B1 25      LDA  ($25),Y&lt;br /&gt;
0DCB: 80 18      DOP  #$18&lt;br /&gt;
0DCD: C9 00      CMP  #$00&lt;br /&gt;
0DCF: 06 03      ASL  $03&lt;br /&gt;
0DD1: 94 80      STY  $80,X&lt;br /&gt;
0DD3: 4B 9D      ASR  #$9D&lt;br /&gt;
0DD5: 00         BRK&lt;br /&gt;
0DD6: 09 90      ORA  #$90&lt;br /&gt;
0DD8: 04 2F      DOP  $2F&lt;br /&gt;
0DDA: 64 80      DOP  $80&lt;br /&gt;
0DDC: 21 31      AND  ($31),Y&lt;br /&gt;
0DDE: C0 8D      CPY  #$8D&lt;br /&gt;
0DE0: C1 61      CMP  ($61,X)&lt;br /&gt;
0DE2: C8         INY&lt;br /&gt;
0DE3: A1 C3      LDA  ($C3,X)&lt;br /&gt;
0DE5: E0 60      CPX  #$60&lt;br /&gt;
0DE7: D6 07      DEC  $07,X&lt;br /&gt;
0DE9: 65 BE      ADC  $BE&lt;br /&gt;
0DEB: 80 02      DOP  #$02&lt;br /&gt;
0DED: 10 5D      BPL  $0E4C&lt;br /&gt;
0DEF: DE 99 00   DEC  $0099,X&lt;br /&gt;
0DF2: 8E 04 E2   STX  $E204&lt;br /&gt;
0DF5: 24 C3      BIT  $C3&lt;br /&gt;
0DF7: 23 02      RLA  ($02,X)&lt;br /&gt;
0DF9: 4E 8A 7A   LSR  $7A8A&lt;br /&gt;
0DFC: 4C 59 3A   JMP  $3A59&lt;br /&gt;
0DFF: B9 43 1C   LDA  $1C43,Y&lt;br /&gt;
0E02: 4E 04 1A   LSR  $1A04&lt;br /&gt;
0E05: 63 58      RRA  ($58,X)&lt;br /&gt;
0E07: 42         JAM&lt;br /&gt;
0E08: 14 F0      DOP  $F0,X&lt;br /&gt;
0E0A: 21 70      AND  ($70),Y&lt;br /&gt;
0E0C: 11 67      ORA  ($67),Y&lt;br /&gt;
0E0E: 3B 11 B0   RLA  $B011,Y&lt;br /&gt;
0E11: 15 20      ORA  $20,X&lt;br /&gt;
0E13: 79 3C 4C   ADC  $4C3C,Y&lt;br /&gt;
0E16: 81 E4      STA  ($E4,X)&lt;br /&gt;
0E18: 90 A8      BCC  $0DC2&lt;br /&gt;
0E1A: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
0E1D: DD 9B 90   CMP  $909B,X&lt;br /&gt;
0E20: 03 20      SLO  ($20,X)&lt;br /&gt;
0E22: 62         JAM&lt;br /&gt;
0E23: 67 85      RRA  $85&lt;br /&gt;
0E25: 01 EC      ORA  ($EC,X)&lt;br /&gt;
0E27: 0A         ASL  A&lt;br /&gt;
0E28: 09 9D      ORA  #$9D&lt;br /&gt;
0E2A: 16 38      ASL  $38,X&lt;br /&gt;
0E2C: 9D 3A D0   STA  $D03A,X&lt;br /&gt;
0E2F: 2A         ROL  A&lt;br /&gt;
0E30: FB 74 EA   ISB  $EA74,Y&lt;br /&gt;
0E33: E0 C9      CPX  #$C9&lt;br /&gt;
0E35: F0 C7      BEQ  $0DFE&lt;br /&gt;
0E37: E1 C9      SBC  ($C9,X)&lt;br /&gt;
0E39: 38         SEC&lt;br /&gt;
0E3A: E9 E2      SBC  #$E2&lt;br /&gt;
0E3C: A9 F4      LDA  #$F4&lt;br /&gt;
0E3E: 87 27      SAX  $27&lt;br /&gt;
0E40: DE 1E 9E   DEC  $9E1E,X&lt;br /&gt;
0E43: 3B B4 07   RLA  $07B4,Y&lt;br /&gt;
0E46: 84 C4      STY  $C4&lt;br /&gt;
0E48: 80 2C      DOP  #$2C&lt;br /&gt;
0E4A: A9 9A      LDA  #$9A&lt;br /&gt;
0E4C: F0 C9      BEQ  $0E17&lt;br /&gt;
0E4E: 70 6F      BVS  $0EBF&lt;br /&gt;
0E50: 2A         ROL  A&lt;br /&gt;
0E51: 0E 01 30   ASL  $3001&lt;br /&gt;
0E54: 27 4C      RLA  $4C&lt;br /&gt;
0E56: 8C 50 25   STY  $2550&lt;br /&gt;
0E59: 50 18      BVC  $0E73&lt;br /&gt;
0E5B: 69 10      ADC  #$10&lt;br /&gt;
0E5D: 60         RTS&lt;br /&gt;
0E5E: D2         JAM&lt;br /&gt;
0E5F: 04 C2      DOP  $C2&lt;br /&gt;
0E61: 2A         ROL  A&lt;br /&gt;
0E62: 3A         NOP&lt;br /&gt;
0E63: 47 A0      SRE  $A0&lt;br /&gt;
0E65: 40         RTI&lt;br /&gt;
0E66: C4 01      CPY  $01&lt;br /&gt;
0E68: E6 58      INC  $58&lt;br /&gt;
0E6A: 75 F0      ADC  $F0,X&lt;br /&gt;
0E6C: 11 78      ORA  ($78),Y&lt;br /&gt;
0E6E: 41 D0      EOR  ($D0,X)&lt;br /&gt;
0E70: 40         RTI&lt;br /&gt;
0E71: 54 83      DOP  $83,X&lt;br /&gt;
0E73: 4C 54 77   JMP  $7754&lt;br /&gt;
0E76: 61 18      ADC  ($18,X)&lt;br /&gt;
0E78: ED E8 00   SBC  $00E8&lt;br /&gt;
0E7B: 56 1D      LSR  $1D,X&lt;br /&gt;
0E7D: 5A         NOP&lt;br /&gt;
0E7E: 19 5B 3E   ORA  $3E5B,Y&lt;br /&gt;
0E81: 5A         NOP&lt;br /&gt;
0E82: 19 2F DE   ORA  $DE2F,Y&lt;br /&gt;
0E85: F1 68      SBC  ($68),Y&lt;br /&gt;
0E87: C5 50      CMP  $50&lt;br /&gt;
0E89: A3 15      LAX  ($15,X)&lt;br /&gt;
0E8B: DE 8F 56   DEC  $568F,X&lt;br /&gt;
0E8E: 1C 48 85   TOP  $8548,X&lt;br /&gt;
0E91: 6C 41 13  JMP  ($1341)&lt;br /&gt;
0E94: 1E 89 FF   ASL  $FF89,X&lt;br /&gt;
0E97: D0 42      BNE  $0EDB&lt;br /&gt;
0E99: 3C 95 A2   TOP  $A295,X&lt;br /&gt;
0E9C: 59 80 41   EOR  $4180,Y&lt;br /&gt;
0E9F: 1F AF 12   SLO  $12AF,X&lt;br /&gt;
0EA2: A0 5E      LDY  #$5E&lt;br /&gt;
0EA4: 06 04      ASL  $04&lt;br /&gt;
0EA6: 9E 80 2F   SHX  $2F80,Y&lt;br /&gt;
0EA9: 51 15      EOR  ($15),Y&lt;br /&gt;
0EAB: 60         RTS&lt;br /&gt;
0EAC: 84 1F      STY  $1F&lt;br /&gt;
0EAE: C9 07      CMP  #$07&lt;br /&gt;
0EB0: D0 0C      BNE  $0EBE&lt;br /&gt;
0EB2: 38         SEC&lt;br /&gt;
0EB3: 70 8F      BVS  $0E44&lt;br /&gt;
0EB5: FD E4 86   SBC  $86E4,X&lt;br /&gt;
0EB8: 40         RTI&lt;br /&gt;
0EB9: CC 05 04   CPY  $0405&lt;br /&gt;
0EBC: 12         JAM&lt;br /&gt;
0EBD: 28         PLP&lt;br /&gt;
0EBE: 8A         TXA&lt;br /&gt;
0EBF: 01 C6      ORA  ($C6,X)&lt;br /&gt;
0EC1: 0E 80 10   ASL  $1080&lt;br /&gt;
0EC4: D0 FE      BNE  $0EC4&lt;br /&gt;
0EC6: 23 DC      RLA  ($DC,X)&lt;br /&gt;
0EC8: 21 18      AND  ($18),Y&lt;br /&gt;
0ECA: E8         INX&lt;br /&gt;
0ECB: 1C 11 88   TOP  $8811,X&lt;br /&gt;
0ECE: 19 05 FE   ORA  $FE05,Y&lt;br /&gt;
0ED1: 00         BRK&lt;br /&gt;
0ED2: D0 87      BNE  $0E5B&lt;br /&gt;
0ED4: 27 20      RLA  $20&lt;br /&gt;
0ED6: 04 10      DOP  $10&lt;br /&gt;
0ED8: 98         TYA&lt;br /&gt;
0ED9: 38         SEC&lt;br /&gt;
0EDA: 13 2D      SLO  ($2D),Y&lt;br /&gt;
0EDC: 02         JAM&lt;br /&gt;
0EDD: 2C C0 8A   BIT  $8AC0&lt;br /&gt;
0EE0: 79 80 F1   ADC  $F180,Y&lt;br /&gt;
0EE3: 42         JAM&lt;br /&gt;
0EE4: AD 80 03   LDA  $0380&lt;br /&gt;
0EE7: 35 38      AND  $38,X&lt;br /&gt;
0EE9: E9 0C      SBC  #$0C&lt;br /&gt;
0EEB: 4A         LSR  A&lt;br /&gt;
0EEC: 4A         LSR  A&lt;br /&gt;
0EED: AA         TAX&lt;br /&gt;
0EEE: 76 00      ROR  $00,X&lt;br /&gt;
0EF0: 14 87      DOP  $87,X&lt;br /&gt;
0EF2: 04 06      DOP  $06&lt;br /&gt;
0EF4: C0 42      CPY  #$42&lt;br /&gt;
0EF6: E4 10      CPX  $10&lt;br /&gt;
0EF8: 18         CLC&lt;br /&gt;
0EF9: A9 28      LDA  #$28&lt;br /&gt;
0EFB: D1 A1      CMP  ($A1),Y&lt;br /&gt;
0EFD: C2 23      DOP  #$23&lt;br /&gt;
0EFF: F0 18      BEQ  $0F19&lt;br /&gt;
0F01: 8A         TXA&lt;br /&gt;
0F02: 65 FD      ADC  $FD&lt;br /&gt;
0F04: 85 FD      STA  $FD&lt;br /&gt;
0F06: 0E B8 65   ASL  $65B8&lt;br /&gt;
0F09: FE 3B 1D   INC  $1D3B,X&lt;br /&gt;
0F0C: A5 FE      LDA  $FE&lt;br /&gt;
0F0E: 54 70      DOP  $70,X&lt;br /&gt;
0F10: D4 85      DOP  $85,X&lt;br /&gt;
0F12: FE 60 20   INC  $2060,X&lt;br /&gt;
0F15: AF 13 20   LAX  $2013&lt;br /&gt;
0F18: 50 13      BVC  $0F2D&lt;br /&gt;
0F1A: A9 23      LDA  #$23&lt;br /&gt;
0F1C: CA         DEX&lt;br /&gt;
0F1D: 6B E3      ARR  #$E3&lt;br /&gt;
0F1F: 58         CLI&lt;br /&gt;
0F20: 2F 18 30   RLA  $3018&lt;br /&gt;
0F23: 0A         ASL  A&lt;br /&gt;
0F24: A8         TAY&lt;br /&gt;
0F25: C8         INY&lt;br /&gt;
0F26: C4 29      CPY  $29&lt;br /&gt;
0F28: 3F C9 28   RLA  $28C9,X&lt;br /&gt;
0F2B: B0 F7      BCS  $0F24&lt;br /&gt;
0F2D: AA         TAX&lt;br /&gt;
0F2E: 20 D5 12   JSR  $12D5&lt;br /&gt;
0F31: D0 F1      BNE  $0F24&lt;br /&gt;
0F33: CE AA AD   DEC  $ADAA&lt;br /&gt;
0F36: 8A         TXA&lt;br /&gt;
0F37: 03 3A      SLO  ($3A,X)&lt;br /&gt;
0F39: 06 04      ASL  $04&lt;br /&gt;
0F3B: CC 01 AA   CPY  $AA01&lt;br /&gt;
0F3E: 8A         TXA&lt;br /&gt;
0F3F: 29 03      AND  #$03&lt;br /&gt;
0F41: 09 80      ORA  #$80&lt;br /&gt;
0F43: 00         BRK&lt;br /&gt;
0F44: 70 03      BVS  $0F49&lt;br /&gt;
0F46: 40         RTI&lt;br /&gt;
0F47: 20 FE 12   JSR  $12FE&lt;br /&gt;
0F4A: B0 85      BCS  $0ED1&lt;br /&gt;
0F4C: 01 91      ORA  ($91,X)&lt;br /&gt;
0F4E: FD EE 2F   SBC  $2FEE,X&lt;br /&gt;
0F51: C2 27      DOP  #$27&lt;br /&gt;
0F53: 05 A9      ORA  $A9&lt;br /&gt;
0F55: 20 40 09   JSR  $0940&lt;br /&gt;
0F58: 04 88      DOP  $88&lt;br /&gt;
0F5A: 05 99      ORA  $99&lt;br /&gt;
0F5C: 28         PLP&lt;br /&gt;
0F5D: 06 99      ASL  $99&lt;br /&gt;
0F5F: E8         INX&lt;br /&gt;
0F60: 06 88      ASL  $88&lt;br /&gt;
0F62: D0 F1      BNE  $0F55&lt;br /&gt;
0F64: 80 71      DOP  #$71&lt;br /&gt;
0F66: 0E 34 E1   ASL  $E134&lt;br /&gt;
0F69: C8         INY&lt;br /&gt;
0F6A: 88         DEY&lt;br /&gt;
0F6B: 28         PLP&lt;br /&gt;
0F6C: D0 E3      BNE  $0F51&lt;br /&gt;
0F6E: 1C 41 AF   TOP  $AF41,X&lt;br /&gt;
0F71: 03 2E      SLO  ($2E,X)&lt;br /&gt;
0F73: 60         RTS&lt;br /&gt;
0F74: A9 33      LDA  #$33&lt;br /&gt;
0F76: 4F 77 60   SRE  $6077&lt;br /&gt;
0F79: 18         CLC&lt;br /&gt;
0F7A: AD D7 6D   LDA  $6DD7&lt;br /&gt;
0F7D: 82 44      DOP  #$44&lt;br /&gt;
0F7F: 14 38      DOP  $38,X&lt;br /&gt;
0F81: 06 02      ASL  $02&lt;br /&gt;
0F83: 8D 41 48   STA  $4841&lt;br /&gt;
0F86: 0A         ASL  A&lt;br /&gt;
0F87: 04 8D      DOP  $8D&lt;br /&gt;
0F89: D1 AD      CMP  ($AD),Y&lt;br /&gt;
0F8B: 10 04      BPL  $0F91&lt;br /&gt;
0F8D: 8D 81 AD   STA  $AD81&lt;br /&gt;
0F90: 10 95      BPL  $0F27&lt;br /&gt;
0F92: 03 61      SLO  ($61,X)&lt;br /&gt;
0F94: 60         RTS&lt;br /&gt;
0F95: AE 40 11   LDX  $1140&lt;br /&gt;
0F98: 8E 63 34   STX  $3463&lt;br /&gt;
0F9B: 64 D0      DOP  $D0&lt;br /&gt;
0F9D: 0C 65 0E   TOP  $0E65&lt;br /&gt;
0FA0: E8         INX&lt;br /&gt;
0FA1: 8E 66 B4   STX  $B466&lt;br /&gt;
0FA4: AA         TAX&lt;br /&gt;
0FA5: 01 8D      ORA  ($8D,X)&lt;br /&gt;
0FA7: 9C 02 20   SHY  $2002,X&lt;br /&gt;
0FAA: 8C 13 CE   STY  $CE13&lt;br /&gt;
0FAD: 1D 05 41   ORA  $4105,X&lt;br /&gt;
0FB0: 60         RTS&lt;br /&gt;
0FB1: 30 3A      BMI  $0FED&lt;br /&gt;
0FB3: 03 0C      SLO  ($0C,X)&lt;br /&gt;
0FB5: B8         CLV&lt;br /&gt;
0FB6: 80 4C      DOP  #$4C&lt;br /&gt;
0FB8: 74 14      DOP  $14,X&lt;br /&gt;
0FBA: 7D E8 00   ADC  $00E8,X&lt;br /&gt;
0FBD: C2 D6      DOP  #$D6&lt;br /&gt;
0FBF: 40         RTI&lt;br /&gt;
0FC0: A0 0D      LDY  #$0D&lt;br /&gt;
0FC2: 88         DEY&lt;br /&gt;
0FC3: B9 02 51   LDA  $5102,Y&lt;br /&gt;
0FC6: 36 D0      ROL  $D0,X&lt;br /&gt;
0FC8: 80 09      DOP  #$09&lt;br /&gt;
0FCA: 60         RTS&lt;br /&gt;
0FCB: 6C 24 30  JMP  ($3024)&lt;br /&gt;
0FCE: 00         BRK&lt;br /&gt;
0FCF: 11 04      ORA  ($04),Y&lt;br /&gt;
0FD1: 16 08      ASL  $08,X&lt;br /&gt;
0FD3: 65 A4      ADC  $A4&lt;br /&gt;
0FD5: 0B 26      ANC  #$26&lt;br /&gt;
0FD7: 8D B0 2E   STA  $2EB0&lt;br /&gt;
0FDA: 20 5D A0   JSR  $A05D&lt;br /&gt;
0FDD: 40         RTI&lt;br /&gt;
0FDE: 8D F5 04   STA  $04F5&lt;br /&gt;
0FE1: D7 02      DCP  $02,X&lt;br /&gt;
0FE3: 42         JAM&lt;br /&gt;
0FE4: 1B 82 35   SLO  $3582,Y&lt;br /&gt;
0FE7: 64 A6      DOP  $A6&lt;br /&gt;
0FE9: 50 28      BVC  $1013&lt;br /&gt;
0FEB: 2E 64 9A   ROL  $9A64&lt;br /&gt;
0FEE: 0B 69      ANC  #$69&lt;br /&gt;
0FF0: 14 52      DOP  $52,X&lt;br /&gt;
0FF2: 25 C8      AND  $C8&lt;br /&gt;
0FF4: 10 63      BPL  $1059&lt;br /&gt;
0FF6: 26 C0      ROL  $C0&lt;br /&gt;
0FF8: 48         PHA&lt;br /&gt;
0FF9: 2C 97 0F   BIT  $0F97&lt;br /&gt;
0FFC: 06 20      ASL  $20&lt;br /&gt;
0FFE: 81 13      STA  ($13,X)&lt;br /&gt;
1000: 4C 57 14   JMP  $1457&lt;br /&gt;
1003: E0 F2      CPX  #$F2&lt;br /&gt;
1005: 02         JAM&lt;br /&gt;
1006: 28         PLP&lt;br /&gt;
1007: 29 20      AND  #$20&lt;br /&gt;
1009: D0 0A      BNE  $1015&lt;br /&gt;
100B: 79 DD 05   ADC  $05DD,Y&lt;br /&gt;
100E: 14 AD      DOP  $AD,X&lt;br /&gt;
1010: 3E 80 80   ROL  $8080,X&lt;br /&gt;
1013: 90 91      BCC  $0FA6&lt;br /&gt;
1015: 07 BF      SLO  $BF&lt;br /&gt;
1017: D0 18      BNE  $1031&lt;br /&gt;
1019: 69 12      ADC  #$12&lt;br /&gt;
101B: D8         CLD&lt;br /&gt;
101C: 2E 20 18   ROL  $1820&lt;br /&gt;
101F: 00         BRK&lt;br /&gt;
1020: 80 38      DOP  #$38&lt;br /&gt;
1022: 0C 00 82   TOP  $8200&lt;br /&gt;
1025: F3 40      ISB  ($40),Y&lt;br /&gt;
1027: 5C 0E 60   TOP  $600E,X&lt;br /&gt;
102A: 74 58      DOP  $58,X&lt;br /&gt;
102C: 36 09      ROL  $09,X&lt;br /&gt;
102E: 80 99      DOP  #$99&lt;br /&gt;
1030: 00         BRK&lt;br /&gt;
1031: 3C 2B EB   TOP  $EB2B,X&lt;br /&gt;
1034: 76 20      ROR  $20,X&lt;br /&gt;
1036: 11 F0      ORA  ($F0),Y&lt;br /&gt;
1038: F9 8D 7A   SBC  $7A8D,Y&lt;br /&gt;
103B: 1F B0 00   SLO  $00B0,X&lt;br /&gt;
103E: B7 04      LAX  $04,Y&lt;br /&gt;
1040: 0D 17 80   ORA  $8017&lt;br /&gt;
1043: D0 F6      BNE  $103B&lt;br /&gt;
1045: A0 00      LDY  #$00&lt;br /&gt;
1047: FD 0F 10   SBC  $100F,X&lt;br /&gt;
104A: 12         JAM&lt;br /&gt;
104B: 06 F0      ASL  $F0&lt;br /&gt;
104D: F8         SED&lt;br /&gt;
104E: 4A         LSR  A&lt;br /&gt;
104F: A3 29      LAX  ($29,X)&lt;br /&gt;
1051: 77 F0      RRA  $F0,X&lt;br /&gt;
1053: F1 40      SBC  ($40),Y&lt;br /&gt;
1055: FE 12 EC   INC  $EC12,X&lt;br /&gt;
1058: AA         TAX&lt;br /&gt;
1059: BD F0 42   LDA  $42F0,X&lt;br /&gt;
105C: 06 E6      ASL  $E6&lt;br /&gt;
105E: A9 3F      LDA  #$3F&lt;br /&gt;
1060: 1C 42 C0   TOP  $C042,X&lt;br /&gt;
1063: 04 B0      DOP  $B0&lt;br /&gt;
1065: 57 BF      SRE  $BF,X&lt;br /&gt;
1067: 9D 80 90   STA  $9080,X&lt;br /&gt;
106A: C8         INY&lt;br /&gt;
106B: C0 21      CPY  #$21&lt;br /&gt;
106D: D0 D3      BNE  $1042&lt;br /&gt;
106F: 47 7C      SRE  $7C&lt;br /&gt;
1071: 0A         ASL  A&lt;br /&gt;
1072: 4A         LSR  A&lt;br /&gt;
1073: 07 04      SLO  $04&lt;br /&gt;
1075: 3D A0 0E   AND  $0EA0,X&lt;br /&gt;
1078: 03 4C      SLO  ($4C,X)&lt;br /&gt;
107A: 35 15      AND  $15,X&lt;br /&gt;
107C: CE 58 03   DEC  $0358&lt;br /&gt;
107F: 10 A9      BPL  $102A&lt;br /&gt;
1081: 28         PLP&lt;br /&gt;
1082: 8D 04 C4   STA  $C404&lt;br /&gt;
1085: 13 68      SLO  ($68),Y&lt;br /&gt;
1087: CB 80      AXS  #$80&lt;br /&gt;
1089: 2F 10 84   RLA  $8410&lt;br /&gt;
108C: 03 0D      SLO  ($0D,X)&lt;br /&gt;
108E: 72         JAM&lt;br /&gt;
108F: 00         BRK&lt;br /&gt;
1090: 06 43      ASL  $43&lt;br /&gt;
1092: 06 39      ASL  $39&lt;br /&gt;
1094: 80 D8      DOP  #$D8&lt;br /&gt;
1096: 24 4C      BIT  $4C&lt;br /&gt;
1098: 16 50      ASL  $50,X&lt;br /&gt;
109A: 61 30      ADC  ($30,X)&lt;br /&gt;
109C: 0C 80 03   TOP  $0380&lt;br /&gt;
109F: 91 40      STA  ($40),Y&lt;br /&gt;
10A1: AC 0D E0   LDY  $E00D&lt;br /&gt;
10A4: F0 17      BEQ  $10BD&lt;br /&gt;
10A6: B0 13      BCS  $10BB&lt;br /&gt;
10A8: 82 61      DOP  #$61&lt;br /&gt;
10AA: 80 0E      DOP  #$0E&lt;br /&gt;
10AC: 8E 22 81   STX  $8122&lt;br /&gt;
10AF: 50 80      BVC  $1031&lt;br /&gt;
10B1: 62         JAM&lt;br /&gt;
10B2: 00         BRK&lt;br /&gt;
10B3: 1C 79 04   TOP  $0479,X&lt;br /&gt;
10B6: 02         JAM&lt;br /&gt;
10B7: 29 A3      AND  #$A3&lt;br /&gt;
10B9: B8         CLV&lt;br /&gt;
10BA: 41 AD      EOR  ($AD,X)&lt;br /&gt;
10BC: 5F B3 1A   SRE  $1AB3,X&lt;br /&gt;
10BF: 40         RTI&lt;br /&gt;
10C0: E0 60      CPX  #$60&lt;br /&gt;
10C2: 06 20      ASL  $20&lt;br /&gt;
10C4: A0 1B      LDY  #$1B&lt;br /&gt;
10C6: AD 06 D8   LDA  $D806&lt;br /&gt;
10C9: 79 88 00   ADC  $0088,Y&lt;br /&gt;
10CC: 6E 0A 40   ROR  $400A&lt;br /&gt;
10CF: 08         PHP&lt;br /&gt;
10D0: 56 06      LSR  $06,X&lt;br /&gt;
10D2: 8D 8C 11   STA  $118C&lt;br /&gt;
10D5: B8         CLV&lt;br /&gt;
10D6: 00         BRK&lt;br /&gt;
10D7: F0 0B      BEQ  $10E4&lt;br /&gt;
10D9: B4 3E      LDY  $3E,X&lt;br /&gt;
10DB: EB 4C      SBC  #$4C&lt;br /&gt;
10DD: 76 15      ROR  $15,X&lt;br /&gt;
10DF: 13 AB      SLO  ($AB),Y&lt;br /&gt;
10E1: 63 B5      RRA  ($B5,X)&lt;br /&gt;
10E3: 60         RTS&lt;br /&gt;
10E4: 2C 8A 33   BIT  $338A&lt;br /&gt;
10E7: 3E 0A 0A   ROL  $0A0A,X&lt;br /&gt;
10EA: A8         TAY&lt;br /&gt;
10EB: A2 00      LDX  #$00&lt;br /&gt;
10ED: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
10F0: F0 28      BEQ  $111A&lt;br /&gt;
10F2: 8D 63 04   STA  $0463&lt;br /&gt;
10F5: 88         DEY&lt;br /&gt;
10F6: 04 EB      DOP  $EB&lt;br /&gt;
10F8: 49 D8      EOR  #$D8&lt;br /&gt;
10FA: 38         SEC&lt;br /&gt;
10FB: 81 04      STA  ($04,X)&lt;br /&gt;
10FD: DD 49 D8   CMP  $D849,X&lt;br /&gt;
1100: E0 81      CPX  #$81&lt;br /&gt;
1102: 04 BB      DOP  $BB&lt;br /&gt;
1104: 15 4A      ORA  $4A,X&lt;br /&gt;
1106: C9 68      CMP  #$68&lt;br /&gt;
1108: 16 06      ASL  $06,X&lt;br /&gt;
110A: 20 0F 16   JSR  $160F&lt;br /&gt;
110D: 4C B4 15   JMP  $15B4&lt;br /&gt;
1110: C8         INY&lt;br /&gt;
1111: E8         INX&lt;br /&gt;
1112: E0 04      CPX  #$04&lt;br /&gt;
1114: D0 CD      BNE  $10E3&lt;br /&gt;
1116: 98         TYA&lt;br /&gt;
1117: BF C4 81   LAX  $81C4,Y&lt;br /&gt;
111A: 57 BC      SRE  $BC,X&lt;br /&gt;
111C: 18         CLC&lt;br /&gt;
111D: 34 2F      DOP  $2F,X&lt;br /&gt;
111F: 75 C4      ADC  $C4,X&lt;br /&gt;
1121: 6C 40 15  JMP  ($1540)&lt;br /&gt;
1124: 14 CE      DOP  $CE,X&lt;br /&gt;
1126: 12         JAM&lt;br /&gt;
1127: 33 F4      RLA  ($F4),Y&lt;br /&gt;
1129: 0F C5 EE   SLO  $EEC5&lt;br /&gt;
112C: 4E 4C 71   LSR  $714C&lt;br /&gt;
112F: 02         JAM&lt;br /&gt;
1130: D0 F0      BNE  $1122&lt;br /&gt;
1132: 41 82      EOR  ($82,X)&lt;br /&gt;
1134: 84 50      STY  $50&lt;br /&gt;
1136: 86 63      STX  $63&lt;br /&gt;
1138: AD C7 C9   LDA  $C9C7&lt;br /&gt;
113B: FF D0 08   ISB  $08D0,X&lt;br /&gt;
113E: 01 0F      ORA  ($0F,X)&lt;br /&gt;
1140: 09 02      ORA  #$02&lt;br /&gt;
1142: AB 67      ATX  #$67&lt;br /&gt;
1144: 00         BRK&lt;br /&gt;
1145: EE 02 55   INC  $5502&lt;br /&gt;
1148: 53 24      SRE  ($24),Y&lt;br /&gt;
114A: C9 38      CMP  #$38&lt;br /&gt;
114C: D0 03      BNE  $1151&lt;br /&gt;
114E: A0 12      LDY  #$12&lt;br /&gt;
1150: 80 CE      DOP  #$CE&lt;br /&gt;
1152: 03 A2      SLO  ($A2,X)&lt;br /&gt;
1154: 03 10      SLO  ($10,X)&lt;br /&gt;
1156: 70 06      BVS  $115E&lt;br /&gt;
1158: 0C 81 00   TOP  $0081&lt;br /&gt;
115B: FD 4E 46   SBC  $464E,X&lt;br /&gt;
115E: 06 07      ASL  $07&lt;br /&gt;
1160: 00         BRK&lt;br /&gt;
1161: F0 12      BEQ  $1175&lt;br /&gt;
1163: AE EB 0A   LDX  $0AEB&lt;br /&gt;
1166: 79 12 0D   ADC  $0D12,Y&lt;br /&gt;
1169: 9A         TXS&lt;br /&gt;
116A: 38         SEC&lt;br /&gt;
116B: 48         PHA&lt;br /&gt;
116C: C8         INY&lt;br /&gt;
116D: F8         SED&lt;br /&gt;
116E: 06 2D      ASL  $2D&lt;br /&gt;
1170: 39 0E 70   AND  $700E,Y&lt;br /&gt;
1173: DE 00 DE   DEC  $DE00,X&lt;br /&gt;
1176: 9C 04 40   SHY  $4004,X&lt;br /&gt;
1179: 35 10      AND  $10,X&lt;br /&gt;
117B: 99 F0 3A   STA  $3AF0,Y&lt;br /&gt;
117E: DF 6C 64   DCP  $646C,X&lt;br /&gt;
1181: B8         CLV&lt;br /&gt;
1182: F0 27      BEQ  $11AB&lt;br /&gt;
1184: 56 07      LSR  $07,X&lt;br /&gt;
1186: 07 8D      SLO  $8D&lt;br /&gt;
1188: 59 2F 80   EOR  $802F,Y&lt;br /&gt;
118B: 3F C0 58   RLA  $58C0,X&lt;br /&gt;
118E: D8         CLD&lt;br /&gt;
118F: 8D 31 81   STA  $8131&lt;br /&gt;
1192: 84 70      STY  $70&lt;br /&gt;
1194: 9C FA 01   SHY  $01FA,X&lt;br /&gt;
1197: 86 09      STX  $09&lt;br /&gt;
1199: 88         DEY&lt;br /&gt;
119A: 0F 07 AA   SLO  $AA07&lt;br /&gt;
119D: 4C B6 16   JMP  $16B6&lt;br /&gt;
11A0: D8         CLD&lt;br /&gt;
11A1: 74 00      DOP  $00,X&lt;br /&gt;
11A3: 97 F0      SAX  $F0,Y&lt;br /&gt;
11A5: 1F B0 10   SLO  $10B0,X&lt;br /&gt;
11A8: E7 C3      ISB  $C3&lt;br /&gt;
11AA: 1C 23 13   TOP  $1323,X&lt;br /&gt;
11AD: FE 44 2D   INC  $2D44,X&lt;br /&gt;
11B0: DA         NOP&lt;br /&gt;
11B1: 60         RTS&lt;br /&gt;
11B2: 2C BD 73   BIT  $73BD&lt;br /&gt;
11B5: 0C 00 64   TOP  $6400&lt;br /&gt;
11B8: E3 1D      ISB  ($1D,X)&lt;br /&gt;
11BA: 98         TYA&lt;br /&gt;
11BB: 8A         TXA&lt;br /&gt;
11BC: B2         JAM&lt;br /&gt;
11BD: F0 19      BEQ  $11D8&lt;br /&gt;
11BF: B0 0D      BCS  $11CE&lt;br /&gt;
11C1: 92         JAM&lt;br /&gt;
11C2: 21 09      AND  ($09),Y&lt;br /&gt;
11C4: F0 10      BEQ  $11D6&lt;br /&gt;
11C6: FE 13 58   INC  $5813,X&lt;br /&gt;
11C9: FB 16 BD   ISB  $BD16,Y&lt;br /&gt;
11CC: C0 19      CPY  #$19&lt;br /&gt;
11CE: C9 F7      CMP  #$F7&lt;br /&gt;
11D0: F0 03      BEQ  $11D5&lt;br /&gt;
11D2: DE 68 60   DEC  $6068,X&lt;br /&gt;
11D5: B4 98      LDY  $98,X&lt;br /&gt;
11D7: 01 7C      ORA  ($7C,X)&lt;br /&gt;
11D9: 70 92      BVS  $116D&lt;br /&gt;
11DB: F0 77      BEQ  $1254&lt;br /&gt;
11DD: AA         TAX&lt;br /&gt;
11DE: D8         CLD&lt;br /&gt;
11DF: 00         BRK&lt;br /&gt;
11E0: 72         JAM&lt;br /&gt;
11E1: 4E 18 40   LSR  $4018&lt;br /&gt;
11E4: 6A         ROR  A&lt;br /&gt;
11E5: 9E 30 00   SHX  $0030,Y&lt;br /&gt;
11E8: 02         JAM&lt;br /&gt;
11E9: AE 02 D0   LDX  $D002&lt;br /&gt;
11EC: AC 03 76   LDY  $7603&lt;br /&gt;
11EF: 18         CLC&lt;br /&gt;
11F0: 40         RTI&lt;br /&gt;
11F1: C9 3A      CMP  #$3A&lt;br /&gt;
11F3: 27 0C      RLA  $0C&lt;br /&gt;
11F5: 80 35      DOP  #$35&lt;br /&gt;
11F7: 53 93      SRE  ($93),Y&lt;br /&gt;
11F9: E1 02      SBC  ($02,X)&lt;br /&gt;
11FB: B3 01      LAX  ($01),Y&lt;br /&gt;
11FD: 18         CLC&lt;br /&gt;
11FE: A9 06      LDA  #$06&lt;br /&gt;
1200: 9D 92 05   STA  $0592,X&lt;br /&gt;
1203: EA         NOP&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 8A         TXA&lt;br /&gt;
1206: 00         BRK&lt;br /&gt;
1207: 11 53      ORA  ($53),Y&lt;br /&gt;
1209: 51 BC      EOR  ($BC),Y&lt;br /&gt;
120B: 05 88      ORA  $88&lt;br /&gt;
120D: 8C 4C 7A   STY  $7A4C&lt;br /&gt;
1210: 17 EE      SLO  $EE,X&lt;br /&gt;
1212: 08         PHP&lt;br /&gt;
1213: 40         RTI&lt;br /&gt;
1214: A9 5F      LDA  #$5F&lt;br /&gt;
1216: 17 5E      SLO  $5E,X&lt;br /&gt;
1218: 00         BRK&lt;br /&gt;
1219: 1D 16 DE   ORA  $DE16,X&lt;br /&gt;
121C: 4F 07 FE   SRE  $FE07&lt;br /&gt;
121F: 36 08      ROL  $08,X&lt;br /&gt;
1221: F0 11      BEQ  $1234&lt;br /&gt;
1223: DE 41 D0   DEC  $D041,X&lt;br /&gt;
1226: 07 BD      SLO  $BD&lt;br /&gt;
1228: 51 C5      EOR  ($C5),Y&lt;br /&gt;
122A: 66 A0      ROR  $A0&lt;br /&gt;
122C: A0 A9      LDY  #$A9&lt;br /&gt;
122E: 07 D2      SLO  $D2&lt;br /&gt;
1230: 29 08      AND  #$08&lt;br /&gt;
1232: C0 0A      CPY  #$0A&lt;br /&gt;
1234: 40         RTI&lt;br /&gt;
1235: A4 02      LDY  $02&lt;br /&gt;
1237: B9 80 07   LDA  $0780,Y&lt;br /&gt;
123A: D9 07 C0   CMP  $C007,Y&lt;br /&gt;
123D: 54 83      DOP  $83,X&lt;br /&gt;
123F: 57 D0      SRE  $D0,X&lt;br /&gt;
1241: 4F A2 01   SRE  $01A2&lt;br /&gt;
1244: E8         INX&lt;br /&gt;
1245: 60         RTS&lt;br /&gt;
1246: BB 48 1A   LAE  $1A48,Y&lt;br /&gt;
1249: D9 D0 F6   CMP  $F6D0,Y&lt;br /&gt;
124C: A9 04      LDA  #$04&lt;br /&gt;
124E: 12         JAM&lt;br /&gt;
124F: AB AD      ATX  #$AD&lt;br /&gt;
1251: 41 9D      EOR  ($9D,X)&lt;br /&gt;
1253: 91 C7      STA  ($C7),Y&lt;br /&gt;
1255: 00         BRK&lt;br /&gt;
1256: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1259: 9D E6 79   STA  $79E6,X&lt;br /&gt;
125C: 80 0A      DOP  #$0A&lt;br /&gt;
125E: 9D 02 BD   STA  $BD02,X&lt;br /&gt;
1261: 77 0E      RRA  $0E,X&lt;br /&gt;
1263: 2D 43 6A   AND  $6A43&lt;br /&gt;
1266: 02         JAM&lt;br /&gt;
1267: C1 09      CMP  ($09,X)&lt;br /&gt;
1269: 14 03      DOP  $03,X&lt;br /&gt;
126B: 60         RTS&lt;br /&gt;
126C: 66 35      ROR  $35&lt;br /&gt;
126E: 43 A9      SRE  ($A9,X)&lt;br /&gt;
1270: 5F A1 2A   SRE  $2AA1,X&lt;br /&gt;
1273: 97 25      SAX  $25,Y&lt;br /&gt;
1275: E0 23      CPX  #$23&lt;br /&gt;
1277: 15 9D      ORA  $9D,X&lt;br /&gt;
1279: 60         RTS&lt;br /&gt;
127A: 21 B9      AND  ($B9),Y&lt;br /&gt;
127C: 0A         ASL  A&lt;br /&gt;
127D: 1F 01 2C   SLO  $2C01,X&lt;br /&gt;
1280: 9D 4B 60   STA  $604B,X&lt;br /&gt;
1283: 50 C2      BVC  $1247&lt;br /&gt;
1285: E2 F0      DOP  #$F0&lt;br /&gt;
1287: 54 DE      DOP  $DE,X&lt;br /&gt;
1289: E3 4C      ISB  ($4C,X)&lt;br /&gt;
128B: E0 00      CPX  #$00&lt;br /&gt;
128D: F0 0C      BEQ  $129B&lt;br /&gt;
128F: E0 07      CPX  #$07&lt;br /&gt;
1291: F0 21      BEQ  $12B4&lt;br /&gt;
1293: AA         TAX&lt;br /&gt;
1294: F8         SED&lt;br /&gt;
1295: 0E 64 4C   ASL  $4C64&lt;br /&gt;
1298: 57 18      SRE  $18,X&lt;br /&gt;
129A: 76 AC      ROR  $AC,X&lt;br /&gt;
129C: 19 8C 90   ORA  $908C,Y&lt;br /&gt;
129F: 02         JAM&lt;br /&gt;
12A0: 38         SEC&lt;br /&gt;
12A1: 10 92      BPL  $1235&lt;br /&gt;
12A3: FE 13 52   INC  $5213,X&lt;br /&gt;
12A6: 74 00      DOP  $00,X&lt;br /&gt;
12A8: 88         DEY&lt;br /&gt;
12A9: 53 02      SRE  ($02),Y&lt;br /&gt;
12AB: 60         RTS&lt;br /&gt;
12AC: 83 1A      SAX  $1A&lt;br /&gt;
12AE: C7 1B      DCP  $1B&lt;br /&gt;
12B0: 80 37      DOP  #$37&lt;br /&gt;
12B2: 8D AA 85   STA  $85AA&lt;br /&gt;
12B5: 86 02      STX  $02&lt;br /&gt;
12B7: 2E 33 51   ROL  $5133&lt;br /&gt;
12BA: 10 29      BPL  $12E5&lt;br /&gt;
12BC: 7F 90 01   RRA  $0190,X&lt;br /&gt;
12BF: 01 00      ORA  ($00,X)&lt;br /&gt;
12C1: 8D EB 8D   STA  $8DEB&lt;br /&gt;
12C4: 58         CLI&lt;br /&gt;
12C5: B8         CLV&lt;br /&gt;
12C6: FE 27 D0   INC  $D027,X&lt;br /&gt;
12C9: 6D 7E 67   ADC  $677E&lt;br /&gt;
12CC: E7 20      ISB  $20&lt;br /&gt;
12CE: 20 5F CF   JSR  $CF5F&lt;br /&gt;
12D1: 41 00      EOR  ($00,X)&lt;br /&gt;
12D3: 5A         NOP&lt;br /&gt;
12D4: E7 20      ISB  $20&lt;br /&gt;
12D6: 80 C1      DOP  #$C1&lt;br /&gt;
12D8: 10 52      BPL  $132C&lt;br /&gt;
12DA: 60         RTS&lt;br /&gt;
12DB: 42         JAM&lt;br /&gt;
12DC: 29 01      AND  #$01&lt;br /&gt;
12DE: AE 3A 0C   LDX  $0C3A&lt;br /&gt;
12E1: AC 89 00   LDY  $0089&lt;br /&gt;
12E4: 8E 8E 86   STX  $868E&lt;br /&gt;
12E7: 8C 43 3C   STY  $3C43&lt;br /&gt;
12EA: 00         BRK&lt;br /&gt;
12EB: A4 8A      LDY  $8A&lt;br /&gt;
12ED: 09 BD      ORA  #$BD&lt;br /&gt;
12EF: 14 54      DOP  $54,X&lt;br /&gt;
12F1: A8         TAY&lt;br /&gt;
12F2: BD 62 84   LDA  $8462,X&lt;br /&gt;
12F5: BC 20 B6   LDY  $B620,X&lt;br /&gt;
12F8: 12         JAM&lt;br /&gt;
12F9: EC 1F 79   CPX  $791F&lt;br /&gt;
12FC: 09 22      ORA  #$22&lt;br /&gt;
12FE: CC 20 8C   CPY  $8C20&lt;br /&gt;
1301: 1D 48 7A   ORA  $7A48,X&lt;br /&gt;
1304: 01 04      ORA  ($04,X)&lt;br /&gt;
1306: 35 40      AND  $40,X&lt;br /&gt;
1308: C3 83      DCP  ($83,X)&lt;br /&gt;
130A: B5 A0      LDA  $A0,X&lt;br /&gt;
130C: 20 15 5A   JSR  $5A15&lt;br /&gt;
130F: 50 DD      BVC  $12EE&lt;br /&gt;
1311: 30 CC      BMI  $12DF&lt;br /&gt;
1313: F0 05      BEQ  $131A&lt;br /&gt;
1315: 30 03      BMI  $131A&lt;br /&gt;
1317: CE FD 03   DEC  $03FD&lt;br /&gt;
131A: 3C 0A 71   TOP  $710A,X&lt;br /&gt;
131D: C9 06      CMP  #$06&lt;br /&gt;
131F: 71 29      ADC  ($29),Y&lt;br /&gt;
1321: 2A         ROL  A&lt;br /&gt;
1322: 00         BRK&lt;br /&gt;
1323: D0 F0      BNE  $1315&lt;br /&gt;
1325: 5C C1 5C   TOP  $5CC1,X&lt;br /&gt;
1328: 0A         ASL  A&lt;br /&gt;
1329: C3 9E      DCP  ($9E,X)&lt;br /&gt;
132B: 5D 43 F0   EOR  $F043,X&lt;br /&gt;
132E: 58         CLI&lt;br /&gt;
132F: 5A         NOP&lt;br /&gt;
1330: 19 37 F0   ORA  $F037,Y&lt;br /&gt;
1333: 11 AD      ORA  ($AD),Y&lt;br /&gt;
1335: FF 07 C9   ISB  $C907,X&lt;br /&gt;
1338: 34 F0      DOP  $F0,X&lt;br /&gt;
133A: 0A         ASL  A&lt;br /&gt;
133B: A9 12      LDA  #$12&lt;br /&gt;
133D: 8D 64 73   STA  $7364&lt;br /&gt;
1340: 0C A9 10   TOP  $10A9&lt;br /&gt;
1343: 8D 5B AD   STA  $AD5B&lt;br /&gt;
1346: 1E 0E 0A   ASL  $0A0E,X&lt;br /&gt;
1349: AA         TAX&lt;br /&gt;
134A: AD 10 01   LDA  $0110&lt;br /&gt;
134D: 4E 38 27   LSR  $2738&lt;br /&gt;
1350: 3A         NOP&lt;br /&gt;
1351: 33 B2      RLA  ($B2),Y&lt;br /&gt;
1353: 50 5C      BVC  $13B1&lt;br /&gt;
1355: C0 C2      CPY  #$C2&lt;br /&gt;
1357: B0 27      BCS  $1380&lt;br /&gt;
1359: AD DE 15   LDA  $15DE&lt;br /&gt;
135C: 5C 21 C8   TOP  $C821,X&lt;br /&gt;
135F: 02         JAM&lt;br /&gt;
1360: 34 90      DOP  $90,X&lt;br /&gt;
1362: 1B D1 42   SLO  $42D1,Y&lt;br /&gt;
1365: 38         SEC&lt;br /&gt;
1366: ED B5 B0   SBC  $B0B5&lt;br /&gt;
1369: B0 0F      BCS  $137A&lt;br /&gt;
136B: 25 0E      AND  $0E&lt;br /&gt;
136D: 18         CLC&lt;br /&gt;
136E: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1371: DD CE 3D   CMP  $3DCE,X&lt;br /&gt;
1374: 90 03      BCC  $1379&lt;br /&gt;
1376: 24 06      BIT  $06&lt;br /&gt;
1378: DF 01 82   DCP  $8201,X&lt;br /&gt;
137B: 06 8C      ASL  $8C&lt;br /&gt;
137D: 01 63      ORA  ($63,X)&lt;br /&gt;
137F: 46 2E      LSR  $2E&lt;br /&gt;
1381: 5E 47 2E   LSR  $2E47,X&lt;br /&gt;
1384: 19 AD 0B   ORA  $0BAD,Y&lt;br /&gt;
1387: 29 03      AND  #$03&lt;br /&gt;
1389: D0 52      BNE  $13DD&lt;br /&gt;
138B: 01 E9      ORA  ($E9,X)&lt;br /&gt;
138D: 0B C5      ANC  #$C5&lt;br /&gt;
138F: 00         BRK&lt;br /&gt;
1390: 1C 2B 51   TOP  $512B,X&lt;br /&gt;
1393: 32         JAM&lt;br /&gt;
1394: 32         JAM&lt;br /&gt;
1395: 4C B9 1B   JMP  $1BB9&lt;br /&gt;
1398: 20 90 1A   JSR  $1A90&lt;br /&gt;
139B: AD 00 4B   LDA  $4B00&lt;br /&gt;
139E: FC 2D 40   TOP  $402D,X&lt;br /&gt;
13A1: 0E 35 AD   ASL  $AD35&lt;br /&gt;
13A4: C8         INY&lt;br /&gt;
13A5: CD 2E 83   CMP  $832E&lt;br /&gt;
13A8: AC 0A 05   LDY  $050A&lt;br /&gt;
13AB: 00         BRK&lt;br /&gt;
13AC: D0 28      BNE  $13D6&lt;br /&gt;
13AE: 55 01      EOR  $01,X&lt;br /&gt;
13B0: D0 23      BNE  $13D5&lt;br /&gt;
13B2: AD E0 8E   LDA  $8EE0&lt;br /&gt;
13B5: 05 1A      ORA  $1A&lt;br /&gt;
13B7: F1 00      SBC  ($00),Y&lt;br /&gt;
13B9: 36 13      ROL  $13,X&lt;br /&gt;
13BB: 3A         NOP&lt;br /&gt;
13BC: 28         PLP&lt;br /&gt;
13BD: 44 03      DOP  $03&lt;br /&gt;
13BF: 12         JAM&lt;br /&gt;
13C0: 1C 4B 00   TOP  $004B,X&lt;br /&gt;
13C3: FA         NOP&lt;br /&gt;
13C4: F0 D6      BEQ  $139C&lt;br /&gt;
13C6: 45 00      EOR  $00&lt;br /&gt;
13C8: 33 0E      RLA  ($0E),Y&lt;br /&gt;
13CA: EE 32 13   INC  $1332&lt;br /&gt;
13CD: 20 A0 AD   JSR  $ADA0&lt;br /&gt;
13D0: 07 C5      SLO  $C5&lt;br /&gt;
13D2: FA         NOP&lt;br /&gt;
13D3: AD 4D 5F   LDA  $5F4D&lt;br /&gt;
13D6: D0 F5      BNE  $13CD&lt;br /&gt;
13D8: AD 96 D0   LDA  $D096&lt;br /&gt;
13DB: F0 49      BEQ  $1426&lt;br /&gt;
13DD: 9B EB 39   SHS  $39EB,Y&lt;br /&gt;
13E0: 07 F0      SLO  $F0&lt;br /&gt;
13E2: E6 20      INC  $20&lt;br /&gt;
13E4: 1D 16 2D   ORA  $2D16,X&lt;br /&gt;
13E7: 24 80      BIT  $80&lt;br /&gt;
13E9: 00         BRK&lt;br /&gt;
13EA: D0 17      BNE  $1403&lt;br /&gt;
13EC: CE 2B 2D   DEC  $2D2B&lt;br /&gt;
13EF: 1D 2D 85   ORA  $852D,X&lt;br /&gt;
13F2: 60         RTS&lt;br /&gt;
13F3: 83 60      SAX  $60&lt;br /&gt;
13F5: A9 FF      LDA  #$FF&lt;br /&gt;
13F7: 4B 24      ASR  #$24&lt;br /&gt;
13F9: 5A         NOP&lt;br /&gt;
13FA: 1A         NOP&lt;br /&gt;
13FB: AB 67      ATX  #$67&lt;br /&gt;
13FD: A0 F0      LDY  #$F0&lt;br /&gt;
13FF: 19 3E 9B   ORA  $9B3E,Y&lt;br /&gt;
1402: 1F C9 01   SLO  $01C9,X&lt;br /&gt;
1405: F0 26      BEQ  $142D&lt;br /&gt;
1407: 98         TYA&lt;br /&gt;
1408: AA         TAX&lt;br /&gt;
1409: DE 1C BE   DEC  $BE1C,X&lt;br /&gt;
140C: 4C 16 42   JMP  $4216&lt;br /&gt;
140F: 07 41      SLO  $41&lt;br /&gt;
1411: 72         JAM&lt;br /&gt;
1412: 4C 1B 1A   JMP  $1A1B&lt;br /&gt;
1415: D0 AD      BNE  $13C4&lt;br /&gt;
1417: 41 45      EOR  ($45,X)&lt;br /&gt;
1419: A9 06      LDA  #$06&lt;br /&gt;
141B: 8D 48 49   STA  $4948&lt;br /&gt;
141E: 2E D0 8D   ROL  $8DD0&lt;br /&gt;
1421: 58         CLI&lt;br /&gt;
1422: 88         DEY&lt;br /&gt;
1423: 2E 3C 62   ROL  $623C&lt;br /&gt;
1426: 93 A9      AXA  ($A9),Y&lt;br /&gt;
1428: 7D 05 12   ADC  $1205,X&lt;br /&gt;
142B: 87 41      SAX  $41&lt;br /&gt;
142D: 20 F0 0C   JSR  $0CF0&lt;br /&gt;
1430: B9 E6 29   LDA  $29E6,Y&lt;br /&gt;
1433: C0 F0      CPY  #$F0&lt;br /&gt;
1435: 15 09      ORA  $09,X&lt;br /&gt;
1437: 1F 4C 57   SLO  $574C,X&lt;br /&gt;
143A: 1A         NOP&lt;br /&gt;
143B: CE 2C 06   DEC  $062C&lt;br /&gt;
143E: F2         JAM&lt;br /&gt;
143F: 6C 7F 1B  JMP  ($1B7F)&lt;br /&gt;
1442: A9 E1      LDA  #$E1&lt;br /&gt;
1444: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1447: AC E1 22   LDY  $22E1&lt;br /&gt;
144A: C0 99      CPY  #$99&lt;br /&gt;
144C: 80 90      DOP  #$90&lt;br /&gt;
144E: 6D 88 01   ADC  $0188&lt;br /&gt;
1451: 50 86      BVC  $13D9&lt;br /&gt;
1453: 65 20      ADC  $20&lt;br /&gt;
1455: D3 18      DCP  ($18),Y&lt;br /&gt;
1457: D0 27      BNE  $1480&lt;br /&gt;
1459: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
145C: BD 8B 77   LDA  $778B,X&lt;br /&gt;
145F: D0 1F      BNE  $1480&lt;br /&gt;
1461: BD D8 F0   LDA  $F0D8,X&lt;br /&gt;
1464: 1A         NOP&lt;br /&gt;
1465: BD 84 1D   LDA  $1D84,X&lt;br /&gt;
1468: CD 2A 0E   CMP  $0E2A&lt;br /&gt;
146B: F0 12      BEQ  $147F&lt;br /&gt;
146D: CD F0 39   CMP  $39F0&lt;br /&gt;
1470: 34 0A      DOP  $0A,X&lt;br /&gt;
1472: 9D 57 B0   STA  $B057,X&lt;br /&gt;
1475: 5A         NOP&lt;br /&gt;
1476: 40         RTI&lt;br /&gt;
1477: 9D 08 0D   STA  $0D08,X&lt;br /&gt;
147A: A0 60      LDY  #$60&lt;br /&gt;
147C: CE 65 D0   DEC  $D065&lt;br /&gt;
147F: 25 AD      AND  $AD&lt;br /&gt;
1481: 62         JAM&lt;br /&gt;
1482: 06 F0      ASL  $F0&lt;br /&gt;
1484: B0 51      BCS  $14D7&lt;br /&gt;
1486: 4C A5 40   JMP  $40A5&lt;br /&gt;
1489: 0F 08 92   SLO  $9208&lt;br /&gt;
148C: 02         JAM&lt;br /&gt;
148D: 06 30      ASL  $30&lt;br /&gt;
148F: 08         PHP&lt;br /&gt;
1490: A4 CE      LDY  $CE&lt;br /&gt;
1492: 2D 05 4C   AND  $4C05&lt;br /&gt;
1495: B5 1A      LDA  $1A,X&lt;br /&gt;
1497: EE 0F CA   INC  $CA0F&lt;br /&gt;
149A: 0F 8D 05   SLO  $058D&lt;br /&gt;
149D: 0E 60 A2   ASL  $A260&lt;br /&gt;
14A0: 00         BRK&lt;br /&gt;
14A1: 18         CLC&lt;br /&gt;
14A2: 4C F0 FF   JMP  $FFF0&lt;br /&gt;
14A5: A0 A7      LDY  #$A7&lt;br /&gt;
14A7: 3C 12 D0   TOP  $D012,X&lt;br /&gt;
14AA: A0 62      LDY  #$62&lt;br /&gt;
14AC: 10 A7      BPL  $1455&lt;br /&gt;
14AE: 62         JAM&lt;br /&gt;
14AF: 27 9E      RLA  $9E&lt;br /&gt;
14B1: 8A         TXA&lt;br /&gt;
14B2: 0D E8 9F   ORA  $9FE8&lt;br /&gt;
14B5: 8A         TXA&lt;br /&gt;
14B6: 03 79      SLO  ($79,X)&lt;br /&gt;
14B8: 2A         ROL  A&lt;br /&gt;
14B9: 36 64      ROL  $64,X&lt;br /&gt;
14BB: 7C 2A 42   TOP  $422A,X&lt;br /&gt;
14BE: 38         SEC&lt;br /&gt;
14BF: AD BC 28   LDA  $28BC&lt;br /&gt;
14C2: E0 2B      CPX  #$2B&lt;br /&gt;
14C4: 40         RTI&lt;br /&gt;
14C5: A8         TAY&lt;br /&gt;
14C6: 16 0F      ASL  $0F,X&lt;br /&gt;
14C8: E9 00      SBC  #$00&lt;br /&gt;
14CA: 0D 86 5A   ORA  $5A86&lt;br /&gt;
14CD: C4 6C      CPY  $6C&lt;br /&gt;
14CF: BC 6F C0   LDY  $C06F,X&lt;br /&gt;
14D2: 4C 34 1B   JMP  $1B34&lt;br /&gt;
14D5: A0 0C      LDY  #$0C&lt;br /&gt;
14D7: C4 AE      CPY  $AE&lt;br /&gt;
14D9: D0 34      BNE  $150F&lt;br /&gt;
14DB: 03 30      SLO  ($30,X)&lt;br /&gt;
14DD: 50 15      BVC  $14F4&lt;br /&gt;
14DF: 72         JAM&lt;br /&gt;
14E0: 50 32      BVC  $1514&lt;br /&gt;
14E2: 12         JAM&lt;br /&gt;
14E3: 64 9A      DOP  $9A&lt;br /&gt;
14E5: 84 0D      STY  $0D&lt;br /&gt;
14E7: AF C9 0A   LAX  $0AC9&lt;br /&gt;
14EA: B0 03      BCS  $14EF&lt;br /&gt;
14EC: 20 54 1C   JSR  $1C54&lt;br /&gt;
14EF: AE 86 67   LDX  $6786&lt;br /&gt;
14F2: 00         BRK&lt;br /&gt;
14F3: 20 55 07   JSR  $0755&lt;br /&gt;
14F6: AE 72 04   LDX  $0472&lt;br /&gt;
14F9: 68         PLA&lt;br /&gt;
14FA: 4C CD BD   JMP  $BDCD&lt;br /&gt;
14FD: A0 21      LDY  #$21&lt;br /&gt;
14FF: 20 BB 1A   JSR  $1ABB&lt;br /&gt;
1502: C2 15      DOP  #$15&lt;br /&gt;
1504: 0A         ASL  A&lt;br /&gt;
1505: 87 0D      SAX  $0D&lt;br /&gt;
1507: 39 00 AD   AND  $AD00,Y&lt;br /&gt;
150A: 23 0E      RLA  ($0E,X)&lt;br /&gt;
150C: 17 4A      SLO  $4A,X&lt;br /&gt;
150E: 4A         LSR  A&lt;br /&gt;
150F: 29 0F      AND  #$0F&lt;br /&gt;
1511: 18         CLC&lt;br /&gt;
1512: 69 31      ADC  #$31&lt;br /&gt;
1514: 00         BRK&lt;br /&gt;
1515: 3C BB A9   TOP  $A9BB,X&lt;br /&gt;
1518: 04 82      DOP  $82&lt;br /&gt;
151A: 2C 12 11   BIT  $1112&lt;br /&gt;
151D: 09 AA      ORA  #$AA&lt;br /&gt;
151F: A9 98      LDA  #$98&lt;br /&gt;
1521: 9D 23 04   STA  $0423,X&lt;br /&gt;
1524: CA         DEX&lt;br /&gt;
1525: D0 F8      BNE  $151F&lt;br /&gt;
1527: E3 A3      ISB  ($A3,X)&lt;br /&gt;
1529: 70 2A      BVS  $1555&lt;br /&gt;
152B: D8         CLD&lt;br /&gt;
152C: 08         PHP&lt;br /&gt;
152D: 40         RTI&lt;br /&gt;
152E: 07 3C      SLO  $3C&lt;br /&gt;
1530: 06 7F      ASL  $7F&lt;br /&gt;
1532: 70 5C      BVS  $1590&lt;br /&gt;
1534: 00         BRK&lt;br /&gt;
1535: A8         TAY&lt;br /&gt;
1536: 0D B1 F0   ORA  $F0B1&lt;br /&gt;
1539: 68         PLA&lt;br /&gt;
153A: 0E 20 23   ASL  $2320&lt;br /&gt;
153D: 40         RTI&lt;br /&gt;
153E: B0 83      BCS  $14C3&lt;br /&gt;
1540: CE 80 58   DEC  $5880&lt;br /&gt;
1543: 20 C8 60   JSR  $60C8&lt;br /&gt;
1546: 88         DEY&lt;br /&gt;
1547: AC 00 08   LDY  $0800&lt;br /&gt;
154A: 89 CD      DOP  #$CD&lt;br /&gt;
154C: 66 B0      ROR  $B0&lt;br /&gt;
154E: 0B 82      ANC  #$82&lt;br /&gt;
1550: EA         NOP&lt;br /&gt;
1551: 0A         ASL  A&lt;br /&gt;
1552: 04 90      DOP  $90&lt;br /&gt;
1554: 07 4C      SLO  $4C&lt;br /&gt;
1556: D9 50 0C   CMP  $0C50,Y&lt;br /&gt;
1559: 60         RTS&lt;br /&gt;
155A: 38         SEC&lt;br /&gt;
155B: ED 37 60   SBC  $6037&lt;br /&gt;
155E: 1E F0 4C   ASL  $4CF0,X&lt;br /&gt;
1561: 37 1B      RLA  $1B,X&lt;br /&gt;
1563: 60         RTS&lt;br /&gt;
1564: 06 01      ASL  $01&lt;br /&gt;
1566: D0 1C      BNE  $1584&lt;br /&gt;
1568: AD 33 92   LDA  $9233&lt;br /&gt;
156B: 17 AD      SLO  $AD,X&lt;br /&gt;
156D: 32         JAM&lt;br /&gt;
156E: 0E D0 12   ASL  $12D0&lt;br /&gt;
1571: 80 CF      DOP  #$CF&lt;br /&gt;
1573: 35 9B      AND  $9B,X&lt;br /&gt;
1575: 83 49      SAX  $49&lt;br /&gt;
1577: 1C 54 00   TOP  $0054,X&lt;br /&gt;
157A: 46 41      LSR  $41&lt;br /&gt;
157C: B1 50      LDA  ($50),Y&lt;br /&gt;
157E: B0 04      BCS  $1584&lt;br /&gt;
1580: 36 02      ROL  $02,X&lt;br /&gt;
1582: 0B A2      ANC  #$A2&lt;br /&gt;
1584: 12         JAM&lt;br /&gt;
1585: 26 49      ROL  $49&lt;br /&gt;
1587: 80 1C      DOP  #$1C&lt;br /&gt;
1589: 90 AD      BCC  $1538&lt;br /&gt;
158B: 87 69      SAX  $69&lt;br /&gt;
158D: 40         RTI&lt;br /&gt;
158E: 4A         LSR  A&lt;br /&gt;
158F: C0 4C      CPY  #$4C&lt;br /&gt;
1591: C1 1A      CMP  ($1A,X)&lt;br /&gt;
1593: DD 4C 02   CMP  $024C,X&lt;br /&gt;
1596: 4F 38 02   SRE  $0238&lt;br /&gt;
1599: 2B 22      ANC  #$22&lt;br /&gt;
159B: FC 16 40   TOP  $4016,X&lt;br /&gt;
159E: 1D 01 5B   ORA  $5B01,X&lt;br /&gt;
15A1: 18         CLC&lt;br /&gt;
15A2: 20 63 1A   JSR  $1A63&lt;br /&gt;
15A5: 60         RTS&lt;br /&gt;
15A6: B9 1D 19   LDA  $191D,Y&lt;br /&gt;
15A9: 72         JAM&lt;br /&gt;
15AA: 4C 8A 09   JMP  $098A&lt;br /&gt;
15AD: 48         PHA&lt;br /&gt;
15AE: D8         CLD&lt;br /&gt;
15AF: 20 D0 FB   JSR  $FBD0&lt;br /&gt;
15B2: 20 E1 FF   JSR  $FFE1&lt;br /&gt;
15B5: F0 FB      BEQ  $15B2&lt;br /&gt;
15B7: 28         PLP&lt;br /&gt;
15B8: F8         SED&lt;br /&gt;
15B9: DF 60 A9   DCP  $A960,X&lt;br /&gt;
15BC: 30 4C      BMI  $160A&lt;br /&gt;
15BE: 66 20      ROR  $20&lt;br /&gt;
15C0: D7 0F      DCP  $0F,X&lt;br /&gt;
15C2: A9 18      LDA  #$18&lt;br /&gt;
15C4: A2 C6      LDX  #$C6&lt;br /&gt;
15C6: 81 02      STA  ($02,X)&lt;br /&gt;
15C8: 78         SEI&lt;br /&gt;
15C9: 1B 8A 20   SLO  $208A,Y&lt;br /&gt;
15CC: 80 D4      DOP  #$D4&lt;br /&gt;
15CE: 21 C8      AND  ($C8),Y&lt;br /&gt;
15D0: 11 8D      ORA  ($8D),Y&lt;br /&gt;
15D2: 05 88      ORA  $88&lt;br /&gt;
15D4: 09 0C      ORA  #$0C&lt;br /&gt;
15D6: C8         INY&lt;br /&gt;
15D7: 13 98      SLO  ($98),Y&lt;br /&gt;
15D9: 10 F1      BPL  $15CC&lt;br /&gt;
15DB: 8D 06 18   STA  $1806&lt;br /&gt;
15DE: 01 8D      ORA  ($8D,X)&lt;br /&gt;
15E0: 08         PHP&lt;br /&gt;
15E1: 81 11      STA  ($11,X)&lt;br /&gt;
15E3: FB 8D 0D   ISB  $0D8D,Y&lt;br /&gt;
15E6: 18         CLC&lt;br /&gt;
15E7: F6 8D      INC  $8D,X&lt;br /&gt;
15E9: 14 81      DOP  $81,X&lt;br /&gt;
15EB: 1D 0C 8D   ORA  $8D0C,X&lt;br /&gt;
15EE: 25 19      AND  $19&lt;br /&gt;
15F0: 0B 8D      ANC  #$8D&lt;br /&gt;
15F2: 26 81      ROL  $81&lt;br /&gt;
15F4: 11 80      ORA  ($80),Y&lt;br /&gt;
15F6: 28         PLP&lt;br /&gt;
15F7: 8A         TXA&lt;br /&gt;
15F8: 40         RTI&lt;br /&gt;
15F9: 40         RTI&lt;br /&gt;
15FA: 29 B4      AND  #$B4&lt;br /&gt;
15FC: 08         PHP&lt;br /&gt;
15FD: 2A         ROL  A&lt;br /&gt;
15FE: 88         DEY&lt;br /&gt;
15FF: 2C 80 08   BIT  $0880&lt;br /&gt;
1602: 2B C8      ANC  #$C8&lt;br /&gt;
1604: 2D 81 1C   AND  $1C81&lt;br /&gt;
1607: 80 8D      DOP  #$8D&lt;br /&gt;
1609: 17 18      SLO  $18,X&lt;br /&gt;
160B: 1D BF 10   ORA  $10BF,X&lt;br /&gt;
160E: FC 48 35   TOP  $3548,X&lt;br /&gt;
1611: 74 31      DOP  $31,X&lt;br /&gt;
1613: 8D F9 1A   STA  $1AF9&lt;br /&gt;
1616: 04 DC      DOP  $DC&lt;br /&gt;
1618: FA         NOP&lt;br /&gt;
1619: 8A         TXA&lt;br /&gt;
161A: FB 80 08   ISB  $0880,Y&lt;br /&gt;
161D: FC 88 FD   TOP  $FD88,X&lt;br /&gt;
1620: 07 8D      SLO  $8D&lt;br /&gt;
1622: FE 07 A9   INC  $A907,X&lt;br /&gt;
1625: 0F 00 F0   SLO  $F000&lt;br /&gt;
1628: 58         CLI&lt;br /&gt;
1629: D4 D1      DOP  $D1,X&lt;br /&gt;
162B: 0E D4 AD   ASL  $ADD4&lt;br /&gt;
162E: E0 01      CPX  #$01&lt;br /&gt;
1630: 84 5C      STY  $5C&lt;br /&gt;
1632: C6 DD      DEC  $DD&lt;br /&gt;
1634: 88         DEY&lt;br /&gt;
1635: 20 7A 14   JSR  $147A&lt;br /&gt;
1638: A9 C9      LDA  #$C9&lt;br /&gt;
163A: 8D 2B 07   STA  $072B&lt;br /&gt;
163D: 3F 04 8D   RLA  $8D04,X&lt;br /&gt;
1640: 2C B0 03   BIT  $03B0&lt;br /&gt;
1643: 60         RTS&lt;br /&gt;
1644: 07 A8      SLO  $A8&lt;br /&gt;
1646: 22         JAM&lt;br /&gt;
1647: 1A         NOP&lt;br /&gt;
1648: 40         RTI&lt;br /&gt;
1649: 58         CLI&lt;br /&gt;
164A: 03 88      SLO  ($88,X)&lt;br /&gt;
164C: 77 D8      RRA  $D8,X&lt;br /&gt;
164E: 00         BRK&lt;br /&gt;
164F: 06 13      ASL  $13&lt;br /&gt;
1651: A9 81      LDA  #$81&lt;br /&gt;
1653: 8D 0B D4   STA  $D40B&lt;br /&gt;
1656: 60         RTS&lt;br /&gt;
1657: 70 04      BVS  $165D&lt;br /&gt;
1659: A2 09      LDX  #$09&lt;br /&gt;
165B: 6A         ROR  A&lt;br /&gt;
165C: C8         INY&lt;br /&gt;
165D: DE 69 88   DEC  $8869,X&lt;br /&gt;
1660: 0D A2 0C   ORA  $0CA2&lt;br /&gt;
1663: AF 21 EC   LAX  $EC21&lt;br /&gt;
1666: A7 61      LAX  $61&lt;br /&gt;
1668: A0 12      LDY  #$12&lt;br /&gt;
166A: A2 8F      LDX  #$8F&lt;br /&gt;
166C: 19 EA 00   ORA  $00EA,Y&lt;br /&gt;
166F: FB 8C E4   ISB  $E48C,Y&lt;br /&gt;
1672: 46 39      LSR  $39&lt;br /&gt;
1674: 80 C3      DOP  #$C3&lt;br /&gt;
1676: A3 0E      LAX  ($0E,X)&lt;br /&gt;
1678: 80 B1      DOP  #$B1&lt;br /&gt;
167A: 9C A9 93   SHY  $93A9,X&lt;br /&gt;
167D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1680: A9 40      LDA  #$40&lt;br /&gt;
1682: C1 75      CMP  ($75,X)&lt;br /&gt;
1684: 01 16      ORA  ($16,X)&lt;br /&gt;
1686: AD 00 5E   LDA  $5E00&lt;br /&gt;
1689: 08         PHP&lt;br /&gt;
168A: 0A         ASL  A&lt;br /&gt;
168B: 8D 00 1D   STA  $1D00&lt;br /&gt;
168E: 08         PHP&lt;br /&gt;
168F: 90 38      BCC  $16C9&lt;br /&gt;
1691: E9 32      SBC  #$32&lt;br /&gt;
1693: 8D 2C BB   STA  $BB2C&lt;br /&gt;
1696: A9 09      LDA  #$09&lt;br /&gt;
1698: 8D 16 A1   STA  $A116&lt;br /&gt;
169B: 1A         NOP&lt;br /&gt;
169C: 80 08      DOP  #$08&lt;br /&gt;
169E: 18         CLC&lt;br /&gt;
169F: 88         DEY&lt;br /&gt;
16A0: 19 80 08   ORA  $0880,Y&lt;br /&gt;
16A3: 1B 08 1C   SLO  $1C08,Y&lt;br /&gt;
16A6: 83 10      SAX  $10&lt;br /&gt;
16A8: 40         RTI&lt;br /&gt;
16A9: 07 B1      SLO  $B1&lt;br /&gt;
16AB: B8         CLV&lt;br /&gt;
16AC: 40         RTI&lt;br /&gt;
16AD: 22         JAM&lt;br /&gt;
16AE: 44 8D      DOP  $8D&lt;br /&gt;
16B0: 8A         TXA&lt;br /&gt;
16B1: 8D 60 12   STA  $1260&lt;br /&gt;
16B4: 09 61      ORA  #$61&lt;br /&gt;
16B6: 88         DEY&lt;br /&gt;
16B7: 5F 80 08   SRE  $0880,X&lt;br /&gt;
16BA: 08         PHP&lt;br /&gt;
16BB: 88         DEY&lt;br /&gt;
16BC: 0F 80 14   SLO  $1480&lt;br /&gt;
16BF: 10 48      BPL  $1709&lt;br /&gt;
16C1: 59 8B 08   EOR  $088B,Y&lt;br /&gt;
16C4: 5A         NOP&lt;br /&gt;
16C5: 88         DEY&lt;br /&gt;
16C6: 5C 80 08   TOP  $0880,X&lt;br /&gt;
16C9: 5D 88 5B   EOR  $5B88,X&lt;br /&gt;
16CC: 80 08      DOP  #$08&lt;br /&gt;
16CE: 33 0E      RLA  ($0E),Y&lt;br /&gt;
16D0: 8D 98 A9   STA  $A998&lt;br /&gt;
16D3: FA         NOP&lt;br /&gt;
16D4: 8D 32 11   STA  $1132&lt;br /&gt;
16D7: 12         JAM&lt;br /&gt;
16D8: C0 06      CPY  #$06&lt;br /&gt;
16DA: 0E A9 7E   ASL  $7EA9&lt;br /&gt;
16DD: 3F C2 C7   RLA  $C7C2,X&lt;br /&gt;
16E0: 91 03      STA  ($03),Y&lt;br /&gt;
16E2: 0F 39 27   SLO  $2739&lt;br /&gt;
16E5: D0 64      BNE  $174B&lt;br /&gt;
16E7: 53 AD      SRE  ($AD),Y&lt;br /&gt;
16E9: 35 0E      AND  $0E,X&lt;br /&gt;
16EB: C9 01      CMP  #$01&lt;br /&gt;
16ED: D0 0E      BNE  $16FD&lt;br /&gt;
16EF: 07 17      SLO  $17&lt;br /&gt;
16F1: 00         BRK&lt;br /&gt;
16F2: D0 30      BNE  $1724&lt;br /&gt;
16F4: 0D A8 1E   ORA  $1EA8&lt;br /&gt;
16F7: F4 4C      DOP  $4C,X&lt;br /&gt;
16F9: 4E 1D DF   LSR  $DF1D&lt;br /&gt;
16FC: 4D 03 4C   EOR  $4C03&lt;br /&gt;
16FF: B6 E7      LDX  $E7,Y&lt;br /&gt;
1701: BD 80 88   LDA  $8880,X&lt;br /&gt;
1704: 35 1C      AND  $1C,X&lt;br /&gt;
1706: AD A7 11   LDA  $11A7&lt;br /&gt;
1709: F0 25      BEQ  $1730&lt;br /&gt;
170B: CE 62 0E   DEC  $0E62&lt;br /&gt;
170E: D0 0D      BNE  $171D&lt;br /&gt;
1710: 00         BRK&lt;br /&gt;
1711: 77 01      RRA  $01,X&lt;br /&gt;
1713: 86 62      STX  $62&lt;br /&gt;
1715: A5 D0      LDA  $D0&lt;br /&gt;
1717: 13 4C      SLO  ($4C),Y&lt;br /&gt;
1719: 30 1E      BMI  $1739&lt;br /&gt;
171B: B5 00      LDA  $00,X&lt;br /&gt;
171D: AD 1B D4   LDA  $D41B&lt;br /&gt;
1720: 29 77      AND  #$77&lt;br /&gt;
1722: 8D 23 68   STA  $6823&lt;br /&gt;
1725: F0 19      BEQ  $1740&lt;br /&gt;
1727: 60         RTS&lt;br /&gt;
1728: 1B 4C 9F   SLO  $9F4C,Y&lt;br /&gt;
172B: 1E 20 98   ASL  $9820,X&lt;br /&gt;
172E: E0 15      CPX  #$15&lt;br /&gt;
1730: 23 10      RLA  ($10,X)&lt;br /&gt;
1732: 20 D7 14   JSR  $14D7&lt;br /&gt;
1735: 2A         ROL  A&lt;br /&gt;
1736: 20 7F 15   JSR  $157F&lt;br /&gt;
1739: A9 01      LDA  #$01&lt;br /&gt;
173B: A2 00      LDX  #$00&lt;br /&gt;
173D: 20 18 11   JSR  $1118&lt;br /&gt;
1740: D0 71      BNE  $17B3&lt;br /&gt;
1742: A6 4F      LDX  $4F&lt;br /&gt;
1744: 79 22 02   ADC  $0222,Y&lt;br /&gt;
1747: 84 E6      STY  $E6&lt;br /&gt;
1749: 01 1E      ORA  ($1E,X)&lt;br /&gt;
174B: 9A         TXS&lt;br /&gt;
174C: B8         CLV&lt;br /&gt;
174D: 19 A9 04   ORA  $04A9,Y&lt;br /&gt;
1750: A2 02      LDX  #$02&lt;br /&gt;
1752: 6C 83 08  JMP  ($0883)&lt;br /&gt;
1755: A2 03      LDX  #$03&lt;br /&gt;
1757: 3C 83 10   TOP  $1083,X&lt;br /&gt;
175A: A2 04      LDX  #$04&lt;br /&gt;
175C: 3C 83 20   TOP  $2083,X&lt;br /&gt;
175F: A2 05      LDX  #$05&lt;br /&gt;
1761: 3C 83 40   TOP  $4083,X&lt;br /&gt;
1764: A2 06      LDX  #$06&lt;br /&gt;
1766: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1769: A9 80      LDA  #$80&lt;br /&gt;
176B: 8D 38 0E   STA  $0E38&lt;br /&gt;
176E: 49 FF      EOR  #$FF&lt;br /&gt;
1770: 8D 39 0E   STA  $0E39&lt;br /&gt;
1773: A2 07      LDX  #$07&lt;br /&gt;
1775: 8E 1E DC   STX  $DC1E&lt;br /&gt;
1778: DE 7E 22   DEC  $227E,X&lt;br /&gt;
177B: 02         JAM&lt;br /&gt;
177C: FE 17 20   INC  $2017,X&lt;br /&gt;
177F: DC 1B 20   TOP  $201B,X&lt;br /&gt;
1782: C8         INY&lt;br /&gt;
1783: C0 19      CPY  #$19&lt;br /&gt;
1785: 8C 0F 20   STY  $200F&lt;br /&gt;
1788: C2 0F      DOP  #$0F&lt;br /&gt;
178A: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
178D: A0 0F      LDY  #$0F&lt;br /&gt;
178F: 8C 37 C4   STY  $C437&lt;br /&gt;
1792: AB D3      ATX  #$D3&lt;br /&gt;
1794: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
1797: A0 00      LDY  #$00&lt;br /&gt;
1799: A2 18      LDX  #$18&lt;br /&gt;
179B: 20 BD 40   JSR  $40BD&lt;br /&gt;
179E: FC B6 A0   TOP  $A0B6,X&lt;br /&gt;
17A1: 84 40      STY  $40&lt;br /&gt;
17A3: 1E AB 20   ASL  $20AB,X&lt;br /&gt;
17A6: FE 10 08   INC  $0810,X&lt;br /&gt;
17A9: 8D 0F D4   STA  $D40F&lt;br /&gt;
17AC: AD 36 86   LDA  $8636&lt;br /&gt;
17AF: 41 55      EOR  ($55,X)&lt;br /&gt;
17B1: A9 10      LDA  #$10&lt;br /&gt;
17B3: CC A4 27   CPY  $27A4&lt;br /&gt;
17B6: 1E 93 0A   ASL  $0A93,X&lt;br /&gt;
17B9: C8         INY&lt;br /&gt;
17BA: 1F 98 4C   SLO  $4C98,X&lt;br /&gt;
17BD: 1B 1F AD   SLO  $AD1F,Y&lt;br /&gt;
17C0: 92         JAM&lt;br /&gt;
17C1: F0 34      BEQ  $17F7&lt;br /&gt;
17C3: CE 31 00   DEC  $0031&lt;br /&gt;
17C6: 27 2A      RLA  $2A&lt;br /&gt;
17C8: 1B A9 DC   SLO  $DCA9,Y&lt;br /&gt;
17CB: 18         CLC&lt;br /&gt;
17CC: 6D 58 8D   ADC  $8D58&lt;br /&gt;
17CF: 2F 0E A9   RLA  $A90E&lt;br /&gt;
17D2: 05 6D      ORA  $6D&lt;br /&gt;
17D4: 80 05      DOP  #$05&lt;br /&gt;
17D6: 8D 30 28   STA  $2830&lt;br /&gt;
17D9: C1 1A      CMP  ($1A,X)&lt;br /&gt;
17DB: A9 21      LDA  #$21&lt;br /&gt;
17DD: 02         JAM&lt;br /&gt;
17DE: 09 20      ORA  #$20&lt;br /&gt;
17E0: 8D 12 D4   STA  $D412&lt;br /&gt;
17E3: A9 50      LDA  #$50&lt;br /&gt;
17E5: 8D 32 78   STA  $7832&lt;br /&gt;
17E8: 20 80 0F   JSR  $0F80&lt;br /&gt;
17EB: CE 37 0E   DEC  $0E37&lt;br /&gt;
17EE: D0 F8      BNE  $17E8&lt;br /&gt;
17F0: 4C ED 1E   JMP  $1EED&lt;br /&gt;
17F3: 01 72      ORA  ($72,X)&lt;br /&gt;
17F5: 83 D0      SAX  $D0&lt;br /&gt;
17F7: F9 AD 01   SBC  $01AD,Y&lt;br /&gt;
17FA: DC 29 10   TOP  $1029,X&lt;br /&gt;
17FD: F0 F9      BEQ  $17F8&lt;br /&gt;
17FF: A9 00      LDA  #$00&lt;br /&gt;
1801: 8D 15 D0   STA  $D015&lt;br /&gt;
1804: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
1807: AD 00 00   LDA  $0000&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Commodore_Projects&amp;diff=331</id>
		<title>Commodore Projects</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Commodore_Projects&amp;diff=331"/>
		<updated>2023-10-06T20:26:55Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;Commodore 64 6510 CPU Explained&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Commodore 64 6510 CPU Explained]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Main_Page&amp;diff=330</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Main_Page&amp;diff=330"/>
		<updated>2023-10-06T20:25:57Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Promise to our readers regarding Artificial Intelligence==&lt;br /&gt;
All media on this website is generated and edited by humans unless otherwise disclosed with a string &amp;quot;This section contains AI generated content&amp;quot;.  Neither finite sets of random numbers, nor random number generators, are classified as artificial Intelligence within this website.&lt;br /&gt;
&lt;br /&gt;
[[Arduino Projects]]&lt;br /&gt;
&lt;br /&gt;
[[Commodore Projects]]&lt;br /&gt;
&lt;br /&gt;
[[Fun Code Segments]]&lt;br /&gt;
&lt;br /&gt;
[[Inventory]]&lt;br /&gt;
&lt;br /&gt;
[[Serial Library]]&lt;br /&gt;
&lt;br /&gt;
[[Foods]]&lt;br /&gt;
&lt;br /&gt;
[[Interesting bookmarks]]&lt;br /&gt;
&lt;br /&gt;
[[MLX II by Ottis Cowper Ver 1.1]]&lt;br /&gt;
&lt;br /&gt;
[[Automatic Proofreader by Charles Brannon for the Commodore 64 Compute Gazette October 1983]]&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991]]&lt;br /&gt;
&lt;br /&gt;
[[Linux Command Line Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Sandbox]] Practice Wiki code here&lt;br /&gt;
&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Main_Page&amp;diff=329</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Main_Page&amp;diff=329"/>
		<updated>2023-09-12T19:02:05Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Promise to our readers regarding Artificial Intelligence==&lt;br /&gt;
All media on this website is generated and edited by humans unless otherwise disclosed with a string &amp;quot;This section contains AI generated content&amp;quot;.  Neither finite sets of random numbers, nor random number generators, are classified as artificial Intelligence within this website.&lt;br /&gt;
&lt;br /&gt;
[[Arduino Projects]]&lt;br /&gt;
&lt;br /&gt;
[[Fun Code Segments]]&lt;br /&gt;
&lt;br /&gt;
[[Inventory]]&lt;br /&gt;
&lt;br /&gt;
[[Serial Library]]&lt;br /&gt;
&lt;br /&gt;
[[Foods]]&lt;br /&gt;
&lt;br /&gt;
[[Interesting bookmarks]]&lt;br /&gt;
&lt;br /&gt;
[[MLX II by Ottis Cowper Ver 1.1]]&lt;br /&gt;
&lt;br /&gt;
[[Automatic Proofreader by Charles Brannon for the Commodore 64 Compute Gazette October 1983]]&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991]]&lt;br /&gt;
&lt;br /&gt;
[[Linux Command Line Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Sandbox]] Practice Wiki code here&lt;br /&gt;
&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=NAND_Gate_(Verilog)&amp;diff=328</id>
		<title>NAND Gate (Verilog)</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=NAND_Gate_(Verilog)&amp;diff=328"/>
		<updated>2023-09-12T18:51:27Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;==Synopsis==  All logic gates can be simplified to a NAND Gate.  This is a demonstration of a NAND Gate in Verilog  ==Notes== I am not an expert, but I discourage using truth...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
&lt;br /&gt;
All logic gates can be simplified to a NAND Gate.  This is a demonstration of a NAND Gate in Verilog&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
I am not an expert, but I discourage using truth tables in Verilog as doing so may defeat optimizations that the compiler may otherwise perform.  This is only included as a reference, not as a best practice.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iverilog -o Nand_tb.vvp Nand_tb.v&lt;br /&gt;
vvp Nand_tb.vvp&lt;br /&gt;
gtkwave Nand_tb.vcd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nand.v by assignment==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
module Nand(Q,A,B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	assign Q = ~(A &amp;amp; B);&lt;br /&gt;
	endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nand.v by truth table==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
primitive Nand(Q, A, B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	table&lt;br /&gt;
		0 0 : 1;&lt;br /&gt;
		0 1 : 1;&lt;br /&gt;
		1 0 : 1;&lt;br /&gt;
		1 1 : 0;&lt;br /&gt;
		x ? : 0;&lt;br /&gt;
		? x : 0;&lt;br /&gt;
	endtable&lt;br /&gt;
endprimitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nand_tb.v test bench==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
`timescale 1ns/1ns&lt;br /&gt;
`include &amp;quot;Nand.v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
module Nand_tb;&lt;br /&gt;
&lt;br /&gt;
reg A;&lt;br /&gt;
reg B;&lt;br /&gt;
wire Q;&lt;br /&gt;
&lt;br /&gt;
Nand uut(Q,A,B);&lt;br /&gt;
&lt;br /&gt;
initial begin&lt;br /&gt;
	$dumpfile(&amp;quot;Nand_tb.vcd&amp;quot;);&lt;br /&gt;
	$dumpvars(0,Nand_tb);&lt;br /&gt;
&lt;br /&gt;
A = 0;&lt;br /&gt;
B = 0;&lt;br /&gt;
#10;&lt;br /&gt;
A = 1;&lt;br /&gt;
#10;&lt;br /&gt;
B = 1;&lt;br /&gt;
#10;&lt;br /&gt;
A = 0;&lt;br /&gt;
#10;&lt;br /&gt;
&lt;br /&gt;
$display(&amp;quot;Test Complete!&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Pictures==&lt;br /&gt;
[[&lt;br /&gt;
[[File:GTKWave NAND.png|thumb|GTKWave Signals of a NOR Gate]]&lt;br /&gt;
]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=File:GTKWave_NAND.png&amp;diff=327</id>
		<title>File:GTKWave NAND.png</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=File:GTKWave_NAND.png&amp;diff=327"/>
		<updated>2023-09-12T18:51:18Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GTKWave Signals of a NOR Gate&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=326</id>
		<title>NOR Gate (Verilog)</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=326"/>
		<updated>2023-09-12T18:46:44Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Code Nor.v by assignment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
&lt;br /&gt;
All logic gates can be simplified to a NOR Gate.  This is a demonstration of a NOR Gate in Verilog&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
I am not an expert, but I discourage using truth tables in Verilog as doing so may defeat optimizations that the compiler may otherwise perform.  This is only included as a reference, not as a best practice.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iverilog -o Nor_tb.vvp Nor_tb.v&lt;br /&gt;
vvp Nor_tb.vvp&lt;br /&gt;
gtkwave Nor_tb.vcd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by assignment==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
module Nor(Q,A,B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	assign Q = ~(A | B);&lt;br /&gt;
	endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Code Nor.v by truth table==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
primitive Nor(Q, A, B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	table&lt;br /&gt;
		0 0 : 1;&lt;br /&gt;
		0 1 : 0;&lt;br /&gt;
		1 0 : 0;&lt;br /&gt;
		1 1 : 0;&lt;br /&gt;
		x ? : 0;&lt;br /&gt;
		? x : 0;&lt;br /&gt;
	endtable&lt;br /&gt;
endprimitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor_tb.v test bench==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
`timescale 1ns/1ns&lt;br /&gt;
`include &amp;quot;Nor.v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
module Nor_tb;&lt;br /&gt;
&lt;br /&gt;
reg A;&lt;br /&gt;
reg B;&lt;br /&gt;
wire Q;&lt;br /&gt;
&lt;br /&gt;
Nor uut(Q,A,B);&lt;br /&gt;
&lt;br /&gt;
initial begin&lt;br /&gt;
	$dumpfile(&amp;quot;Nor_tb.vcd&amp;quot;);&lt;br /&gt;
	$dumpvars(0,Nor_tb);&lt;br /&gt;
&lt;br /&gt;
A = 0;&lt;br /&gt;
B = 0;&lt;br /&gt;
#10;&lt;br /&gt;
A = 1;&lt;br /&gt;
#10;&lt;br /&gt;
B = 1;&lt;br /&gt;
#10;&lt;br /&gt;
A = 0;&lt;br /&gt;
#10;&lt;br /&gt;
&lt;br /&gt;
$display(&amp;quot;Test Complete!&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Pictures==&lt;br /&gt;
[[File:GTKWave NOR.png|thumb|GTKWave Signals of a NOR Gate]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=325</id>
		<title>NOR Gate (Verilog)</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=325"/>
		<updated>2023-09-12T18:38:57Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
&lt;br /&gt;
All logic gates can be simplified to a NOR Gate.  This is a demonstration of a NOR Gate in Verilog&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
I am not an expert, but I discourage using truth tables in Verilog as doing so may defeat optimizations that the compiler may otherwise perform.  This is only included as a reference, not as a best practice.&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iverilog -o Nor_tb.vvp Nor_tb.v&lt;br /&gt;
vvp Nor_tb.vvp&lt;br /&gt;
gtkwave Nor_tb.vcd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by assignment==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
module Nor(Q,A,B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	assign Q = ~(A | B);&lt;br /&gt;
	endmodule&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by truth table==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
primitive Nor(Q, A, B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	table&lt;br /&gt;
		0 0 : 1;&lt;br /&gt;
		0 1 : 0;&lt;br /&gt;
		1 0 : 0;&lt;br /&gt;
		1 1 : 0;&lt;br /&gt;
		x ? : 0;&lt;br /&gt;
		? x : 0;&lt;br /&gt;
	endtable&lt;br /&gt;
endprimitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor_tb.v test bench==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
`timescale 1ns/1ns&lt;br /&gt;
`include &amp;quot;Nor.v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
module Nor_tb;&lt;br /&gt;
&lt;br /&gt;
reg A;&lt;br /&gt;
reg B;&lt;br /&gt;
wire Q;&lt;br /&gt;
&lt;br /&gt;
Nor uut(Q,A,B);&lt;br /&gt;
&lt;br /&gt;
initial begin&lt;br /&gt;
	$dumpfile(&amp;quot;Nor_tb.vcd&amp;quot;);&lt;br /&gt;
	$dumpvars(0,Nor_tb);&lt;br /&gt;
&lt;br /&gt;
A = 0;&lt;br /&gt;
B = 0;&lt;br /&gt;
#10;&lt;br /&gt;
A = 1;&lt;br /&gt;
#10;&lt;br /&gt;
B = 1;&lt;br /&gt;
#10;&lt;br /&gt;
A = 0;&lt;br /&gt;
#10;&lt;br /&gt;
&lt;br /&gt;
$display(&amp;quot;Test Complete!&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Pictures==&lt;br /&gt;
[[File:GTKWave NOR.png|thumb|GTKWave Signals of a NOR Gate]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=324</id>
		<title>NOR Gate (Verilog)</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=324"/>
		<updated>2023-09-12T18:36:42Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
&lt;br /&gt;
All logic gates can be simplified to a NOR Gate.  This is a demonstration of a NOR Gate in Verilog&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iverilog -o Nor_tb.vvp Nor_tb.v&lt;br /&gt;
vvp Nor_tb.vvp&lt;br /&gt;
gtkwave Nor_tb.vcd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by assignment==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
module Nor(Q,A,B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	assign Q = ~(A | B);&lt;br /&gt;
	endmodule&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by truth table==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
primitive Nor(Q, A, B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	table&lt;br /&gt;
		0 0 : 1;&lt;br /&gt;
		0 1 : 0;&lt;br /&gt;
		1 0 : 0;&lt;br /&gt;
		1 1 : 0;&lt;br /&gt;
		x ? : 0;&lt;br /&gt;
		? x : 0;&lt;br /&gt;
	endtable&lt;br /&gt;
endprimitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor_tb.v test bench==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
`timescale 1ns/1ns&lt;br /&gt;
`include &amp;quot;Nor.v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
module Nor_tb;&lt;br /&gt;
&lt;br /&gt;
reg A;&lt;br /&gt;
reg B;&lt;br /&gt;
wire Q;&lt;br /&gt;
&lt;br /&gt;
Nor uut(Q,A,B);&lt;br /&gt;
&lt;br /&gt;
initial begin&lt;br /&gt;
	$dumpfile(&amp;quot;Nor_tb.vcd&amp;quot;);&lt;br /&gt;
	$dumpvars(0,Nor_tb);&lt;br /&gt;
&lt;br /&gt;
A = 0;&lt;br /&gt;
B = 0;&lt;br /&gt;
#10;&lt;br /&gt;
A = 1;&lt;br /&gt;
#10;&lt;br /&gt;
B = 1;&lt;br /&gt;
#10;&lt;br /&gt;
A = 0;&lt;br /&gt;
#10;&lt;br /&gt;
&lt;br /&gt;
$display(&amp;quot;Test Complete!&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Pictures==&lt;br /&gt;
[[File:GTKWave NOR.png|thumb|GTKWave Signals of a NOR Gate]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=File:GTKWave_NOR.png&amp;diff=323</id>
		<title>File:GTKWave NOR.png</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=File:GTKWave_NOR.png&amp;diff=323"/>
		<updated>2023-09-12T18:36:08Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GTKWave signals of NOR Gate&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=322</id>
		<title>NOR Gate (Verilog)</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=NOR_Gate_(Verilog)&amp;diff=322"/>
		<updated>2023-09-12T18:10:08Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;==Synopsis==  All logic gates can be simplified to a NOR Gate.  This is a demonstration of a NOR Gate in Verilog  ==Notes==   ==Compilation== &amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt; ive...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
&lt;br /&gt;
All logic gates can be simplified to a NOR Gate.  This is a demonstration of a NOR Gate in Verilog&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Compilation==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
iverilog -o Nor_tb.vvp Nor_tb.v&lt;br /&gt;
vvp Nor_tb.vvp&lt;br /&gt;
gtkwave Nor_tb.vcd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by assignment==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
module Nor(Q,A,B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	assign Q = ~(A | B);&lt;br /&gt;
	endmodule&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor.v by truth table==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
primitive Nor(Q, A, B);&lt;br /&gt;
	output Q;&lt;br /&gt;
	input A,B;&lt;br /&gt;
	table&lt;br /&gt;
		0 0 : 1;&lt;br /&gt;
		0 1 : 0;&lt;br /&gt;
		1 0 : 0;&lt;br /&gt;
		1 1 : 0;&lt;br /&gt;
		x ? : 0;&lt;br /&gt;
		? x : 0;&lt;br /&gt;
	endtable&lt;br /&gt;
endprimitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==Code Nor_tb.v test bench==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Verilog&amp;quot; line='line'&amp;gt;&lt;br /&gt;
`timescale 1ns/1ns&lt;br /&gt;
`include &amp;quot;Nor.v&amp;quot;&lt;br /&gt;
&lt;br /&gt;
module Nor_tb;&lt;br /&gt;
&lt;br /&gt;
reg A;&lt;br /&gt;
reg B;&lt;br /&gt;
wire Q;&lt;br /&gt;
&lt;br /&gt;
Nor uut(Q,A,B);&lt;br /&gt;
&lt;br /&gt;
initial begin&lt;br /&gt;
	$dumpfile(&amp;quot;Nor_tb.vcd&amp;quot;);&lt;br /&gt;
	$dumpvars(0,Nor_tb);&lt;br /&gt;
&lt;br /&gt;
A = 0;&lt;br /&gt;
B = 0;&lt;br /&gt;
#10;&lt;br /&gt;
A = 1;&lt;br /&gt;
#10;&lt;br /&gt;
B = 1;&lt;br /&gt;
#10;&lt;br /&gt;
A = 0;&lt;br /&gt;
#10;&lt;br /&gt;
&lt;br /&gt;
$display(&amp;quot;Test Complete!&amp;quot;);&lt;br /&gt;
end&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Fun_Code_Segments&amp;diff=321</id>
		<title>Fun Code Segments</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Fun_Code_Segments&amp;diff=321"/>
		<updated>2023-09-12T17:14:15Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Card Shuffling]]&lt;br /&gt;
&lt;br /&gt;
[[Langston's Ant]]&lt;br /&gt;
&lt;br /&gt;
[[Langston's Ant, animated for POSIX]]&lt;br /&gt;
&lt;br /&gt;
[[Launching and Terminating Assembly Programs Commodore 64]]&lt;br /&gt;
&lt;br /&gt;
==Verilog==&lt;br /&gt;
&lt;br /&gt;
===NOR Gate===&lt;br /&gt;
[[NOR Gate (Verilog)]]&lt;br /&gt;
&lt;br /&gt;
===NAND Gate===&lt;br /&gt;
[[NAND Gate (Verilog)]]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=320</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=320"/>
		<updated>2022-03-21T01:02:36Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0E03 - Dynamic storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7C: DF&lt;br /&gt;
0E7D: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=319</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=319"/>
		<updated>2022-03-20T22:53:54Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0E03 - Dynamic storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40.  Only used in Subroutine 14D7&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=318</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=318"/>
		<updated>2022-03-20T22:52:47Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* - */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 14D7 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04  ;  Only modification  of 0e04&lt;br /&gt;
14E7: D0 4C      BNE  $1535  ;  Only known test of 0e04&lt;br /&gt;
14E9: A9 28      LDA  #$28   &lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04  ;  Only assignment of 0e04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=317</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=317"/>
		<updated>2022-03-20T22:47:14Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0E03 - Dynamic storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;appears to rapidly count downwards from $28 or 0d40&lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=316</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=316"/>
		<updated>2022-03-20T22:26:09Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1023 - Subroutine1023 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
1069: AD 06 0E   LDA  $0E06 ;4-bit direction of craft E=$00 ENE=$0F&lt;br /&gt;
106C: 18         CLC        ;Clear carry, else sprite pointer may be off by one&lt;br /&gt;
106D: 69 21      ADC  #$21  ;Convert rotation into sprite pointer n-tuple at $0840&lt;br /&gt;
                            ;0x40 bytes times 0x21 = $0840&lt;br /&gt;
106F: 8D F8 07   STA  $07F8 ;Assign pointer for current sprite (MOB 0)&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E ; V3 Noise memory cell&lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=315</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=315"/>
		<updated>2022-03-20T21:42:43Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1118 - */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7     ; Look at this later too&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=314</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=314"/>
		<updated>2022-03-20T00:41:59Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1118 - Frack */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
Possibly trajectory in left/right&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=313</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=313"/>
		<updated>2022-03-20T00:40:44Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1118 - Frick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
Possibly trajectories up/down&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=312</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=312"/>
		<updated>2022-03-20T00:39:48Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 12B6 - Math */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
Performs calculations on the X,Y screen coordinates of either the ship, shot or missiles.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
;A :  9th bit of MOB X Coord&lt;br /&gt;
;X :  X Coord MOB (lower 8)&lt;br /&gt;
;Y :  Y Coord MOB (8 bits)&lt;br /&gt;
&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=311</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=311"/>
		<updated>2022-03-20T00:27:56Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0E03 - Dynamic storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used. Sprite number that's been shot.&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00 00 00 00 00 00 00 00 ; Number of MOB flashes remaining&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=310</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=310"/>
		<updated>2022-03-20T00:02:50Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0E03 - Dynamic storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00 00 00 00 00 00 00 00 ; Default colors of sprites 0-7&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=309</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=309"/>
		<updated>2022-03-19T23:44:11Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 177E - FlashYellowDamage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  &lt;br /&gt;
;X contains the MOB number to flash&lt;br /&gt;
;A contains the number of flashes to do&lt;br /&gt;
&lt;br /&gt;
;If A=0 then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
;if $0e41!=0, then goto $1792&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
; else, restore default color&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=308</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=308"/>
		<updated>2022-03-19T23:05:36Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* - */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 177E - FlashYellowDamage ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
&lt;br /&gt;
;If its MOB 0, the base station, or just nothing, then exit without flashing&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07     ; Select color 7&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB X Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=307</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=307"/>
		<updated>2022-03-19T21:28:05Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Sprite Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  Sprite 1 is the shot.  The missiles have been seen to be 2,3,4,5,6.  The generator, asteroids A and B, and the boss are sprite 7.&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=306</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=306"/>
		<updated>2022-03-19T20:48:13Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Sprite Info */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
Sprite 0 is spacecraft.  The missiles have been seen to be 2,3,4,5,6.  The generator has been seen to be 7&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=305</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=305"/>
		<updated>2022-03-19T03:48:31Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1C54 Main Setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main ===&lt;br /&gt;
==== 1C54 Main Setup ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point from internal JSR&lt;br /&gt;
;  //The RST in FFD2 balances the stack pointer.&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=304</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=304"/>
		<updated>2022-03-19T03:45:54Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 1C54 Main Loop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main Setup ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
&lt;br /&gt;
;  //Initial first-time entry of program.&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1100&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 1CD3 - Main Loop ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=303</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=303"/>
		<updated>2022-03-19T02:34:36Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0F80 - Delay */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
This is approximately 10ms.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main Loop ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=302</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=302"/>
		<updated>2022-03-19T00:15:56Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0E03 - Variable space */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
====0E03 - Dynamic storage====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 0E7E - Strings ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main Loop ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=301</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=301"/>
		<updated>2022-03-19T00:11:10Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* - */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12D5 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1350 - Blankscreen ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 147A - GenerateMap ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1BFE - SetNoiseAllThree ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main Loop ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=300</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=300"/>
		<updated>2022-03-19T00:01:24Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0F80 - Subroutines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
==== 0F80 - Delay ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0F8C - SubroutineB ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; generate sound SAW sound with rapidly dropping pitch $0E60 during repeated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 0FD7 - DefineCharsets ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1023 - Subroutine1023 ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1083 - Hyperspace ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 109C - RotateShipLeft ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10AA - RotateShipRight====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 10BA - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
====1118 - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frick ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 1118 - Frack ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== 12B6 - Math ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
==== - ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 1C54 Main Loop ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=299</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=299"/>
		<updated>2022-03-18T22:45:38Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* 0F80 - Subroutines */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&lt;br /&gt;
; generate sound SAW sound with rapidely dropping pitch $0E60 during repesated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 1C54 Main Loop ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=298</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=298"/>
		<updated>2022-03-18T22:34:16Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Sprites */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0840 - Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&lt;br /&gt;
; generate sound SAW sound with rapidely dropping pitch $0E60 during repesated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=297</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=297"/>
		<updated>2022-03-18T22:33:52Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* BASIC RAM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 0801 - BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&lt;br /&gt;
; generate sound SAW sound with rapidely dropping pitch $0E60 during repesated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=296</id>
		<title>Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Star_Strike_by_Kevin_Dixon_for_the_Commodore_64_Compute_Gazette_June_1991&amp;diff=296"/>
		<updated>2022-03-18T22:33:12Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Disassembly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Variants==&lt;br /&gt;
There are two known versions that differ substantially.  This document describes the &amp;quot;Floppy&amp;quot; variant which has a more complexity that the &amp;quot;Magazine&amp;quot; variant which is 2KiB (2/3 the size) shorter.&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991 - Magazine Variant]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprite Info==&lt;br /&gt;
&lt;br /&gt;
==Sound Info==&lt;br /&gt;
===Voice 1===&lt;br /&gt;
===Voice 2===&lt;br /&gt;
===Voice 3===&lt;br /&gt;
&lt;br /&gt;
==Disassembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
*=$0801&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
===BASIC RAM===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;  0x0801 is BASIC RAM  &lt;br /&gt;
0801: 1E 08      ;pointer to 0x081E in BASIC RAM&lt;br /&gt;
                 ;0x081E, 0x081F are both 0x00 so that is the &lt;br /&gt;
                 ;end of the BASIC program  &lt;br /&gt;
0803: 0A 00      ;0x000A is BASIC line number 10&lt;br /&gt;
0805: 9E         ;BASIC Token for SYS&lt;br /&gt;
0806: 33 35 38 34;ASCII parameters of 3584 for BASIC SYS call&lt;br /&gt;
                 ;This is memory location 0x0E00&lt;br /&gt;
080A: 20 42 59 20;&amp;quot; BY &amp;quot; &lt;br /&gt;
080E: 4B 45 56 49;&amp;quot;KEVI&amp;quot;&lt;br /&gt;
0812: 4E 20 44 49;&amp;quot;N DI&amp;quot;&lt;br /&gt;
0816: 58 91 20 31;&amp;quot;X&amp;quot; + BASIC Token for ON + &amp;quot; 1&amp;quot;&lt;br /&gt;
                 ;It seems he saved a byte by tricking&lt;br /&gt;
                 ;the BASIC decoder into spelling part&lt;br /&gt;
                 ;of his name&lt;br /&gt;
081A: 39 39 30 00;&amp;quot;990&amp;quot; + End of BASIC line 0x00&lt;br /&gt;
081E: 00         ;Empty pointer to indicate&lt;br /&gt;
081F: 00         ;the end of a BASIC program&lt;br /&gt;
&lt;br /&gt;
;Not certain why SYS3584 is issued since it immediately calls&lt;br /&gt;
;a jump to location 7257.  A SYS7257 would have sufficed and saved&lt;br /&gt;
;3 bytes of memory.&lt;br /&gt;
&lt;br /&gt;
; vacant, unused memory&lt;br /&gt;
0820: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
0830: 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66 66&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sprites===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
; Sprite Storage&lt;br /&gt;
; Experimentation reveals that the entire&lt;br /&gt;
; reserved sprite memory is being loaded, even if it is the&lt;br /&gt;
; invisible/transparent 0x00 character.&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading EEE&lt;br /&gt;
&lt;br /&gt;
0840: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0843: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0846: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0849: 0F 80 00 ; ----++++ +------- -------- &lt;br /&gt;
084C: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
084F: 38 00 00 ; --+++--- -------- -------- &lt;br /&gt;
0852: 00 00 00 ;Line 7&lt;br /&gt;
0855: 00 00 00 ;Line 8&lt;br /&gt;
0858: 00 00 00 ;Line 9&lt;br /&gt;
085B: 00 00 00 ;Line 10&lt;br /&gt;
085E: 00 00 00 ;Line 11&lt;br /&gt;
0861: 00 00 00 ;Line 12&lt;br /&gt;
0864: 00 00 00 ;Line 13&lt;br /&gt;
0867: 00 00 00 ;Line 14&lt;br /&gt;
086A: 00 00 00 ;Line 15&lt;br /&gt;
086D: 00 00 00 ;Line 16&lt;br /&gt;
0870: 00 00 00 ;Line 17&lt;br /&gt;
0873: 00 00 00 ;Line 18&lt;br /&gt;
0876: 00 00 00 ;Line 19&lt;br /&gt;
0879: 00 00 00 ;Line 20&lt;br /&gt;
087C: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
; Unknown byte &lt;br /&gt;
087F: 57 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ESE&lt;br /&gt;
&lt;br /&gt;
0880: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0883: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0886: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0889: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
088C: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
088F: 00 00 00 ;Line 6&lt;br /&gt;
0892: 00 00 00 ;Line 7&lt;br /&gt;
0895: 00 00 00 ;Line 8&lt;br /&gt;
0898: 00 00 00 ;Line 9&lt;br /&gt;
089B: 00 00 00 ;Line 10&lt;br /&gt;
089E: 00 00 00 ;Line 11&lt;br /&gt;
08A1: 00 00 00 ;Line 12&lt;br /&gt;
08A4: 00 00 00 ;Line 13&lt;br /&gt;
08A7: 00 00 00 ;Line 14&lt;br /&gt;
08AA: 00 00 00 ;Line 15&lt;br /&gt;
08AD: 00 00 00 ;Line 16&lt;br /&gt;
08B0: 00 00 00 ;Line 17&lt;br /&gt;
08B3: 00 00 00 ;Line 18&lt;br /&gt;
08B6: 00 00 00 ;Line 19&lt;br /&gt;
08B9: 00 00 00 ;Line 20&lt;br /&gt;
08BC: 00 00 00 ;Line 21&lt;br /&gt;
08BF: 01 &lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
08C0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
08C3: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C6: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
08C9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
08CC: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
08CF: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
08D2: 00 00 00 ;Line 7&lt;br /&gt;
08D5: 00 00 00 ;Line 8&lt;br /&gt;
08D8: 00 00 00 ;Line 9&lt;br /&gt;
08DB: 00 00 00 ;Line 10&lt;br /&gt;
08DE: 00 00 00 ;Line 11&lt;br /&gt;
08E1: 00 00 00 ;Line 12&lt;br /&gt;
08E4: 00 00 00 ;Line 13&lt;br /&gt;
08E7: 00 00 00 ;Line 14&lt;br /&gt;
08EA: 00 00 00 ;Line 15&lt;br /&gt;
08ED: 00 00 00 ;Line 16&lt;br /&gt;
08F0: 00 00 00 ;Line 17&lt;br /&gt;
08F3: 00 00 00 ;Line 18&lt;br /&gt;
08F6: 00 00 00 ;Line 19&lt;br /&gt;
08F9: 00 00 00 ;Line 20&lt;br /&gt;
08FC: 00 00 00 ;Line 21&lt;br /&gt;
&lt;br /&gt;
08FF: 06&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SE&lt;br /&gt;
&lt;br /&gt;
0900: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0903: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0906: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0909: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
090C: 0F 00 00 ; ----++++ -------- --------&lt;br /&gt;
090F: 07 00 00 ; -----+++ -------- --------&lt;br /&gt;
0912: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0915: 00 00 00&lt;br /&gt;
0918: 00 00 00 &lt;br /&gt;
091B: 00 00 00&lt;br /&gt;
091E: 00 00 00&lt;br /&gt;
0921: 00 00 00&lt;br /&gt;
0924: 00 00 00&lt;br /&gt;
0927: 00 00 00&lt;br /&gt;
092A: 00 00 00&lt;br /&gt;
092D: 00 00 00&lt;br /&gt;
0930: 00 00 00&lt;br /&gt;
0933: 00 00 00&lt;br /&gt;
0936: 00 00 00&lt;br /&gt;
0939: 00 00 00&lt;br /&gt;
093C: 00 00 00&lt;br /&gt;
093F: F0&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSS&lt;br /&gt;
&lt;br /&gt;
0940: 00 00 00     ; -------- -------- --------&lt;br /&gt;
0943: 33 00 00     ; --++--++ -------- --------&lt;br /&gt;
0946: 3F 00 00     ; --++++++ -------- --------&lt;br /&gt;
0949: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094C: 1E 00 00     ; ---++++- -------- --------&lt;br /&gt;
094F: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0952: 0C 00 00     ; ----++-- -------- --------&lt;br /&gt;
0955: 00 00 00&lt;br /&gt;
0958: 00 00 00&lt;br /&gt;
095B: 00 00 00&lt;br /&gt;
095E: 00 00 00&lt;br /&gt;
0961: 00 00 00&lt;br /&gt;
0964: 00 00 00&lt;br /&gt;
0967: 00 00 00&lt;br /&gt;
096A: 00 00 00&lt;br /&gt;
096D: 00 00 00&lt;br /&gt;
0970: 00 00 00&lt;br /&gt;
0973: 00 00 00&lt;br /&gt;
0976: 00 00 00&lt;br /&gt;
0979: 00 00 00&lt;br /&gt;
097C: 00 00 00&lt;br /&gt;
097F: 21&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SSW&lt;br /&gt;
&lt;br /&gt;
0980: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0983: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0986: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0989: 3E 00 00 ; --++++++ -------- --------&lt;br /&gt;
098C: 3C 00 00 ; --++++-- -------- --------&lt;br /&gt;
098F: 38 00 00 ; --+++--- -------- --------&lt;br /&gt;
0992: 30 00 00 ; --++---- -------- --------&lt;br /&gt;
&lt;br /&gt;
0995: 00 00 00&lt;br /&gt;
0998: 00 00 00&lt;br /&gt;
099B: 00 00 00&lt;br /&gt;
099E: 00 00 00&lt;br /&gt;
09A1: 00 00 00&lt;br /&gt;
09A4: 00 00 00&lt;br /&gt;
09A7: 00 00 00&lt;br /&gt;
09AA: 00 00 00&lt;br /&gt;
09AD: 00 00 00&lt;br /&gt;
09B0: 00 00 00&lt;br /&gt;
09B3: 00 00 00&lt;br /&gt;
09B6: 00 00 00&lt;br /&gt;
09B9: 00 00 00&lt;br /&gt;
09BC: 00 00 00&lt;br /&gt;
09BF: 90&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading SW&lt;br /&gt;
&lt;br /&gt;
09c0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
09C3: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C6: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
09C9: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
09CC: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
09CF: 70 00 00 ; -+++---- -------- --------&lt;br /&gt;
09D2: 00 00 00&lt;br /&gt;
09D5: 00 00 00&lt;br /&gt;
09D8: 00 00 00&lt;br /&gt;
09DB: 00 00 00&lt;br /&gt;
09DE: 00 00 00&lt;br /&gt;
09E1: 00 00 00&lt;br /&gt;
09E4: 00 00 00&lt;br /&gt;
09E7: 00 00 00&lt;br /&gt;
09EA: 00 00 00&lt;br /&gt;
09ED: 00 00 00&lt;br /&gt;
09F0: 00 00 00&lt;br /&gt;
09F3: 00 00 00&lt;br /&gt;
09F6: 00 00 00&lt;br /&gt;
09F9: 00 00 00&lt;br /&gt;
09FC: 00 00 00&lt;br /&gt;
09FF: 20&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WSW&lt;br /&gt;
&lt;br /&gt;
0A00: 04 00 00 ; -----+-- -------- --------&lt;br /&gt;
0A03: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0A06: 1C 00 00 ; ---+++-- -------- --------&lt;br /&gt;
0A09: 3E 00 00 ; --+++++- -------- --------&lt;br /&gt;
0A0C: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0A0F: 00 00 00&lt;br /&gt;
0A12: 00 00 00&lt;br /&gt;
0A15: 00 00 00&lt;br /&gt;
0A18: 00 00 00&lt;br /&gt;
0A1B: 00 00 00&lt;br /&gt;
0A1E: 00 00 00&lt;br /&gt;
0A21: 00 00 00&lt;br /&gt;
0A24: 00 00 00&lt;br /&gt;
0A27: 00 00 00&lt;br /&gt;
0A2A: 00 00 00&lt;br /&gt;
0A2D: 00 00 00&lt;br /&gt;
0A30: 00 00 00&lt;br /&gt;
0A33: 00 00 00&lt;br /&gt;
0A36: 00 00 00&lt;br /&gt;
0A39: 00 00 00&lt;br /&gt;
0A3C: 00 00 00&lt;br /&gt;
0A3F: 58&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WWW&lt;br /&gt;
&lt;br /&gt;
0A40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0A43: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A46: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A49: 00 7C 00 ; -+++++-- -------- --------&lt;br /&gt;
0A4C: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0A4F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0A52: 00 00 00&lt;br /&gt;
0A55: 00 00 00&lt;br /&gt;
0A58: 00 00 00&lt;br /&gt;
0A5B: 00 00 00&lt;br /&gt;
0A5E: 00 00 00&lt;br /&gt;
0A61: 00 00 00&lt;br /&gt;
0A64: 00 00 00&lt;br /&gt;
0A67: 00 00 00&lt;br /&gt;
0A6A: 00 00 00&lt;br /&gt;
0A6D: 00 00 00&lt;br /&gt;
0A70: 00 00 00&lt;br /&gt;
0A73: 00 00 00&lt;br /&gt;
0A76: 00 00 00&lt;br /&gt;
0A79: 00 00 00&lt;br /&gt;
0A7C: 00 00 00&lt;br /&gt;
0A7F: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading WNW&lt;br /&gt;
&lt;br /&gt;
0A80: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A83: 00 00 00  ; -------- -------- --------&lt;br /&gt;
0A86: 00 7F 00  ; -+++++++ -------- --------&lt;br /&gt;
0A89: 00 3E 00  ; --+++++- -------- --------&lt;br /&gt;
0A8C: 00 1C 00  ; ---+++-- -------- --------&lt;br /&gt;
0A8F: 00 0C 00  ; ----++-- -------- --------&lt;br /&gt;
0A92: 00 04 00  ; -----+-- -------- --------&lt;br /&gt;
0A95: 00 00 00&lt;br /&gt;
0A98: 00 00 00&lt;br /&gt;
0A9B: 00 00 00&lt;br /&gt;
0A9E: 00 00 00&lt;br /&gt;
0AA1: 00 00 00&lt;br /&gt;
0AA4: 00 00 00&lt;br /&gt;
0AA7: 00 00 00&lt;br /&gt;
0AAA: 00 00 00&lt;br /&gt;
0AAD: 00 00 00&lt;br /&gt;
0AB0: 00 00 00&lt;br /&gt;
0AB3: 00 00 00&lt;br /&gt;
0AB6: 00 00 00&lt;br /&gt;
0AB9: 00 00 00&lt;br /&gt;
0ABC: 00 00 00&lt;br /&gt;
0ABF: F7&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NW&lt;br /&gt;
&lt;br /&gt;
0AC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0AC3: 70 00 00 ; -+++---- -------- -------- &lt;br /&gt;
0AC6: 3E 00 00 ; --+++++- -------- -------- &lt;br /&gt;
0AC9: 3F 80 00 ; --++++++ +------- -------- &lt;br /&gt;
0ACC: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0ACF: 1C 00 00 ; ---+++-- -------- -------- &lt;br /&gt;
0AD2: 00 00 00&lt;br /&gt;
0AD5: 00 00 00&lt;br /&gt;
0AD8: 00 00 00&lt;br /&gt;
0ADB: 00 00 00&lt;br /&gt;
0ADE: 00 00 00&lt;br /&gt;
0AE1: 00 00 00&lt;br /&gt;
0AE4: 00 00 00&lt;br /&gt;
0AE7: 00 00 00&lt;br /&gt;
0AEA: 00 00 00&lt;br /&gt;
0AED: 00 00 00&lt;br /&gt;
0AF0: 00 00 00&lt;br /&gt;
0AF3: 00 00 00&lt;br /&gt;
0AF6: 00 00 00&lt;br /&gt;
0AF9: 00 00 00&lt;br /&gt;
0AFC: 00 00 00&lt;br /&gt;
0AFF: 4C&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNW&lt;br /&gt;
&lt;br /&gt;
0B00: 30 00 00 ; --++---- -------- -------- &lt;br /&gt;
0B03: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B06: 00 3C 00 ; --++++-- -------- -------- &lt;br /&gt;
0B09: 00 3E 00 ; --+++++- -------- -------- &lt;br /&gt;
0B0C: 00 3F 00 ; --++++++ -------- -------- &lt;br /&gt;
0B0F: 00 38 00 ; --+++--- -------- -------- &lt;br /&gt;
0B12: 00 00 00&lt;br /&gt;
0B15: 00 00 00&lt;br /&gt;
0B18: 00 00 00&lt;br /&gt;
0B1B: 00 00 00&lt;br /&gt;
0B1E: 00 00 00&lt;br /&gt;
0B21: 00 00 00&lt;br /&gt;
0B24: 00 00 00&lt;br /&gt;
0B27: 00 00 00&lt;br /&gt;
0B2A: 00 00 00&lt;br /&gt;
0B2D: 00 00 00&lt;br /&gt;
0B30: 00 00 00&lt;br /&gt;
0B33: 00 00 00&lt;br /&gt;
0B36: 00 00 00&lt;br /&gt;
0B39: 00 00 00&lt;br /&gt;
0B3C: 00 00 00&lt;br /&gt;
0B3F: AC&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNN&lt;br /&gt;
&lt;br /&gt;
0B41: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B43: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0B46: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B49: 1E 00 00 ; ---++++- -------- --------&lt;br /&gt;
0B4C: 3F 00 00 ; --++++++ -------- --------&lt;br /&gt;
0B4F: 33 00 00 ; --++--++ -------- --------&lt;br /&gt;
0B52: 00 00 00&lt;br /&gt;
0B55: 00 00 00&lt;br /&gt;
0B58: 00 00 00&lt;br /&gt;
0B5B: 00 00 00&lt;br /&gt;
0B5E: 00 00 00&lt;br /&gt;
0B61: 00 00 00&lt;br /&gt;
0B64: 00 00 00&lt;br /&gt;
0B67: 00 00 00&lt;br /&gt;
0B6A: 00 00 00&lt;br /&gt;
0B6D: 00 00 00&lt;br /&gt;
0B70: 00 00 00&lt;br /&gt;
0B73: 00 00 00&lt;br /&gt;
0B76: 00 00 00&lt;br /&gt;
0B79: 00 00 00&lt;br /&gt;
0B7C: 00 00 00&lt;br /&gt;
0B7F: 85&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NNE&lt;br /&gt;
&lt;br /&gt;
0B80: 03 00 00 ; ------++ -------- --------&lt;br /&gt;
0B83: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
0B86: 00 0F 00 ; ----++++ -------- --------&lt;br /&gt;
0B89: 00 1F 00 ; ---+++++ -------- --------&lt;br /&gt;
0B8C: 00 3F 00 ; --++++++ -------- --------&lt;br /&gt;
0B8F: 00 07 00 ; -----+++ -------- --------&lt;br /&gt;
&lt;br /&gt;
0B92: 00 00 00&lt;br /&gt;
0B95: 00 00 00&lt;br /&gt;
0B98: 00 00 00&lt;br /&gt;
0B9B: 00 00 00&lt;br /&gt;
0B9E: 00 00 00&lt;br /&gt;
0BA1: 00 00 00&lt;br /&gt;
0BA4: 00 00 00&lt;br /&gt;
0BA7: 00 00 00&lt;br /&gt;
0BAA: 00 00 00&lt;br /&gt;
0BAD: 00 00 00&lt;br /&gt;
0BB0: 00 00 00&lt;br /&gt;
0BB3: 00 00 00&lt;br /&gt;
0BB6: 00 00 00&lt;br /&gt;
0BB9: 00 00 00&lt;br /&gt;
0BBC: 00 00 00&lt;br /&gt;
0BBF: 5D&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading NE&lt;br /&gt;
&lt;br /&gt;
0BC0: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0BC3: 03 80 00 ; ------++ +------- --------&lt;br /&gt;
0BC6: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
0BC9: 7F 00 00 ; -+++++++ -------- --------&lt;br /&gt;
0BCC: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BCF: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
0BD2: 00 00 00&lt;br /&gt;
0BD5: 00 00 00&lt;br /&gt;
0BD8: 00 00 00&lt;br /&gt;
0BDB: 00 00 00&lt;br /&gt;
0BDE: 00 00 00&lt;br /&gt;
0BE1: 00 00 00&lt;br /&gt;
0BE4: 00 00 00&lt;br /&gt;
0BE7: 00 00 00&lt;br /&gt;
0BEA: 00 00 00&lt;br /&gt;
0BED: 00 00 00&lt;br /&gt;
0BF0: 00 00 00&lt;br /&gt;
0BF3: 00 00 00&lt;br /&gt;
0BF6: 00 00 00&lt;br /&gt;
0BF9: 00 00 00&lt;br /&gt;
0BFC: 00 00 00&lt;br /&gt;
0BFF: 0A&lt;br /&gt;
&lt;br /&gt;
; Spacecraft sprite data : Heading ENE&lt;br /&gt;
&lt;br /&gt;
0C00: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C03: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C06: 3F 80 00 ; --++++++ +------- --------&lt;br /&gt;
8C08: 1F 00 00 ; ---+++++ -------- --------&lt;br /&gt;
8C0C: 0E 00 00 ; ----+++- -------- --------&lt;br /&gt;
8C0F: 0C 00 00 ; ----++-- -------- --------&lt;br /&gt;
0C02: 08 00 00 ; ----+--- -------- --------&lt;br /&gt;
0C15: 00 00 00&lt;br /&gt;
0C18: 00 00 00&lt;br /&gt;
0C1B: 00 00 00&lt;br /&gt;
0C1E: 00 00 00&lt;br /&gt;
0C21: 00 00 00&lt;br /&gt;
0C24: 00 00 00&lt;br /&gt;
0C27: 00 00 00&lt;br /&gt;
0C2A: 00 00 00&lt;br /&gt;
0C2D: 00 00 00&lt;br /&gt;
0C30: 00 00 00&lt;br /&gt;
0C33: 00 00 00&lt;br /&gt;
0C36: 00 00 00&lt;br /&gt;
0C39: 00 00 00&lt;br /&gt;
0C3C: 00 00 00&lt;br /&gt;
0C3F: A9&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Shot, Yellow&lt;br /&gt;
&lt;br /&gt;
0C40: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C43: 00 00 00 ; -------- -------- --------&lt;br /&gt;
0C46: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C49: 00 1E 00 ; ---++++- -------- --------&lt;br /&gt;
0C4C: 00 0C 00 ; ----++-- -------- --------&lt;br /&gt;
0C4F: 00 00 00&lt;br /&gt;
0C52: 00 00 00&lt;br /&gt;
0C55: 00 00 00&lt;br /&gt;
0C58: 00 00 00&lt;br /&gt;
0C5B: 00 00 00&lt;br /&gt;
0C5E: 00 00 00&lt;br /&gt;
0C61: 00 00 00&lt;br /&gt;
0C64: 00 00 00&lt;br /&gt;
0C67: 00 00 00&lt;br /&gt;
0C6A: 00 00 00&lt;br /&gt;
0C6D: 00 00 00&lt;br /&gt;
0C70: 00 00 00&lt;br /&gt;
0C73: 00 00 00&lt;br /&gt;
0C76: 00 00 00&lt;br /&gt;
0C79: 00 00 00&lt;br /&gt;
0C7C: 00 00 00&lt;br /&gt;
0C7F: B0&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Missile&lt;br /&gt;
&lt;br /&gt;
0C80: 00 00 00  ; -------- -------- -------- BBBB BBBB BBBB&lt;br /&gt;
0C83: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C86: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C89: EA C0 00  ; +++-+-+- ++------ -------- GRRR GBBB BBBB&lt;br /&gt;
0C8C: 3B 00 00  ; --+++-++ -------- -------- BGRG BBBB BBBB&lt;br /&gt;
0C8F: 0C 00 00  ; ----++-- -------- -------- BBGB BBBB BBBB&lt;br /&gt;
0C92: 00 00 00&lt;br /&gt;
0C95: 00 00 00&lt;br /&gt;
0C98: 00 00 00&lt;br /&gt;
0C9B: 00 00 00&lt;br /&gt;
0C9E: 00 00 00&lt;br /&gt;
0CA1: 00 00 00&lt;br /&gt;
0CA4: 00 00 00&lt;br /&gt;
0CA7: 00 00 00&lt;br /&gt;
0CAA: 00 00 00&lt;br /&gt;
0CAD: 00 00 00&lt;br /&gt;
0CB0: 00 00 00&lt;br /&gt;
0CB3: 00 00 00&lt;br /&gt;
0CB6: 00 00 00&lt;br /&gt;
0CB9: 00 00 00&lt;br /&gt;
0CBC: 00 00 00&lt;br /&gt;
0CBF: 5C&lt;br /&gt;
&lt;br /&gt;
;Sprite Data : Boss  +- R  -+L  ++G&lt;br /&gt;
&lt;br /&gt;
0CC0: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CC3: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CC6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CC9: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CCC: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CCF: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CD2: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CD5: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CD8: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CDB: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CDE: 9A AA 98 ; +--++-+- +-+-+-+- +--++--- RLRR RRRR RLRB&lt;br /&gt;
0CE1: 9A FE 98 ; +--++-+- +++++++- +--++--- RLRR GGGR RLRB&lt;br /&gt;
0CE4: 1B FF 90 ; ---++-++ ++++++++ +--+---- BLRG GGGG RLBB&lt;br /&gt;
0CE7: 1F 57 D0 ; ---+++++ -+-+-+++ ++-+---- BLGG LLLG GLBB&lt;br /&gt;
0CEA: FD 55 FC ; ++++++-+ -+-+-+-+ ++++++-- GGGL LLLL GGGB&lt;br /&gt;
0CED: F5 A9 7C ; ++++-+-+ +-+-+--+ -+++++-- GGLL RRRL LGGB&lt;br /&gt;
0CF0: 3E AA F0 ; --+++++- +-+-+-+- ++++---- BGGR RRRR GGBB&lt;br /&gt;
0CF3: 0F AB C0 ; ----++++ +-+-+-++ ++------ BBGG RRRG GBBB&lt;br /&gt;
0CF6: 03 EF 00 ; ------++ +++-++++ -------- BBBG GRGG BBBB&lt;br /&gt;
0CF9: 00 FC 00 ; -------- ++++++-- -------- BBBB GGGB BBBB&lt;br /&gt;
0CFC: 00 30 00 ; -------- --++---- -------- BBBB BGBB BBBB&lt;br /&gt;
0CFF: C6&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Home base&lt;br /&gt;
&lt;br /&gt;
0D00: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D03: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D06: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D09: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D0C: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D0F: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D12: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220 &lt;br /&gt;
0D15: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D18: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1B: 5F F5 5C ; -+-+++++ ++++-+-+ -+-+++-- 1133 3311 1220&lt;br /&gt;
0D1E: 2A A5 5C ; --+-+-+- +-+--+-+ -+-+++-- 0222 2211 1220&lt;br /&gt;
0D21: 08 A9 5C ; ----+--- +-+-+--+ -+-+++-- 0020 2221 1220&lt;br /&gt;
0D24: 2E 2A A0 ; --+-+++- --+++-+- +-+----- 0232 0322 2200&lt;br /&gt;
0D27: 3B 3D F0 ; --+++-++ --++++-+ ++++---- 0323 0331 3300&lt;br /&gt;
0D2A: 2E 06 40 ; --+-+++- -----++- -+------ 0232 0012 1000&lt;br /&gt;
0D2D: 3B 02 00 ; --+++-++ ------+- -------- 0323 0002 0000&lt;br /&gt;
0D30: 2E 00 00 ; --+-+++- -------- -------- 0232 0000 0000&lt;br /&gt;
0D33: 3B 00 00 ; --+++-++ -------- -------- 0323 0000 0000&lt;br /&gt;
0D36: 00 00 00&lt;br /&gt;
0D39: 00 00 00&lt;br /&gt;
0D3C: 00 00 00&lt;br /&gt;
0D3F: 88&lt;br /&gt;
&lt;br /&gt;
; Sprite Data : Asteroid 1&lt;br /&gt;
&lt;br /&gt;
0D40: 00 FC 00&lt;br /&gt;
0D43: 07 96 00&lt;br /&gt;
0D46: 19 69 C0&lt;br /&gt;
0D49: 3E 99 40&lt;br /&gt;
0D4C: 5B A9 50&lt;br /&gt;
0D4F: 57 D9 F0&lt;br /&gt;
0D52: 69 A7 F0&lt;br /&gt;
0D55: F5 6A 7C&lt;br /&gt;
0D58: EA A6 68&lt;br /&gt;
0D5B: FB 66 B4&lt;br /&gt;
0D5E: 2D 55 58&lt;br /&gt;
0D61: 1F 79 DD&lt;br /&gt;
0D64: 3E 55 95&lt;br /&gt;
0D67: 07 AE 95&lt;br /&gt;
0D6A: 0E E9 66&lt;br /&gt;
0D6D: 01 DD 76&lt;br /&gt;
0D70: 00 BF 5F&lt;br /&gt;
0D73: 00 DE EC&lt;br /&gt;
0D76: 00 0F BC&lt;br /&gt;
0D79: 00 02 D8&lt;br /&gt;
0D7C: 00 00 B0&lt;br /&gt;
0D7F: 7B&lt;br /&gt;
&lt;br /&gt;
; Sprite data : Asteroid 2&lt;br /&gt;
&lt;br /&gt;
0D80: 00 0D 60&lt;br /&gt;
0D83: 00 3F 50&lt;br /&gt;
0D86: 02 E5 9C&lt;br /&gt;
0D89: 03 5E B4&lt;br /&gt;
0D8C: 06 59 BB&lt;br /&gt;
0D8F: 09 B6 7B&lt;br /&gt;
0D92: 0A BA 57&lt;br /&gt;
0D95: 36 59 E5&lt;br /&gt;
0D98: 3D 5D 5D&lt;br /&gt;
0D9B: 16 77 6D&lt;br /&gt;
0D9E: DE 57 59&lt;br /&gt;
0DA1: D6 7A DF&lt;br /&gt;
0DA4: DD EA 64&lt;br /&gt;
0DA7: DD E7 64&lt;br /&gt;
0DAA: BF 75 B4&lt;br /&gt;
0DAD: 2D 56 70&lt;br /&gt;
0DB0: 3E B9 E0&lt;br /&gt;
0DB3: 05 A5 80&lt;br /&gt;
0DB6: 0D 5E 00&lt;br /&gt;
0DB9: 03 D5 00&lt;br /&gt;
0DBC: 00 B0 00&lt;br /&gt;
0DBF: CA &lt;br /&gt;
&lt;br /&gt;
; Sprite data : Generator&lt;br /&gt;
&lt;br /&gt;
0DC0: 00 00 00&lt;br /&gt;
0DC3: 00 00 00&lt;br /&gt;
0DC6: 00 00 00&lt;br /&gt;
0DC9: 00 00 00&lt;br /&gt;
0DCC: 00 00 00&lt;br /&gt;
0DCF: 00 00 00&lt;br /&gt;
0DD2: 00 00 00 ; -------- -------- -------- 000000000000&lt;br /&gt;
0DD5: 00 30 00 ; -------- --++---- -------- 000003000000&lt;br /&gt;
0DD8: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DDB: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DDE: 0D A9 C0 ; ----++-+ +-+-+--+ ++------ 003122213000&lt;br /&gt;
0DE1: 03 67 00 ; ------++ -++--+++ -------- 000312130000&lt;br /&gt;
0DE4: 00 DC 00 ; -------- ++-+++-- -------- 000031300000&lt;br /&gt;
0DE7: 00 30 00 ; -------- --++---- -------- 000001000000&lt;br /&gt;
0DEA: 00 00 00&lt;br /&gt;
0DED: 00 00 00&lt;br /&gt;
0DF0: 00 00 00&lt;br /&gt;
0DF3: 00 00 00&lt;br /&gt;
0DF6: 00 00 00&lt;br /&gt;
0DF9: 00 00 00&lt;br /&gt;
0DFC: 00 00 00&lt;br /&gt;
0DFF: 00&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 0E00 - Initial Jumppoint ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
0E00: 4C 59 1C   JMP  $1C59  ;Start of where SYS3584 is called&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0E03 - Variable space ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;61 bytes of variable space&lt;br /&gt;
0E03: 07         ;constant $07 used in Delay($0E03) at $0F80&lt;br /&gt;
0E04: 01         ;  &lt;br /&gt;
0E05: 01         ;&lt;br /&gt;
0E06: 00         ; rotation&lt;br /&gt;
0E07: 00         ;&lt;br /&gt;
0E08: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E0F: 00 00 00 00 00 00 00 ; Array reference point&lt;br /&gt;
0E16: 00 00 00 00 00 00 00 ; Array reference point  written to 00000909090909 at 1D7f-1D8B&lt;br /&gt;
0E1D: 00&lt;br /&gt;
0E1E: 00         ; possible temp variable, widely used&lt;br /&gt;
0E1F: 00&lt;br /&gt;
0E20: 00&lt;br /&gt;
0E21: 00&lt;br /&gt;
0E22: 00&lt;br /&gt;
0E23: 00 00 00 00 00 00 00; array reference point.  Very heavily used (55 appearances).  Initialized to 0 at 1D0B &lt;br /&gt;
0E2A: 00         ; boss location.  &lt;br /&gt;
0E2B: 00         ; boss hits.  Assigned to C9 at 1CF5, decremented at 19DC, read at 1431, 1798, 18EF, 1994&lt;br /&gt;
0E2C: 00         ; Assigned at to 4 at 1CFA, read at 1B82 (as SBC),179D,1436, decremented at 1A47,&lt;br /&gt;
0E2D: 00&lt;br /&gt;
0E2E: 00&lt;br /&gt;
0E2F: 00         ; Assigned to 0 at 1D02, read at 1AC7, 1ADD, 1AF3, 1B09, 1B1E, written 1C0E(1C0B ADC), 1ED7(1ED4 ADC), 1EFE(1EFB ADC)&lt;br /&gt;
0E30: 00         ; Assigned to 0 at 1D05, read at 1ACF, 1AE5, 1AFB, 1B11, 1B21  modified 1F06(+5), 1EDF(+0x27)&lt;br /&gt;
0E31: 00         ; number of lives, mirrored at 0E2C&lt;br /&gt;
0E32: 00         ; energy (major)&lt;br /&gt;
0E33: 00         ; energy (minor)&lt;br /&gt;
0E34: 00         ; energy (fraction)&lt;br /&gt;
0E35: 00&lt;br /&gt;
0E36: 00         ; Assigned to 1 at 199B, 0 at 1D08, read at 1DF8, 1ECC &lt;br /&gt;
0E37: 00         ; mapgen random number, loop count variable for delay loop starting at $1D5B, general temp variable&lt;br /&gt;
0E38: 00&lt;br /&gt;
0E39: 00&lt;br /&gt;
0E3A: 01&lt;br /&gt;
0E3B: 01&lt;br /&gt;
0E3C: 01&lt;br /&gt;
0E3D: 01&lt;br /&gt;
0E3E: 01&lt;br /&gt;
0E3F: 01&lt;br /&gt;
0E40: 01&lt;br /&gt;
0E41: 00&lt;br /&gt;
0E42: 00&lt;br /&gt;
0E43: 00&lt;br /&gt;
0E44: 00&lt;br /&gt;
0E45: 00&lt;br /&gt;
0E46: 00&lt;br /&gt;
0E47: 00&lt;br /&gt;
0E48: 00&lt;br /&gt;
0E49: 00&lt;br /&gt;
0E4A: 00&lt;br /&gt;
0E4B: 00&lt;br /&gt;
0E4C: 00&lt;br /&gt;
0E4D: 00&lt;br /&gt;
0E4E: 00&lt;br /&gt;
0E4F: 00&lt;br /&gt;
0E50: 00&lt;br /&gt;
0E51: 00&lt;br /&gt;
0E52: 00&lt;br /&gt;
0E53: 00&lt;br /&gt;
0E54: 00&lt;br /&gt;
0E55: 00&lt;br /&gt;
0E56: 00&lt;br /&gt;
0E57: 00&lt;br /&gt;
0E58: 00&lt;br /&gt;
0E59: 00&lt;br /&gt;
0E5A: 00&lt;br /&gt;
0E5B: 00&lt;br /&gt;
0E5C: 00&lt;br /&gt;
0E5D: 00&lt;br /&gt;
0E5E: 00         ; Boolean, 1 enables V3 Noise&lt;br /&gt;
0E5F: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E60: 00         ; ($0f8c) SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
0E61: 00&lt;br /&gt;
0E62: 00&lt;br /&gt;
0E63: 00&lt;br /&gt;
0E64: 00&lt;br /&gt;
0E65: 00&lt;br /&gt;
0E66: 00&lt;br /&gt;
0E67: 00&lt;br /&gt;
0E68: 06&lt;br /&gt;
0E69: 02&lt;br /&gt;
0E6A: 07&lt;br /&gt;
0E6B: 05&lt;br /&gt;
0E6C: 03&lt;br /&gt;
0E6D: 08&lt;br /&gt;
0E6E: 01&lt;br /&gt;
0E6F: 04&lt;br /&gt;
0E70: FF&lt;br /&gt;
0E71: F9&lt;br /&gt;
0E72: FD&lt;br /&gt;
0E73: F8&lt;br /&gt;
0E74: FA&lt;br /&gt;
0E75: FC&lt;br /&gt;
0E76: F7&lt;br /&gt;
0E77: FE&lt;br /&gt;
0E78: FB&lt;br /&gt;
0E79: FB&lt;br /&gt;
0E7A: F7&lt;br /&gt;
0E7B: EF&lt;br /&gt;
0E7E: DF&lt;br /&gt;
0E7F: BF&lt;br /&gt;
&lt;br /&gt;
; Data segment&lt;br /&gt;
; string &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
0E7E: 05         ; white&lt;br /&gt;
0E7F: 13         ; home&lt;br /&gt;
0E80: 1D 1D 1D 1D 1D 1D  ;Placeholder for score&lt;br /&gt;
0E86: 20         ; ' '&lt;br /&gt;
0E87: CC         ; 'L'&lt;br /&gt;
0E88: 49         ; 'i'&lt;br /&gt;
0E89: 46         ; 'f'&lt;br /&gt;
0E8A :45         ; 'e'&lt;br /&gt;
0E8B: 3A         ; ':'&lt;br /&gt;
0E8C: 1D         ; curser right&lt;br /&gt;
0E8D: 20         ; ' '&lt;br /&gt;
0E8E: C5         ; 'E'&lt;br /&gt;
0E8F: 4E         ; 'n'&lt;br /&gt;
0E90: 45         ; 'e'&lt;br /&gt;
0E91: 52         ; 'r'&lt;br /&gt;
0E92: 47         ; 'g'&lt;br /&gt;
0E93: 59         ; 'y'&lt;br /&gt;
0E94: 3A         ; ':'&lt;br /&gt;
0E95: 1D         ; curser right &lt;br /&gt;
0E96: 1D         ; curser right&lt;br /&gt;
0e97: 1D         ; curser right&lt;br /&gt;
0E98: 1D         ; curser right&lt;br /&gt;
0E99: 20         ; ' '&lt;br /&gt;
0E9A: D3         ; 'S'&lt;br /&gt;
0E9B: 45         ; 'e'&lt;br /&gt;
0E9C: 43         ; 'c'&lt;br /&gt;
0E9D: 54         ; 't'&lt;br /&gt;
0E9E: 4F         ; 'o'&lt;br /&gt;
0E9F: 52         ; 'r'&lt;br /&gt;
0EA0: 3A         ; ':'&lt;br /&gt;
0EA1: 1D         ; curser right&lt;br /&gt;
0EA2: 1D         ; curser right&lt;br /&gt;
0EA3: 20         ; ' '&lt;br /&gt;
0EA4: 58         ; 'x'&lt;br /&gt;
0EA5: 58         ; 'x'&lt;br /&gt;
0EA6: 58         ; 'x'&lt;br /&gt;
0EA7: 9D         ; curser left&lt;br /&gt;
0EA8: 94         ; insert &lt;br /&gt;
0EA9: 58         ; 'x'&lt;br /&gt;
0EAA: 00         ; 'end of string&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Game over!&amp;quot;&lt;br /&gt;
0EAB: C7         ; 'G'&lt;br /&gt;
0EAC: 41         ; 'a'&lt;br /&gt;
0EAD: 4D         ; 'm'&lt;br /&gt;
0EAE: 45         ; 'e'&lt;br /&gt;
0EAF: 20         ; ' '&lt;br /&gt;
0EB0: 4F         ; 'o'&lt;br /&gt;
0EB1: 56         ; 'v'&lt;br /&gt;
0EB2: 45         ; 'e'&lt;br /&gt;
0EB3: 52         ; 'r'&lt;br /&gt;
0EB4: 21         ; '!'&lt;br /&gt;
0EB5: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
0EB6: C3         ; 'C'&lt;br /&gt;
0EB7: 4F         ; 'o'&lt;br /&gt;
0EB8: 4E         ; 'n'&lt;br /&gt;
0EB9: 47         ; 'g'&lt;br /&gt;
0EBA: 52         ; 'r'&lt;br /&gt;
0EBB: 41         ; 'a'&lt;br /&gt;
0EBC: 54         ; 't'&lt;br /&gt;
0EBD: 55         ; 'u'&lt;br /&gt;
0EBE: 4C         ; 'l'&lt;br /&gt;
0EBF: 41         ; 'a'&lt;br /&gt;
0EC0: 54         ; 't'&lt;br /&gt;
0EC1: 49         ; 'i'&lt;br /&gt;
0EC2: 4F         ; 'o'&lt;br /&gt;
0EC3: 4E         ; 'n'&lt;br /&gt;
0EC4: 53         ; 's'&lt;br /&gt;
0EC5: 21         ; '!'&lt;br /&gt;
0EC6: 20         ; ' '&lt;br /&gt;
0EC7: 20         ; ' '&lt;br /&gt;
0EC8: CD         ; 'M'&lt;br /&gt;
0EC9: 49         ; 'i'&lt;br /&gt;
0ECA: 53         ; 's'&lt;br /&gt;
0ECB: 53         ; 's'&lt;br /&gt;
0ECC: 49         ; 'i'&lt;br /&gt;
0ECD: 4F         ; 'o'&lt;br /&gt;
0ECE: 4E         ; 'n'&lt;br /&gt;
0ECF: 20         ; ' '&lt;br /&gt;
0ED0: 41         ; 'A'&lt;br /&gt;
0ED1: 43         ; 'c'&lt;br /&gt;
0ED2: 43         ; 'c'&lt;br /&gt;
0ED3: 4F         ; 'o'&lt;br /&gt;
0ED4: 4D         ; 'm' &lt;br /&gt;
0ED5: 50         ; 'p'&lt;br /&gt;
0ED6: 4C         ; 'l'&lt;br /&gt;
0ED7: 49         ; 'i'&lt;br /&gt;
0ED8: 53         ; 's'&lt;br /&gt;
0ED9: 48         ; 'h'&lt;br /&gt;
0EDA: 45         ; 'e'&lt;br /&gt;
0EDB: 44         ; 'd'&lt;br /&gt;
0EDC: 21         ; '!'&lt;br /&gt;
0EDD: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
0EDE: 05         ; white&lt;br /&gt;
0EDF: D3         ; 'S'&lt;br /&gt;
0EE0: D4         ; 'T'&lt;br /&gt;
0EE1 :C1         ; 'A'&lt;br /&gt;
0EE2: D2         ; 'R'&lt;br /&gt;
0EE3: 20         ; ' '&lt;br /&gt;
0EE4: 20         ; ' '&lt;br /&gt;
0EE5: D3         ; 'S'&lt;br /&gt;
0EE6: D4         ; 'T'&lt;br /&gt;
0EE7: D2         ; 'R'&lt;br /&gt;
0EE8: C9         ; 'I'&lt;br /&gt;
0EE9: CB         ; 'K'&lt;br /&gt;
0EEA: C5         ; 'E'&lt;br /&gt;
0EEB: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
0EEC: 42         ; 'b'&lt;br /&gt;
0EED: 59         ; 'y'&lt;br /&gt;
0EEE: 20         ; ' '&lt;br /&gt;
0EEF: CB         ; 'K'&lt;br /&gt;
0EF0: 45         ; 'e'&lt;br /&gt;
0EF1: 56         ; 'v'&lt;br /&gt;
0EF2: 49         ; 'i'&lt;br /&gt;
0EF3: 4E         ; 'n'&lt;br /&gt;
0EF4: 20         ; ' '&lt;br /&gt;
0EF5: C4         ; 'D'&lt;br /&gt;
0EF6: 49         ; 'i'&lt;br /&gt;
0EF7: 58         ; 'x'&lt;br /&gt;
0EF8: 4F         ; 'o'&lt;br /&gt;
0EF9: 4E         ; 'n'&lt;br /&gt;
0EFA: 00&lt;br /&gt;
&lt;br /&gt;
; string &amp;quot;1990&amp;quot;&lt;br /&gt;
0EFB: 31         ; '1'&lt;br /&gt;
0EFC: 39         ; '9'&lt;br /&gt;
0EFD: 39         ; '9'&lt;br /&gt;
0EFE: 30         ; '0'&lt;br /&gt;
0EFF: 00&lt;br /&gt;
&lt;br /&gt;
;32 byte block&lt;br /&gt;
&lt;br /&gt;
0F00: 09         ; Read from (0x10DB as offset base)&lt;br /&gt;
0F01: 00         ; Read from (0x10FA as offset base)&lt;br /&gt;
0F02: 09&lt;br /&gt;
0F03: 05&lt;br /&gt;
0F04: 09&lt;br /&gt;
0F05: 09&lt;br /&gt;
0F06: 05&lt;br /&gt;
0F07: 09&lt;br /&gt;
0F08: 00&lt;br /&gt;
0F09: 09&lt;br /&gt;
0F10: FB&lt;br /&gt;
0F0B: 09&lt;br /&gt;
0F0C: F7&lt;br /&gt;
0F0D: 09&lt;br /&gt;
0F0E: F7&lt;br /&gt;
0F0F: 05&lt;br /&gt;
0F10: F7&lt;br /&gt;
0F11: 00&lt;br /&gt;
0F12: F7&lt;br /&gt;
0F13: FB&lt;br /&gt;
0F14: F7&lt;br /&gt;
0F15: F7&lt;br /&gt;
0F16: FB&lt;br /&gt;
0F17: F7&lt;br /&gt;
0F18: 00&lt;br /&gt;
0F19: F7&lt;br /&gt;
0F1A: 05&lt;br /&gt;
0F1B: F7&lt;br /&gt;
0F1C: 09&lt;br /&gt;
0F1D: F7&lt;br /&gt;
0F1E: 09&lt;br /&gt;
0F1F: FB &lt;br /&gt;
&lt;br /&gt;
;These 32 bytes are custom characters for the starfield&lt;br /&gt;
;;Wide Star&lt;br /&gt;
0F20: 00 00 00 18 00 00 00 00&lt;br /&gt;
;;Narrow Star&lt;br /&gt;
0F28: 00 00 00 10 00 00 00 00&lt;br /&gt;
;;Constellation A&lt;br /&gt;
0F30: 04 20 89 3c 90 04 20 00&lt;br /&gt;
;;Constellation B&lt;br /&gt;
0F38: 10 84 10 b9 10 42 10 00&lt;br /&gt;
&lt;br /&gt;
;64 byte block&lt;br /&gt;
; Read from $1587&lt;br /&gt;
0F40: 01 00      ORA  ($00,X)&lt;br /&gt;
0F42: 01 00      ORA  ($00,X)&lt;br /&gt;
0F44: 01 02      ORA  ($02,X)&lt;br /&gt;
0F46: 01 00      ORA  ($00,X)&lt;br /&gt;
0F48: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4A: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4C: 02         JAM&lt;br /&gt;
0F4D: 01 02      ORA  ($02,X)&lt;br /&gt;
0F4F: 00         BRK&lt;br /&gt;
0F50: 02         JAM&lt;br /&gt;
0F51: 00         BRK&lt;br /&gt;
0F52: 02         JAM&lt;br /&gt;
0F53: 00         BRK&lt;br /&gt;
0F54: 02         JAM&lt;br /&gt;
0F55: 03 02      SLO  ($02,X)&lt;br /&gt;
0F57: 00         BRK&lt;br /&gt;
0F58: 02         JAM&lt;br /&gt;
0F59: 03 02      SLO  ($02,X)&lt;br /&gt;
0F5B: 03 03      SLO  ($03,X)&lt;br /&gt;
0F5D: 02         JAM&lt;br /&gt;
0F5E: 03 00      SLO  ($00,X)&lt;br /&gt;
0F60: 03 00      SLO  ($00,X)&lt;br /&gt;
0F62: 03 00      SLO  ($00,X)&lt;br /&gt;
0F64: 03 04      SLO  ($04,X)&lt;br /&gt;
0F66: 03 00      SLO  ($00,X)&lt;br /&gt;
0F68: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6A: 03 04      SLO  ($04,X)&lt;br /&gt;
0F6C: 04 03      DOP  $03&lt;br /&gt;
0F6E: 04 00      DOP  $00&lt;br /&gt;
0F70: 04 00      DOP  $00&lt;br /&gt;
0F72: 04 00      DOP  $00&lt;br /&gt;
0F74: 04 01      DOP  $01&lt;br /&gt;
0F76: 04 00      DOP  $00&lt;br /&gt;
0F78: 04 01      DOP  $01&lt;br /&gt;
0F7A: 04 01      DOP  $01&lt;br /&gt;
0F7C: 01 04      ORA  ($04,X)&lt;br /&gt;
0F7E: 01 00      ORA  ($00,X)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 0F80 - Subroutines ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
;Delay($0E03)  - Delay some clock cycles&lt;br /&gt;
;entry from  1CE8,1D60,1E00,1F1B&lt;br /&gt;
0F80: A2 00      LDX  #$00&lt;br /&gt;
0F82: AC 03 0E   LDY  $0E03  ; Appears to be a constant = 7&lt;br /&gt;
0F85: CA         DEX&lt;br /&gt;
0F86: D0 FD      BNE  $0F85&lt;br /&gt;
0F88: 88         DEY&lt;br /&gt;
0F89: D0 FA      BNE  $0F85&lt;br /&gt;
0F8B: 60         RTS&lt;br /&gt;
;end Delay&lt;br /&gt;
&lt;br /&gt;
; generate sound SAW sound with rapidely dropping pitch $0E60 during repesated calls, set to noise once pitch reaches zero?&lt;br /&gt;
; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
; Entry from 1E9F&lt;br /&gt;
; if $0E60 == 0 then RTS&lt;br /&gt;
0F8C: AD 60 0E   LDA  $0E60&lt;br /&gt;
0F8F: F0 30      BEQ  $0FC1  ;If zero, RTS&lt;br /&gt;
; if $0E5F == 0 use noise generator, else saw wave&lt;br /&gt;
0F91: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
0F94: F0 08      BEQ  $0F9E  ;If zero, then Noise Gen, else Saw wave&lt;br /&gt;
; saw wave&lt;br /&gt;
0F96: A9 21      LDA  #$21   ;Voice ON, Saw wave&lt;br /&gt;
0F98: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0F9B: 4C A3 0F   JMP  $0FA3  ;Skip Noise generator code&lt;br /&gt;
; noise generator&lt;br /&gt;
0F9E: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FA0: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
; decrease frequency by 4&lt;br /&gt;
0FA3: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA6: CE 60 0E   DEC  $0E60&lt;br /&gt;
0FA9: D0 10      BNE  $0FBB  ; If $0E60 is nonzero then set highbyte of voice 1 frequency = $0E60 and RTS&lt;br /&gt;
; set highbyte of voice 1 frequency to 1&lt;br /&gt;
0FAB: A9 01      LDA  #$01   &lt;br /&gt;
0FAD: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
; $0E5F = 0&lt;br /&gt;
0FB0: A9 00      LDA  #$00&lt;br /&gt;
0FB2: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
; set voice 1 to noise&lt;br /&gt;
0FB5: A9 80      LDA  #$80   ;Voice OFF, Noise generator &lt;br /&gt;
0FB7: 8D 04 D4   STA  $D404  ;SID Voice 1 control register&lt;br /&gt;
0FBA: 60         RTS&lt;br /&gt;
; set highbyte of voice 1 frequency = $0E60&lt;br /&gt;
0FBB: AD 60 0E   LDA  $0E60  ; Take this nonzero memory byte&lt;br /&gt;
0FBE: 8D 01 D4   STA  $D401  ; D400(L),D401(H), Voice 1 frequency&lt;br /&gt;
0FC1: 60         RTS&lt;br /&gt;
;end SubroutineB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 0FC2&lt;br /&gt;
; Entry from $1EA2 only.  RTS if $0E61 == 0&lt;br /&gt;
0FC2: AD 61 0E   LDA  $0E61&lt;br /&gt;
0FC5: F0 0F      BEQ  $0FD6  ;If zero, RTS&lt;br /&gt;
; set SID Voice 2 control register: voice ON, Noise generator&lt;br /&gt;
0FC7: A9 81      LDA  #$81   ;Voice ON, Noise generator&lt;br /&gt;
0FC9: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
; If $0E61 is nonzero RTS&lt;br /&gt;
0FCC: CE 61 0E   DEC  $0E61&lt;br /&gt;
0FCF: D0 05      BNE  $0FD6  ;If $0E61 is nonzero RTS&lt;br /&gt;
; disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD1: A9 80      LDA  #$80   ;else disable noise voice 2, keep switched to noise gen&lt;br /&gt;
0FD3: 8D 0B D4   STA  $D40B  ;SID Voice 2 control register&lt;br /&gt;
0FD6: 60         RTS&lt;br /&gt;
;end Subroutine 0FC2&lt;br /&gt;
&lt;br /&gt;
                             ; Begin DefineCharsets()&lt;br /&gt;
                             ; Entry from 0x1C59&lt;br /&gt;
0FD7: AD 0E DC   LDA  $DC0E  ; Load  CIA-1 Control Timer A flags&lt;br /&gt;
0FDA: 29 FE      AND  #$FE   ; Flag to stop Timer A&lt;br /&gt;
0FDC: 8D 0E DC   STA  $DC0E  ; CIA 1, Timer A stopped&lt;br /&gt;
0FDF: A5 01      LDA  $01    ; Zero Page LDA 0x0001, A=0x37&lt;br /&gt;
 6510 CPU's on-chip port register &lt;br /&gt;
0FE1: 29 FB      AND  #$FB   ; Turn off bit 2.  This is the CHARGEN flag&lt;br /&gt;
0FE3: 85 01      STA  $01    ; The character ROM is mapped to address instead of 0xDxxx IO device registers&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB-0x00FE zero page bytes reserved for ML&lt;br /&gt;
                             ; These seem to be pointers&lt;br /&gt;
0FE5: A9 00      LDA  #$00   ;&lt;br /&gt;
0FE7: 85 FB      STA  $FB    ; 0x00FB = 0x00&lt;br /&gt;
0FE9: A9 20      LDA  #$20   ;&lt;br /&gt;
0FEB: 85 FC      STA  $FC    ; 0x00FC = 0x20&lt;br /&gt;
0FED: A9 00      LDA  #$00   ; &lt;br /&gt;
0FEF: 85 FD      STA  $FD    ; 0x00FD = 0x00&lt;br /&gt;
0FF1: A9 D8      LDA  #$D8   ; &lt;br /&gt;
0FF3: 85 FE      STA  $FE    ; 0x00FE = 0xD8&lt;br /&gt;
&lt;br /&gt;
0FF5: A2 08      LDX  #$08   ; X=0x08&lt;br /&gt;
0FF7: A0 00      LDY  #$00   ; Y=0x00&lt;br /&gt;
&lt;br /&gt;
                             ; 0x00FB: 00 20 00 D8&lt;br /&gt;
&lt;br /&gt;
                              ;copy bytes from 0xD800-0xDFFF&lt;br /&gt;
                              ;into 0x2000-0x27FF.  These are the chars in Set B&lt;br /&gt;
0FF9: B1 FD      LDA  ($FD),Y ; A=data stored in 0xD800+Y &lt;br /&gt;
0FFB: 91 FB      STA  ($FB),Y ; 0x2000+Y = A&lt;br /&gt;
0FFD: 88         DEY          ; &lt;br /&gt;
0FFE: D0 F9      BNE  $0FF9   ; inner loop 256 bytes&lt;br /&gt;
                             ;  Step ahead to next page of RAM.  &lt;br /&gt;
1000: E6 FC      INC  $FC    ;  Increment value at 0x00FC&lt;br /&gt;
1002: E6 FE      INC  $FE    ;  Increment value at 0x00FE&lt;br /&gt;
1004: CA         DEX         ;&lt;br /&gt;
1005: D0 F0      BNE  $0FF7  ;  Outer loop 256*8 = 2048 total bytes&lt;br /&gt;
&lt;br /&gt;
1007: A5 01      LDA  $01    ; Load 0x0001 into A&lt;br /&gt;
1009: 09 04      ORA  #$04   ; Turn on bit 2 (CHARGEN). Disable user acces to CHAR ROM.&lt;br /&gt;
100B: 85 01      STA  $01    ; &lt;br /&gt;
&lt;br /&gt;
100D: AD 0E DC   LDA  $DC0E  ;&lt;br /&gt;
1010: 09 01      ORA  #$01   ; Restore bit 0&lt;br /&gt;
1012: 8D 0E DC   STA  $DC0E  ; CIA 1 Timer A started&lt;br /&gt;
&lt;br /&gt;
                             ; Copy starfield bytes 0x0F20..0x0F3F to 0x2400..0x241F&lt;br /&gt;
                             ; Charset 2, 128-132, inverse '@','a','b','c'&lt;br /&gt;
1015: A0 00      LDY  #$00   ; &lt;br /&gt;
1017: B9 20 0F   LDA  $0F20,Y&lt;br /&gt;
101A: 99 00 24   STA  $2400,Y&lt;br /&gt;
101D: C8         INY         ; Increment Y&lt;br /&gt;
101E: C0 20      CPY  #$20   ; Compare Y with 0x20&lt;br /&gt;
1020: D0 F5      BNE  $1017  ;If nonzero, then go to A-2&lt;br /&gt;
1022: 60         RTS&lt;br /&gt;
;end  DefineCharsets()&lt;br /&gt;
&lt;br /&gt;
; Subroutine1023&lt;br /&gt;
; Entry from 0x1E33&lt;br /&gt;
1023: AD 35 0E   LDA  $0E35&lt;br /&gt;
1026: D0 5A      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
1028: CE 3A 0E   DEC  $0E3A&lt;br /&gt;
102B: D0 55      BNE  $1082 ;If not zero, then RTS&lt;br /&gt;
102D: A9 00      LDA  #$00&lt;br /&gt;
102F: 8D 5E 0E   STA  $0E5E ;Disable V3 Noise channel&lt;br /&gt;
1032: A9 04      LDA  #$04&lt;br /&gt;
1034: 8D 3A 0E   STA  $0E3A ;$0E3A=4&lt;br /&gt;
                            ;Scan Joystick&lt;br /&gt;
1037: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
103A: 29 04      AND  #$04  ;Left test&lt;br /&gt;
103C: D0 03      BNE  $1041 ;Left is NOT pressed&lt;br /&gt;
103E: 20 9C 10   JSR  $109C ;Left is pressed&lt;br /&gt;
1041: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1044: 29 08      AND  #$08  ;Right test&lt;br /&gt;
1046: D0 03      BNE  $104B ;Right is NOT pressed&lt;br /&gt;
1048: 20 AA 10   JSR  $10AA ;Right is pressed&lt;br /&gt;
104B: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
104E: 29 01      AND  #$01  ;Test up&lt;br /&gt;
1050: D0 03      BNE  $1055 ;Up is NOT pressed&lt;br /&gt;
1052: 20 BA 10   JSR  $10BA ;Up is pressed&lt;br /&gt;
1055: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1058: 29 10      AND  #$10  ;Test fire&lt;br /&gt;
105A: D0 03      BNE  $105F ;Fire is NOT pressed&lt;br /&gt;
105C: 20 36 15   JSR  $1536 ;Fire is pressed, fire&lt;br /&gt;
105F: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
1062: 29 02      AND  #$02  ;Test down&lt;br /&gt;
1064: D0 03      BNE  $1069 ;Down is NOT pressed&lt;br /&gt;
1066: 20 83 10   JSR  $1083 ;Down is pressed, hyperspace&lt;br /&gt;
;$07F8 = $0E06 + #$21 &lt;br /&gt;
1069: AD 06 0E   LDA  $0E06&lt;br /&gt;
106C: 18         CLC&lt;br /&gt;
106D: 69 21      ADC  #$21&lt;br /&gt;
106F: 8D F8 07   STA  $07F8&lt;br /&gt;
; check $E5E to figure out if Noise, or no noise&lt;br /&gt;
1072: AD 5E 0E   LDA  $0E5E &lt;br /&gt;
1075: F0 06      BEQ  $107D ; set V3 Noise to fade out 'release'&lt;br /&gt;
; output V3 Noise, exit&lt;br /&gt;
1077: A9 81      LDA  #$81  &lt;br /&gt;
1079: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
107C: 60         RTS&lt;br /&gt;
; set V3 Noise to fade out 'release'&lt;br /&gt;
107D: A9 80      LDA  #$80&lt;br /&gt;
107F: 8D 12 D4   STA  $D412 ;SID Voice 3 Control Register&lt;br /&gt;
1082: 60         RTS&lt;br /&gt;
;end Subroutine 1023&lt;br /&gt;
&lt;br /&gt;
; hyperspace&lt;br /&gt;
1083: AD 01 DC   LDA  $DC01 ;Capture Joystick port&lt;br /&gt;
                            ;A is zero only if DOWN or IDLE, but not multiple buttons&lt;br /&gt;
                            ;protection for accidental hyperspace while turning&lt;br /&gt;
1086: 29 1F      AND  #$1F  &lt;br /&gt;
1088: 49 1F      EOR  #$1F&lt;br /&gt;
108A: 29 1D      AND  #$1D&lt;br /&gt;
108C: D0 0D      BNE  $109B &lt;br /&gt;
108E: A9 0A      LDA  #$0A&lt;br /&gt;
1090: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1093: A9 C8      LDA  #$C8&lt;br /&gt;
1095: 8D 62 0E   STA  $0E62&lt;br /&gt;
1098: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
109B: 60         RTS&lt;br /&gt;
;end Subroutine hyperspace&lt;br /&gt;
&lt;br /&gt;
;Subroutine 109C&lt;br /&gt;
;rotate ship left, enters from 103E&lt;br /&gt;
109C: AD 06 0E   LDA  $0E06&lt;br /&gt;
109F: D0 05      BNE  $10A6&lt;br /&gt;
10A1: A9 10      LDA  #$10&lt;br /&gt;
10A3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10A6: CE 06 0E   DEC  $0E06&lt;br /&gt;
10A9: 60         RTS&lt;br /&gt;
;end Subroutine 109C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10AA&lt;br /&gt;
;rotate ship right, enters from 1048&lt;br /&gt;
10AA: AD 06 0E   LDA  $0E06&lt;br /&gt;
10AD: C9 0F      CMP  #$0F&lt;br /&gt;
10AF: D0 05      BNE  $10B6&lt;br /&gt;
10B1: A9 FF      LDA  #$FF&lt;br /&gt;
10B3: 8D 06 0E   STA  $0E06&lt;br /&gt;
10B6: EE 06 0E   INC  $0E06&lt;br /&gt;
10B9: 60         RTS&lt;br /&gt;
;end Subroutine 10AA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 10BA&lt;br /&gt;
;fire ship thrusters, enters from 1052&lt;br /&gt;
10BA: A9 01      LDA  #$01&lt;br /&gt;
10BC: 8D 5E 0E   STA  $0E5E ; $0E5E = 1 - enable thrust noise&lt;br /&gt;
; every 16 times: decrement and display energy&lt;br /&gt;
10BF: CE 34 0E   DEC  $0E34 ; $0E34 is accessed in exactly two places&lt;br /&gt;
10C2: AD 34 0E   LDA  $0E34&lt;br /&gt;
10C5: 29 0F      AND  #$0F&lt;br /&gt;
10C7: D0 03      BNE  $10CC&lt;br /&gt;
10C9: 20 A0 1B   JSR  $1BA0 &lt;br /&gt;
; RTS 3 out of 4 times&lt;br /&gt;
10CC: CE 3B 0E   DEC  $0E3B ; $0E3B is accessed in exactly two places&lt;br /&gt;
10CF: D0 46      BNE  $1117 ; If not zero, RTS&lt;br /&gt;
10D1: A9 03      LDA  #$03&lt;br /&gt;
10D3: 8D 3B 0E   STA  $0E3B ; reached 0, set to 3&lt;br /&gt;
; y = 2* $0E06&lt;br /&gt;
10D6: AD 06 0E   LDA  $0E06&lt;br /&gt;
10D9: 0A         ASL  A&lt;br /&gt;
10DA: A8         TAY&lt;br /&gt;
10DB: B9 00 0F   LDA  $0F00,Y&lt;br /&gt;
10DE: 18         CLC&lt;br /&gt;
10DF: 69 80      ADC  #$80&lt;br /&gt;
10E1: 8D 37 0E   STA  $0E37&lt;br /&gt;
10E4: AD 08 0E   LDA  $0E08&lt;br /&gt;
10E7: 18         CLC&lt;br /&gt;
10E8: 69 80      ADC  #$80&lt;br /&gt;
10EA: CD 37 0E   CMP  $0E37&lt;br /&gt;
10ED: F0 0B      BEQ  $10FA&lt;br /&gt;
10EF: 90 06      BCC  $10F7&lt;br /&gt;
10F1: CE 08 0E   DEC  $0E08&lt;br /&gt;
10F4: 4C FA 10   JMP  $10FA&lt;br /&gt;
10F7: EE 08 0E   INC  $0E08&lt;br /&gt;
10FA: B9 01 0F   LDA  $0F01,Y&lt;br /&gt;
10FD: 18         CLC&lt;br /&gt;
10FE: 69 80      ADC  #$80&lt;br /&gt;
1100: 8D 37 0E   STA  $0E37&lt;br /&gt;
1103: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1106: 18         CLC&lt;br /&gt;
1107: 69 80      ADC  #$80&lt;br /&gt;
1109: CD 37 0E   CMP  $0E37&lt;br /&gt;
110C: F0 09      BEQ  $1117 ; if $0E37 == #$80 + $0E0F, RTS&lt;br /&gt;
110E: 90 04      BCC  $1114 ; if carry is clear INC $0E0F and RTS, else DEC $0E0F and RTS&lt;br /&gt;
1110: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1113: 60         RTS        ;This is not the end of the subroutine&lt;br /&gt;
1114: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1117: 60         RTS&lt;br /&gt;
;end Subroutine 10BA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1118&lt;br /&gt;
; This is called very frequently and consumes many clock cycles&lt;br /&gt;
; JSR from $1C1C, $1E43&lt;br /&gt;
1118: 8D 38 0E   STA  $0E38&lt;br /&gt;
111B: 49 FF      EOR  #$FF&lt;br /&gt;
111D: 8D 39 0E   STA  $0E39&lt;br /&gt;
1120: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1123: E0 00      CPX  #$00&lt;br /&gt;
1125: D0 07      BNE  $112E&lt;br /&gt;
1127: AD 35 0E   LDA  $0E35&lt;br /&gt;
112A: F0 02      BEQ  $112E&lt;br /&gt;
112C: 10 5D      BPL  $118B   ;look at this later&lt;br /&gt;
112E: DE 16 0E   DEC  $0E16,X&lt;br /&gt;
1131: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
1134: 30 14      BMI  $114A&lt;br /&gt;
1136: F0 21      BEQ  $1159&lt;br /&gt;
1138: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
113B: A8         TAY&lt;br /&gt;
113C: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
113F: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1142: B0 15      BCS  $1159&lt;br /&gt;
1144: 20 5B 12   JSR  $125B   ; Look at this later too&lt;br /&gt;
1147: 4C 59 11   JMP  $1159&lt;br /&gt;
114A: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
114D: A8         TAY&lt;br /&gt;
114E: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1151: DD 08 0E   CMP  $0E08,X&lt;br /&gt;
1154: 90 03      BCC  $1159&lt;br /&gt;
1156: 20 04 12   JSR  $1204&lt;br /&gt;
1159: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
115C: 30 14      BMI  $1172&lt;br /&gt;
115E: F0 21      BEQ  $1181&lt;br /&gt;
1160: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1163: A8         TAY&lt;br /&gt;
1164: B9 67 0E   LDA  $0E67,Y&lt;br /&gt;
1167: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
116A: B0 15      BCS  $1181&lt;br /&gt;
116C: 20 C7 11   JSR  $11C7&lt;br /&gt;
116F: 4C 81 11   JMP  $1181&lt;br /&gt;
1172: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1175: A8         TAY&lt;br /&gt;
1176: B9 70 0E   LDA  $0E70,Y&lt;br /&gt;
1179: DD 0F 0E   CMP  $0E0F,X&lt;br /&gt;
117C: 90 03      BCC  $1181&lt;br /&gt;
117E: 20 8C 11   JSR  $118C&lt;br /&gt;
1181: BD 16 0E   LDA  $0E16,X&lt;br /&gt;
1184: D0 05      BNE  $118B&lt;br /&gt;
1186: A9 09      LDA  #$09&lt;br /&gt;
1188: 9D 16 0E   STA  $0E16,X&lt;br /&gt;
118B: 60         RTS&lt;br /&gt;
;end Subroutine 1118&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartA&lt;br /&gt;
; JSR from $117E, JMP from $11E6 &lt;br /&gt;
118C: 8A         TXA&lt;br /&gt;
118D: 0A         ASL  A&lt;br /&gt;
118E: AA         TAX&lt;br /&gt;
118F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1192: C9 3A      CMP  #$3A&lt;br /&gt;
1194: D0 2A      BNE  $11C0&lt;br /&gt;
1196: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1199: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
119C: 29 F0      AND  #$F0&lt;br /&gt;
119E: D0 0C      BNE  $11AC&lt;br /&gt;
11A0: 38         SEC&lt;br /&gt;
11A1: A9 00      LDA  #$00&lt;br /&gt;
11A3: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11A6: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11A9: 4C C7 11   JMP  $11C7       ;XXX JMP outside SR!!! XXX&lt;br /&gt;
; BNE from 119E&lt;br /&gt;
11AC: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11AF: 38         SEC&lt;br /&gt;
11B0: E9 10      SBC  #$10&lt;br /&gt;
11B2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11B5: 8A         TXA&lt;br /&gt;
11B6: 0A         ASL  A&lt;br /&gt;
11B7: AA         TAX&lt;br /&gt;
11B8: A9 F4      LDA  #$F4&lt;br /&gt;
11BA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11BD: 20 D0 13   JSR  $13D0&lt;br /&gt;
11C0: DE 01 D0   DEC  $D001,X ; y Coord MOB 0&lt;br /&gt;
11C3: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11C6: 60         RTS&lt;br /&gt;
;end SubroutineC-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineC-PartB&lt;br /&gt;
; JSR from $116C, JMP from $11A9&lt;br /&gt;
11C7: 8A         TXA&lt;br /&gt;
11C8: 0A         ASL  A&lt;br /&gt;
11C9: AA         TAX&lt;br /&gt;
11CA: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11CD: C9 F4      CMP  #$F4&lt;br /&gt;
11CF: D0 2C      BNE  $11FD&lt;br /&gt;
11D1: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
11D4: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11D7: 29 F0      AND  #$F0&lt;br /&gt;
11D9: C9 70      CMP  #$70&lt;br /&gt;
11DB: D0 0C      BNE  $11E9&lt;br /&gt;
11DD: 38         SEC&lt;br /&gt;
11DE: A9 00      LDA  #$00&lt;br /&gt;
11E0: FD 0F 0E   SBC  $0E0F,X&lt;br /&gt;
11E3: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
11E6: 4C 8C 11   JMP  $118C     ;XXX Jump outside SR!!! XXX&lt;br /&gt;
11E9: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
11EC: 18         CLC&lt;br /&gt;
11ED: 69 10      ADC  #$10&lt;br /&gt;
11EF: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
11F2: 8A         TXA&lt;br /&gt;
11F3: 0A         ASL  A&lt;br /&gt;
11F4: AA         TAX&lt;br /&gt;
11F5: A9 3A      LDA  #$3A&lt;br /&gt;
11F7: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
11FA: 20 D0 13   JSR  $13D0&lt;br /&gt;
11FD: FE 01 D0   INC  $D001,X ; y Coord MOB 0&lt;br /&gt;
1200: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1203: 60         RTS&lt;br /&gt;
;end SubroutineC-PartB&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartA&lt;br /&gt;
; JMP from $1295 and JSR from $1156&lt;br /&gt;
1204: 8A         TXA&lt;br /&gt;
1205: 0A         ASL  A&lt;br /&gt;
1206: AA         TAX&lt;br /&gt;
1207: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
120A: 2D 38 0E   AND  $0E38&lt;br /&gt;
120D: F0 11      BEQ  $1220&lt;br /&gt;
120F: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1212: D0 40      BNE  $1254&lt;br /&gt;
1214: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1217: 2D 39 0E   AND  $0E39&lt;br /&gt;
121A: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
121D: 4C 54 12   JMP  $1254&lt;br /&gt;
1220: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1223: C9 18      CMP  #$18&lt;br /&gt;
1225: D0 2D      BNE  $1254&lt;br /&gt;
1227: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
122A: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
122D: 29 0F      AND  #$0F&lt;br /&gt;
122F: D0 0C      BNE  $123D&lt;br /&gt;
1231: 38         SEC&lt;br /&gt;
1232: A9 00      LDA  #$00&lt;br /&gt;
1234: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1237: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
123A: 4C 5B 12   JMP  $125B   ;Jumps outside to next&lt;br /&gt;
123D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1240: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1243: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1246: DE 23 0E   DEC  $0E23,X&lt;br /&gt;
1249: 8A         TXA&lt;br /&gt;
124A: 0A         ASL  A&lt;br /&gt;
124B: AA         TAX&lt;br /&gt;
124C: A9 50      LDA  #$50&lt;br /&gt;
124E: 9D 00 D0   STA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1251: 20 D0 13   JSR  $13D0&lt;br /&gt;
1254: DE 00 D0   DEC  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1257: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
125A: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;SubroutineD-PartB&lt;br /&gt;
;entry from 1144, 123A (as a JMP, not JSR - this will exit the higher subroutine)&lt;br /&gt;
;double x&lt;br /&gt;
125B: 8A         TXA&lt;br /&gt;
125C: 0A         ASL  A&lt;br /&gt;
125D: AA         TAX&lt;br /&gt;
125E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1261: 2D 38 0E   AND  $0E38&lt;br /&gt;
1264: D0 13      BNE  $1279&lt;br /&gt;
1266: BD 00 D0   LDA  $D000,X  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1269: C9 FF      CMP  #$FF&lt;br /&gt;
126B: D0 42      BNE  $12AF&lt;br /&gt;
126D: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1270: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1273: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1276: 4C AF 12   JMP  $12AF&lt;br /&gt;
1279: BD 00 D0   LDA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
127C: C9 50      CMP  #$50&lt;br /&gt;
127E: D0 2F      BNE  $12AF&lt;br /&gt;
1280: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1283: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1286: 29 0F      AND  #$0F&lt;br /&gt;
1288: C9 07      CMP  #$07&lt;br /&gt;
128A: D0 0C      BNE  $1298&lt;br /&gt;
128C: 38         SEC&lt;br /&gt;
128D: A9 00      LDA  #$00&lt;br /&gt;
128F: FD 08 0E   SBC  $0E08,X&lt;br /&gt;
1292: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
1295: 4C 04 12   JMP  $1204    ;Jumps outside to prior&lt;br /&gt;
1298: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
129B: 2D 39 0E   AND  $0E39&lt;br /&gt;
129E: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
12A1: FE 23 0E   INC  $0E23,X&lt;br /&gt;
; double x&lt;br /&gt;
12A4: 8A         TXA&lt;br /&gt;
12A5: 0A         ASL  A&lt;br /&gt;
12A6: AA         TAX&lt;br /&gt;
12A7: A9 18      LDA  #$18&lt;br /&gt;
12A9: 9D 00 D0   STA  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12AC: 20 D0 13   JSR  $13D0&lt;br /&gt;
12AF: FE 00 D0   INC  $D000,X ; X Coord MOB 0 (lower 8)&lt;br /&gt;
12B2: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
12B5: 60         RTS&lt;br /&gt;
;end SubroutineD-PartA&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12B6&lt;br /&gt;
; perform mysterious math on x,y and return the result in x,y. a selects what to do&lt;br /&gt;
; if a != 0  x = (((x / 2) or #$80) - #$0C) / 4, y = (y - #$2D) / 8 &lt;br /&gt;
; else x = ((x / 2) - #$0C) / 4, y = (y - #$2D) / 8   &lt;br /&gt;
; JSR from $1696, $16B3, $171E, $173B, $1880, $189D&lt;br /&gt;
12B6: 8D 37 0E   STA  $0E37 ; save a to $0E37&lt;br /&gt;
; substract $2D from y and divide by 8&lt;br /&gt;
12B9: 98         TYA&lt;br /&gt;
12BA: 38         SEC&lt;br /&gt;
12BB: E9 2D      SBC  #$2D&lt;br /&gt;
12BD: 4A         LSR  A&lt;br /&gt;
12BE: 4A         LSR  A&lt;br /&gt;
12BF: 4A         LSR  A&lt;br /&gt;
12C0: A8         TAY&lt;br /&gt;
; divide x by 2&lt;br /&gt;
12C1: 8A         TXA&lt;br /&gt;
12C2: 4A         LSR  A&lt;br /&gt;
12C3: AA         TAX&lt;br /&gt;
; if $0E37 is zero branch to $12CD&lt;br /&gt;
12C4: AD 37 0E   LDA  $0E37&lt;br /&gt;
12C7: F0 04      BEQ  $12CD&lt;br /&gt;
; or x with $80&lt;br /&gt;
12C9: 8A         TXA&lt;br /&gt;
12CA: 09 80      ORA  #$80&lt;br /&gt;
12CC: AA         TAX &lt;br /&gt;
; substract $0C from x and divide the result by 4&lt;br /&gt;
; BEQ from $12C7&lt;br /&gt;
12CD: 8A         TXA &lt;br /&gt;
12CE: 38         SEC&lt;br /&gt;
12CF: E9 0C      SBC  #$0C ;substract &lt;br /&gt;
12D1: 4A         LSR  A &lt;br /&gt;
12D2: 4A         LSR  A&lt;br /&gt;
12D3: AA         TAX&lt;br /&gt;
12D4: 60         RTS ; ooof, done! find the result in x,y&lt;br /&gt;
;end Subroutine 12B6&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12D5&lt;br /&gt;
; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
; JSR from $1326 only&lt;br /&gt;
; set $FD to zero&lt;br /&gt;
12D5: A9 00      LDA  #$00&lt;br /&gt;
12D7: 85 FD      STA  $FD&lt;br /&gt;
; set $FE to #$04&lt;br /&gt;
12D9: A9 04      LDA  #$04&lt;br /&gt;
12DB: 85 FE      STA  $FE&lt;br /&gt;
; add y times #$28 to $FD, in the form of a loop&lt;br /&gt;
; BEQ to $12F1 if y is $00&lt;br /&gt;
12DD: C0 00      CPY  #$00 ; is y zero&lt;br /&gt;
12DF: F0 10      BEQ  $12F1&lt;br /&gt;
; add #$28 to $FD,&lt;br /&gt;
12E1: 18         CLC&lt;br /&gt;
12E2: A9 28      LDA  #$28&lt;br /&gt;
12E4: 65 FD      ADC  $FD&lt;br /&gt;
12E6: 85 FD      STA  $FD&lt;br /&gt;
; do nothing - add #$00 to $FE&lt;br /&gt;
12E8: A9 00      LDA  #$00&lt;br /&gt;
12EA: 65 FE      ADC  $FE&lt;br /&gt;
12EC: 85 FE      STA  $FE&lt;br /&gt;
; check if loop is done&lt;br /&gt;
12EE: 88         DEY        ; decrement y&lt;br /&gt;
12EF: D0 F0      BNE  $12E1 ; goto $12E1 unless y is zero&lt;br /&gt;
; add x to $FD&lt;br /&gt;
12F1: 18         CLC&lt;br /&gt;
12F2: 8A         TXA&lt;br /&gt;
12F3: 65 FD      ADC  $FD&lt;br /&gt;
12F5: 85 FD      STA  $FD&lt;br /&gt;
; add 0 to $FE&lt;br /&gt;
12F7: A9 00      LDA  #$00&lt;br /&gt;
12F9: 65 FE      ADC  $FE&lt;br /&gt;
12FB: 85 FE      STA  $FE&lt;br /&gt;
12FD: 60         RTS&lt;br /&gt;
;end Subroutine 12D5&lt;br /&gt;
&lt;br /&gt;
;Subroutine 12FE&lt;br /&gt;
; increase $00FE by #$D4&lt;br /&gt;
; JSR from 1341 only&lt;br /&gt;
12FE: A5 FE      LDA  $FE&lt;br /&gt;
1300: 18         CLC&lt;br /&gt;
1301: 69 D4      ADC  #$D4&lt;br /&gt;
1303: 85 FE      STA  $FE&lt;br /&gt;
1305: 60         RTS&lt;br /&gt;
;end Subroutine 12FE&lt;br /&gt;
&lt;br /&gt;
; JSR from $1471, $1D0E&lt;br /&gt;
; Subroutine 1306&lt;br /&gt;
; Called every time a screen changes (start screen or moving to neighbor screen)&lt;br /&gt;
1306: 20 AF 13   JSR  $13AF ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1309: 20 50 13   JSR  $1350 ; Subroutine BlankScreen()&lt;br /&gt;
; $0E1D = #$23&lt;br /&gt;
130C: A9 23      LDA  #$23&lt;br /&gt;
130E: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
1311: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
1314: 29 1F      AND  #$1F&lt;br /&gt;
1316: C9 18      CMP  #$18&lt;br /&gt;
1318: B0 F7      BCS  $1311&lt;br /&gt;
131A: A8         TAY&lt;br /&gt;
131B: C8         INY&lt;br /&gt;
131C: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
131F: 29 3F      AND  #$3F&lt;br /&gt;
1321: C9 28      CMP  #$28&lt;br /&gt;
1323: B0 F7      BCS  $131C&lt;br /&gt;
1325: AA         TAX&lt;br /&gt;
1326: 20 D5 12   JSR  $12D5 ; calculate $FD = (y * #$28) + x, also set $FE = #$04&lt;br /&gt;
1329: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
132C: AA         TAX&lt;br /&gt;
132D: AD 1D 0E   LDA  $0E1D&lt;br /&gt;
1330: C9 01      CMP  #$01&lt;br /&gt;
1332: F0 04      BEQ  $1338&lt;br /&gt;
1334: 8A         TXA&lt;br /&gt;
1335: 29 01      AND  #$01&lt;br /&gt;
1337: AA         TAX&lt;br /&gt;
1338: 8A         TXA&lt;br /&gt;
1339: 29 03      AND  #$03&lt;br /&gt;
133B: 09 80      ORA  #$80&lt;br /&gt;
133D: A0 00      LDY  #$00&lt;br /&gt;
133F: 91 FD      STA  ($FD),Y&lt;br /&gt;
1341: 20 FE 12   JSR  $12FE   ; increase $FE by #$D4&lt;br /&gt;
1344: A0 00      LDY  #$00&lt;br /&gt;
1346: A9 01      LDA  #$01&lt;br /&gt;
1348: 91 FD      STA  ($FD),Y&lt;br /&gt;
134A: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
134D: D0 C2      BNE  $1311&lt;br /&gt;
134F: 60         RTS&lt;br /&gt;
; end Subroutine 1306&lt;br /&gt;
&lt;br /&gt;
; Subroutine BlankScreen()&lt;br /&gt;
; write ' ' to the memory from $0428 to $07E7&lt;br /&gt;
; Enters from 0x1098, 0x1309&lt;br /&gt;
1350: A0 00      LDY  #$00&lt;br /&gt;
1352: A9 20      LDA  #$20    ; ' ' space for starfield background&lt;br /&gt;
1354: 99 28 04   STA  $0428,Y&lt;br /&gt;
1357: 99 28 05   STA  $0528,Y&lt;br /&gt;
135A: 99 28 06   STA  $0628,Y&lt;br /&gt;
135D: 99 E8 06   STA  $06E8,Y&lt;br /&gt;
1360: 88         DEY&lt;br /&gt;
1361: D0 F1      BNE  $1354&lt;br /&gt;
1363: 60         RTS&lt;br /&gt;
;end Subroutine BlankScreen()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1364&lt;br /&gt;
; enters from 1423 only&lt;br /&gt;
; $07ff = #$34&lt;br /&gt;
1364: A9 34      LDA  #$34&lt;br /&gt;
1366: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$0E&lt;br /&gt;
1369: A9 0E      LDA  #$0E&lt;br /&gt;
136B: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
; $0E2D = $D00E + #$1C&lt;br /&gt;
136E: AD 0E D0   LDA  $D00E ; X Coord MOB 7 (lower 8)&lt;br /&gt;
1371: 18         CLC&lt;br /&gt;
1372: 69 1C      ADC  #$1C&lt;br /&gt;
1374: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
; $0E2E = $D00F + #$0E&lt;br /&gt;
1377: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
137A: 18         CLC&lt;br /&gt;
137B: 69 0E      ADC  #$0E&lt;br /&gt;
137D: 8D 2E 0E   STA  $0E2E &lt;br /&gt;
1380: 60         RTS&lt;br /&gt;
;end Subroutine 1364&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1381&lt;br /&gt;
; enters from 143B only&lt;br /&gt;
; $07FF = #$33&lt;br /&gt;
1381: A9 33      LDA  #$33&lt;br /&gt;
1383: 8D FF 07   STA  $07FF&lt;br /&gt;
; $D02E = #$02&lt;br /&gt;
1386: A9 02      LDA  #$02&lt;br /&gt;
1388: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
138B: 60         RTS&lt;br /&gt;
;end Subroutine 1381&lt;br /&gt;
&lt;br /&gt;
;Subroutine 138C&lt;br /&gt;
; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
; JSR from $13C7, $1311, $131C, $1329&lt;br /&gt;
; $0E37 = $0E66 + $0E63&lt;br /&gt;
; V37 = V63+V66&lt;br /&gt;
; V66 = V65&lt;br /&gt;
; V65 = V64&lt;br /&gt;
; V64 = V63&lt;br /&gt;
; V63 = V37&lt;br /&gt;
138C: 18         CLC&lt;br /&gt;
138D: AD 66 0E   LDA  $0E66&lt;br /&gt;
1390: 6D 63 0E   ADC  $0E63&lt;br /&gt;
1393: 8D 37 0E   STA  $0E37&lt;br /&gt;
; $0E66 = $0E65&lt;br /&gt;
1396: AD 65 0E   LDA  $0E65&lt;br /&gt;
1399: 8D 66 0E   STA  $0E66&lt;br /&gt;
; $0E65 = $0E64&lt;br /&gt;
139C: AD 64 0E   LDA  $0E64&lt;br /&gt;
139F: 8D 65 0E   STA  $0E65&lt;br /&gt;
; $0E64 = $0E63&lt;br /&gt;
13A2: AD 63 0E   LDA  $0E63&lt;br /&gt;
13A5: 8D 64 0E   STA  $0E64&lt;br /&gt;
; $0E63 = $0E37&lt;br /&gt;
13A8: AD 37 0E   LDA  $0E37&lt;br /&gt;
13AB: 8D 63 0E   STA  $0E63&lt;br /&gt;
13AE: 60         RTS&lt;br /&gt;
;end Subroutine 138C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13AF&lt;br /&gt;
; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
; JSR from 1306 only&lt;br /&gt;
; $0E63 = $0E23&lt;br /&gt;
13AF: AE 23 0E   LDX  $0E23&lt;br /&gt;
13B2: 8E 63 0E   STX  $0E63&lt;br /&gt;
; $0E64 = $0E23 + 1&lt;br /&gt;
13B5: E8         INX&lt;br /&gt;
13B6: 8E 64 0E   STX  $0E64&lt;br /&gt;
; $0E65 = $0E23 + 2&lt;br /&gt;
13B9: E8         INX&lt;br /&gt;
13BA: 8E 65 0E   STX  $0E65&lt;br /&gt;
; $0E66 = $0E23 + 3&lt;br /&gt;
13BD: E8         INX&lt;br /&gt;
13BE: 8E 66 0E   STX  $0E66&lt;br /&gt;
; initialize loop counter $0E1D = $0E23 &lt;br /&gt;
13C1: AD 23 0E   LDA  $0E23&lt;br /&gt;
13C4: 8D 1D 0E   STA  $0E1D&lt;br /&gt;
; loop $0E23 times&lt;br /&gt;
13C7: 20 8C 13   JSR  $138C ; $0E37 = $0E66 + $0E63, $0E66 = $0E65, $0E65 = $0E64, $0E64 = $0E63, $0E63 = $0E37&lt;br /&gt;
13CA: CE 1D 0E   DEC  $0E1D&lt;br /&gt;
13CD: D0 F8      BNE  $13C7&lt;br /&gt;
13CF: 60         RTS&lt;br /&gt;
;end Subroutine 13AF&lt;br /&gt;
&lt;br /&gt;
;Subroutine 13D0&lt;br /&gt;
;Entry from 11BD, 11FA, 1251, 12AC, 1DE0, 1E17,  &lt;br /&gt;
13D0: E0 00      CPX  #$00&lt;br /&gt;
13D2: F0 0C      BEQ  $13E0&lt;br /&gt;
13D4: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13D7: 2D 39 0E   AND  $0E39&lt;br /&gt;
13DA: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13DD: 4C 74 14   JMP  $1474&lt;br /&gt;
; entry from $13D2&lt;br /&gt;
13E0: 20 1D 16   JSR  $161D&lt;br /&gt;
13E3: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
13E6: A9 00      LDA  #$00&lt;br /&gt;
13E8: 8D 50 0E   STA  $0E50&lt;br /&gt;
13EB: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
13EE: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
13F1: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
13F4: 29 01      AND  #$01&lt;br /&gt;
13F6: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
13F9: A9 09      LDA  #$09&lt;br /&gt;
13FB: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
13FE: AC 23 0E   LDY  $0E23&lt;br /&gt;
1401: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1404: 38         SEC&lt;br /&gt;
1405: E9 26      SBC  #$26&lt;br /&gt;
1407: 8D 0E D0   STA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
140A: B9 08 90   LDA  $9008,Y&lt;br /&gt;
140D: 38         SEC&lt;br /&gt;
140E: E9 40      SBC  #$40&lt;br /&gt;
1410: 8D 0F D0   STA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1413: B9 00 90   LDA  $9000,Y&lt;br /&gt;
1416: 29 01      AND  #$01&lt;br /&gt;
1418: 18         CLC&lt;br /&gt;
1419: 69 35      ADC  #$35&lt;br /&gt;
141B: 8D FF 07   STA  $07FF&lt;br /&gt;
141E: AD 23 0E   LDA  $0E23&lt;br /&gt;
1421: D0 06      BNE  $1429&lt;br /&gt;
1423: 20 64 13   JSR  $1364&lt;br /&gt;
1426: 4C 69 14   JMP  $1469&lt;br /&gt;
1429: AD 23 0E   LDA  $0E23&lt;br /&gt;
142C: CD 2A 0E   CMP  $0E2A ; boss location &lt;br /&gt;
142F: D0 10      BNE  $1441&lt;br /&gt;
1431: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1434: F0 0B      BEQ  $1441&lt;br /&gt;
1436: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
1439: D0 06      BNE  $1441&lt;br /&gt;
143B: 20 81 13   JSR  $1381&lt;br /&gt;
143E: 4C 57 14   JMP  $1457&lt;br /&gt;
1441: AC 23 0E   LDY  $0E23&lt;br /&gt;
1444: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1447: F0 28      BEQ  $1471&lt;br /&gt;
1449: 29 20      AND  #$20&lt;br /&gt;
144B: D0 0A      BNE  $1457&lt;br /&gt;
144D: A9 37      LDA  #$37&lt;br /&gt;
144F: 8D FF 07   STA  $07FF&lt;br /&gt;
1452: A9 02      LDA  #$02&lt;br /&gt;
1454: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1457: AD 0E D0   LDA  $D00E  ; X Coord MOB 7 (lower 8)&lt;br /&gt;
145A: 18         CLC&lt;br /&gt;
145B: 69 12      ADC  #$12&lt;br /&gt;
145D: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1460: AD 0F D0   LDA  $D00F ; Sprite #7 Y-coordinate&lt;br /&gt;
1463: 18         CLC&lt;br /&gt;
1464: 69 12      ADC  #$12&lt;br /&gt;
1466: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1469: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
146C: 09 80      ORA  #$80&lt;br /&gt;
146E: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1471: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1474: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
1477: 0A         ASL  A&lt;br /&gt;
1478: AA         TAX&lt;br /&gt;
1479: 60         RTS&lt;br /&gt;
;end Subroutine 13D0&lt;br /&gt;
&lt;br /&gt;
;begin GenerateMap()&lt;br /&gt;
;Orientation of screen objects per sector&lt;br /&gt;
; X-coord = 0x9000 + OR(0x9000, 0x0+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; Y-coord = 0x9000 + OR(0x9000, 0x8+(0x10*(SX-1))) + SY-1&lt;br /&gt;
; expected range is 0x80-0xFF&lt;br /&gt;
147A: A0 00      LDY  #$00&lt;br /&gt;
147C: AD 1B D4   LDA  $D41B       ; fetch a random number&lt;br /&gt;
147F: CD 37 0E   CMP  $0E37       ; that is different than the prior&lt;br /&gt;
1482: F0 F8      BEQ  $147C       ; else try again&lt;br /&gt;
1484: 8D 37 0E   STA  $0E37       ; then save new random number value&lt;br /&gt;
1487: 09 80      ORA  #$80        ; set MSB (XY expanded sprites are far offset from graphic center)&lt;br /&gt;
1489: 99 00 90   STA  $9000,Y     &lt;br /&gt;
148C: C8         INY              ; increment y&lt;br /&gt;
148D: C0 80      CPY  #$80        ; loop #$80 times&lt;br /&gt;
148F: D0 EB      BNE  $147C&lt;br /&gt;
; place boss location&lt;br /&gt;
; fetch a random number with the first and fith bit not set and place it in $0E2A&lt;br /&gt;
1491: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1494: 29 77      AND  #$77        ; left, right nybble are the x and y&lt;br /&gt;
1496: F0 F9      BEQ  $1491       ; but, 0,0 is not allowed, try again&lt;br /&gt;
1498: 8D 2A 0E   STA  $0E2A       ; store the boss location here&lt;br /&gt;
; set 128 bytes to zero starting at $9080 - empty the asteroid map&lt;br /&gt;
149B: A0 00      LDY  #$00&lt;br /&gt;
149D: A9 00      LDA  #$00&lt;br /&gt;
149F: 99 80 90   STA  $9080,Y&lt;br /&gt;
14A2: C8         INY&lt;br /&gt;
14A3: C0 80      CPY  #$80&lt;br /&gt;
14A5: D0 F6      BNE  $149D&lt;br /&gt;
; place 34 asteroids on map, first 4 have generators&lt;br /&gt;
14A7: A0 00      LDY  #$00       &lt;br /&gt;
; loop on y&lt;br /&gt;
; place random number in x and $0E37, not equal $0E37, $0E2A, first and fith bit not set&lt;br /&gt;
14A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
14AC: CD 37 0E   CMP  $0E37       ; and check if the same as the prior one&lt;br /&gt;
14AF: F0 F8      BEQ  $14A9       ; and if so try again&lt;br /&gt;
14B1: 8D 37 0E   STA  $0E37       ; the store the new number here&lt;br /&gt;
14B4: 29 77      AND  #$77        ; make this number be nybbles of x and y&lt;br /&gt;
14B6: F0 F1      BEQ  $14A9       ; but if zero, then try again&lt;br /&gt;
14B8: CD 2A 0E   CMP  $0E2A       ; if it's also the boss location&lt;br /&gt;
14BB: F0 EC      BEQ  $14A9       ; then try again&lt;br /&gt;
14BD: AA         TAX              ; transfer random number to x&lt;br /&gt;
; fetch a new random position if this position is already taken by an astereoid&lt;br /&gt;
14BE: BD 80 90   LDA  $9080,X     ; If this cell is occupied&lt;br /&gt;
14C1: D0 E6      BNE  $14A9       ; then try again&lt;br /&gt;
; place #$3F at this position &lt;br /&gt;
14C3: A9 3F      LDA  #$3F        ; assign as an asteroid&lt;br /&gt;
14C5: 9D 80 90   STA  $9080,X     ; into this memory location&lt;br /&gt;
; if y &amp;lt; #$04 place astereoid with generator&lt;br /&gt;
14C8: C0 04      CPY  #$04        ; but if it's not one of the first 4&lt;br /&gt;
14CA: B0 05      BCS  $14D1       ; this 3F is good enough&lt;br /&gt;
14CC: A9 BF      LDA  #$BF        ; otherwise it can be upgraded to a generator asteroid&lt;br /&gt;
14CE: 9D 80 90   STA  $9080,X     ; stored here&lt;br /&gt;
14D1: C8         INY              ; increment y&lt;br /&gt;
14D2: C0 21      CPY  #$21        ; is y == #$21&lt;br /&gt;
14D4: D0 D3      BNE  $14A9       ; and if not, do this again&lt;br /&gt;
14D6: 60         RTS&lt;br /&gt;
; end GenerateMap()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 14D7&lt;br /&gt;
14D7: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
14DA: D0 08      BNE  $14E4&lt;br /&gt;
14DC: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
14DF: D0 03      BNE  $14E4&lt;br /&gt;
14E1: 4C 35 15   JMP  $1535&lt;br /&gt;
14E4: CE 04 0E   DEC  $0E04&lt;br /&gt;
14E7: D0 4C      BNE  $1535&lt;br /&gt;
14E9: A9 28      LDA  #$28&lt;br /&gt;
14EB: 8D 04 0E   STA  $0E04&lt;br /&gt;
14EE: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
14F1: 29 01      AND  #$01&lt;br /&gt;
14F3: D0 17      BNE  $150C&lt;br /&gt;
14F5: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
14F8: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
14FB: F0 19      BEQ  $1516&lt;br /&gt;
14FD: B0 0D      BCS  $150C&lt;br /&gt;
14FF: AD 08 0E   LDA  $0E08&lt;br /&gt;
1502: C9 09      CMP  #$09&lt;br /&gt;
1504: F0 10      BEQ  $1516&lt;br /&gt;
1506: EE 08 0E   INC  $0E08&lt;br /&gt;
1509: 4C 16 15   JMP  $1516&lt;br /&gt;
150C: AD 08 0E   LDA  $0E08&lt;br /&gt;
150F: C9 F7      CMP  #$F7&lt;br /&gt;
1511: F0 03      BEQ  $1516&lt;br /&gt;
1513: CE 08 0E   DEC  $0E08&lt;br /&gt;
1516: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1519: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
151C: F0 17      BEQ  $1535&lt;br /&gt;
151E: B0 0B      BCS  $152B&lt;br /&gt;
1520: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1523: C9 09      CMP  #$09&lt;br /&gt;
1525: F0 0E      BEQ  $1535&lt;br /&gt;
1527: EE 0F 0E   INC  $0E0F&lt;br /&gt;
152A: 60         RTS           ;Not the end of subroutine&lt;br /&gt;
152B: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
152E: C9 F7      CMP  #$F7&lt;br /&gt;
1530: F0 03      BEQ  $1535&lt;br /&gt;
1532: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1535: 60         RTS&lt;br /&gt;
;end Subroutine 14D7&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1536&lt;br /&gt;
; fire&lt;br /&gt;
1536: AD 07 0E   LDA  $0E07&lt;br /&gt;
1539: C9 FF      CMP  #$FF&lt;br /&gt;
153B: D0 41      BNE  $157E&lt;br /&gt;
153D: AD 5F 0E   LDA  $0E5F&lt;br /&gt;
1540: D0 05      BNE  $1547&lt;br /&gt;
1542: A9 40      LDA  #$40&lt;br /&gt;
1544: 8D 60 0E   STA  $0E60&lt;br /&gt;
1547: 20 A0 1B   JSR  $1BA0&lt;br /&gt;
154A: AD 06 0E   LDA  $0E06&lt;br /&gt;
154D: 8D 07 0E   STA  $0E07&lt;br /&gt;
1550: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1553: 8D 02 D0   STA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
1556: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1559: 8D 03 D0   STA  $D003 ; y Coord MOB 1&lt;br /&gt;
155C: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
155F: 29 01      AND  #$01&lt;br /&gt;
1561: F0 0B      BEQ  $156E&lt;br /&gt;
1563: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1566: 09 02      ORA  #$02&lt;br /&gt;
1568: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
156B: 4C 76 15   JMP  $1576&lt;br /&gt;
156E: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1571: 29 FD      AND  #$FD&lt;br /&gt;
1573: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1576: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1579: 09 02      ORA  #$02&lt;br /&gt;
157B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
157E: 60         RTS&lt;br /&gt;
;End Subroutine 1536&lt;br /&gt;
&lt;br /&gt;
;Subroutine 157F&lt;br /&gt;
157F: AD 07 0E   LDA  $0E07&lt;br /&gt;
1582: 0A         ASL  A&lt;br /&gt;
1583: 0A         ASL  A&lt;br /&gt;
1584: A8         TAY&lt;br /&gt;
1585: A2 00      LDX  #$00&lt;br /&gt;
1587: B9 40 0F   LDA  $0F40,Y&lt;br /&gt;
158A: F0 28      BEQ  $15B4&lt;br /&gt;
158C: C9 01      CMP  #$01&lt;br /&gt;
158E: D0 06      BNE  $1596&lt;br /&gt;
1590: 20 EB 15   JSR  $15EB&lt;br /&gt;
1593: 4C B4 15   JMP  $15B4&lt;br /&gt;
1596: C9 02      CMP  #$02&lt;br /&gt;
1598: D0 06      BNE  $15A0&lt;br /&gt;
159A: 20 DD 15   JSR  $15DD&lt;br /&gt;
159D: 4C B4 15   JMP  $15B4&lt;br /&gt;
15A0: C9 03      CMP  #$03&lt;br /&gt;
15A2: D0 06      BNE  $15AA&lt;br /&gt;
15A4: 20 BB 15   JSR  $15BB&lt;br /&gt;
15A7: 4C B4 15   JMP  $15B4&lt;br /&gt;
15AA: C9 04      CMP  #$04&lt;br /&gt;
15AC: D0 06      BNE  $15B4&lt;br /&gt;
15AE: 20 0F 16   JSR  $160F&lt;br /&gt;
15B1: 4C B4 15   JMP  $15B4&lt;br /&gt;
15B4: C8         INY&lt;br /&gt;
15B5: E8         INX&lt;br /&gt;
15B6: E0 04      CPX  #$04&lt;br /&gt;
15B8: D0 CD      BNE  $1587&lt;br /&gt;
15BA: 60         RTS&lt;br /&gt;
;End Subroutine 157F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15BB&lt;br /&gt;
15BB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15BE: 29 02      AND  #$02&lt;br /&gt;
15C0: D0 0A      BNE  $15CC&lt;br /&gt;
15C2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15C5: C9 18      CMP  #$18&lt;br /&gt;
15C7: D0 03      BNE  $15CC&lt;br /&gt;
15C9: 20 1D 16   JSR  $161D&lt;br /&gt;
15CC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15CF: D0 08      BNE  $15D9&lt;br /&gt;
15D1: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D4: 29 FD      AND  #$FD&lt;br /&gt;
15D6: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15D9: CE 02 D0   DEC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15DC: 60         RTS&lt;br /&gt;
;End Subroutine 15BB&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15DD&lt;br /&gt;
15DD: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
15E0: C9 F4      CMP  #$F4&lt;br /&gt;
15E2: D0 03      BNE  $15E7&lt;br /&gt;
15E4: 20 1D 16   JSR  $161D&lt;br /&gt;
15E7: EE 03 D0   INC  $D003 ; y Coord MOB 1&lt;br /&gt;
15EA: 60         RTS&lt;br /&gt;
;End Subroutine 15DD&lt;br /&gt;
&lt;br /&gt;
;Subroutine 15EB&lt;br /&gt;
15EB: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
15EE: 29 02      AND  #$02&lt;br /&gt;
15F0: F0 0A      BEQ  $15FC&lt;br /&gt;
15F2: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15F5: C9 50      CMP  #$50&lt;br /&gt;
15F7: D0 03      BNE  $15FC&lt;br /&gt;
15F9: 20 1D 16   JSR  $161D&lt;br /&gt;
15FC: AD 02 D0   LDA  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
15FF: C9 FF      CMP  #$FF&lt;br /&gt;
1601: D0 08      BNE  $160B&lt;br /&gt;
1603: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1606: 09 02      ORA  #$02&lt;br /&gt;
1608: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
160B: EE 02 D0   INC  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
160E: 60         RTS&lt;br /&gt;
;end Subroutine 15EB&lt;br /&gt;
&lt;br /&gt;
;Entry from 15AE&lt;br /&gt;
160F: AD 03 D0   LDA  $D003 ; y Coord MOB 1&lt;br /&gt;
1612: C9 38      CMP  #$38&lt;br /&gt;
1614: D0 03      BNE  $1619&lt;br /&gt;
1616: 20 1D 16   JSR  $161D&lt;br /&gt;
1619: CE 03 D0   DEC  $D003 ; y Coord MOB 1&lt;br /&gt;
161C: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;Subroutine 161D&lt;br /&gt;
;Entry from 13E0, 15C9, 15E4, 15F9, 1616, 1761, 1777, 19D1&lt;br /&gt;
161D: A9 FF      LDA  #$FF&lt;br /&gt;
161F: 8D 07 0E   STA  $0E07&lt;br /&gt;
1622: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1625: 29 FD      AND  #$FD&lt;br /&gt;
1627: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
162A: 60         RTS&lt;br /&gt;
;end Subroutine 161D&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 162B&lt;br /&gt;
;Entry from 1C22&lt;br /&gt;
162B: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
162E: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1631: F0 12      BEQ  $1645&lt;br /&gt;
1633: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1636: CD 23 0E   CMP  $0E23&lt;br /&gt;
1639: D0 0A      BNE  $1645&lt;br /&gt;
163B: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
163E: 0D 38 0E   ORA  $0E38&lt;br /&gt;
1641: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1644: 60         RTS         ; Inside the subroutine&lt;br /&gt;
1645: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1648: 2D 39 0E   AND  $0E39&lt;br /&gt;
164B: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
164E: 60         RTS&lt;br /&gt;
;End Subroutine 162B&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
;Entry from 1C1F&lt;br /&gt;
164F: DE 3A 0E   DEC  $0E3A,X&lt;br /&gt;
1652: F0 03      BEQ  $1657&lt;br /&gt;
1654: 4C FB 16   JMP  $16FB&lt;br /&gt;
1657: A9 0A      LDA  #$0A&lt;br /&gt;
1659: 9D 3A 0E   STA  $0E3A,X&lt;br /&gt;
165C: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
165F: CD 23 0E   CMP  $0E23&lt;br /&gt;
1662: F0 27      BEQ  $168B&lt;br /&gt;
1664: AD 23 0E   LDA  $0E23&lt;br /&gt;
1667: 29 07      AND  #$07&lt;br /&gt;
1669: 8D 1F 0E   STA  $0E1F&lt;br /&gt;
166C: AD 23 0E   LDA  $0E23&lt;br /&gt;
166F: 29 70      AND  #$70&lt;br /&gt;
1671: 4A         LSR  A&lt;br /&gt;
1672: 4A         LSR  A&lt;br /&gt;
1673: 4A         LSR  A&lt;br /&gt;
1674: 4A         LSR  A&lt;br /&gt;
1675: 8D 20 0E   STA  $0E20&lt;br /&gt;
1678: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
167B: 29 70      AND  #$70&lt;br /&gt;
167D: 4A         LSR  A&lt;br /&gt;
167E: 4A         LSR  A&lt;br /&gt;
167F: 4A         LSR  A&lt;br /&gt;
1680: 4A         LSR  A&lt;br /&gt;
1681: A8         TAY&lt;br /&gt;
1682: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1685: 29 07      AND  #$07&lt;br /&gt;
1687: AA         TAX&lt;br /&gt;
1688: 4C B6 16   JMP  $16B6&lt;br /&gt;
168B: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
168E: 29 01      AND  #$01&lt;br /&gt;
1690: AE 00 D0   LDX  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1693: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1696: 20 B6 12   JSR  $12B6&lt;br /&gt;
1699: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
169C: 8C 20 0E   STY  $0E20&lt;br /&gt;
169F: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16A2: 8A         TXA&lt;br /&gt;
16A3: 0A         ASL  A&lt;br /&gt;
16A4: AA         TAX&lt;br /&gt;
16A5: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
16A8: A8         TAY&lt;br /&gt;
16A9: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
16AC: AA         TAX&lt;br /&gt;
16AD: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
16B0: 2D 38 0E   AND  $0E38&lt;br /&gt;
16B3: 20 B6 12   JSR  $12B6&lt;br /&gt;
16B6: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
16B9: F0 1F      BEQ  $16DA&lt;br /&gt;
16BB: B0 10      BCS  $16CD&lt;br /&gt;
16BD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16C0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16C3: C9 09      CMP  #$09&lt;br /&gt;
16C5: F0 13      BEQ  $16DA&lt;br /&gt;
16C7: FE 08 0E   INC  $0E08,X&lt;br /&gt;
16CA: 4C DA 16   JMP  $16DA&lt;br /&gt;
16CD: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16D0: BD 08 0E   LDA  $0E08,X&lt;br /&gt;
16D3: C9 F7      CMP  #$F7&lt;br /&gt;
16D5: F0 03      BEQ  $16DA&lt;br /&gt;
16D7: DE 08 0E   DEC  $0E08,X&lt;br /&gt;
16DA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
16DD: CC 20 0E   CPY  $0E20&lt;br /&gt;
16E0: F0 19      BEQ  $16FB&lt;br /&gt;
16E2: B0 0D      BCS  $16F1&lt;br /&gt;
16E4: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16E7: C9 09      CMP  #$09&lt;br /&gt;
16E9: F0 10      BEQ  $16FB&lt;br /&gt;
16EB: FE 0F 0E   INC  $0E0F,X&lt;br /&gt;
16EE: 4C FB 16   JMP  $16FB&lt;br /&gt;
16F1: BD 0F 0E   LDA  $0E0F,X&lt;br /&gt;
16F4: C9 F7      CMP  #$F7&lt;br /&gt;
16F6: F0 03      BEQ  $16FB&lt;br /&gt;
16F8: DE 0F 0E   DEC  $0E0F,X&lt;br /&gt;
16FB: 60         RTS&lt;br /&gt;
;Subroutine 164F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 16FC&lt;br /&gt;
;Entry from 1C25&lt;br /&gt;
16FC: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
16FF: D0 7C      BNE  $177D&lt;br /&gt;
1701: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1704: F0 77      BEQ  $177D&lt;br /&gt;
1706: AD 07 0E   LDA  $0E07&lt;br /&gt;
1709: 30 72      BMI  $177D&lt;br /&gt;
170B: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
170E: CD 23 0E   CMP  $0E23&lt;br /&gt;
1711: D0 6A      BNE  $177D&lt;br /&gt;
1713: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1716: 29 02      AND  #$02&lt;br /&gt;
1718: AE 02 D0   LDX  $D002 ; X Coord MOB 1 (lower 8)&lt;br /&gt;
171B: AC 03 D0   LDY  $D003 ; y Coord MOB 1&lt;br /&gt;
171E: 20 B6 12   JSR  $12B6&lt;br /&gt;
1721: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1724: 8C 20 0E   STY  $0E20&lt;br /&gt;
1727: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
172A: 8A         TXA&lt;br /&gt;
172B: 0A         ASL  A&lt;br /&gt;
172C: AA         TAX&lt;br /&gt;
172D: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1730: A8         TAY&lt;br /&gt;
1731: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1734: AA         TAX&lt;br /&gt;
1735: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1738: 2D 38 0E   AND  $0E38&lt;br /&gt;
173B: 20 B6 12   JSR  $12B6&lt;br /&gt;
173E: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
1741: D0 3A      BNE  $177D&lt;br /&gt;
1743: CC 20 0E   CPY  $0E20&lt;br /&gt;
1746: D0 35      BNE  $177D&lt;br /&gt;
1748: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
174B: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
174E: C9 01      CMP  #$01&lt;br /&gt;
1750: F0 18      BEQ  $176A&lt;br /&gt;
1752: A9 06      LDA  #$06&lt;br /&gt;
1754: 9D 41 0E   STA  $0E41,X&lt;br /&gt;
1757: A9 0A      LDA  #$0A&lt;br /&gt;
1759: 9D 51 0E   STA  $0E51,X&lt;br /&gt;
175C: A9 11      LDA  #$11&lt;br /&gt;
175E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1761: 20 1D 16   JSR  $161D&lt;br /&gt;
1764: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1767: 4C 7A 17   JMP  $177A&lt;br /&gt;
176A: A9 40      LDA  #$40&lt;br /&gt;
176C: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
176F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1772: A9 5F      LDA  #$5F&lt;br /&gt;
1774: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1777: 4C 1D 16   JMP  $161D&lt;br /&gt;
177A: DE 57 0E   DEC  $0E57,X&lt;br /&gt;
177D: 60         RTS&lt;br /&gt;
;End Subroutine 16FC&lt;br /&gt;
&lt;br /&gt;
;Subroutine 177E&lt;br /&gt;
177E: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1781: BD 41 0E   LDA  $0E41,X  ;Get affected MOB X number&lt;br /&gt;
1784: F0 11      BEQ  $1797&lt;br /&gt;
1786: DE 41 0E   DEC  $0E41,X&lt;br /&gt;
1789: D0 07      BNE  $1792    ;TurnYellowMOBX()&lt;br /&gt;
178B: BD 51 0E   LDA  $0E51,X&lt;br /&gt;
178E: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1791: 60         RTS&lt;br /&gt;
;TurnYellowMOBX()&lt;br /&gt;
1792: A9 07      LDA  #$07&lt;br /&gt;
1794: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
1797: 60         RTS&lt;br /&gt;
;End Subroutine 177E&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1798&lt;br /&gt;
1798: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
179B: F0 60      BEQ  $17FD&lt;br /&gt;
179D: AD 2C 0E   LDA  $0E2C&lt;br /&gt;
17A0: F0 07      BEQ  $17A9&lt;br /&gt;
17A2: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
17A5: C9 01      CMP  #$01&lt;br /&gt;
17A7: D0 54      BNE  $17FD&lt;br /&gt;
17A9: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
17AC: D0 4F      BNE  $17FD&lt;br /&gt;
17AE: A2 01      LDX  #$01&lt;br /&gt;
17B0: E8         INX&lt;br /&gt;
17B1: E0 07      CPX  #$07&lt;br /&gt;
17B3: F0 48      BEQ  $17FD&lt;br /&gt;
17B5: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
17B8: D0 F6      BNE  $17B0&lt;br /&gt;
17BA: A9 04      LDA  #$04&lt;br /&gt;
17BC: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
17BF: AD 2A 0E   LDA  $0E2A       ; boss location&lt;br /&gt;
17C2: 9D 23 0E   STA  $0E23,X&lt;br /&gt;
17C5: A9 00      LDA  #$00&lt;br /&gt;
17C7: 9D 08 0E   STA  $0E08,X&lt;br /&gt;
17CA: 9D 0F 0E   STA  $0E0F,X&lt;br /&gt;
17CD: A9 0A      LDA  #$0A&lt;br /&gt;
17CF: 9D 27 D0   STA  $D027,X  ; MOB 0 Color&lt;br /&gt;
17D2: BD 77 0E   LDA  $0E77,X&lt;br /&gt;
17D5: 2D 10 D0   AND  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17D8: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
17DB: A9 80      LDA  #$80&lt;br /&gt;
17DD: 8D 60 0E   STA  $0E60&lt;br /&gt;
17E0: 8A         TXA&lt;br /&gt;
17E1: 0A         ASL  A&lt;br /&gt;
17E2: AA         TAX&lt;br /&gt;
17E3: A9 01      LDA  #$01&lt;br /&gt;
17E5: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
17E8: AC 2A 0E   LDY  $0E2A       ; boss location&lt;br /&gt;
17EB: B9 00 90   LDA  $9000,Y&lt;br /&gt;
17EE: 38         SEC&lt;br /&gt;
17EF: E9 15      SBC  #$15&lt;br /&gt;
17F1: 9D 00 D0   STA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
17F4: B9 08 90   LDA  $9008,Y&lt;br /&gt;
17F7: 38         SEC&lt;br /&gt;
17F8: E9 2C      SBC  #$2C&lt;br /&gt;
17FA: 9D 01 D0   STA  $D001,X ; y Coord MOB 0&lt;br /&gt;
17FD: 60         RTS&lt;br /&gt;
;End Subroutine 1798&lt;br /&gt;
&lt;br /&gt;
;Subroutine 17FE&lt;br /&gt;
17FE: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1801: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1804: F0 54      BEQ  $185A&lt;br /&gt;
1806: DE 49 0E   DEC  $0E49,X&lt;br /&gt;
1809: D0 4C      BNE  $1857&lt;br /&gt;
180B: E0 00      CPX  #$00&lt;br /&gt;
180D: F0 0C      BEQ  $181B&lt;br /&gt;
180F: E0 07      CPX  #$07&lt;br /&gt;
1811: F0 21      BEQ  $1834&lt;br /&gt;
1813: A9 00      LDA  #$00&lt;br /&gt;
1815: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1818: 4C 57 18   JMP  $1857&lt;br /&gt;
181B: AD 35 0E   LDA  $0E35&lt;br /&gt;
181E: F0 0E      BEQ  $182E&lt;br /&gt;
1820: A9 7F      LDA  #$7F&lt;br /&gt;
1822: 8D 35 0E   STA  $0E35&lt;br /&gt;
1825: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
1828: 29 FE      AND  #$FE&lt;br /&gt;
182A: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
182D: 60         RTS&lt;br /&gt;
182E: A9 01      LDA  #$01&lt;br /&gt;
1830: 8D 27 D0   STA  $D027  ; MOB 0 Color&lt;br /&gt;
1833: 60         RTS&lt;br /&gt;
1834: AC 23 0E   LDY  $0E23&lt;br /&gt;
1837: B9 80 90   LDA  $9080,Y&lt;br /&gt;
183A: F0 0B      BEQ  $1847&lt;br /&gt;
183C: A9 37      LDA  #$37&lt;br /&gt;
183E: 8D FF 07   STA  $07FF&lt;br /&gt;
1841: A9 02      LDA  #$02&lt;br /&gt;
1843: 8D 2E D0   STA  $D02E ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1846: 60         RTS&lt;br /&gt;
1847: AD 15 D0   LDA  $D015 ; Sprite enable register&lt;br /&gt;
184A: 29 7F      AND  #$7F&lt;br /&gt;
184C: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
184F: A9 00      LDA  #$00&lt;br /&gt;
1851: 8D 2D 0E   STA  $0E2D&lt;br /&gt;
1854: 8D 2E 0E   STA  $0E2E&lt;br /&gt;
1857: FE 27 D0   INC  $D027,X  ; MOB 0 Color&lt;br /&gt;
185A: 60         RTS&lt;br /&gt;
;End Subroutine 17FE&lt;br /&gt;
&lt;br /&gt;
;Subroutine 185B&lt;br /&gt;
185B: AD 35 0E   LDA  $0E35&lt;br /&gt;
185E: D0 67      BNE  $18C7&lt;br /&gt;
1860: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1863: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1866: D0 5F      BNE  $18C7&lt;br /&gt;
1868: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
186B: F0 5A      BEQ  $18C7&lt;br /&gt;
186D: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1870: CD 23 0E   CMP  $0E23&lt;br /&gt;
1873: D0 52      BNE  $18C7&lt;br /&gt;
1875: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1878: 29 01      AND  #$01&lt;br /&gt;
187A: AE 00 D0   LDX  $D000   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
187D: AC 01 D0   LDY  $D001 ; y Coord MOB 0&lt;br /&gt;
1880: 20 B6 12   JSR  $12B6&lt;br /&gt;
1883: 8E 1F 0E   STX  $0E1F&lt;br /&gt;
1886: 8C 20 0E   STY  $0E20&lt;br /&gt;
1889: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
188C: 8A         TXA&lt;br /&gt;
188D: 0A         ASL  A&lt;br /&gt;
188E: AA         TAX&lt;br /&gt;
188F: BD 01 D0   LDA  $D001,X ; y Coord MOB 0&lt;br /&gt;
1892: A8         TAY&lt;br /&gt;
1893: BD 00 D0   LDA  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1896: AA         TAX&lt;br /&gt;
1897: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
189A: 2D 38 0E   AND  $0E38&lt;br /&gt;
189D: 20 B6 12   JSR  $12B6&lt;br /&gt;
18A0: EC 1F 0E   CPX  $0E1F&lt;br /&gt;
18A3: D0 22      BNE  $18C7&lt;br /&gt;
18A5: CC 20 0E   CPY  $0E20&lt;br /&gt;
18A8: D0 1D      BNE  $18C7&lt;br /&gt;
18AA: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
18AD: A9 01      LDA  #$01&lt;br /&gt;
18AF: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
18B2: A9 40      LDA  #$40&lt;br /&gt;
18B4: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
18B7: 8D 61 0E   STA  $0E61&lt;br /&gt;
18BA: 8D 49 0E   STA  $0E49&lt;br /&gt;
18BD: A9 32      LDA  #$32  ;Missle hit -500, verified&lt;br /&gt;
18BF: 20 B9 1B   JSR  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
18C2: A9 01      LDA  #$01&lt;br /&gt;
18C4: 8D 51 0E   STA  $0E51&lt;br /&gt;
18C7: 60         RTS&lt;br /&gt;
;End Subroutine 185B&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
18C8: AD 35 0E   LDA  $0E35&lt;br /&gt;
18CB: F0 05      BEQ  $18D2&lt;br /&gt;
18CD: 30 03      BMI  $18D2&lt;br /&gt;
18CF: CE 35 0E   DEC  $0E35&lt;br /&gt;
18D2: 60         RTS&lt;br /&gt;
;Subroutine 18C8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 18D3&lt;br /&gt;
18D3: A9 0A      LDA  #$0A&lt;br /&gt;
18D5: 8D 21 0E   STA  $0E21&lt;br /&gt;
18D8: A9 06      LDA  #$06&lt;br /&gt;
18DA: 8D 22 0E   STA  $0E22&lt;br /&gt;
18DD: AC 23 0E   LDY  $0E23&lt;br /&gt;
18E0: B9 80 90   LDA  $9080,Y&lt;br /&gt;
18E3: D0 0F      BNE  $18F4&lt;br /&gt;
18E5: AD 23 0E   LDA  $0E23&lt;br /&gt;
18E8: F0 0A      BEQ  $18F4&lt;br /&gt;
18EA: CD 2A 0E   CMP  $0E2A        ; boss location&lt;br /&gt;
18ED: D0 5D      BNE  $194C&lt;br /&gt;
18EF: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
18F2: F0 58      BEQ  $194C&lt;br /&gt;
18F4: AD FF 07   LDA  $07FF&lt;br /&gt;
18F7: C9 37      CMP  #$37&lt;br /&gt;
18F9: F0 11      BEQ  $190C&lt;br /&gt;
18FB: AD FF 07   LDA  $07FF&lt;br /&gt;
18FE: C9 34      CMP  #$34&lt;br /&gt;
1900: F0 0A      BEQ  $190C&lt;br /&gt;
1902: A9 12      LDA  #$12&lt;br /&gt;
1904: 8D 21 0E   STA  $0E21&lt;br /&gt;
1907: A9 10      LDA  #$10&lt;br /&gt;
1909: 8D 22 0E   STA  $0E22&lt;br /&gt;
190C: AD 1E 0E   LDA  $0E1E&lt;br /&gt;
190F: 0A         ASL  A&lt;br /&gt;
1910: AA         TAX&lt;br /&gt;
1911: AD 10 D0   LDA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1914: 2D 38 0E   AND  $0E38&lt;br /&gt;
1917: D0 33      BNE  $194C&lt;br /&gt;
1919: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
191C: 38         SEC&lt;br /&gt;
191D: ED 21 0E   SBC  $0E21&lt;br /&gt;
1920: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
1923: B0 27      BCS  $194C&lt;br /&gt;
1925: AD 2D 0E   LDA  $0E2D&lt;br /&gt;
1928: 18         CLC&lt;br /&gt;
1929: 6D 21 0E   ADC  $0E21&lt;br /&gt;
192C: DD 00 D0   CMP  $D000,X   ; X Coord MOB 0 (lower 8)&lt;br /&gt;
192F: 90 1B      BCC  $194C&lt;br /&gt;
1931: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1934: 38         SEC&lt;br /&gt;
1935: ED 22 0E   SBC  $0E22&lt;br /&gt;
1938: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
193B: B0 0F      BCS  $194C&lt;br /&gt;
193D: AD 2E 0E   LDA  $0E2E&lt;br /&gt;
1940: 18         CLC&lt;br /&gt;
1941: 6D 22 0E   ADC  $0E22&lt;br /&gt;
1944: DD 01 D0   CMP  $D001,X ; y Coord MOB 0&lt;br /&gt;
1947: 90 03      BCC  $194C&lt;br /&gt;
1949: A9 00      LDA  #$00&lt;br /&gt;
194B: 60         RTS&lt;br /&gt;
194C: A9 01      LDA  #$01&lt;br /&gt;
194E: 60         RTS&lt;br /&gt;
;End Subroutine 18D3&lt;br /&gt;
&lt;br /&gt;
;Subroutine 194F&lt;br /&gt;
194F: AD 35 0E   LDA  $0E35&lt;br /&gt;
1952: D0 63      BNE  $19B7&lt;br /&gt;
1954: 20 D3 18   JSR  $18D3&lt;br /&gt;
1957: D0 5E      BNE  $19B7&lt;br /&gt;
1959: AD 23 0E   LDA  $0E23&lt;br /&gt;
195C: F0 19      BEQ  $1977&lt;br /&gt;
195E: AD 49 0E   LDA  $0E49&lt;br /&gt;
1961: 29 03      AND  #$03&lt;br /&gt;
1963: D0 52      BNE  $19B7&lt;br /&gt;
1965: A9 40      LDA  #$40&lt;br /&gt;
1967: 8D 49 0E   STA  $0E49&lt;br /&gt;
196A: 8D 61 0E   STA  $0E61&lt;br /&gt;
196D: A9 01      LDA  #$01&lt;br /&gt;
196F: 8D 51 0E   STA  $0E51&lt;br /&gt;
1972: A9 32      LDA  #$32  ;Asteroid collision -500, verified&lt;br /&gt;
1974: 4C B9 1B   JMP  $1BB9 ;SubractEnergyByA()&lt;br /&gt;
1977: 20 90 1A   JSR  $1A90&lt;br /&gt;
197A: AD 00 D0   LDA  $D000  ; X Coord MOB 0 (lower 8)&lt;br /&gt;
197D: CD 2D 0E   CMP  $0E2D&lt;br /&gt;
1980: D0 35      BNE  $19B7&lt;br /&gt;
1982: AD 01 D0   LDA  $D001 ; y Coord MOB 0&lt;br /&gt;
1985: CD 2E 0E   CMP  $0E2E&lt;br /&gt;
1988: D0 2D      BNE  $19B7&lt;br /&gt;
198A: AD 08 0E   LDA  $0E08&lt;br /&gt;
198D: D0 28      BNE  $19B7&lt;br /&gt;
198F: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1992: D0 23      BNE  $19B7&lt;br /&gt;
1994: AD 2B 0E   LDA  $0E2B&lt;br /&gt;
1997: D0 05      BNE  $199E&lt;br /&gt;
1999: A9 01      LDA  #$01&lt;br /&gt;
199B: 8D 36 0E   STA  $0E36&lt;br /&gt;
199E: AD 3A 0E   LDA  $0E3A&lt;br /&gt;
19A1: C9 01      CMP  #$01&lt;br /&gt;
19A3: D0 12      BNE  $19B7&lt;br /&gt;
19A5: AD 32 0E   LDA  $0E32&lt;br /&gt;
19A8: C9 FA      CMP  #$FA&lt;br /&gt;
19AA: F0 0B      BEQ  $19B7&lt;br /&gt;
19AC: A9 00      LDA  #$00&lt;br /&gt;
19AE: 8D 33 0E   STA  $0E33&lt;br /&gt;
19B1: EE 32 0E   INC  $0E32&lt;br /&gt;
19B4: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
19B7: 60         RTS&lt;br /&gt;
;End Subroutine 194F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 19B8&lt;br /&gt;
19B8: AD 07 0E   LDA  $0E07&lt;br /&gt;
19BB: 30 FA      BMI  $19B7&lt;br /&gt;
19BD: AD 48 0E   LDA  $0E48&lt;br /&gt;
19C0: D0 F5      BNE  $19B7&lt;br /&gt;
19C2: AD 50 0E   LDA  $0E50&lt;br /&gt;
19C5: D0 F0      BNE  $19B7&lt;br /&gt;
19C7: 20 D3 18   JSR  $18D3&lt;br /&gt;
19CA: D0 EB      BNE  $19B7&lt;br /&gt;
19CC: AD 23 0E   LDA  $0E23&lt;br /&gt;
19CF: F0 E6      BEQ  $19B7&lt;br /&gt;
19D1: 20 1D 16   JSR  $161D&lt;br /&gt;
19D4: AD 23 0E   LDA  $0E23&lt;br /&gt;
19D7: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
19DA: D0 17      BNE  $19F3&lt;br /&gt;
19DC: CE 2B 0E   DEC  $0E2B&lt;br /&gt;
19DF: D0 2D      BNE  $1A0E&lt;br /&gt;
19E1: A9 FF      LDA  #$FF&lt;br /&gt;
19E3: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19E6: A9 FF      LDA  #$FF&lt;br /&gt;
19E8: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19EB: A9 FF      LDA  #$FF&lt;br /&gt;
19ED: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
19F0: 4C 5A 1A   JMP  $1A5A&lt;br /&gt;
19F3: AC 23 0E   LDY  $0E23&lt;br /&gt;
19F6: B9 80 90   LDA  $9080,Y&lt;br /&gt;
19F9: 29 A0      AND  #$A0&lt;br /&gt;
19FB: F0 19      BEQ  $1A16&lt;br /&gt;
19FD: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A00: 29 1F      AND  #$1F&lt;br /&gt;
1A02: C9 01      CMP  #$01&lt;br /&gt;
1A04: F0 26      BEQ  $1A2C&lt;br /&gt;
1A06: 98         TYA&lt;br /&gt;
1A07: AA         TAX&lt;br /&gt;
1A08: DE 80 90   DEC  $9080,X   ;  Asteroid took a hit.  Reduce the hits&lt;br /&gt;
1A0B: 4C 16 1A   JMP  $1A16     ;&lt;br /&gt;
1A0E: A9 41      LDA  #$41&lt;br /&gt;
1A10: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A13: 4C 1B 1A   JMP  $1A1B     ;&lt;br /&gt;
1A16: A9 01      LDA  #$01&lt;br /&gt;
1A18: 20 0A 1C   JSR  $1C0A     ;&lt;br /&gt;
1A1B: A9 06      LDA  #$06&lt;br /&gt;
1A1D: 8D 48 0E   STA  $0E48&lt;br /&gt;
1A20: AD 2E D0   LDA  $D02E     ; Sprite #7 color (only bits #0-#3)&lt;br /&gt;
1A23: 8D 58 0E   STA  $0E58&lt;br /&gt;
1A26: A9 3C      LDA  #$3C&lt;br /&gt;
1A28: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A2B: 60         RTS&lt;br /&gt;
1A2C: A9 7D      LDA  #$7D&lt;br /&gt;
1A2E: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A31: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A34: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A37: 29 20      AND  #$20&lt;br /&gt;
1A39: F0 0C      BEQ  $1A47&lt;br /&gt;
1A3B: B9 80 90   LDA  $9080,Y&lt;br /&gt;
1A3E: 29 C0      AND  #$C0&lt;br /&gt;
1A40: F0 15      BEQ  $1A57&lt;br /&gt;
1A42: 09 1F      ORA  #$1F&lt;br /&gt;
1A44: 4C 57 1A   JMP  $1A57&lt;br /&gt;
1A47: CE 2C 0E   DEC  $0E2C&lt;br /&gt;
1A4A: 20 7F 1B   JSR  $1B7F&lt;br /&gt;
1A4D: A9 E1      LDA  #$E1&lt;br /&gt;
1A4F: 20 0A 1C   JSR  $1C0A&lt;br /&gt;
1A52: AC 23 0E   LDY  $0E23&lt;br /&gt;
1A55: A9 00      LDA  #$00&lt;br /&gt;
1A57: 99 80 90   STA  $9080,Y&lt;br /&gt;
1A5A: A9 40      LDA  #$40&lt;br /&gt;
1A5C: 8D 50 0E   STA  $0E50&lt;br /&gt;
1A5F: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A62: 60         RTS&lt;br /&gt;
;End Subroutine 19B8&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A63&lt;br /&gt;
1A63: 20 D3 18   JSR  $18D3&lt;br /&gt;
1A66: D0 27      BNE  $1A8F&lt;br /&gt;
1A68: AE 1E 0E   LDX  $0E1E&lt;br /&gt;
1A6B: BD 49 0E   LDA  $0E49,X&lt;br /&gt;
1A6E: D0 1F      BNE  $1A8F&lt;br /&gt;
1A70: BD 57 0E   LDA  $0E57,X&lt;br /&gt;
1A73: F0 1A      BEQ  $1A8F&lt;br /&gt;
1A75: BD 23 0E   LDA  $0E23,X&lt;br /&gt;
1A78: CD 2A 0E   CMP  $0E2A         ; boss location&lt;br /&gt;
1A7B: F0 12      BEQ  $1A8F&lt;br /&gt;
1A7D: CD 23 0E   CMP  $0E23&lt;br /&gt;
1A80: D0 0D      BNE  $1A8F&lt;br /&gt;
1A82: A9 01      LDA  #$01&lt;br /&gt;
1A84: 9D 57 0E   STA  $0E57,X&lt;br /&gt;
1A87: A9 40      LDA  #$40&lt;br /&gt;
1A89: 9D 49 0E   STA  $0E49,X&lt;br /&gt;
1A8C: 8D 61 0E   STA  $0E61&lt;br /&gt;
1A8F: 60         RTS&lt;br /&gt;
;End Subroutine 1A63&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1A90&lt;br /&gt;
1A90: CE 05 0E   DEC  $0E05&lt;br /&gt;
1A93: D0 25      BNE  $1ABA&lt;br /&gt;
1A95: AD 08 0E   LDA  $0E08&lt;br /&gt;
1A98: 30 08      BMI  $1AA2&lt;br /&gt;
1A9A: F0 09      BEQ  $1AA5&lt;br /&gt;
1A9C: CE 08 0E   DEC  $0E08&lt;br /&gt;
1A9F: 4C A5 1A   JMP  $1AA5&lt;br /&gt;
1AA2: EE 08 0E   INC  $0E08&lt;br /&gt;
1AA5: AD 0F 0E   LDA  $0E0F&lt;br /&gt;
1AA8: 30 08      BMI  $1AB2&lt;br /&gt;
1AAA: F0 09      BEQ  $1AB5&lt;br /&gt;
1AAC: CE 0F 0E   DEC  $0E0F&lt;br /&gt;
1AAF: 4C B5 1A   JMP  $1AB5&lt;br /&gt;
1AB2: EE 0F 0E   INC  $0E0F&lt;br /&gt;
1AB5: A9 0F      LDA  #$0F&lt;br /&gt;
1AB7: 8D 05 0E   STA  $0E05&lt;br /&gt;
1ABA: 60         RTS&lt;br /&gt;
;End Subroutine 1A90&lt;br /&gt;
&lt;br /&gt;
; SubroutineD: set cursor to row 0 and column y &lt;br /&gt;
SetPrintCursorXY(Y,0) ;Y is column, 0 is row&lt;br /&gt;
1ABB: A2 00      LDX  #$00&lt;br /&gt;
; SubroutineD1: Set Cursor to x and y&lt;br /&gt;
SetPrintCursorXY(Y,X) ;Y is column, X is row&lt;br /&gt;
1ABD: 18         CLC        &lt;br /&gt;
1ABE: 4C F0 FF   JMP  $FFF0 ; Kernal call: 'Plot' called with carry cleared: Set Cursor to row x and column y&lt;br /&gt;
; SubroutineD2: Set cursor to row 0 and column 0, calculate and display number of points?&lt;br /&gt;
SetPrintCursorXY(0,0) ;0 is column, 0 is row&lt;br /&gt;
1AC1: A0 00      LDY  #$00&lt;br /&gt;
1AC3: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column 0&lt;br /&gt;
1AC6: 38         SEC&lt;br /&gt;
1AC7: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1ACA: E9 10      SBC  #$10&lt;br /&gt;
1ACC: 8D 37 0E   STA  $0E37&lt;br /&gt;
1ACF: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AD2: E9 27      SBC  #$27&lt;br /&gt;
1AD4: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AD7: B0 03      BCS  $1ADC&lt;br /&gt;
1AD9: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1ADC: 38         SEC&lt;br /&gt;
1ADD: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AE0: E9 E8      SBC  #$E8&lt;br /&gt;
1AE2: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AE5: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AE8: E9 03      SBC  #$03&lt;br /&gt;
1AEA: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1AED: B0 03      BCS  $1AF2&lt;br /&gt;
1AEF: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1AF2: 38         SEC&lt;br /&gt;
1AF3: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1AF6: E9 64      SBC  #$64&lt;br /&gt;
1AF8: 8D 37 0E   STA  $0E37&lt;br /&gt;
1AFB: AD 30 0E   LDA  $0E30&lt;br /&gt;
1AFE: E9 00      SBC  #$00&lt;br /&gt;
1B00: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B03: B0 03      BCS  $1B08&lt;br /&gt;
1B05: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B08: 38         SEC&lt;br /&gt;
1B09: AD 2F 0E   LDA  $0E2F&lt;br /&gt;
1B0C: E9 0A      SBC  #$0A&lt;br /&gt;
1B0E: 8D 37 0E   STA  $0E37&lt;br /&gt;
1B11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B14: E9 00      SBC  #$00&lt;br /&gt;
1B16: 0D 37 0E   ORA  $0E37&lt;br /&gt;
1B19: B0 03      BCS  $1B1E&lt;br /&gt;
1B1B: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B1E: AE 2F 0E   LDX  $0E2F&lt;br /&gt;
1B21: AD 30 0E   LDA  $0E30&lt;br /&gt;
1B24: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B27: 4C 54 1C   JMP  $1C54 ;Main()&lt;br /&gt;
end SubroutineD, D1, D2&lt;br /&gt;
&lt;br /&gt;
;(Entry from 1B94,1EF5)&lt;br /&gt;
; print the number of lives on the screen&lt;br /&gt;
1B2A: A0 0C      LDY  #$0C&lt;br /&gt;
1B2C: 20 BB 1A   JSR  $1ABB ;SetPrintCursorXY(Y,0) ;Y is column, 0 is row.  set cursor to row 0 and column $0C - 'Life'&lt;br /&gt;
1B2F: AE 31 0E   LDX  $0E31  ;low byte&lt;br /&gt;
1B32: A9 00      LDA  #$00  ;High byte&lt;br /&gt;
1B34: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 19B4,1B97,1BB5) and JMP from1BD9&lt;br /&gt;
; set cursor to row 0 and column $15 - 'Energy'&lt;br /&gt;
1B37: A0 15      LDY  #$15 ; first digit of Energy number&lt;br /&gt;
1B39: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y&lt;br /&gt;
1B3C: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B3F: C9 64      CMP  #$64&lt;br /&gt;
1B41: B0 03      BCS  $1B46 ; if A&amp;gt;=100, then 1B46&lt;br /&gt;
1B43: 20 54 1C   JSR  $1C54 ;Main() &lt;br /&gt;
1B46: AD 32 0E   LDA  $0E32&lt;br /&gt;
1B49: C9 0A      CMP  #$0A&lt;br /&gt;
1B4B: B0 03      BCS  $1B50  ; if A&amp;gt;=10, then 1B50&lt;br /&gt;
1B4D: 20 54 1C   JSR  $1C54 ;Main()&lt;br /&gt;
1B50: AE 32 0E   LDX  $0E32&lt;br /&gt;
1B53: A9 00      LDA  #$00&lt;br /&gt;
1B55: 20 CD BD   JSR  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
1B58: AE 33 0E   LDX  $0E33 ; load the energy minor digit&lt;br /&gt;
1B5B: A9 00      LDA  #$00  ; high byte&lt;br /&gt;
1B5D: 4C CD BD   JMP  $BDCD ; output positive number in accu/X reg&lt;br /&gt;
&lt;br /&gt;
(Entry from 13E3, 1B9A, 1E2A)&lt;br /&gt;
; set cursor to row 0 and column $21 - 'Sector'&lt;br /&gt;
1B60: A0 21      LDY  #$21&lt;br /&gt;
1B62: 20 BB 1A   JSR  $1ABB ; set cursor to row 0 and column y &lt;br /&gt;
1B65: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B68: 29 0F      AND  #$0F&lt;br /&gt;
1B6A: 18         CLC&lt;br /&gt;
1B6B: 69 31      ADC  #$31&lt;br /&gt;
1B6D: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
1B70: AD 23 0E   LDA  $0E23&lt;br /&gt;
1B73: 4A         LSR  A&lt;br /&gt;
1B74: 4A         LSR  A&lt;br /&gt;
1B75: 4A         LSR  A&lt;br /&gt;
1B76: 4A         LSR  A&lt;br /&gt;
1B77: 29 0F      AND  #$0F&lt;br /&gt;
1B79: 18         CLC&lt;br /&gt;
1B7A: 69 31      ADC  #$31&lt;br /&gt;
1B7C: 4C D2 FF   JMP  $FFD2  ;CHROUT, Output a character&lt;br /&gt;
&lt;br /&gt;
; (Entry from 1A4A) JMP from 1B9D&lt;br /&gt;
; JSR from $1A4A, loop JMP from $189D&lt;br /&gt;
; check if $0E2C is smaller than 4&lt;br /&gt;
1B7F: A9 04      LDA  #$04&lt;br /&gt;
1B81: 38         SEC&lt;br /&gt;
1B82: ED 2C 0E   SBC  $0E2C&lt;br /&gt;
1B85: F0 09      BEQ  $1B90&lt;br /&gt;
1B87: AA         TAX&lt;br /&gt;
1B88: A9 98      LDA  #$98&lt;br /&gt;
1B8A: 9D 23 04   STA  $0423,X&lt;br /&gt;
1B8D: CA         DEX&lt;br /&gt;
1B8E: D0 F8      BNE  $1B88&lt;br /&gt;
1B90: 60         RTS&lt;br /&gt;
&lt;br /&gt;
;entry from 1DD3&lt;br /&gt;
1B91: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0 - legacy code&lt;br /&gt;
1B94: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C - legacy code&lt;br /&gt;
1B97: 20 37 1B   JSR  $1B37 ; energy&lt;br /&gt;
1B9A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1B9D: 4C 7F 1B   JMP  $1B7F&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BA0&lt;br /&gt;
Enters from 10C9, 1547&lt;br /&gt;
; lowers major energy by one and resets minor energy ???&lt;br /&gt;
1BA0: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BA3: D0 0D      BNE  $1BB2&lt;br /&gt;
1BA5: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BA8: F0 0E      BEQ  $1BB8&lt;br /&gt;
1BAA: CE 32 0E   DEC  $0E32&lt;br /&gt;
1BAD: A9 0A      LDA  #$0A&lt;br /&gt;
1BAF: 8D 33 0E   STA  $0E33&lt;br /&gt;
1BB2: CE 33 0E   DEC  $0E33&lt;br /&gt;
1BB5: 20 37 1B   JSR  $1B37 : energy&lt;br /&gt;
1BB8: 60         RTS&lt;br /&gt;
;End Subroutine 1BA0&lt;br /&gt;
&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
1BB9: 8D 37 0E   STA  $0E37 ; store away the energy cost&lt;br /&gt;
1BBC: AD 32 0E   LDA  $0E32 ; Load Energy major&lt;br /&gt;
1BBF: CD 37 0E   CMP  $0E37 ; If Energy major &amp;gt;= energy cost&lt;br /&gt;
1BC2: B0 0B      BCS  $1BCF ; then survivable&lt;br /&gt;
1BC4: A9 00      LDA  #$00  ; else&lt;br /&gt;
1BC6: 8D 32 0E   STA  $0E32 ; clear Energy major&lt;br /&gt;
1BC9: 8D 33 0E   STA  $0E33 ; and Energy minor&lt;br /&gt;
1BCC: 4C D9 1B   JMP  $1BD9 ; then go do something about it&lt;br /&gt;
1BCF: AD 32 0E   LDA  $0E32 ; survivable, load energy major&lt;br /&gt;
1BD2: 38         SEC        ; Set carry flag (not certain why 'borrow' flag is set TODO)&lt;br /&gt;
1BD3: ED 37 0E   SBC  $0E37 ; Subtract energy cost&lt;br /&gt;
1BD6: 8D 32 0E   STA  $0E32 ; store it back to energy major&lt;br /&gt;
1BD9: 4C 37 1B   JMP  $1B37 : energy, go to the huge 1ABB mess.&lt;br /&gt;
;SubractEnergyByA()&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1BDC&lt;br /&gt;
1BDC: AD 35 0E   LDA  $0E35&lt;br /&gt;
1BDF: D0 1C      BNE  $1BFD ; If 0E35==0, do nothing&lt;br /&gt;
1BE1: AD 33 0E   LDA  $0E33&lt;br /&gt;
1BE4: D0 17      BNE  $1BFD ; If 0E33==0, do nothing&lt;br /&gt;
1BE6: AD 32 0E   LDA  $0E32&lt;br /&gt;
1BE9: D0 12      BNE  $1BFD ; If 0E32==0, do nothing&lt;br /&gt;
1BEB: A9 FF      LDA  #$FF&lt;br /&gt;
1BED: 8D 35 0E   STA  $0E35 ; Otherwise, 0E35=0xFF&lt;br /&gt;
1BF0: A9 80      LDA  #$80&lt;br /&gt;
1BF2: 8D 49 0E   STA  $0E49 ; 0E49 = 0x80&lt;br /&gt;
1BF5: 8D 61 0E   STA  $0E61 ; 0E61 = 0x80&lt;br /&gt;
1BF8: A9 80      LDA  #$80  ; This is unnecessary&lt;br /&gt;
1BFA: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1BFD: 60         RTS&lt;br /&gt;
;End Subroutine 1BDC&lt;br /&gt;
&lt;br /&gt;
;Subroutine SetNoiseAllThree;&lt;br /&gt;
                            ;Disables all noise, assigns noise bit.&lt;br /&gt;
                            ;Entry from $1CDB, $1D4E, $1EC4&lt;br /&gt;
1BFE: A9 80      LDA  #$80&lt;br /&gt;
1C00: 8D 04 D4   STA  $D404 ; Voice 1 Wave control - Noise bit on&lt;br /&gt;
1C03: 8D 0B D4   STA  $D40B ; Voice 2 Wave control - Noise bit on&lt;br /&gt;
1C06: 8D 12 D4   STA  $D412 ; Voice 3 Wave control - Noise bit on&lt;br /&gt;
1C09: 60         RTS&lt;br /&gt;
;End Subroutine SetNoiseAllThree&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C0A&lt;br /&gt;
1C0A: 18         CLC&lt;br /&gt;
1C0B: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1C0E: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1C11: AD 30 0E   LDA  $0E30&lt;br /&gt;
1C14: 69 00      ADC  #$00&lt;br /&gt;
1C16: 8D 30 0E   STA  $0E30&lt;br /&gt;
1C19: 4C C1 1A   JMP  $1AC1 ; Enter the 1ABB mess. Set cursor to row 0 and column 0&lt;br /&gt;
;End Subroutine 1C0A&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C1C&lt;br /&gt;
1C1C: 20 18 11   JSR  $1118&lt;br /&gt;
1C1F: 20 4F 16   JSR  $164F&lt;br /&gt;
1C22: 20 2B 16   JSR  $162B&lt;br /&gt;
1C25: 20 FC 16   JSR  $16FC&lt;br /&gt;
1C28: 20 7E 17   JSR  $177E&lt;br /&gt;
1C2B: 20 FE 17   JSR  $17FE&lt;br /&gt;
1C2E: 20 5B 18   JSR  $185B&lt;br /&gt;
1C31: 20 63 1A   JSR  $1A63&lt;br /&gt;
1C34: 60         RTS&lt;br /&gt;
;End Suboutine 1C1C&lt;br /&gt;
&lt;br /&gt;
;Subroutine 1C35&lt;br /&gt;
; JSR from 1E03 only&lt;br /&gt;
; RTS if Stop key pressed&lt;br /&gt;
1C35: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C38: D0 19      BNE  $1C53  ; Stop pressed&lt;br /&gt;
; mute SID&lt;br /&gt;
1C3A: A9 00      LDA  #$00&lt;br /&gt;
1C3C: 8D 18 D4   STA  $D418&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C3F: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C42: F0 FB      BEQ  $1C3F&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C44: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C47: D0 FB      BNE  $1C44&lt;br /&gt;
; wait until stop key is released&lt;br /&gt;
1C49: 20 E1 FF   JSR  $FFE1  ; Check STOP key&lt;br /&gt;
1C4C: F0 FB      BEQ  $1C49&lt;br /&gt;
; set SID to max volume&lt;br /&gt;
1C4E: A9 0F      LDA  #$0F&lt;br /&gt;
1C50: 8D 18 D4   STA  $D418&lt;br /&gt;
1C53: 60         RTS&lt;br /&gt;
;End Subroutine 1C35&lt;br /&gt;
&lt;br /&gt;
;Subroutine Main()&lt;br /&gt;
; output '0' to the screen&lt;br /&gt;
;  //The Main loop entry point&lt;br /&gt;
1C54: A9 30      LDA  #$30&lt;br /&gt;
1C56: 4C D2 FF   JMP  $FFD2 ; CHROUT Kernal call&lt;br /&gt;
                            ; This is a JMP such that the RST is gobbled by the $FFD2 function call&lt;br /&gt;
                            ;&lt;br /&gt;
                            ; START game loop&lt;br /&gt;
                            ; Entry points: 0x0E00 (BASIC SYS call)&lt;br /&gt;
1C59: 20 D7 0F   JSR  $0FD7 ; DefineCharsets() 0x2000-0x27FF&lt;br /&gt;
                            ; Character Pixel Data is at 0x2000 by (x8)&lt;br /&gt;
                            ; Default character screen memory is preserved (1x)&lt;br /&gt;
1C5C: A9 18      LDA  #$18  ;&lt;br /&gt;
1C5E: 8D 18 D0   STA  $D018 ; Store 0b00011000 into $D018.  Char data at 0x2000, Screen offset it 0x0400&lt;br /&gt;
1C61: A9 00      LDA  #$00&lt;br /&gt;
1C63: 8D 1B D0   STA  $D01B ; Store 0x00 into $D01B.  All sprites on top layer&lt;br /&gt;
1C66: 8D 20 D0   STA  $D020 ; Store 0x00 into $D020.  Border color is 0 (black)&lt;br /&gt;
1C69: 8D 21 D0   STA  $D021 ; Store 0x00 into $D021.  Background color is 0 (black)&lt;br /&gt;
1C6C: A9 11      LDA  #$11&lt;br /&gt;
                            ;SID&lt;br /&gt;
1C6E: 8D 05 D4   STA  $D405 ; Voice 1 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C71: 8D 0C D4   STA  $D40C ; Voice 2 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C74: 8D 13 D4   STA  $D413 ; Voice 3 Attack/decay register V1A=0x1, V1D=0x1&lt;br /&gt;
1C77: A9 F1      LDA  #$F1  &lt;br /&gt;
1C79: 8D 06 D4   STA  $D406 ; Voice 1 Sustain/release register V1S=0xF, V1R=0x1&lt;br /&gt;
1C7C: A9 01      LDA  #$01&lt;br /&gt;
1C7E: 8D 08 D4   STA  $D408 ; Voice 2 Pitch Upper Value 0x01&lt;br /&gt;
1C81: A9 FB      LDA  #$FB&lt;br /&gt;
1C83: 8D 0D D4   STA  $D40D ; Voice 2 Sustain/release register V1S=0xF, V1R=0xB&lt;br /&gt;
1C86: A9 F6      LDA  #$F6&lt;br /&gt;
1C88: 8D 14 D4   STA  $D414 ; Voice 3 Sustain/release register V1S=0xF, V1R=0x6&lt;br /&gt;
                            ;VIC-II  &lt;br /&gt;
1C8B: A9 0C      LDA  #$0C  ; Grey 2. &lt;br /&gt;
1C8D: 8D 25 D0   STA  $D025 ; Low nybble, MOB Multicolor 0&lt;br /&gt;
1C90: A9 0B      LDA  #$0B  ; Grey 1.&lt;br /&gt;
1C92: 8D 26 D0   STA  $D026 ; Low nybble, MOB Multicolor 1&lt;br /&gt;
1C95: A9 07      LDA  #$07  ; Yellow.  Shot&lt;br /&gt;
1C97: 8D 28 D0   STA  $D028 ; MOB 1 Color&lt;br /&gt;
1C9A: A9 0A      LDA  #$0A  ; Light red.  Missiles&lt;br /&gt;
1C9C: 8D 29 D0   STA  $D029 ; MOB 2 Color&lt;br /&gt;
1C9F: 8D 2A D0   STA  $D02A ; MOB 3 Color&lt;br /&gt;
1CA2: 8D 2C D0   STA  $D02C ; MOB 5 Color&lt;br /&gt;
1CA5: 8D 2B D0   STA  $D02B ; MOB 4 Color&lt;br /&gt;
1CA8: 8D 2D D0   STA  $D02D ; MOB 6 Color&lt;br /&gt;
1CAB: A9 80      LDA  #$80&lt;br /&gt;
1CAD: 8D 17 D0   STA  $D017 ; MOB 7 Y-expand&lt;br /&gt;
1CB0: 8D 1D D0   STA  $D01D ; MOB 7 X-expand&lt;br /&gt;
1CB3: A9 FC      LDA  #$FC  ; &lt;br /&gt;
1CB5: 8D 1C D0   STA  $D01C ; MOB Multicolor Select, MOB 0 and 1 single color, other MOBs multi color &lt;br /&gt;
1CB8: A9 31      LDA  #$31  ; Memory location of Shot sprite graphic (0x40 * 0x31 = 0x0C40)&lt;br /&gt;
1CBA: 8D F9 07   STA  $07F9 ; &lt;br /&gt;
1CBD: A9 32      LDA  #$32  ; Memory location of Missile sprite graphic (0x0C80)&lt;br /&gt;
1CBF: 8D FA 07   STA  $07FA&lt;br /&gt;
1CC2: 8D FB 07   STA  $07FB&lt;br /&gt;
1CC5: 8D FC 07   STA  $07FC&lt;br /&gt;
1CC8: 8D FD 07   STA  $07FD&lt;br /&gt;
1CCB: 8D FE 07   STA  $07FE&lt;br /&gt;
1CCE: A9 0F      LDA  #$0F&lt;br /&gt;
1CD0: 8D 18 D4   STA  $D418 ; Volume control 0xF, filter bits zero, voice 3 enabled&lt;br /&gt;
; JMP from $1F39  //This is the main loop&lt;br /&gt;
1CD3: A9 FF      LDA  #$FF&lt;br /&gt;
1CD5: 8D 0E D4   STA  $D40E ; Voice 3 Pitch Lower Value&lt;br /&gt;
1CD8: 8D 0F D4   STA  $D40F ; Voice 3 Pitch Upper Value (Approx 4kHz)&lt;br /&gt;
1CDB: 20 FE 1B   JSR  $1BFE ; SetNoiseAllThree()&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1CDE: A9 93      LDA  #$93  ; chr$(147), inverse lowercase 's', potentially clear screen&lt;br /&gt;
1CE0: 20 D2 FF   JSR  $FFD2 ; Jump to Kernel CHROUT vector&lt;br /&gt;
; call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1CE3: A9 40      LDA  #$40&lt;br /&gt;
1CE5: 8D 37 0E   STA  $0E37&lt;br /&gt;
1CE8: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1CEB: CE 37 0E   DEC  $0E37&lt;br /&gt;
1CEE: D0 F8      BNE  $1CE8&lt;br /&gt;
&lt;br /&gt;
; Generate unique game map.  All Asteroids, Generators, Boss and Home are placed.&lt;br /&gt;
; Modifies 0xC000-0xC0FF&lt;br /&gt;
; &lt;br /&gt;
1CF0: 20 7A 14   JSR  $147A ; GenerateMap()&lt;br /&gt;
1CF3: A9 C9      LDA  #$C9&lt;br /&gt;
1CF5: 8D 2B 0E   STA  $0E2B ; 0x0E2B = 0xC9&lt;br /&gt;
1CF8: A9 04      LDA  #$04  ; set number of lives to 4&lt;br /&gt;
1CFA: 8D 2C 0E   STA  $0E2C ; 0x0E2C = 0x04&lt;br /&gt;
1CFD: 8D 31 0E   STA  $0E31 ; 0x0E31 = 0x04&lt;br /&gt;
1D00: A9 00      LDA  #$00&lt;br /&gt;
1D02: 8D 2F 0E   STA  $0E2F ; &lt;br /&gt;
1D05: 8D 30 0E   STA  $0E30 ; &lt;br /&gt;
1D08: 8D 36 0E   STA  $0E36 ; &lt;br /&gt;
1D0B: 8D 23 0E   STA  $0E23 ; not fully understood, may be beginning of a float&lt;br /&gt;
1D0E: 20 06 13   JSR  $1306 ; calculate $0E37, $0E63, $0E64, $0E65, $0E66 as a function of $0E23&lt;br /&gt;
1D11: A9 81      LDA  #$81&lt;br /&gt;
1D13: 8D 0B D4   STA  $D40B ;  Enable rumble voice&lt;br /&gt;
; set Cursor to $09 and $0E&lt;br /&gt;
1D16: A0 0E      LDY  #$0E&lt;br /&gt;
1D18: A2 09      LDX  #$09&lt;br /&gt;
1D1A: 20 BD 1A   JSR  $1ABD  &lt;br /&gt;
; print the $00 terminated string located at $0EDE: &amp;quot;'white'STAR  STRIKE&amp;quot;&lt;br /&gt;
1D1D: A9 DE      LDA  #$DE&lt;br /&gt;
1D1F: A0 0E      LDY  #$0E&lt;br /&gt;
1D21: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0C and $0D&lt;br /&gt;
1D24: A0 0D      LDY  #$0D&lt;br /&gt;
1D26: A2 0C      LDX  #$0C&lt;br /&gt;
1D28: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EEC: &amp;quot;by Kevin Dixon&amp;quot;&lt;br /&gt;
1D2B: A9 EC      LDA  #$EC&lt;br /&gt;
1D2D: A0 0E      LDY  #$0E&lt;br /&gt;
1D2F: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; set Cursor to $0F and $12&lt;br /&gt;
1D32: A0 12      LDY  #$12&lt;br /&gt;
1D34: A2 0F      LDX  #$0F&lt;br /&gt;
1D36: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; print the $00 terminated string located at $0EFB: &amp;quot;1990&amp;quot;&lt;br /&gt;
1D39: A9 FB      LDA  #$FB&lt;br /&gt;
1D3B: A0 0E      LDY  #$0E&lt;br /&gt;
1D3D: 20 1E AB   JSR  $AB1E&lt;br /&gt;
;At this point the title screen is visible and a rocket propulsion sound is audible&lt;br /&gt;
;wait for the player to press and release the fire button on joystik 1&lt;br /&gt;
1D40: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D43: 29 10      AND  #$10   ;check fire button&lt;br /&gt;
1D45: D0 F9      BNE  $1D40  ;loop if not pressed&lt;br /&gt;
1D47: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1D4A: 29 10      AND  #$10   ;check fire button &lt;br /&gt;
1D4C: F0 F9      BEQ  $1D47  ;loop if pressed &lt;br /&gt;
;turn off the all sound channels, reset to noise generator.&lt;br /&gt;
; entry from $1D4C (beginning of game), $1DF5 (just lost a live) &lt;br /&gt;
1D4E: 20 FE 1B   JSR  $1BFE  ;SetNoiseAllThree()&lt;br /&gt;
;hide all sprites&lt;br /&gt;
1D51: A9 00      LDA  #$00&lt;br /&gt;
1D53: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
;clear screen by calling CHAROUT with a value of $93&lt;br /&gt;
1D56: A9 93      LDA  #$93&lt;br /&gt;
1D58: 20 D2 FF   JSR  $FFD2&lt;br /&gt;
;call the delay at $0F80 40 times to wait for approximately 0.3 seconds&lt;br /&gt;
1D5B: A9 40      LDA  #$40&lt;br /&gt;
1D5D: 8D 37 0E   STA  $0E37&lt;br /&gt;
1D60: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1D63: CE 37 0E   DEC  $0E37&lt;br /&gt;
1D66: D0 F8      BNE  $1D60&lt;br /&gt;
; place ship on home base&lt;br /&gt;
1D68: AD 00 90   LDA  $9000&lt;br /&gt;
1D6B: 38         SEC&lt;br /&gt;
1D6C: E9 0A      SBC  #$0A&lt;br /&gt;
1D6E: 8D 00 D0   STA  $D000 ;X Coord MOB 0 (lower 8)&lt;br /&gt;
1D71: AD 08 90   LDA  $9008&lt;br /&gt;
1D74: 38         SEC&lt;br /&gt;
1D75: E9 32      SBC  #$32&lt;br /&gt;
1D77: 8D 01 D0   STA  $D001 ;Y Coord MOB 0&lt;br /&gt;
; initialize vareables&lt;br /&gt;
1D7A: A9 09      LDA  #$09  ; A=0x09&lt;br /&gt;
1D7C: 8D 16 0E   STA  $0E16 &lt;br /&gt;
1D7F: 8D 1A 0E   STA  $0E1A&lt;br /&gt;
1D82: 8D 18 0E   STA  $0E18&lt;br /&gt;
1D85: 8D 19 0E   STA  $0E19&lt;br /&gt;
1D88: 8D 1B 0E   STA  $0E1B&lt;br /&gt;
1D8B: 8D 1C 0E   STA  $0E1C&lt;br /&gt;
1D8E: A9 FF      LDA  #$FF  ; A=255&lt;br /&gt;
1D90: 8D 07 0E   STA  $0E07&lt;br /&gt;
1D93: A9 00      LDA  #$00  ; A=0&lt;br /&gt;
1D95: 8D 23 0E   STA  $0E23&lt;br /&gt;
1D98: 8D 35 0E   STA  $0E35&lt;br /&gt;
1D9B: 8D 60 0E   STA  $0E60&lt;br /&gt;
1D9E: 8D 61 0E   STA  $0E61&lt;br /&gt;
1DA1: 8D 5F 0E   STA  $0E5F&lt;br /&gt;
1DA4: 8D 08 0E   STA  $0E08&lt;br /&gt;
1DA7: 8D 0F 0E   STA  $0E0F&lt;br /&gt;
1DAA: 8D 10 D0   STA  $D010 ; MOB 0-7 X-coordinates (bit #8)&lt;br /&gt;
1DAD: 8D 59 0E   STA  $0E59&lt;br /&gt;
1DB0: 8D 5A 0E   STA  $0E5A&lt;br /&gt;
1DB3: 8D 5C 0E   STA  $0E5C&lt;br /&gt;
1DB6: 8D 5D 0E   STA  $0E5D&lt;br /&gt;
1DB9: 8D 5B 0E   STA  $0E5B&lt;br /&gt;
1DBC: 8D 33 0E   STA  $0E33&lt;br /&gt;
1DBF: 8D 62 0E   STA  $0E62&lt;br /&gt;
1DC2: A9 FA      LDA  #$FA&lt;br /&gt;
1DC4: 8D 32 0E   STA  $0E32&lt;br /&gt;
1DC7: A9 08      LDA  #$08&lt;br /&gt;
1DC9: 8D 06 0E   STA  $0E06&lt;br /&gt;
; print the $00 terminated string located at 0E7E: &amp;quot;'white''home' Life:  Energy:     Sector:   xxxx&amp;quot;&lt;br /&gt;
1DCC: A9 7E      LDA  #$7E&lt;br /&gt;
1DCE: A0 0E      LDY  #$0E&lt;br /&gt;
1DD0: 20 1E AB   JSR  $AB1E ; Output string: Output string, which is indicated by accu/Y reg, until 0 byte or quote is found &lt;br /&gt;
1DD3: 20 91 1B   JSR  $1B91&lt;br /&gt;
1DD6: A9 01      LDA  #$01  ; White&lt;br /&gt;
1DD8: 8D 27 D0   STA  $D027 ; MOB 0 Color&lt;br /&gt;
1DDB: 8D 15 D0   STA  $D015 ; MOB 0 (only) enabled&lt;br /&gt;
1DDE: A2 00      LDX  #$00&lt;br /&gt;
1DE0: 20 D0 13   JSR  $13D0&lt;br /&gt;
1DE3: AD 35 0E   LDA  $0E35&lt;br /&gt;
1DE6: C9 01      CMP  #$01&lt;br /&gt;
1DE8: D0 0E      BNE  $1DF8&lt;br /&gt;
; loose a live, JMP to $1EA8 if no lives left to loose, else return to home base $1D4E&lt;br /&gt;
1DEA: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1DED: D0 03      BNE  $1DF2 ; alive&lt;br /&gt;
1DEF: 4C A8 1E   JMP  $1EA8 ; dead&lt;br /&gt;
1DF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1DF5: 4C 4E 1D   JMP  $1D4E ; return to home base&lt;br /&gt;
1DF8: AD 36 0E   LDA  $0E36&lt;br /&gt;
1DFB: F0 03      BEQ  $1E00 ; not done killing the boss?&lt;br /&gt;
1DFD: 4C B6 1E   JMP  $1EB6 ; boss dead!&lt;br /&gt;
1E00: 20 80 0F   JSR  $0F80 ; Delay($0E03)&lt;br /&gt;
1E03: 20 35 1C   JSR  $1C35&lt;br /&gt;
1E06: AD 62 0E   LDA  $0E62&lt;br /&gt;
1E09: F0 25      BEQ  $1E30&lt;br /&gt;
1E0B: CE 62 0E   DEC  $0E62&lt;br /&gt;
1E0E: D0 0D      BNE  $1E1D&lt;br /&gt;
1E10: A9 01      LDA  #$01&lt;br /&gt;
1E12: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E15: A2 00      LDX  #$00&lt;br /&gt;
1E17: 20 D0 13   JSR  $13D0&lt;br /&gt;
1E1A: 4C 30 1E   JMP  $1E30&lt;br /&gt;
1E1D: A9 00      LDA  #$00&lt;br /&gt;
1E1F: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1E22: AD 1B D4   LDA  $D41B       ; fetch random number&lt;br /&gt;
1E25: 29 77      AND  #$77&lt;br /&gt;
1E27: 8D 23 0E   STA  $0E23&lt;br /&gt;
1E2A: 20 60 1B   JSR  $1B60 ; sector&lt;br /&gt;
1E2D: 4C 9F 1E   JMP  $1E9F&lt;br /&gt;
; JMP from $1E09, $1E1A&lt;br /&gt;
1E30: 20 98 17   JSR  $1798&lt;br /&gt;
1E33: 20 23 10   JSR  $1023&lt;br /&gt;
1E36: 20 D7 14   JSR  $14D7&lt;br /&gt;
1E39: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3C: 20 7F 15   JSR  $157F&lt;br /&gt;
1E3F: A9 01      LDA  #$01&lt;br /&gt;
1E41: A2 00      LDX  #$00&lt;br /&gt;
1E43: 20 18 11   JSR  $1118&lt;br /&gt;
1E46: 20 7E 17   JSR  $177E&lt;br /&gt;
1E49: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E4C: 20 4F 19   JSR  $194F&lt;br /&gt;
1E4F: A9 02      LDA  #$02&lt;br /&gt;
1E51: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E54: 49 FF      EOR  #$FF&lt;br /&gt;
1E56: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E59: A2 01      LDX  #$01&lt;br /&gt;
1E5B: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E5E: 20 B8 19   JSR  $19B8&lt;br /&gt;
1E61: A9 04      LDA  #$04&lt;br /&gt;
1E63: A2 02      LDX  #$02&lt;br /&gt;
1E65: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E68: A9 08      LDA  #$08&lt;br /&gt;
1E6A: A2 03      LDX  #$03&lt;br /&gt;
1E6C: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E6F: A9 10      LDA  #$10&lt;br /&gt;
1E71: A2 04      LDX  #$04&lt;br /&gt;
1E73: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E76: A9 20      LDA  #$20&lt;br /&gt;
1E78: A2 05      LDX  #$05&lt;br /&gt;
1E7A: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E7D: A9 40      LDA  #$40&lt;br /&gt;
1E7F: A2 06      LDX  #$06&lt;br /&gt;
1E81: 20 1C 1C   JSR  $1C1C&lt;br /&gt;
1E84: A9 80      LDA  #$80&lt;br /&gt;
1E86: 8D 38 0E   STA  $0E38&lt;br /&gt;
1E89: 49 FF      EOR  #$FF&lt;br /&gt;
1E8B: 8D 39 0E   STA  $0E39&lt;br /&gt;
1E8E: A2 07      LDX  #$07&lt;br /&gt;
1E90: 8E 1E 0E   STX  $0E1E&lt;br /&gt;
1E93: 20 7E 17   JSR  $177E&lt;br /&gt;
1E96: 20 FE 17   JSR  $17FE&lt;br /&gt;
1E99: 20 DC 1B   JSR  $1BDC&lt;br /&gt;
1E9C: 20 C8 18   JSR  $18C8&lt;br /&gt;
1E9F: 20 8C 0F   JSR  $0F8C ; SubroutineB($0E5F,$0E60, $D401, $D404)&lt;br /&gt;
1EA2: 20 C2 0F   JSR  $0FC2&lt;br /&gt;
1EA5: 4C E3 1D   JMP  $1DE3&lt;br /&gt;
; dead&lt;br /&gt;
; JMP from $1DEF only &lt;br /&gt;
; set Cursor to $18 and $0F&lt;br /&gt;
1EA8: A0 0F      LDY  #$0F&lt;br /&gt;
1EAA: A2 18      LDX  #$18&lt;br /&gt;
1EAC: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EAB: &amp;quot;Game over!&amp;quot;&lt;br /&gt;
1EAF: A9 AB      LDA  #$AB&lt;br /&gt;
1EB1: A0 0E      LDY  #$0E&lt;br /&gt;
1EB3: 4C C1 1E   JMP  $1EC1&lt;br /&gt;
;The bossmob is dead. Entry point exclusively from $1DFD, not a subroutine! &lt;br /&gt;
; set Cursor to $18 and $00 &lt;br /&gt;
1EB6: A0 00      LDY  #$00&lt;br /&gt;
1EB8: A2 18      LDX  #$18&lt;br /&gt;
1EBA: 20 BD 1A   JSR  $1ABD &lt;br /&gt;
; prepare to print the string located at $0EB6: &amp;quot;Congratulations!  Mission Accomplished!&amp;quot;&lt;br /&gt;
1EBD: A9 B6      LDA  #$B6&lt;br /&gt;
1EBF: A0 0E      LDY  #$0E&lt;br /&gt;
; print the prepared end of game text&lt;br /&gt;
; JMP 1EB3&lt;br /&gt;
1EC1: 20 1E AB   JSR  $AB1E&lt;br /&gt;
; reset the game&lt;br /&gt;
1EC4: 20 FE 1B   JSR  $1BFE ;SetNoiseAllThree()&lt;br /&gt;
; $D40F = #$08&lt;br /&gt;
1EC7: A9 08      LDA  #$08&lt;br /&gt;
1EC9: 8D 0F D4   STA  $D40F; SID FREHI3 Frequency Control High byte &lt;br /&gt;
1ECC: AD 36 0E   LDA  $0E36&lt;br /&gt;
1ECF: F0 55      BEQ  $1F26&lt;br /&gt;
1ED1: A9 10      LDA  #$10&lt;br /&gt;
1ED3: 18         CLC&lt;br /&gt;
1ED4: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1ED7: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1EDA: A9 27      LDA  #$27&lt;br /&gt;
1EDC: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1EDF: 8D 30 0E   STA  $0E30&lt;br /&gt;
1EE2: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1EE5: A9 C8      LDA  #$C8&lt;br /&gt;
1EE7: 8D 37 0E   STA  $0E37&lt;br /&gt;
1EEA: 4C 1B 1F   JMP  $1F1B&lt;br /&gt;
1EED: AD 31 0E   LDA  $0E31 ; number of lives&lt;br /&gt;
1EF0: F0 34      BEQ  $1F26&lt;br /&gt;
1EF2: CE 31 0E   DEC  $0E31 ; loose a live&lt;br /&gt;
1EF5: 20 2A 1B   JSR  $1B2A ; set cursor to row 0 and column $0C&lt;br /&gt;
1EF8: A9 DC      LDA  #$DC&lt;br /&gt;
1EFA: 18         CLC&lt;br /&gt;
1EFB: 6D 2F 0E   ADC  $0E2F&lt;br /&gt;
1EFE: 8D 2F 0E   STA  $0E2F&lt;br /&gt;
1F01: A9 05      LDA  #$05&lt;br /&gt;
1F03: 6D 30 0E   ADC  $0E30&lt;br /&gt;
1F06: 8D 30 0E   STA  $0E30&lt;br /&gt;
1F09: 20 C1 1A   JSR  $1AC1 ; set cursor to row 0 and column 0&lt;br /&gt;
1F0C: A9 21      LDA  #$21&lt;br /&gt;
1F0E: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F11: A9 20      LDA  #$20&lt;br /&gt;
1F13: 8D 12 D4   STA  $D412 ; SID Voice 3 Control Register&lt;br /&gt;
1F16: A9 50      LDA  #$50&lt;br /&gt;
1F18: 8D 37 0E   STA  $0E37&lt;br /&gt;
1F1B: 20 80 0F   JSR  $0F80 ;Delay($0E03)&lt;br /&gt;
1F1E: CE 37 0E   DEC  $0E37&lt;br /&gt;
1F21: D0 F8      BNE  $1F1B&lt;br /&gt;
1F23: 4C ED 1E   JMP  $1EED&lt;br /&gt;
; entry from $1ECF, $1EF0 &lt;br /&gt;
; wait for the player to be ready&lt;br /&gt;
1F26: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F29: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F2B: D0 F9      BNE  $1F26  ; Wait forever for fire button&lt;br /&gt;
1F2D: AD 01 DC   LDA  $DC01  ;Capture Joystick port&lt;br /&gt;
1F30: 29 10      AND  #$10   ;fire test&lt;br /&gt;
1F32: F0 F9      BEQ  $1F2D  ; Wait forever for fire button to be released&lt;br /&gt;
; $D015 = 0 - hide all sprites&lt;br /&gt;
1F34: A9 00      LDA  #$00&lt;br /&gt;
1F36: 8D 15 D0   STA  $D015 ; Sprite enable register&lt;br /&gt;
1F39: 4C D3 1C   JMP  $1CD3&lt;br /&gt;
;end Subroutine Main()&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Sandbox&amp;diff=295</id>
		<title>Sandbox</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Sandbox&amp;diff=295"/>
		<updated>2022-03-18T22:11:30Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;=Title 1= ==Title1.1== ===Title1.1.1===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Title 1=&lt;br /&gt;
==Title1.1==&lt;br /&gt;
===Title1.1.1===&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Main_Page&amp;diff=294</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Main_Page&amp;diff=294"/>
		<updated>2022-03-18T22:11:00Z</updated>

		<summary type="html">&lt;p&gt;Legg: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Arduino Projects]]&lt;br /&gt;
&lt;br /&gt;
[[Fun Code Segments]]&lt;br /&gt;
&lt;br /&gt;
[[Inventory]]&lt;br /&gt;
&lt;br /&gt;
[[Serial Library]]&lt;br /&gt;
&lt;br /&gt;
[[Foods]]&lt;br /&gt;
&lt;br /&gt;
[[Interesting bookmarks]]&lt;br /&gt;
&lt;br /&gt;
[[MLX II by Ottis Cowper Ver 1.1]]&lt;br /&gt;
&lt;br /&gt;
[[Automatic Proofreader by Charles Brannon for the Commodore 64 Compute Gazette October 1983]]&lt;br /&gt;
&lt;br /&gt;
[[Star Strike by Kevin Dixon for the Commodore 64 Compute Gazette June 1991]]&lt;br /&gt;
&lt;br /&gt;
[[Linux Command Line Tricks]]&lt;br /&gt;
&lt;br /&gt;
[[Sandbox]] Practice Wiki code here&lt;br /&gt;
&lt;br /&gt;
Consult the [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Localise MediaWiki for your language]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Learn how to combat spam on your wiki]&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Launching_and_Terminating_Assembly_Programs_Commodore_64&amp;diff=293</id>
		<title>Launching and Terminating Assembly Programs Commodore 64</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Launching_and_Terminating_Assembly_Programs_Commodore_64&amp;diff=293"/>
		<updated>2021-11-03T03:53:32Z</updated>

		<summary type="html">&lt;p&gt;Legg: /* Assembly */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
In it's default state, the Commodore 64 is executing a Microsoft BASIC interactive environment.  When you run SYS 49152, this begins execution of assembly code starting from $C000.  If you intend to return back to the BASIC interpreter without doing a hard reset, you must push and pop all the CPU registers.&lt;br /&gt;
&lt;br /&gt;
PHP first pushes processor flags to stack.  PHA then pushes A to the stack.  There is no opcode for pushing X or Y, so they must be transferred to A.  To return to the BASIC interpreter, these must be restored in opposite order and then returned using RTS.&lt;br /&gt;
&lt;br /&gt;
==Assembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
save:	C000:&lt;br /&gt;
PHP		C000: 08		(8)&lt;br /&gt;
PHA		C001: 48		(72)&lt;br /&gt;
TXA		C002: 8A		(138)&lt;br /&gt;
PHA		C003: 48		(72)&lt;br /&gt;
TYA		C004: 98		(152)&lt;br /&gt;
PHA		C005: 48		(72)&lt;br /&gt;
restore:C006:&lt;br /&gt;
PLA		C006: 68 		(104)&lt;br /&gt;
TAY		C007: A8		(168)&lt;br /&gt;
PLA		C008: 68 		(104)&lt;br /&gt;
TAX		C009: AA		(170)&lt;br /&gt;
PLA		C00A: 68		(104)&lt;br /&gt;
PLP		C00B: 28		(40)&lt;br /&gt;
RTS		C00C: 60		(96)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
	<entry>
		<id>http://calebneedscollege.com/wiki/index.php?title=Launching_and_Terminating_Assembly_Programs_Commodore_64&amp;diff=292</id>
		<title>Launching and Terminating Assembly Programs Commodore 64</title>
		<link rel="alternate" type="text/html" href="http://calebneedscollege.com/wiki/index.php?title=Launching_and_Terminating_Assembly_Programs_Commodore_64&amp;diff=292"/>
		<updated>2021-11-03T03:52:51Z</updated>

		<summary type="html">&lt;p&gt;Legg: Created page with &amp;quot;==Synopsis== In it's default state, the Commodore 64 is executing a Microsoft BASIC interactive environment.  When you run SYS 49152, this begins execution of assembly code st...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Synopsis==&lt;br /&gt;
In it's default state, the Commodore 64 is executing a Microsoft BASIC interactive environment.  When you run SYS 49152, this begins execution of assembly code starting from $C000.  If you intend to return back to the BASIC interpreter without doing a hard reset, you must push and pop all the CPU registers.&lt;br /&gt;
&lt;br /&gt;
PHP first pushes processor flags to stack.  PHA then pushes A to the stack.  There is no opcode for pushing X or Y, so they must be transferred to A.  To return to the BASIC interpreter, these must be restored in opposite order and then returned using RTS.&lt;br /&gt;
&lt;br /&gt;
==Assembly==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nasm&amp;quot;&amp;gt;&lt;br /&gt;
save:		C000:&lt;br /&gt;
PHP		C000: 08		(8)&lt;br /&gt;
PHA		C001: 48		(72)&lt;br /&gt;
TXA		C002: 8A		(138)&lt;br /&gt;
PHA		C003: 48		(72)&lt;br /&gt;
TYA		C004: 98		(152)&lt;br /&gt;
PHA		C005: 48		(72)&lt;br /&gt;
restore:	C006:&lt;br /&gt;
PLA		C006: 68 		(104)&lt;br /&gt;
TAY		C007: A8		(168)&lt;br /&gt;
PLA		C008: 68 		(104)&lt;br /&gt;
TAX		C009: AA		(170)&lt;br /&gt;
PLA		C00A: 68		(104)&lt;br /&gt;
PLP		C00B: 28		(40)&lt;br /&gt;
RTS		C00C: 60		(96)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Legg</name></author>
		
	</entry>
</feed>