aboutsummaryrefslogtreecommitdiffstats
path: root/data
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2016-10-14 03:58:46 -0700
committerH. Peter Anvin <hpa@zytor.com>2016-10-14 03:58:46 -0700
commitb75d0d464345977847f947f07460345a7d67cee2 (patch)
treedacfc3575ef277d9259294fb47f7517912d38c74 /data
parent2ae02d9256b66756da4b089b65b9f45069baea9d (diff)
downloadabc80-b75d0d464345977847f947f07460345a7d67cee2.tar.gz
abc80-b75d0d464345977847f947f07460345a7d67cee2.tar.xz
abc80-b75d0d464345977847f947f07460345a7d67cee2.zip
Add color block graphics unit
Add a completely invented color block graphics unit; it should hopefully be fun for kids to play with using the equivalent method to using characters for groups of normal block pixels.
Diffstat (limited to 'data')
-rwxr-xr-xdata/mmuinit.pl16
-rw-r--r--data/video.txt2
2 files changed, 14 insertions, 4 deletions
diff --git a/data/mmuinit.pl b/data/mmuinit.pl
index 389c89f..fb04118 100755
--- a/data/mmuinit.pl
+++ b/data/mmuinit.pl
@@ -20,7 +20,7 @@
# 1 - Flash ROM
# 2 - Video RAM
# 3 - Character generator RAM
-# 4 - Reserved
+# 4 - Block graphics RAM
# 5 - Reserved
# 6 - Reserved
# 7 - Hyperspace (reads bits[7:0], writes nowhere)
@@ -29,6 +29,7 @@
#
$testram = 0;
+$with_bgram = 1;
sub do_ram() {
if ( $testram ) {
@@ -60,9 +61,12 @@ $a = 0;
for ( $i = 0x00 ; $i < 0x40 ; $i++ ) { # BASIC
printf("%03X : %04X;\n", $a++, 0x9000|$i);
}
-for ( $i = 0x40 ; $i < 0x60 ; $i++ ) { # Free for expansion
+for ( $i = 0x40 ; $i < 0x48 ; $i++ ) { # Free for expansion
printf("%03X : %04X;\n", $a++, 0x70FF);
}
+for ( $i = 0x48 ; $i < 0x60 ; $i++ ) { # Free for expansion or bgram
+ printf("%03X : %04X;\n", $a++, $with_bgram ? 0x4000|($i-0x48) : 0x70FF);
+}
for ( $i = 0x60 ; $i < 0x74 ; $i++ ) { # DOS, IEC options
printf("%03X : %04X;\n", $a++, 0x1000|$i);
}
@@ -84,7 +88,13 @@ do_ram();
for ( $i = 0x00 ; $i < 0x40 ; $i++ ) { # BASIC (in RAM)
printf("%03X : %04X;\n", $a++, 0x8000|$i);
}
-for ( $i = 0x40 ; $i < 0x74 ; $i++ ) { # Various ROMs (in RAM)
+for ( $i = 0x40 ; $i < 0x48 ; $i++ ) { # Expansion (fill with RAM)
+ printf("%03X : %04X;\n", $a++, 0x0000|$i);
+}
+for ( $i = 0x48 ; $i < 0x60 ; $i++ ) { # RAM or bgram
+ printf("%03X : %04X;\n", $a++, $with_bgram ? 0x4000|($i-0x48) : 0x0000|$i);
+}
+for ( $i = 0x60 ; $i < 0x74 ; $i++ ) { # DOS and IEC (in RAM)
printf("%03X : %04X;\n", $a++, 0x0000|$i);
}
for ( $i = 0x74 ; $i < 0x78 ; $i++ ) { # Video RAM (for 80 col only)
diff --git a/data/video.txt b/data/video.txt
index a5023d7..db3e1ef 100644
--- a/data/video.txt
+++ b/data/video.txt
@@ -1,5 +1,5 @@
Hello, World!
-Suzi is cute!
+Testing HPA's ABC80 FPGA simulation
BLUE blue BLUE blue
GREEN green GREEN green