<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://preservation64.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Enigma</id>
	<title>Software Archive - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://preservation64.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Enigma"/>
	<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Special:Contributions/Enigma"/>
	<updated>2026-06-15T10:37:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.0-alpha</generator>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73753</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73753"/>
		<updated>2026-05-18T21:25:14Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
[[Category:CBM Disk]]&lt;br /&gt;
Easy Script Plus was sold as bundle with a 1541 disk drive.&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_box_front_arndt.jpg|Easy Script Plus Box Front&lt;br /&gt;
File:Commodore_EasyScript_box_back_arndt.jpg|Easy Script Plus Box Back&lt;br /&gt;
File:Commodore_EasyScript_box_side_arndt.jpg|Easy Script Plus Box Side&lt;br /&gt;
File:Commodore_EasyScript_disk1_front_arndt.jpg|Disk 1 Front&lt;br /&gt;
File:Commodore_EasyScript_disk1_back_arndt.jpg|Disk 1 Back&lt;br /&gt;
File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg|Disk 1 Front with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg|Disk 1 Back with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk2_front_arndt.jpg|Disk 2 Front&lt;br /&gt;
File:Commodore_EasyScript_disk2_back_arndt.jpg|Disk 2 Back&lt;br /&gt;
File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg|Disk 2 Front with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg|Disk 2 Back with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg|Precision Software Users Club&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg|Reference Card Front&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg|Reference Card Back&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg|Precision Software Voucher&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
 ESC-64-40&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73752</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73752"/>
		<updated>2026-05-18T21:19:35Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
[[Category:CBM Disk]]&lt;br /&gt;
Easy Script Plus was sold as bundle with a 1541 disk drive.&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_box_front_arndt.jpg|Easy Script Plus Box Front&lt;br /&gt;
File:Commodore_EasyScript_box_back_arndt.jpg|Easy Script Plus Box Back&lt;br /&gt;
File:Commodore_EasyScript_box_side_arndt.jpg|Easy Script Plus Box Side&lt;br /&gt;
File:Commodore_EasyScript_disk1_front_arndt.jpg|Disk 1 Front&lt;br /&gt;
File:Commodore_EasyScript_disk1_back_arndt.jpg|Disk 1 Back&lt;br /&gt;
File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg|Disk 1 Front with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg|Disk 1 Back with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk2_front_arndt.jpg|Disk 2 Front&lt;br /&gt;
File:Commodore_EasyScript_disk2_back_arndt.jpg|Disk 2 Back&lt;br /&gt;
File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg|Disk 2 Front with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg|Disk 2 Back with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg|Precision Software Users Club&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg|Reference Card Front&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg|Reference Card Back&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg|Precision Software Voucher&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
 ESC-64-40&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg&amp;diff=73751</id>
		<title>File:Commodore EasyScript PrecisionSoftwareVoucher arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg&amp;diff=73751"/>
		<updated>2026-05-18T21:19:00Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:boxcontent&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg&amp;diff=73750</id>
		<title>File:Commodore EasyScript PrecisionSoftwareReferenceCard2 arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg&amp;diff=73750"/>
		<updated>2026-05-18T21:18:52Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:boxcontent&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg&amp;diff=73749</id>
		<title>File:Commodore EasyScript PrecisionSoftwareReferenceCard1 arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg&amp;diff=73749"/>
		<updated>2026-05-18T21:18:44Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:boxcontent&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg&amp;diff=73748</id>
		<title>File:Commodore EasyScript PrecisionSoftwareClub arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg&amp;diff=73748"/>
		<updated>2026-05-18T21:18:29Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:boxcontent&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg&amp;diff=73747</id>
		<title>File:Commodore EasyScript disk2 back sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg&amp;diff=73747"/>
		<updated>2026-05-18T21:18:08Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg&amp;diff=73746</id>
		<title>File:Commodore EasyScript disk2 front sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg&amp;diff=73746"/>
		<updated>2026-05-18T21:17:57Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_arndt.jpg&amp;diff=73745</id>
		<title>File:Commodore EasyScript disk2 back arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_arndt.jpg&amp;diff=73745"/>
		<updated>2026-05-18T21:17:48Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_arndt.jpg&amp;diff=73744</id>
		<title>File:Commodore EasyScript disk2 front arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_arndt.jpg&amp;diff=73744"/>
		<updated>2026-05-18T21:17:39Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg&amp;diff=73743</id>
		<title>File:Commodore EasyScript disk1 back sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg&amp;diff=73743"/>
		<updated>2026-05-18T21:17:29Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg&amp;diff=73742</id>
		<title>File:Commodore EasyScript disk1 front sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg&amp;diff=73742"/>
		<updated>2026-05-18T21:17:20Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_arndt.jpg&amp;diff=73741</id>
		<title>File:Commodore EasyScript disk1 back arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_arndt.jpg&amp;diff=73741"/>
		<updated>2026-05-18T21:17:11Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_arndt.jpg&amp;diff=73740</id>
		<title>File:Commodore EasyScript disk1 front arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_arndt.jpg&amp;diff=73740"/>
		<updated>2026-05-18T21:17:01Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:media&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73739</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73739"/>
		<updated>2026-05-18T21:15:31Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
