This commit is contained in:
Niels Moseley 2018-05-08 12:38:41 +02:00
commit e475262a2a
16 changed files with 811 additions and 25 deletions

View File

@ -1,16 +1,23 @@
![Apple One](media/apple-logo.png)
This is a basic implementation of the original Apple 1 in Verilog. It can run the Apple 1 WozMon and Integer Basic via the serial or VGA 640x480 video with PS/2 keyboard standalone. This makes this a very compact little set up. So far fully tested and supported boards are:
- iCE40HX8K-B-EVN breakout
- Terasic DE0
- [iCE40HX8K-B-EVN breakout](http://www.latticesemi.com/Products/DevelopmentBoardsAndKits/iCE40HX8KBreakoutBoard.aspx)
- [Terasic DE0](http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=364)
- [Digilent Spartan-3E Starter Board](https://store.digilentinc.com/spartan-3e-starter-board-limited-time/)
Contributor supported boards (YMMV):
- [Blackice II](https://www.tindie.com/products/Folknology/blackice-ii/)
- [Olimex iCE40HX8K with ICE40-IO](https://www.olimex.com/Products/FPGA/iCE40/iCE40HX8K-EVB/open-source-hardware)
- [TinyFPGA B2](http://tinyfpga.com/)
- [Upduino](http://gnarlygrey.atspace.cc/development-platform.html)
<p align="center">
<img src="media/apple-one.png" alt="Apple One Running">
</p>
This project borrows heavily from the *awesome* work of Andrew Holme and his ["Pool"](http://www.aholme.co.uk/6502/Main.htm) project where he built a 6502 CPU core in Verilog using the netlist from the Visual 6502 project. Amazing stuff, and so far seems to work perfectly. Also many special thanks to ["sbprojects.com"](https://www.sbprojects.com/projects/apple1/index.php) for the wealth of information I gleaned from there.
This project borrows heavily from the *awesome* work of Andrew Holme and his ["Pool"](http://www.aholme.co.uk/6502/Main.htm) project and [Arlet Otten's](https://github.com/Arlet/verilog-6502) tiny 6502 core. Also many special thanks to ["sbprojects.com"](https://www.sbprojects.com/projects/apple1/index.php) for the wealth of information I gleaned from there.
## Memory Map
## Memory Map
The memory map is currently set up to have:
@ -19,11 +26,15 @@ The memory map is currently set up to have:
0x0000 | 0x1FFF | 8KB of block RAM for system
0xE000 | 0xEFFF | 4KB of block RAM for basic ROM
0xFF00 | 0xFFFF | 512B of block RAM for WozMon ROM
You can swap out the Basic ROM to get more RAM if you need the space, this can be achieved easily with only minor modifications to the top file.
## Building
## Building
Each supported board has a directory in `boards`. This directory has a structure where each board can have multiple build environments (eg. yosys, icecube2, quartus etc).
Each board has specific instructions that will explain further the requirements of each board and how to build for it, but basically all should support the following.
To build for your board you just need to open the project or use the `Makefile` that's compatible with your board.
eg.
@ -32,14 +43,66 @@ $ cd boards/ice40hx8k-b-evn/yosys/
$ make
```
## Serial Setup
### Board READMEs
- [iCE40HX8K-B-EVN breakout](boards/ice40hx8k-b-evn/README.md)
- [Terasic DE0](boards/terasic_de0/README.md)
- [Digilent Spartan-3E Starter Board](boards/spartan3e_starterkit/README.md)
- [Blackice II](boards/blackice2/README.md)
- [Olimex iCE40HX8K with ICE40-IO](boards/olimex_ice40hx8k_evb_ice40-io/README.md)
- [TinyFPGA B2](boards/tinyfpga_b2/README.md)
- [Upduino](boards/upduino/README.md)
## The BACKSPACE key and how to delete typos
The Apple 1 didn't have a typical "backspace" key as we are use to today, due to the way the video display worked it couldn't move the cursor backward to erase characters. So instead it used a "rubout" character, which is the underscore character (_). This character signifies that the input buffer has been moved backwards one character (eg. `PRN_INT` would be received by the Apple 1 as `PRINT`).
It takes a little getting used to but you'll soon get the hang of it.
## The Apple 1 only understands UPPERCASE characters
If you're using the PS/2 input you don't need to be worried about this, as we automatically UPPERCASE all typed characters so WozMon can understand what you are typing.
However if you are using the UART and a serial terminal you will need to remember to turn on your CAPSLOCK, otherwise nothing will respond as you might expect.
## Serial Setup
To communicate with the Apple 1 you need to use the second channel serial interface for the iCE40HX8K-B-EVN board. This should appear as a COM port on you PC. This project is configured to use the 12MHz onboard clock to generate the baud rate, and as such I've selected 19200 baud (8/N/1).
Depending on the board you can use serial to communicate with the Apple 1, some boards require a toggle to be set to select between PS/2 input and UART input. The UART by default will be set to 115200 (8/N/1).
A very very basic hardware flow control is implemented too. You should turn on CTS support as this will allow you to cut and paste code into the Woz Mon without the Apple 1 missing any bytes.
A very basic hardware flow control is implemented. You should turn on CTS support as this will allow you to cut and paste code into the Woz Mon without the Apple 1 missing any bytes.
## Helping
## VGA / PS/2 Setup
All PRs and suggestions happily accepted! Please any support us most welcome, and it would be good to have this as feature complete as possible with the real Apple1. I'd like to implement the cassette interface next with the basic electronics to talk to the headphone/mic jack of a mobile phone to upload and download recordings as a means to save programs.
Most boards support PS/2 input and VGA output. This is the most support method, however all output is replicated to the UART (if available) and the PS/2 keyboard input can be replaced with the UART out if the "toggle" mode buttons is selected.
Unlike the original Apple 1 this implementation can (depending on board you are using and it's support) change the foreground and background colours of the VGA output, as well as differnet scanline modes for the font.
These controls are mapped to memory locations you can tweak using WozMon and are reset back to defaults when the system is reset.
| Register | Function | Value | Description |
| --- | --- | --- | --- |
| 0xC000 | Font | 00 | Default
| | | 01 | Vertical scanlines
| | | 02 | Horizontal scanlines
| | | 03 | Dot mode
| 0xC001 | Foreground | 00 | Black
| | | 01 | Blue
| | | 02 | Green
| | | 03 | Cyan
| | | 04 | Red
| | | 05 | Magenta
| | | 06 | Yellow
| | | 07 | White
| 0xC002 | Background | 00 | Black
| | | 01 | Blue
| | | 02 | Green
| | | 03 | Cyan
| | | 04 | Red
| | | 05 | Magenta
| | | 06 | Yellow
| | | 07 | White
But yes, help happily accepted!
## Helping
All PRs and suggestions happily accepted! Please any support us most welcome, and it would be good to have this as feature complete as possible with the real Apple1. I'd like to implement the cassette interface next with the basic electronics to talk to the headphone/mic jack of a mobile phone to upload and download recordings as a means to save programs.
But yes, help happily accepted!

View File

@ -0,0 +1,21 @@
# Blackice II with Digilent Pmods support
This adds support for building the apple one design for [mystorm Blackice II](https://github.com/mystorm-org/BlackIce-II) with attached Digilent Pmods for vga and ps2
## Peripheral support
VGA port is working through a Digilent VGA Pmod on Pmod 7/8/9/10
PS/2 keyboard uses a Digilent PS/2 Pmod on Pmod 12
## Building
Install a recent IceStorm toolchain, and:
```
$ cd yosys
$ make
```
## Use
To load BASIC type "E000R" with CAPS LOCK on.

View File

@ -0,0 +1,71 @@
DEVICE = hx8k
PIN_DEF=blackice2.pcf
SOURCEDIR = ../../../rtl
BUILDDIR = build
all: apple1 prog
info:
@echo " To build: make apple1"
@echo " To program: make prog"
@echo "To build report: make report"
@echo " To clean up: make clean"
dir:
mkdir -p $(BUILDDIR)
# ------ TEMPLATES ------
$(BUILDDIR)/%.blif: $(SOURCEDIR)/%.v
yosys -q -p "chparam -list; hierarchy -top apple1_top; synth_ice40 -blif $@" $^
$(BUILDDIR)/%.asc: $(PIN_DEF) $(BUILDDIR)/%.blif
arachne-pnr -d 8k -P tq144:4k -o $@ -p $^
$(BUILDDIR)/%.bin: $(BUILDDIR)/%.asc
icepack $^ $@
%.rpt: $(BUILDDIR)/%.asc
icetime -d $(DEVICE) -P $(PACKAGE) -c $(FREQ_PLL) -mtr $@ $<
%_tb.vvp: %_tb.v %.v
iverilog -o $@ $^
%_tb.vcd: %_tb.vvp
vvp -N $< +vcd=$@
# ------ APPLE 1 ------
apple1: dir $(BUILDDIR)/apple1.bin
report: dir apple1.rpt
$(BUILDDIR)/apple1.bin: $(BUILDDIR)/apple1.asc
$(BUILDDIR)/apple1.asc: $(BUILDDIR)/apple1.blif
$(BUILDDIR)/apple1.blif: $(SOURCEDIR)/apple1.v \
$(SOURCEDIR)/clock.v \
$(SOURCEDIR)/pwr_reset.v \
$(SOURCEDIR)/ram.v \
$(SOURCEDIR)/rom_wozmon.v \
$(SOURCEDIR)/rom_basic.v \
$(SOURCEDIR)/cpu/arlet_6502.v \
$(SOURCEDIR)/cpu/arlet/ALU.v \
$(SOURCEDIR)/cpu/arlet/cpu.v \
$(SOURCEDIR)/uart/uart.v \
$(SOURCEDIR)/uart/async_tx_rx.v \
$(SOURCEDIR)/vga/vga.v \
$(SOURCEDIR)/vga/vram.v \
$(SOURCEDIR)/vga/font_rom.v \
$(SOURCEDIR)/ps2keyboard/debounce.v \
$(SOURCEDIR)/ps2keyboard/ps2keyboard.v \
$(SOURCEDIR)/boards/blackice2/apple1_hx8k.v
apple1.rpt: $(BUILDDIR)/apple1.asc
prog: dir $(BUILDDIR)/apple1.bin
cat $(filter-out $<,$^) >/dev/ttyACM0
# ------ HELPERS ------
clean:
rm -rf build apple1.rpt
.SECONDARY:
.PHONY: all info clean prog iceprog

View File

@ -0,0 +1,38 @@
# For the Blackice II board
### UART
set_io uart_rx 88
set_io uart_tx 85
set_io uart_cts 94
### LEDs
set_io led[0] 71
set_io led[1] 67
set_io led[2] 68
set_io led[3] 70
### VGA Display
set_io vga_h_sync 8
set_io vga_v_sync 7
set_io vga_r[3] 15
set_io vga_r[2] 16
set_io vga_r[1] 19
set_io vga_r[0] 20
set_io vga_g[3] 1
set_io vga_g[2] 2
set_io vga_g[1] 9
set_io vga_g[0] 10
set_io vga_b[3] 11
set_io vga_b[2] 12
set_io vga_b[1] 17
set_io vga_b[0] 18
set_io clk 129
set_io ps2_din 32
set_io ps2_clk 26
### Buttons
set_io button[0] 63
set_io button[1] 64

View File

@ -1,7 +1,7 @@
DEVICE = hx8k
PIN_DEF=ice40hx8k.pcf
SOURCEDIR = ../../rtl
SOURCEDIR = ../../../rtl
BUILDDIR = build
all: apple1 prog

View File

@ -0,0 +1,126 @@
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
//
// Description: Apple 1 implementation for the Blackeice II ICE40HX8K +
//
// Author.....: Lawrie Griffiths and Alan Garfield
// Date.......: 31-3-2018
//
module apple1_top #(
parameter BASIC_FILENAME = "../../../roms/basic.hex",
parameter FONT_ROM_FILENAME = "../../../roms/vga_font_bitreversed.hex",
parameter RAM_FILENAME = "../../../roms/ram.hex",
parameter VRAM_FILENAME = "../../../roms/vga_vram.bin",
parameter WOZMON_ROM_FILENAME = "../../../roms/wozmon.hex"
) (
input clk, // 100 MHz board clock
// I/O interface to computer
input uart_rx, // asynchronous serial data input from computer
output uart_tx, // asynchronous serial data output to computer
output uart_cts, // clear to send flag to computer - not used
// I/O interface to keyboard
input ps2_clk, // PS/2 keyboard serial clock input
input ps2_din, // PS/2 keyboard serial data input
// Outputs to VGA display
output vga_h_sync, // hozizontal VGA sync pulse
output vga_v_sync, // vertical VGA sync pulse
output [3:0] vga_r, // red VGA signal
output [3:0] vga_g, // green VGA signal
output [3:0] vga_b, // blue VGA signal
// Debugging ports
output [3:0] led,
input [1:0] button // 2 buttons on board
);
assign led[0] = 1;
assign led[1] = reset_n;
assign led[2] = clr_screen_n;
assign led[3] = 0;
wire clk25;
// ===============================================================
// System Clock generation (25MHz)
// ===============================================================
reg [1:0] clkpre = 2'b00; // prescaler, from 100MHz to 25MHz
always @(posedge clk)
begin
clkpre <= clkpre + 1;
end
wire clk25 = clkpre[1];
wire vga_bit;
// set the monochrome base colour here..
assign vga_r[3:0] = vga_bit ? 4'b1000 : 4'b0000;
assign vga_g[3:0] = vga_bit ? 4'b1111 : 4'b0000;
assign vga_b[3:0] = vga_bit ? 4'b1000 : 4'b0000;
// debounce reset button
wire reset_n;
debounce reset_button (
.clk25(clk25),
.rst(1'b0),
.sig_in(button[0]),
.sig_out(reset_n)
);
// debounce clear screen button
wire clr_screen_n;
debounce clr_button (
.clk25(clk25),
.rst(~reset_n),
.sig_in(button[1]),
.sig_out(clr_screen_n)
);
// apple one main system
apple1 #(
.BASIC_FILENAME (BASIC_FILENAME),
.FONT_ROM_FILENAME (FONT_ROM_FILENAME),
.RAM_FILENAME (RAM_FILENAME),
.VRAM_FILENAME (VRAM_FILENAME),
.WOZMON_ROM_FILENAME (WOZMON_ROM_FILENAME)
) my_apple1(
.clk25(clk25),
.rst_n(reset_n),
.uart_rx(uart_rx),
.uart_tx(uart_tx),
.uart_cts(uart_cts),
.ps2_clk(ps2_clk),
.ps2_din(ps2_din),
.ps2_select(1'b1), // PS/2 enabled, UART TX disabled
//.ps2_select(1'b0), // PS/2 disabled, UART TX enabled
.vga_h_sync(vga_h_sync),
.vga_v_sync(vga_v_sync),
.vga_red(vga_bit),
//.vga_grn(vga_bit),
//.vga_blu(vga_bit),
.vga_cls(~clr_screen_n),
);
endmodule

View File

@ -47,7 +47,6 @@ module apple1_top #(
output [2:0] vga_g, // green VGA signal
output [2:0] vga_b, // blue VGA signal
// Debugging ports
input [1:0] button // 2 buttons on board
);
@ -59,12 +58,28 @@ module apple1_top #(
.clock_out(clk25),
);
wire vga_bit;
wire vga_red, vga_green, vga_blue;
assign vga_r[2:0] = {vga_red, vga_red, vga_red};
assign vga_g[2:0] = {vga_green, vga_green, vga_green};
assign vga_b[2:0] = {vga_blue, vga_blue, vga_blue};
// set the monochrome base colour here..
assign vga_r[2:0] = vga_bit ? 3'b100 : 3'b000;
assign vga_g[2:0] = vga_bit ? 3'b111 : 3'b000;
assign vga_b[2:0] = vga_bit ? 3'b100 : 3'b000;
// debounce reset button
wire reset_n;
debounce reset_button (
.clk25(clk25),
.rst(1'b0),
.sig_in(button[0]),
.sig_out(reset_n)
);
// debounce clear screen button
wire clr_screen_n;
debounce clr_button (
.clk25(clk25),
.rst(~reset_n),
.sig_in(button[1]),
.sig_out(clr_screen_n)
);
// apple one main system
apple1 #(
@ -75,7 +90,7 @@ module apple1_top #(
.WOZMON_ROM_FILENAME (WOZMON_ROM_FILENAME)
) my_apple1(
.clk25(clk25),
.rst_n(button[0]),
.rst_n(reset_n),
.uart_rx(uart_rx),
.uart_tx(uart_tx),
@ -88,8 +103,9 @@ module apple1_top #(
.vga_h_sync(vga_h_sync),
.vga_v_sync(vga_v_sync),
.vga_red(vga_bit),
//.vga_grn(vga_bit),
//.vga_blu(vga_bit),
.vga_red(vga_red),
.vga_grn(vga_green),
.vga_blu(vga_blue),
.vga_cls(~clr_screen_n),
);
endmodule

View File

@ -73,13 +73,12 @@ module apple1_top #(
.RAM_FILENAME (RAM_FILENAME),
.VRAM_FILENAME (VRAM_FILENAME),
.WOZMON_ROM_FILENAME (WOZMON_ROM_FILENAME)
my_apple1(
) my_apple1(
.clk25(clk25),
.rst_n(1'b1),
.uart_rx(uart_rx),
.uart_tx(uart_tx),
.uart_cts(uart_cts),
.clr_screen_btn(1'b0),
.vga_h_sync(vga_h_sync),
.vga_v_sync(vga_v_sync),
.vga_red(vga_red),

View File

@ -267,12 +267,15 @@ module vga #(
char_seen <= 1;
case(din)
8'h0D,
8'h8D: begin
// handle carriage return
h_cursor <= 0;
v_cursor <= v_cursor + 'd1;
end
8'h00,
8'h0A,
8'h9B,
8'h7F: begin
// ignore the escape key

View File

@ -430,4 +430,4 @@
: 80 8F 00 13 54 48 45 20
: 4E 45 58 54 20 54 48 49
: 52 54 59 2E 2E 2E 20 00
:
280R

3
software/hello-world.txt Normal file
View File

@ -0,0 +1,3 @@
280: A2 C BD 8B 2 20 EF FF CA D0 F7 60 8D C4 CC D2 CF D7 A0 CF CC CC C5 C8
280R

55
software/lunar.txt Normal file
View File

@ -0,0 +1,55 @@
0300: 20 00 04 20 00 04 20 71 06 20 00 04 A9 00 85 00 85 01 85 05 85 08 85 09 A9 05 85 02 A9 50 85 04
: A9 20 85 06 A9 01 85 07 20 00 04 20 72 07 20 00 04 20 12 06 24 08 10 10 24 05 30 12 20 00 04 20
: 31 08 A9 00 85 0A F0 06 20 00 05 20 2E 05 20 58 05 A5 04 D0 04 A9 00 85 09 20 B7 05 20 F7 05 A5
: 02 F0 03 4C 2E 03 A5 01 F0 03 4C 2E 03 20 00 04 20 35 04 20 00 04 20 12 06 20 00 04 20 00 04 A5
: 04 F0 14 C9 03 90 10 C9 07 90 06 20 06 09 4C 9A 03 20 A9 08 4C 9A 03 20 71 08 20 00 04 20 00 04
: 20 43 09 20 15 04 C9 59 F0 0C 20 00 04 20 00 04 20 9A 09 4C 1F FF 4C 09 03 A9 0D 20 EF FF A9 0A
: 20 EF FF 60 A9 20 20 EF FF 60 AD AD 12 D0 10 FB AD 10 D0 29 7F 20 EF FF 60 49 30 C9 0A 10 06 4C
: E8 03 FA 90 03 29 0F 60 A9 FF 60 00 10 38 88 03 00 00 08 01 80 08 20 00 00 00 00 00 00 1C C4 00
: 48 A9 0D 20 EF FF A9 0A 20 EF FF 68 60 48 A9 20 20 EF FF 68 60 AD 11 D0 10 FB AD 10 D0 29 7F 20
: EF FF 60 49 30 C9 0A 30 06 4C 32 04 FA 90 03 29 0F 60 A9 99 60 20 00 04 20 53 08 20 00 04 60 A5
: 06 85 0A A9 FF 85 08 60 05 00 AA AE 01 00 00 00 A9 8D A2 18 20 EF FF CA D0 FA 60 00 60 FF FF FF
: 97 90 CD 2B FF FF FF FF 8D D2 E6 D3 FF FF FF FF A5 4C 85 4D A9 00 85 4E 85 4F CE 4F 00 D0 FB CE
: 4E 00 D0 F6 CE 4D 00 D0 F1 60 78 B7 FF FF FF FF 4B 50 FE FF FF FF F7 FF 36 BA CF FB FF FF 7F FF
: B8 11 8A A7 FF FF FF FF B0 56 3E F7 FF FF F3 FF B5 55 35 72 FF FF FF FF A3 36 8D 27 FF FF F7 FD
: 57 6E B2 A7 FF FF F7 FF 08 2C 9A 13 FF FF FF FF C5 B3 3E BD FF FF FF FF BD F1 CF 6B FF FF FF FF
: 00 56 45 4D 45 4E 54 0D 0A 0A 4D 41 58 49 4D 55 4D 98 33 37 FF FF FF FF F8 F4 FE AD FF FF BE FF
: 20 15 04 20 23 04 85 0B 20 15 04 C9 0D F0 1A 20 23 04 85 0C A5 0B 0A 0A 0A 0A 05 0C C9 31 B0 03
: 85 0A 60 20 67 09 4C 00 05 A5 0B 4C 1C 05 F8 38 A5 06 E5 0A 85 0B A5 07 E9 00 85 0C A5 07 C9 01
: F0 0C A5 06 C5 0A F0 02 B0 04 20 3F 04 EA A5 0B 85 06 A5 0C 85 07 60 40 F8 38 24 09 10 18 A5 04
: E9 05 85 0B C5 04 90 14 38 A9 00 E5 0B 85 04 A9 00 85 09 4C 7E 05 F8 18 A5 04 69 05 85 04 24 09
: 10 09 18 A5 04 65 0A 85 04 D8 60 38 A5 04 E5 0A 85 0B A5 0A C9 00 F0 19 A5 0B C5 04 F0 02 90 0D
: 38 A9 00 E5 0B 85 04 A9 FF 85 09 D8 60 85 04 D8 60 A5 0B 85 04 D8 60 F8 38 24 09 30 25 A5 01 E5
: 04 85 0B A5 02 F0 0B E9 00 85 02 4C F1 05 A5 0B F0 06 A5 01 C5 0B B0 04 A9 00 F0 02 A5 0B 85 01
: D8 60 18 A5 01 65 04 85 01 A5 02 69 00 85 02 D8 60 A5 0B 85 01 D8 60 F8 18 A5 00 69 01 85 00 D8
: 60 A0 00 B9 AD 09 20 EF FF C0 0A F0 04 C8 4C 03 06 60 20 0D 04 20 0D 04 A5 00 20 DC FF A0 04 20
: 0D 04 88 D0 FA A5 02 20 DC FF A5 01 20 DC FF A0 05 20 0D 04 88 D0 FA 24 09 30 07 A9 2D 20 EF FF
: D0 05 A9 2B 20 EF FF A5 04 20 DC FF 24 08 10 01 60 A0 06 20 0D 04 88 D0 FA A5 07 20 DC FF A5 06
: 20 DC FF A0 05 20 0D 04 88 D0 FA A9 3F 20 EF FF 60 A9 84 8D 04 06 A9 06 8D 05 06 A9 ED 8D 0A 06
: 20 01 06 60 4C 55 4E 41 52 20 4C 41 4E 44 45 52 0D 0D 0A 4D 49 4E 55 53 20 56 45 4C 4F 43 49 54
: 59 20 28 2D 29 20 4D 45 41 4E 53 20 44 4F 57 4E 57 41 52 44 0D 4D 4F 56 45 4D 45 4E 54 0D 0D 50
: 4C 55 53 20 20 56 45 4C 4F 43 49 54 59 20 28 2B 29 20 4D 45 41 4E 53 20 55 50 57 41 52 44 20 4D
: 4F 56 45 4D 45 4E 54 0D 0A 0A 4D 41 58 49 4D 55 4D 20 42 55 52 4E 20 49 53 20 33 30 20 55 4E 49
: 54 53 2F 53 45 43 2E 20 20 28 42 55 52 4E 20 4D 41 59 20 42 45 20 41 4E 59 20 49 4E 54 45 47 45
: 52 20 46 52 4F 4D 20 30 20 54 4F 20 33 30 29 0D 0D 41 20 42 55 52 4E 20 4F 46 20 35 20 55 4E 49
: 54 53 2F 53 45 43 20 49 53 20 52 45 51 55 49 52 45 44 20 54 4F 0D 43 41 4E 43 45 4C 20 47 52 41
: 56 49 54 59 2E 0D 0D 0A 47 4F 4F 44 20 4C 55 43 4B 21 A9 85 8D 04 06 A9 07 8D 05 06 A9 80 8D 0A
: 06 20 01 06 60 43 4F 4E 54 52 4F 4C 20 54 4F 20 4C 55 4E 41 52 20 4D 4F 44 55 4C 45 3A 0D 0A 42
: 45 47 49 4E 20 4C 41 4E 44 49 4E 47 20 50 52 4F 43 45 44 55 52 45 0D 0D 0D 0A 20 54 49 4D 45 20
: 20 48 45 49 47 48 54 20 56 45 4C 4F 43 49 54 59 20 46 55 45 4C 20 55 4E 49 54 53 20 20 42 55 52
: 4E 0D 0A 28 53 45 43 53 29 20 28 46 45 45 54 29 20 28 46 54 2F 53 45 43 29 20 20 52 45 4D 41 49
: 4E 49 4E 47 0D 0A 00 00 00 00 00 20 28 46 45 45 54 29 00 00 00 00 20 20 28 46 54 2F 53 45 43 29
: 00 00 00 00 00 00 00 20 52 45 4D 41 49 4E 49 4E 47 A9 48 8D 04 06 A9 08 8D 05 06 A9 0A 8D 0A 06
: 20 01 06 A9 FF 85 05 60 4F 55 54 20 4F 46 20 46 55 45 4C A9 66 8D 04 06 A9 08 8D 05 06 A9 0A 8D
: 0A 06 20 01 06 60 4F 4E 20 54 48 45 20 4D 4F 4F 4E A9 84 8D 04 06 A9 08 8D 05 06 A9 24 8D 0A 06
: 20 01 06 60 50 45 52 46 45 43 54 20 4C 41 4E 44 49 4E 47 21 07 07 07 07 0D 0A 43 4F 4E 47 52 41
: 54 55 4C 41 54 49 4F 4E 53 A9 BC 8D 04 06 A9 08 8D 05 06 A9 49 8D 0A 06 20 01 06 60 57 45 4C 4C
: 2C 20 59 4F 55 20 47 4F 54 20 44 4F 57 4E 20 41 4C 49 56 45 2C 20 42 55 54 20 44 41 4D 41 47 45
: 20 54 4F 20 59 4F 55 52 20 43 52 41 46 54 20 0A 48 41 53 20 53 54 52 41 4E 44 45 44 20 59 4F 55
: 20 48 45 52 45 21 A9 19 8D 04 06 A9 09 8D 05 06 A9 28 8D 0A 06 20 01 06 60 59 4F 55 20 4A 55 53
: 54 20 43 52 45 41 4D 45 44 20 41 20 32 39 20 4D 45 47 41 42 55 43 4B 20 4C 41 4E 44 45 52 21 07
: 07 07 07 A9 56 8D 04 06 A9 09 8D 05 06 A9 10 8D 0A 06 20 01 06 60 54 52 59 20 41 47 41 49 4E 3F
: 20 20 28 59 2F 4E 29 20 00 04 A9 7D 8D 04 06 A9 09 8D 05 06 A9 1C 8D 0A 06 20 01 06 60 42 55 52
: 4E 20 4F 55 54 20 4F 46 20 52 41 4E 47 45 2E 20 20 20 20 20 42 55 52 4E 20 3F A9 AD 8D 04 06 A9
: 09 8D 05 06 A9 0A 8D 0A 06 20 01 06 60 43 4F 4E 54 52 4F 4C 20 4F 55 54 FF
300R

25
software/matrix.txt Normal file
View File

@ -0,0 +1,25 @@
E000R
10 DIM A$(64)
20 A$="!@#$%^&*()+{}|:<>?/.,';][\=-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ"
30 GOSUB 1000
40 TAB 3:GOSUB 1000
50 TAB 5:GOSUB 1000
60 TAB 7:GOSUB 1000
70 TAB 10:GOSUB 1000
80 TAB 13:GOSUB 1000
90 TAB 15:GOSUB 1000
100 TAB 17:GOSUB 1000
105 TAB 20:GOSUB 1000
110 TAB 23:GOSUB 1000
120 TAB 25:GOSUB 1000
130 TAB 27:GOSUB 1000
140 TAB 30:GOSUB 1000
150 TAB 33:GOSUB 1000
160 TAB 35:GOSUB 1000
170 TAB 38:GOSUB 1000
180 PRINT:GOTO 30
1000 A=RND(64)+1:PRINT A$(A,A);:RETURN
1010 END
RUN

40
software/memory-test.txt Normal file
View File

@ -0,0 +1,40 @@
0: 00 05 00 10 00 00 00 00
8: 00 00 00 00 00 00 00 00
280: A9 00 85 07 A9 00 A8 AA
288: 85 06 A5 00 85 04 A5 01
290: 85 05 C0 04 D0 04 A5 04
298: 85 06 C0 05 D0 04 A5 05
2A0: 85 06 A5 06 81 04 A1 04
2A8: C5 06 D0 2E E6 04 D0 02
2B0: E6 05 A5 02 C5 04 D0 04
2B8: A5 03 C5 05 D0 D4 A5 00
2C0: 85 04 A5 01 85 05 C0 04
2C8: D0 04 A5 04 85 06 C0 05
2D0: D0 04 A5 05 85 06 A1 04
2D8: C5 06 D0 69 E6 04 D0 02
2E0: E6 05 A5 02 C5 04 D0 04
2E8: A5 03 C5 05 D0 D8 C0 00
2F0: D0 08 A9 FF 85 06 C8 4C
2F8: 8A 02 C0 01 D0 04 A9 01
300: D0 F2 C0 02 D0 08 06 06
308: 90 ED A9 7F D0 E6 C0 03
310: D0 08 38 66 06 B0 E0 C8
318: D0 DD C0 04 F0 F9 A9 50
320: 20 6C 03 A9 41 20 6C 03
328: A9 53 20 6C 03 A9 53 20
330: 6C 03 20 9C 03 E6 07 A5
338: 07 20 70 03 20 91 03 EA
340: EA EA 4C 84 02 48 98 20
348: 70 03 20 9C 03 A5 05 20
350: 70 03 A5 04 20 70 03 20
358: 9C 03 A5 06 20 70 03 20
360: 9C 03 68 20 70 03 20 91
368: 03 4C 00 FF 20 EF FF 60
370: 48 4A 4A 4A 4A 29 0F 09
378: 30 C9 3A 90 02 69 06 20
380: 6C 03 68 29 0F 09 30 C9
388: 3A 90 02 69 06 20 6C 03
390: 60 A9 0D 20 6C 03 A9 0A
398: 20 6C 03 60 A9 20 20 6C
3A0: 03 60
280R

289
software/microchess.txt Normal file
View File

@ -0,0 +1,289 @@
1000: 20 9B 15 20 B3 16 20 22
1008: 10 D8 A2 FF 9A A2 C8 86
1010: B2 20 F1 14 A9 3F 85 FC
1018: 20 CE 14 20 C3 14 C9 43
1020: D0 16 A2 1F BD 5E 18 95
1028: 50 CA 10 F8 A9 00 85 FD
1030: A2 1B 86 DC A9 CC D0 22
1038: C9 45 D0 0D 20 FE 12 A5
1040: FD 49 01 85 FD A9 EE D0
1048: 11 C9 44 D0 03 4C 09 10
1050: C9 50 D0 0E 20 BE 14 20
1058: F6 13 85 FB 85 FA 85 F9
1060: D0 A7 C9 0D D0 09 20 98
1068: 13 20 37 12 4C 09 10 C9
1070: 51 F0 03 4C 27 12 4C 1F
1078: FF 99 22 06 45 32 0C 72
1080: 14 01 63 63 05 64 43 0F
1088: 63 41 05 52 25 07 44 34
1090: 0E 53 33 0F CC 99 22 07
1098: 55 32 0D 45 06 00 63 14
10A0: 01 14 13 06 34 14 04 36
10A8: 25 06 52 33 0E 43 24 0F
10B0: 44 99 25 0B 25 01 00 33
10B8: 25 07 36 34 0D 34 34 0E
10C0: 52 25 0D 45 35 04 55 22
10C8: 06 43 33 0F CC 99 52 04
10D0: 52 52 06 75 44 06 52 41
10D8: 04 43 43 0F 43 25 06 52
10E0: 32 04 42 22 07 55 34 0F
10E8: 44 99 25 07 66 43 0E 55
10F0: 55 04 54 13 01 63 34 0E
10F8: 33 01 00 52 46 04 55 22
1100: 06 43 33 0F CC 99 06 00
1108: 52 11 06 34 22 0B 22 23
1110: 06 64 14 04 43 44 06 75
1118: 25 06 31 22 07 55 34 0F
1120: 44 99 25 01 25 15 01 33
1128: 25 07 72 01 00 63 11 04
1130: 66 21 0A 56 22 06 53 35
1138: 0D 52 34 0E CC 99 35 0C
1140: 52 52 06 62 44 06 52 06
1148: 00 75 14 04 66 11 05 56
1150: 21 0B 55 24 0F 42 25 06
1158: 43 99 03 02 63 25 0B 25
1160: 41 05 54 24 0E 72 01 00
1168: 36 46 04 52 25 07 55 22
1170: 06 43 33 0F CC 99 03 07
1178: 74 14 01 52 52 04 36 23
1180: 0E 53 06 00 75 41 04 31
1188: 25 06 52 22 07 55 34 0F
1190: 44 A6 B5 30 5C A5 B0 F0
1198: 08 E0 08 D0 04 C5 E6 F0
11A0: 2E F6 E3 C9 01 D0 02 F6
11A8: E3 50 1E A0 0F A5 B1 D9
11B0: 60 00 F0 03 88 10 F8 B9
11B8: 8F 18 D5 E4 90 04 94 E6
11C0: 95 E4 18 08 75 E5 95 E5
11C8: 28 E0 04 F0 03 30 31 60
11D0: A5 E8 85 DD A9 00 85 B5
11D8: 20 98 13 20 FE 12 20 4C
11E0: 12 20 FE 12 A9 08 85 B5
11E8: 20 55 12 20 7E 13 4C 53
11F0: 14 E0 F9 D0 0B A5 60 C5
11F8: B1 D0 04 A9 00 85 B4 60
1200: 50 FD A0 07 A5 B1 D9 60
1208: 00 F0 05 88 F0 F1 10 F6
1210: B9 8F 18 D5 E2 90 02 95
1218: E2 C6 B5 A9 FB C5 B5 F0
1220: 03 20 72 13 E6 B5 60 38
1228: E9 30 C9 08 B0 06 20 43
1230: 14 20 3A 12 4C 18 10 A5
1238: F9 2C A5 FA A2 1F D5 50
1240: F0 05 CA 10 F9 A2 BB 86
1248: FB 86 B0 60 A2 10 A9 00
1250: 95 DE CA 10 FB A9 10 85
1258: B0 C6 B0 10 01 60 20 6B
1260: 13 A4 B0 A2 08 86 B6 C0
1268: 08 10 41 C0 06 10 2E C0
1270: 04 10 1F C0 01 F0 09 10
1278: 0E 20 DA 12 D0 FB F0 D9
1280: 20 E8 12 D0 FB F0 D2 A2
1288: 04 86 B6 20 E8 12 D0 FB
1290: F0 C7 20 E8 12 A5 B6 C9
1298: 04 D0 F7 F0 BC A2 10 86
12A0: B6 20 DA 12 A5 B6 C9 08
12A8: D0 F7 F0 AD A2 06 86 B6
12B0: 20 16 13 50 05 30 03 20
12B8: 91 11 20 6B 13 C6 B6 A5
12C0: B6 C9 05 F0 EB 20 16 13
12C8: 70 8F 30 8D 20 91 11 A5
12D0: B1 29 F0 C9 20 F0 EE 4C
12D8: 59 12 20 16 13 30 03 20
12E0: 91 11 20 6B 13 C6 B6 60
12E8: 20 16 13 90 02 50 F9 30
12F0: 07 08 20 91 11 28 50 F0
12F8: 20 6B 13 C6 B6 60 A2 0F
1300: 38 B4 60 A9 77 F5 50 95
1308: 60 94 50 38 A9 77 F5 50
1310: 95 50 CA 10 EB 60 A5 B1
1318: A6 B6 18 7D 7E 18 85 B1
1320: 29 88 D0 42 A5 B1 A2 20
1328: CA 30 0E D5 50 D0 F9 E0
1330: 10 30 33 A9 7F 69 01 70
1338: 01 B8 A5 B5 30 24 C9 08
1340: 10 20 48 08 A9 F9 85 B5
1348: 85 B4 20 98 13 20 FE 12
1350: 20 55 12 20 7B 13 28 68
1358: 85 B5 A5 B4 30 04 38 A9
1360: FF 60 18 A9 00 60 A9 FF
1368: 18 B8 60 A6 B0 B5 50 85
1370: B1 60 20 98 13 20 FE 12
1378: 20 55 12 20 FE 12 BA 86
1380: B3 A6 B2 9A 68 85 B6 68
1388: 85 B0 AA 68 95 50 68 AA
1390: 68 85 B1 95 50 4C BD 13
1398: BA 86 B3 A6 B2 9A A5 B1
13A0: 48 A8 A2 1F D5 50 F0 03
13A8: CA 10 F9 A9 CC 95 50 8A
13B0: 48 A6 B0 B5 50 94 50 48
13B8: 8A 48 A5 B6 48 BA 86 B2
13C0: A6 B3 9A 60 A4 E4 EC 8F
13C8: 18 D0 04 A9 00 F0 0A A6
13D0: E3 D0 06 A6 EE D0 02 A9
13D8: FF A2 04 86 B5 C5 FA 90
13E0: 0C F0 0A 85 FA A5 B0 85
13E8: FB A5 B1 85 F9 A5 FC 49
13F0: 1F 85 FC 4C EC 14 A4 DC
13F8: 30 19 A5 F9 D1 43 D0 0F
1400: 88 B1 43 85 FB 88 B1 43
1408: 85 F9 88 84 DC D0 1C A9
1410: FF 85 DC A2 0C 86 B5 86
1418: FA A2 14 20 4E 12 A2 04
1420: 86 B5 20 4C 12 A6 FA E0
1428: 0F 90 15 A6 FB B5 50 85
1430: FA 86 B0 A5 F9 85 B1 20
1438: 98 13 20 37 12 4C 09 10
1440: A9 FF 60 A2 04 06 F9 26
1448: FA CA D0 F9 05 F9 85 F9
1450: 85 B1 60 18 A9 80 65 EB
1458: 65 EC 65 ED 65 E1 65 DF
1460: 38 E5 F0 E5 F1 E5 E2 E5
1468: E0 E5 DE E5 EF E5 E3 B0
1470: 02 A9 00 4A 18 69 40 65
1478: EC 65 ED 38 E5 E4 4A 18
1480: 69 90 65 DD 65 DD 65 DD
1488: 65 DD 65 E1 38 E5 E4 E5
1490: E4 E5 E5 E5 E5 E5 E0 A6
1498: B1 E0 33 F0 16 E0 34 F0
14A0: 12 E0 22 F0 0E E0 25 F0
14A8: 0A A6 B0 F0 09 B4 50 C0
14B0: 10 10 03 18 69 02 4C C4
14B8: 13 A9 20 4C EF FF A9 0D
14C0: 4C EF FF AD 11 D0 10 FB
14C8: AD 10 D0 29 7F 60 20 BE
14D0: 14 A5 FC 20 EF FF 20 B9
14D8: 14 20 AF 15 20 B9 14 A5
14E0: FA 20 AA 15 20 B9 14 A5
14E8: F9 4C AA 15 A9 2E 4C EF
14F0: FF 20 BE 14 20 84 15 20
14F8: 5F 15 A0 00 20 A9 15 A9
1500: 21 20 EF FF A2 1F 98 D5
1508: 50 F0 35 CA 10 F9 98 0A
1510: 0A 0A 0A 98 69 00 4A A9
1518: 20 B0 02 A9 23 20 EF FF
1520: 20 EF FF C8 98 29 08 F0
1528: D6 A9 21 20 EF FF 20 A9
1530: 15 20 BE 14 20 5F 15 98
1538: 18 69 08 30 47 A8 10 BC
1540: A9 57 E0 10 24 FD F0 04
1548: 2A 49 01 6A 90 02 A9 42
1550: 20 EF FF 8A 29 0F AA BD
1558: 4E 18 20 EF FF D0 C4 20
1560: B9 14 20 B9 14 8A 48 A2
1568: 08 A9 2B 20 EF FF A9 2D
1570: 20 EF FF 20 EF FF CA D0
1578: F0 A9 2B 20 EF FF 68 AA
1580: 20 BE 14 60 20 B9 14 20
1588: EF FF A2 00 20 B9 14 8A
1590: 20 DC FF E8 E0 08 D0 F4
1598: 4C BE 14 A2 00 BD D5 17
15A0: 30 06 20 EF FF E8 D0 F5
15A8: 60 98 29 77 4C DC FF A5
15B0: FB 30 13 29 0F 0A 0A 0A
15B8: AA A0 08 BD 39 17 20 EF
15C0: FF E8 88 D0 F6 60 C9 CC
15C8: D0 04 A2 80 D0 EB C9 EE
15D0: D0 04 A2 88 D0 E3 C9 FF
15D8: D0 04 A2 90 D0 DB A2 94
15E0: D0 D7 53 45 4C 45 43 54
15E8: 20 4C 45 56 45 4C 3A 00
15F0: 00 30 29 20 53 55 50 45
15F8: 52 42 4C 49 54 5A 00 31
1600: 29 20 42 4C 49 54 5A 00
1608: 32 29 20 4E 4F 52 4D 41
1610: 4C 00 FF 00 53 45 4C 45
1618: 43 54 20 4F 50 45 4E 49
1620: 4E 47 3A 20 43 4F 4D 50
1628: 20 50 4C 41 59 53 00 00
1630: 46 52 45 4E 43 48 20 44
1638: 45 46 45 4E 43 45 3A 20
1640: 30 29 20 57 20 31 29 20
1648: 42 00 47 49 55 4F 43 4F
1650: 20 50 49 41 4E 4F 3A 20
1658: 20 20 32 29 20 57 20 33
1660: 29 20 42 00 52 55 59 20
1668: 4C 4F 50 45 5A 3A 20 20
1670: 20 20 20 20 34 29 20 57
1678: 20 35 29 20 42 00 51 55
1680: 45 45 4E 27 53 20 49 4E
1688: 44 49 41 4E 3A 20 36 29
1690: 20 57 20 37 29 20 42 00
1698: 46 4F 55 52 20 4B 4E 49
16A0: 47 48 54 53 3A 20 20 20
16A8: 38 29 20 57 20 39 29 20
16B0: 42 00 FF A9 E2 85 41 A9
16B8: 15 85 42 20 1C 17 20 C3
16C0: 14 20 EF FF 38 E9 30 AA
16C8: D0 09 8E 3F 13 CA 8E 1C
16D0: 12 D0 1A CA D0 0A 8E 3F
16D8: 13 A2 FB 8E 1C 12 D0 0D
16E0: CA D0 D0 A2 08 8E 3F 13
16E8: A2 FB 8E 1C 12 A9 13 85
16F0: 41 A9 16 85 42 20 1C 17
16F8: 20 C3 14 20 EF FF 38 E9
1700: 30 C5 40 B0 E8 AA E8 A9
1708: 10 85 44 A9 79 CA F0 09
1710: 18 69 1C 90 F8 E6 44 D0
1718: F4 85 43 60 20 BE 14 A0
1720: FF C8 B1 41 D0 06 20 BE
1728: 14 4C 21 17 C9 FF F0 06
1730: 20 EF FF 4C 21 17 84 40
1738: 60 4B 49 4E 47 20 20 20
1740: 20 51 55 45 45 4E 20 20
1748: 20 4B 20 52 4F 4F 4B 20
1750: 20 51 20 52 4F 4F 4B 20
1758: 20 4B 20 42 49 53 48 4F
1760: 50 51 20 42 49 53 48 4F
1768: 50 4B 20 4B 4E 49 47 48
1770: 54 51 20 4B 4E 49 47 48
1778: 54 4B 20 52 20 50 41 57
1780: 4E 51 20 52 20 50 41 57
1788: 4E 4B 20 4E 20 50 41 57
1790: 4E 51 20 4E 20 50 41 57
1798: 4E 4B 20 42 20 50 41 57
17A0: 4E 51 20 42 20 50 41 57
17A8: 4E 51 20 50 41 57 4E 20
17B0: 20 4B 20 50 41 57 4E 20
17B8: 20 52 45 53 45 54 20 20
17C0: 20 45 58 43 48 41 4E 47
17C8: 45 4D 41 54 45 20 20 20
17D0: 20 20 20 20 20 0D 2B 2D
17D8: 2D 2D 2D 2D 2D 2D 2D 2D
17E0: 2D 2D 2D 2D 2D 2D 2D 2D
17E8: 2D 2D 2D 2B 0D 00 21 20
17F0: 20 20 20 20 4D 49 43 52
17F8: 4F 43 48 45 53 53 20 20
1800: 20 20 20 21 0D 00 21 20
1808: 28 43 29 20 50 45 54 45
1810: 52 20 4A 45 4E 4E 49 4E
1818: 47 53 20 21 0D 00 21 20
1820: 20 50 45 54 45 52 4A 40
1828: 42 45 4E 4C 4F 2E 43 4F
1830: 4D 20 20 21 0D 00 2B 2D
1838: 2D 2D 2D 2D 2D 2D 2D 2D
1840: 2D 2D 2D 2D 2D 2D 2D 2D
1848: 2D 2D 2D 2B 0D FF 4B 51
1850: 52 52 42 42 4E 4E 50 50
1858: 50 50 50 50 50 50 03 04
1860: 00 07 02 05 01 06 10 17
1868: 11 16 12 15 14 13 73 74
1870: 70 77 72 75 71 76 60 67
1878: 61 66 62 65 64 63 00 F0
1880: FF 01 10 11 0F EF F1 DF
1888: E1 EE F2 12 0E 1F 21 0B
1890: 0A 06 06 04 04 04 04 02
1898: 02 02 02 02 02 02 02 90
18A0: A2 49 00 3A F0 A0 59 04
18A8: AC 22 2E 56 2A E0 51 70
18B0: CF 3D F5 A8 3B 2D 81 31
18B8: DC DF 0A 49 05 F0 D0 08
18C0: 1F 85 57 A2 8F EB 51 34
18C8: AD 15 66 A8 82 33 EE 89
18D0: 0D 14 47 10 20 19 1C E1
18D8: CB CE C7 3D 30 05 4D D3
18E0: E2 8D 93 47 51 10 A1 35
18E8: 94 66 3E 43 70 49 2A 17
18F0: 5C C3 C4 0D 51 24 6C 96
18F8: 75 25 00 40 8E 4A 38 0F
1000R

37
software/pasart.txt Normal file
View File

@ -0,0 +1,37 @@
0300: 20 26 05 A9 00 85 00 A9 10 85 01 20 42 03 20 D3
0310: 03 20 83 04 20 2B 05 C9 1B D0 E5 60 20 3F 53 57
0320: 4F 52 20 3F 53 4E 4D 55 4C 4F 43 20 3F 4F 4C 55
0330: 44 4F 4D 20 3F 29 33 2C 32 2C 31 28 20 45 4C 59
0340: 54 53 A2 06 BD 1B 03 20 EF FF CA D0 F7 A5 02 20
0350: A7 03 C9 03 30 EC 85 02 85 0B A2 09 BD 21 03 20
0360: EF FF CA D0 F7 A5 03 20 A7 03 C9 03 30 EC C9 28
0370: 10 E8 85 03 85 0C A2 08 BD 2A 03 20 EF FF CA D0
0380: F7 A5 05 20 A7 03 F0 EE 85 05 A2 0F BD 32 03 20
0390: EF FF CA D0 F7 E6 04 A5 04 20 A7 03 F0 EC C9 04
03A0: 10 E8 85 04 C6 04 60 85 0D A2 00 86 06 86 07 86
03B0: 08 20 2B 05 C9 1B D0 05 68 68 68 68 60 20 EF FF
03C0: C9 0D F0 05 95 06 E8 D0 E8 8A F0 04 20 F5 04 60
03D0: A5 0D 60 A2 01 A5 04 F0 16 C9 01 D0 04 C6 0B D0
03E0: 0E A5 02 4A 69 00 85 0B A5 03 4A 69 00 85 0C A0
03F0: 01 A9 00 86 09 84 0A CA 20 A4 04 85 08 E8 88 20
0400: A4 04 C8 18 65 08 20 62 04 48 20 CF 04 68 A2 00
0410: 81 06 A6 04 F0 3D CA F0 22 48 A6 09 20 79 04 20
0420: CF 04 68 48 A2 00 81 06 A6 09 A4 0A 20 6F 04 20
0430: CF 04 68 48 A2 00 81 06 38 B0 08 48 A5 02 38 E5
0440: 09 85 0C A6 09 20 6F 04 20 79 04 20 CF 04 68 A2
0450: 00 81 06 A6 09 A4 0A C8 C4 0C D0 95 E8 E4 0B D0
0460: 8E 60 38 E5 05 F0 07 C5 05 10 F7 18 65 05 60 48
0470: A5 02 38 E5 09 AA CA 68 60 48 A5 03 38 E5 0A A8
0480: 88 68 60 A2 00 A0 00 20 26 05 20 A4 04 0A D0 04
0490: A9 20 D0 02 A9 2A 20 EF FF C8 C4 03 D0 EC E8 E4
04A0: 02 D0 E2 60 8A F0 25 98 F0 22 A5 04 F0 10 8A 38
04B0: E5 02 C9 FF F0 16 98 38 E5 03 C9 FF F0 0E 20 CF
04C0: 04 86 0D A2 00 A1 06 A6 0D 18 90 02 A9 01 60 8A
04D0: 48 A5 01 85 07 A5 00 85 06 E0 00 F0 0C 18 65 03
04E0: 85 06 90 02 E6 07 CA D0 F5 98 65 06 85 06 90 02
04F0: E6 07 68 AA 60 A5 06 20 18 05 C9 FF F0 20 48 A5
0500: 07 20 18 05 C9 FF D0 02 68 60 85 0D 68 85 08 0A
0510: 0A 18 65 08 0A 65 0D 60 49 30 C9 0A 90 02 A9 FF
0520: 60 A9 20 4C EF FF A9 0D 4C EF FF AD 11 D0 10 FB
0530: AD 10 D0 29 7F 60
300R