Easy Script Plus was sold as bundle with a 1541 disk drive.&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_box_front_arndt.jpg|Easy Script Plus Box Front&lt;br /&gt;
File:Commodore_EasyScript_box_back_arndt.jpg|Easy Script Plus Box Back&lt;br /&gt;
File:Commodore_EasyScript_box_side_arndt.jpg|Easy Script Plus Box Side&lt;br /&gt;
File:Commodore_EasyScript_disk1_front_arndt.jpg|Disk 1 Front&lt;br /&gt;
File:Commodore_EasyScript_disk1_back_arndt.jpg|Disk 1 Back&lt;br /&gt;
File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg|Disk 1 Front with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg|Disk 1 Back with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk2_front_arndt.jpg|Disk 2 Front&lt;br /&gt;
File:Commodore_EasyScript_disk2_back_arndt.jpg|Disk 2 Back&lt;br /&gt;
File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg|Disk 2 Front with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg|Disk 2 Back with Sleeve&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg|Precision Software Users Club&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg|Reference Card Front&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg|Reference Card Back&lt;br /&gt;
File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg|Precision Software Voucher&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
 ESC-64-40&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg&amp;diff=73738</id>
		<title>File:Commodore EasyScript PrecisionSoftwareVoucher arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareVoucher_arndt.jpg&amp;diff=73738"/>
		<updated>2026-05-18T21:12:47Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg&amp;diff=73737</id>
		<title>File:Commodore EasyScript PrecisionSoftwareReferenceCard2 arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard2_arndt.jpg&amp;diff=73737"/>
		<updated>2026-05-18T21:12:46Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg&amp;diff=73736</id>
		<title>File:Commodore EasyScript PrecisionSoftwareReferenceCard1 arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareReferenceCard1_arndt.jpg&amp;diff=73736"/>
		<updated>2026-05-18T21:12:44Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg&amp;diff=73735</id>
		<title>File:Commodore EasyScript PrecisionSoftwareClub arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_PrecisionSoftwareClub_arndt.jpg&amp;diff=73735"/>
		<updated>2026-05-18T21:12:42Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg&amp;diff=73734</id>
		<title>File:Commodore EasyScript disk2 front sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_sleeve_arndt.jpg&amp;diff=73734"/>
		<updated>2026-05-18T21:12:41Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_arndt.jpg&amp;diff=73733</id>
		<title>File:Commodore EasyScript disk2 front arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_front_arndt.jpg&amp;diff=73733"/>
		<updated>2026-05-18T21:12:39Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg&amp;diff=73732</id>
		<title>File:Commodore EasyScript disk2 back sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_sleeve_arndt.jpg&amp;diff=73732"/>
		<updated>2026-05-18T21:12:38Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_arndt.jpg&amp;diff=73731</id>
		<title>File:Commodore EasyScript disk2 back arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk2_back_arndt.jpg&amp;diff=73731"/>
		<updated>2026-05-18T21:12:36Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg&amp;diff=73730</id>
		<title>File:Commodore EasyScript disk1 front sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_sleeve_arndt.jpg&amp;diff=73730"/>
		<updated>2026-05-18T21:12:34Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_arndt.jpg&amp;diff=73729</id>
		<title>File:Commodore EasyScript disk1 front arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_front_arndt.jpg&amp;diff=73729"/>
		<updated>2026-05-18T21:12:32Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg&amp;diff=73728</id>
		<title>File:Commodore EasyScript disk1 back sleeve arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_sleeve_arndt.jpg&amp;diff=73728"/>
		<updated>2026-05-18T21:12:31Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_arndt.jpg&amp;diff=73727</id>
		<title>File:Commodore EasyScript disk1 back arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_disk1_back_arndt.jpg&amp;diff=73727"/>
		<updated>2026-05-18T21:12:29Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73726</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73726"/>
		<updated>2026-05-18T21:08:08Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
Easy Script Plus was sold as bundle with a 1541 disk drive.&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_box_front_arndt.jpg|Easy Script Plus Box Front&lt;br /&gt;
File:Commodore_EasyScript_box_back_arndt.jpg|Easy Script Plus Box Back&lt;br /&gt;
File:Commodore_EasyScript_box_side_arndt.jpg|Easy Script Plus Box Side&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
 ESC-64-40&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_side_arndt.jpg&amp;diff=73725</id>
		<title>File:Commodore EasyScript box side arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_side_arndt.jpg&amp;diff=73725"/>
		<updated>2026-05-18T21:07:15Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:box&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_back_arndt.jpg&amp;diff=73724</id>
		<title>File:Commodore EasyScript box back arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_back_arndt.jpg&amp;diff=73724"/>
		<updated>2026-05-18T21:07:00Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:box&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_front_arndt.jpg&amp;diff=73723</id>
		<title>File:Commodore EasyScript box front arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_front_arndt.jpg&amp;diff=73723"/>
		<updated>2026-05-18T21:06:40Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:cover,box&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73722</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73722"/>
		<updated>2026-05-18T21:06:11Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_box_front_arndt.jpg|Easy Script Plus Box Front&lt;br /&gt;
File:Commodore_EasyScript_box_back_arndt.jpg|Easy Script Plus Box Back&lt;br /&gt;
File:Commodore_EasyScript_box_side_arndt.jpg|Easy Script Plus Box Side&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
 ESC-64-40&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_side_arndt.jpg&amp;diff=73721</id>
		<title>File:Commodore EasyScript box side arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_side_arndt.jpg&amp;diff=73721"/>
		<updated>2026-05-18T21:05:26Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_front_arndt.jpg&amp;diff=73720</id>
		<title>File:Commodore EasyScript box front arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_front_arndt.jpg&amp;diff=73720"/>
		<updated>2026-05-18T21:05:24Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_back_arndt.jpg&amp;diff=73719</id>
		<title>File:Commodore EasyScript box back arndt.jpg</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_box_back_arndt.jpg&amp;diff=73719"/>
		<updated>2026-05-18T21:05:20Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73718</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73718"/>
		<updated>2026-05-18T21:04:16Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
 ESC-64-40&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73717</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73717"/>
		<updated>2026-05-18T21:03:48Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73716</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73716"/>
		<updated>2026-05-18T21:03:14Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983?&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
The manual for the [[6 Games Programs]] compilation advertises the following software:&lt;br /&gt;
* [[Rail Boss]] &lt;br /&gt;
* [[High Flyer]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73715</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73715"/>
		<updated>2026-05-18T21:00:05Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983?&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Manual =====&lt;br /&gt;
[[File:EasyScript_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
[[File:CBM_6_Games_Programs_Manual_arndt.pdf|thumb|Manual]]&lt;br /&gt;
&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:EasyScript_Manual_arndt.pdf&amp;diff=73714</id>
		<title>File:EasyScript Manual arndt.pdf</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:EasyScript_Manual_arndt.pdf&amp;diff=73714"/>
		<updated>2026-05-18T20:59:29Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:CBM_6_Games_Programs_Manual_arndt.pdf&amp;diff=73713</id>
		<title>File:CBM 6 Games Programs Manual arndt.pdf</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:CBM_6_Games_Programs_Manual_arndt.pdf&amp;diff=73713"/>
		<updated>2026-05-18T20:58:02Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_a_menu.png&amp;diff=73712</id>
		<title>File:Commodore EasyScript arndt a menu.png</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_a_menu.png&amp;diff=73712"/>
		<updated>2026-05-18T20:57:12Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;tags:screenshot&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Streams_Commodore_EasyScript_arndt.zip&amp;diff=73711</id>
		<title>File:Streams Commodore EasyScript arndt.zip</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Streams_Commodore_EasyScript_arndt.zip&amp;diff=73711"/>
		<updated>2026-05-18T20:56:39Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Kryoflux Streams&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73710</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73710"/>
		<updated>2026-05-18T20:56:23Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983?&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]] Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_dos_r1.png|Disk 1 Side 0&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_EasyScript_arndt_a_menu.png|Easy Script Menu&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Streams_Commodore_EasyScript_arndt.zip]]&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
[[File:Commodore_EasyScript_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Streams_Commodore_EasyScript_arndt.zip&amp;diff=73709</id>
		<title>File:Streams Commodore EasyScript arndt.zip</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Streams_Commodore_EasyScript_arndt.zip&amp;diff=73709"/>
		<updated>2026-05-18T20:55:44Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_a_menu.png&amp;diff=73708</id>
		<title>File:Commodore EasyScript arndt a menu.png</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_a_menu.png&amp;diff=73708"/>
		<updated>2026-05-18T20:55:38Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_a_dos_r1.png&amp;diff=73707</id>
		<title>File:Commodore EasyScript arndt a dos r1.png</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_a_dos_r1.png&amp;diff=73707"/>
		<updated>2026-05-18T20:55:37Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_s0.g64&amp;diff=73706</id>
		<title>File:Commodore EasyScript arndt s0.g64</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=File:Commodore_EasyScript_arndt_s0.g64&amp;diff=73706"/>
		<updated>2026-05-18T20:55:34Z</updated>

		<summary type="html">&lt;p&gt;Enigma: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73705</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73705"/>
		<updated>2026-05-18T20:54:58Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983?&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || [[Easy Script]]: Checks error 4 on track 35 sector 1.&amp;lt;br&amp;gt;[[6 Games Programs]]Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
	<entry>
		<id>https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73704</id>
		<title>Easy Script Plus</title>
		<link rel="alternate" type="text/html" href="https://preservation64.de/index.php?title=Easy_Script_Plus&amp;diff=73704"/>
		<updated>2026-05-18T20:51:43Z</updated>

		<summary type="html">&lt;p&gt;Enigma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:C64 Game Compilation]]&lt;br /&gt;
&lt;br /&gt;
=== Content ===&lt;br /&gt;
==== Disk 1 ====&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Easy Script]]&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
==== Disk 2 ====&lt;br /&gt;
* [[6 Games Programs]]&lt;br /&gt;
===== Side 0 =====&lt;br /&gt;
* [[Single Disk Backup]] V1.0 by Michael Schaff, 27 Jul 1982&lt;br /&gt;
* [[Scooper Froot]] [https://www.lemon64.com/game/sooper-froot lemon64 link]&lt;br /&gt;
* [[Stellar Wars]] [https://www.mobygames.com/game/92960/stellar-wars/ mobygames link]&lt;br /&gt;
* [[Depth Charge]] [https://www.mobygames.com/game/69748/depth-charge/ mobygames link]&lt;br /&gt;
* [[Labyrinth]] (color version) [https://www.mobygames.com/game/50163/labyrinth/ mobygames link]&lt;br /&gt;
* [[The Quest (Commodore)]] [https://www.mobygames.com/game/84690/the-quest/ mobygames link]&lt;br /&gt;
* [[Patience]] [https://www.mobygames.com/game/72041/patience/ mobygames link]&lt;br /&gt;
&lt;br /&gt;
===== Side 1 =====&lt;br /&gt;
Side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Source 1 == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Property !! Data&lt;br /&gt;
|-&lt;br /&gt;
| Title || Easy Script Plus&lt;br /&gt;
|-&lt;br /&gt;
| Publisher and/or Developer || Commodore UK Ltd., Precision Software Ltd.&lt;br /&gt;
|-&lt;br /&gt;
| Year || 1983?&lt;br /&gt;
|-&lt;br /&gt;
| Disk(s) || 1&lt;br /&gt;
|-&lt;br /&gt;
| Number of Index Holes || ?&lt;br /&gt;
|-&lt;br /&gt;
| Media Type || 5.25 DSDD&lt;br /&gt;
|-&lt;br /&gt;
| Retail, Budget or Compilation (with name) || Compilation&lt;br /&gt;
|-&lt;br /&gt;
| Country of Release || UK&lt;br /&gt;
|-&lt;br /&gt;
| Language(s) || English&lt;br /&gt;
|-&lt;br /&gt;
| Platform || C64&lt;br /&gt;
|-&lt;br /&gt;
| NTSC or PAL || PAL&lt;br /&gt;
|-&lt;br /&gt;
| Protection || Checks for error on track 1 sector 5&lt;br /&gt;
|-&lt;br /&gt;
| Working? || Yes&lt;br /&gt;
|-&lt;br /&gt;
| Archived || 14 Mar 2026 enigma/parser, provided by @rndt@F64&lt;br /&gt;
|-&lt;br /&gt;
| Verified by || enigma&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Commodore_6GamesPrograms_arndt_a_dos_r1.png|Disk 2 Side 0&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
==== Streams ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Streams_Commodore_6GamesPrograms_arndt.zip]]&lt;br /&gt;
==== G64 ====&lt;br /&gt;
===== Disk 1 =====&lt;br /&gt;
===== Disk 2 =====&lt;br /&gt;
[[File:Commodore_6GamesPrograms_arndt_s0.g64]]&lt;br /&gt;
&lt;br /&gt;
Disk side 1 is empty.&lt;br /&gt;
&lt;br /&gt;
== Additional Information == &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The initial loader loads to $9E80 and then decrypts with&lt;br /&gt;
 0225 a2 00    ldx #$00&lt;br /&gt;
 0227 a0 08    ldy #$08    // 8 bits&lt;br /&gt;
 0229 bd 80 9e lda $9e80,x&lt;br /&gt;
 022c 8d 3f 02 sta $023f&lt;br /&gt;
 022f 0e 3f 02 asl $023f  // shift highest bit to carry&lt;br /&gt;
 0232 6a       ror a      // shift it in byte from top, effectively mirroring the bits&lt;br /&gt;
 0233 88       dey &lt;br /&gt;
 0234 d0 f9    bne $022f&lt;br /&gt;
 0236 9d 80 9e sta $9e80,x&lt;br /&gt;
 0239 e8       inx &lt;br /&gt;
 023a d0 eb    bne $0227&lt;br /&gt;
 023c 4c 80 9e jmp $9e80&lt;br /&gt;
The routine is the same for all games.&lt;br /&gt;
&lt;br /&gt;
The decrypted routine that loads the game looks like this:&lt;br /&gt;
 .C:9e80  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9e83  A9 0F       LDA #$0F&lt;br /&gt;
 .C:9e85  A2 08       LDX #$08&lt;br /&gt;
 .C:9e87  A0 0F       LDY #$0F&lt;br /&gt;
 .C:9e89  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9e8c  A9 02       LDA #$02&lt;br /&gt;
 .C:9e8e  A2 DD       LDX #$DD&lt;br /&gt;
 .C:9e90  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9e92  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9e95  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9e98  A9 02       LDA #$02&lt;br /&gt;
 .C:9e9a  A2 08       LDX #$08&lt;br /&gt;
 .C:9e9c  A0 02       LDY #$02&lt;br /&gt;
 .C:9e9e  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9ea1  A9 01       LDA #$01&lt;br /&gt;
 .C:9ea3  A2 DF       LDX #$DF&lt;br /&gt;
 .C:9ea5  A0 9E       LDY #$9E&lt;br /&gt;
 .C:9ea7  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9eaa  20 C0 FF    JSR $FFC0 // OPEN&lt;br /&gt;
 .C:9ead  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9eaf  20 C9 FF    JSR $FFC9 // CHKOUT&lt;br /&gt;
 .C:9eb2  A0 00       LDY #$00&lt;br /&gt;
 .C:9eb4  B9 D1 9E    LDA $9ED1,Y&lt;br /&gt;
 .C:9eb7  F0 06       BEQ $9EBF&lt;br /&gt;
 .C:9eb9  20 D2 FF    JSR $FFD2 // CHROUT&lt;br /&gt;
 .C:9ebc  C8          INY&lt;br /&gt;
 .C:9ebd  D0 F5       BNE $9EB4&lt;br /&gt;
 .C:9ebf  20 CC FF    JSR $FFCC // CLRCHN&lt;br /&gt;
 .C:9ec2  A2 0F       LDX #$0F&lt;br /&gt;
 .C:9ec4  20 C6 FF    JSR $FFC6 // CHKIN&lt;br /&gt;
 .C:9ec7  20 CF FF    JSR $FFCF // CHRIN&lt;br /&gt;
 .C:9eca  C9 32       CMP #$32&lt;br /&gt;
 .C:9ecc  F0 12       BEQ $9EE0&lt;br /&gt;
 .C:9ece  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9ed1  55 31       EOR $31,X // This is sent to disk drive&lt;br /&gt;
 .C:9ed3  3A          NOOP&lt;br /&gt;
 .C:9ed4  32          JAM&lt;br /&gt;
 .C:9ed5  20 30 20    JSR $2030&lt;br /&gt;
 .C:9ed8  31 20       AND ($20),Y&lt;br /&gt;
 .C:9eda  35 0D       AND $0D,X&lt;br /&gt;
 .C:9edc  00          BRK&lt;br /&gt;
 .C:9edd  49 30       EOR #$30&lt;br /&gt;
 .C:9edf  23 20       RLA ($20,X)&lt;br /&gt;
 .C:9ee1  CC FF A9    CPY $A9FF&lt;br /&gt;
 .C:9ee4  0F 20 C3    SLO $C320&lt;br /&gt;
 .C:9ee7  FF A9 02    ISB $02A9,X&lt;br /&gt;
 .C:9eea  20 C3 FF    JSR $FFC3 // CLOSE&lt;br /&gt;
 .C:9eed  A2 01       LDX #$01&lt;br /&gt;
 .C:9eef  A0 08       LDY #$08&lt;br /&gt;
 .C:9ef1  18          CLC&lt;br /&gt;
 .C:9ef2  20 9C FF    JSR $FF9C // MEMBOT&lt;br /&gt;
 .C:9ef5  A9 01       LDA #$01&lt;br /&gt;
 .C:9ef7  A2 08       LDX #$08&lt;br /&gt;
 .C:9ef9  A0 00       LDY #$00&lt;br /&gt;
 .C:9efb  20 BA FF    JSR $FFBA // SETLFS&lt;br /&gt;
 .C:9efe  AD 86 9F    LDA $9F86&lt;br /&gt;
 .C:9f01  A2 87       LDX #$87&lt;br /&gt;
 .C:9f03  A0 9F       LDY #$9F&lt;br /&gt;
 .C:9f05  20 BD FF    JSR $FFBD // SETNAM&lt;br /&gt;
 .C:9f08  A9 00       LDA #$00&lt;br /&gt;
 .C:9f0a  A2 01       LDX #$01&lt;br /&gt;
 .C:9f0c  A0 08       LDY #$08&lt;br /&gt;
 .C:9f0e  20 D5 FF    JSR $FFD5 // LOAD&lt;br /&gt;
 .C:9f11  90 03       BCC $9F16&lt;br /&gt;
 .C:9f13  6C FC FF    JMP ($FFFC) // RESET&lt;br /&gt;
 .C:9f16  86 2D       STX $2D // VARTAB vector&lt;br /&gt;
 .C:9f18  84 2E       STY $2E&lt;br /&gt;
 .C:9f1a  A5 2B       LDA $2B // Pushes TXTTAB vector&lt;br /&gt;
 .C:9f1c  48          PHA&lt;br /&gt;
 .C:9f1d  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f1f  48          PHA&lt;br /&gt;
 .C:9f20  A0 00       LDY #$00&lt;br /&gt;
 .C:9f22  A2 08       LDX #$08    // for 8 bits&lt;br /&gt;
 .C:9f24  B1 2B       LDA ($2B),Y // Load from Basic Program Text&lt;br /&gt;
 .C:9f26  0A          ASL A       // shift left bit to carry&lt;br /&gt;
 .C:9f27  6E 79 9F    ROR $9F79   // rotate it right into 9F79 (mirrors bits in byte)&lt;br /&gt;
 .C:9f2a  CA          DEX&lt;br /&gt;
 .C:9f2b  D0 F9       BNE $9F26&lt;br /&gt;
 .C:9f2d  AD 79 9F    LDA $9F79&lt;br /&gt;
 .C:9f30  91 2B       STA ($2B),Y // write it back&lt;br /&gt;
 .C:9f32  E6 2B       INC $2B&lt;br /&gt;
 .C:9f34  D0 02       BNE $9F38&lt;br /&gt;
 .C:9f36  E6 2C       INC $2C&lt;br /&gt;
 .C:9f38  A5 2C       LDA $2C&lt;br /&gt;
 .C:9f3a  C5 2E       CMP $2E&lt;br /&gt;
 .C:9f3c  D0 E4       BNE $9F22&lt;br /&gt;
 .C:9f3e  A5 2B       LDA $2B&lt;br /&gt;
 .C:9f40  C5 2D       CMP $2D&lt;br /&gt;
 .C:9f42  D0 DE       BNE $9F22 // loop until VARTAB is reached&lt;br /&gt;
 .C:9f44  68          PLA       // restore TXTAB&lt;br /&gt;
 .C:9f45  85 2C       STA $2C&lt;br /&gt;
 .C:9f47  68          PLA&lt;br /&gt;
 .C:9f48  85 2B       STA $2B&lt;br /&gt;
 .C:9f4a  20 33 A5    JSR $A533 // 	Re-link BASIC program&lt;br /&gt;
 .C:9f4d  A2 15       LDX #$15    // who knows why 21 bytes starting from 9F6A are read here&lt;br /&gt;
 .C:9f4f  BD 6A 9F    LDA $9F6A,X&lt;br /&gt;
 .C:9f55  CA          DEX&lt;br /&gt;
 .C:9f56  10 F7       BPL $9F4F&lt;br /&gt;
 .C:9f58  A9 4C       LDA #$4C // write in buffer for CHRGET routine: 4C AD 02&lt;br /&gt;
 .C:9f5a  85 73       STA $73&lt;br /&gt;
 .C:9f5c  A9 AD       LDA #$AD&lt;br /&gt;
 .C:9f5e  85 74       STA $74&lt;br /&gt;
 .C:9f60  A9 02       LDA #$02&lt;br /&gt;
 .C:9f62  85 75       STA $75&lt;br /&gt;
 .C:9f64  20 8E A6    JSR $A68E // Set program pointer to BASIC-start&lt;br /&gt;
 .C:9f67  4C AE A7    JMP $A7AE // Interpreter loop, set up next statement for execution&lt;br /&gt;
 .C:9f6a  A5 3A       LDA $3A   // These are the bytes loaded in the loop up there for unknown reason&lt;br /&gt;
 .C:9f6c  C9 FF       CMP #$FF&lt;br /&gt;
 .C:9f6e  F0 F4       BEQ $9F64&lt;br /&gt;
 .C:9f70  E6 7A       INC $7A&lt;br /&gt;
 .C:9f72  D0 02       BNE $9F76&lt;br /&gt;
 .C:9f74  E6 7B       INC $7B&lt;br /&gt;
 .C:9f76  4C 79 00    JMP $0079&lt;br /&gt;
 .C:9f79  00          BRK&lt;br /&gt;
 .C:9f7a  00          BRK&lt;br /&gt;
 .C:9f7b  00          BRK&lt;br /&gt;
 .C:9f7c  00          BRK&lt;br /&gt;
 .C:9f7d  00          BRK&lt;br /&gt;
 .C:9f7e  00          BRK&lt;br /&gt;
 .C:9f7f  00          BRK&lt;br /&gt;
 .C:9f80  00          BRK&lt;br /&gt;
 .C:9f81  00          BRK &lt;br /&gt;
 .C:9f82  00          BRK&lt;br /&gt;
 .C:9f83  00          BRK&lt;br /&gt;
 .C:9f84  00          BRK&lt;br /&gt;
 .C:9f85  00          BRK&lt;br /&gt;
 .C:9f86  0D 53 4F    ORA $4F53 // File Name with suffix 2&lt;br /&gt;
 .C:9f89  4F 50 45    SRE $4550&lt;br /&gt;
 .C:9f8c  52          JAM&lt;br /&gt;
 .C:9f8d  20 46 52    JSR $5246&lt;br /&gt;
 .C:9f90  4F 4F 54    SRE $544F&lt;br /&gt;
 .C:9f93  32          JAM&lt;/div&gt;</summary>
		<author><name>Enigma</name></author>
		
	</entry>
</feed>