Compare commits
223 Commits
v3.5.0-dev
...
v3.5.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1505c995e3 | ||
|
|
9ba6627da8 | ||
|
|
0558e84e09 | ||
|
|
fa45185945 | ||
|
|
99265f03d1 | ||
|
|
a2fcab4045 | ||
|
|
b3b4426a46 | ||
|
|
4ff6961539 | ||
|
|
72fcee24f3 | ||
|
|
8e56b270c4 | ||
|
|
42e50889be | ||
|
|
b3a250b63f | ||
|
|
30d79fe7f7 | ||
|
|
221b1b408c | ||
|
|
1f383a3639 | ||
|
|
f3e0de4a97 | ||
|
|
48689b8191 | ||
|
|
9b99a400f9 | ||
|
|
524b631a22 | ||
|
|
0f63bb0838 | ||
|
|
acce0ec15c | ||
|
|
00b6121391 | ||
|
|
ea6e31c58b | ||
|
|
75e10b64e3 | ||
|
|
6005472fa7 | ||
|
|
d7b7b8096e | ||
|
|
3c1f1ac70a | ||
|
|
ee60c11dec | ||
|
|
65ca9af785 | ||
|
|
76a5f210a0 | ||
|
|
06d9561f37 | ||
|
|
ecc7a15a7e | ||
|
|
2ca487b936 | ||
|
|
af0848f138 | ||
|
|
a5c68c6248 | ||
|
|
6500d243eb | ||
|
|
497e5333c4 | ||
|
|
9ad58ac59c | ||
|
|
fb9f9774d7 | ||
|
|
5239eed0e8 | ||
|
|
70a961ad55 | ||
|
|
49f4e3f292 | ||
|
|
3ca283d08f | ||
|
|
08a53f54d0 | ||
|
|
11459f989e | ||
|
|
b07055a73b | ||
|
|
4618de6621 | ||
|
|
207fe5f927 | ||
|
|
fe6cba2b1b | ||
|
|
a69797d0cf | ||
|
|
d3019dbb88 | ||
|
|
7cda84b4ce | ||
|
|
a24960a7d2 | ||
|
|
028a153568 | ||
|
|
05960f8b22 | ||
|
|
610a2746f5 | ||
|
|
ab9f0be267 | ||
|
|
d3489b642a | ||
|
|
8edefc1d8f | ||
|
|
63eebc8534 | ||
|
|
6beeef9b1e | ||
|
|
ab043e5cab | ||
|
|
bba9c5e26b | ||
|
|
a6a32bbd70 | ||
|
|
9aa0fbd2dc | ||
|
|
9dd54cb781 | ||
|
|
1d8c0c9c46 | ||
|
|
be225c6fb9 | ||
|
|
3121e3ee9d | ||
|
|
0982b5d462 | ||
|
|
c31f9de905 | ||
|
|
7157d7f11d | ||
|
|
e7937d47e3 | ||
|
|
32301ba6a9 | ||
|
|
12df99084e | ||
|
|
324c0bf0fb | ||
|
|
38c25e50c2 | ||
|
|
2176c9d1af | ||
|
|
af030bf76d | ||
|
|
e376e5577c | ||
|
|
b5d4e7ddf9 | ||
|
|
3880d8fca0 | ||
|
|
df28567506 | ||
|
|
f16a9415f7 | ||
|
|
561a7f7231 | ||
|
|
d416a986bb | ||
|
|
162348ea66 | ||
|
|
7e4c4d35e4 | ||
|
|
78917e78be | ||
|
|
69e152c4fb | ||
|
|
a14e64fced | ||
|
|
e3195669fc | ||
|
|
64d60f744b | ||
|
|
85834559d1 | ||
|
|
1c66ec3ba4 | ||
|
|
99f8d0b3a6 | ||
|
|
23160e3961 | ||
|
|
2c985070e8 | ||
|
|
a14a2e6128 | ||
|
|
c093cd2322 | ||
|
|
a93bfb1e77 | ||
|
|
e1beb01a51 | ||
|
|
d20c72fe21 | ||
|
|
8d91176230 | ||
|
|
1945826414 | ||
|
|
61d08e9f71 | ||
|
|
e212054774 | ||
|
|
479c50f052 | ||
|
|
90a4d090f9 | ||
|
|
d78127ca0f | ||
|
|
5c10f1881d | ||
|
|
fa6b0f1d82 | ||
|
|
fccd37f8dd | ||
|
|
08d88a98da | ||
|
|
6e8bdb141d | ||
|
|
d152cab8c8 | ||
|
|
3dd394e3c9 | ||
|
|
2fd65ab4b0 | ||
|
|
14dd7bf290 | ||
|
|
673f4358b2 | ||
|
|
34e472a553 | ||
|
|
e07c38dc1a | ||
|
|
9e6780a248 | ||
|
|
d80c44045f | ||
|
|
b7352da5c1 | ||
|
|
2b6fbe7c58 | ||
|
|
e3173ff802 | ||
|
|
8aebf93fdf | ||
|
|
51676238c7 | ||
|
|
983c0ff52b | ||
|
|
764abddb49 | ||
|
|
df0562bba8 | ||
|
|
eaf0431b20 | ||
|
|
6394605a20 | ||
|
|
17f1d1cb99 | ||
|
|
03e34a54d4 | ||
|
|
797ee4d1a4 | ||
|
|
f775a07365 | ||
|
|
e6117e9639 | ||
|
|
9df87738ad | ||
|
|
ebfb5b3fed | ||
|
|
f125efcca3 | ||
|
|
317ba99b37 | ||
|
|
add41fdb69 | ||
|
|
457aa44832 | ||
|
|
141c79ef90 | ||
|
|
7e2b2b8f40 | ||
|
|
e68cbded97 | ||
|
|
7d5dc565f3 | ||
|
|
b3bab80342 | ||
|
|
9898309f29 | ||
|
|
55d8c6ce7d | ||
|
|
cd70a62d67 | ||
|
|
307b8bb11b | ||
|
|
fd59d2e4f8 | ||
|
|
e021735876 | ||
|
|
91debe53c4 | ||
|
|
8e0af1720a | ||
|
|
83d26a4faf | ||
|
|
0eb0855948 | ||
|
|
37e682adc7 | ||
|
|
c2f7a75cdd | ||
|
|
39232f00f1 | ||
|
|
890dd1cd5e | ||
|
|
888706149d | ||
|
|
209f457120 | ||
|
|
945d5fc2d2 | ||
|
|
a078820745 | ||
|
|
21df9d8797 | ||
|
|
cd23863226 | ||
|
|
22b10c8ac8 | ||
|
|
4b80f36fd0 | ||
|
|
026fa3d0d7 | ||
|
|
3999039102 | ||
|
|
53198e066c | ||
|
|
3318b12667 | ||
|
|
df2ab201a2 | ||
|
|
20aa3a7d65 | ||
|
|
e757591fb3 | ||
|
|
44ceaa3e71 | ||
|
|
37a7574f1f | ||
|
|
ba8cd05cb7 | ||
|
|
cdc2b3964d | ||
|
|
21b2eee7ab | ||
|
|
bc68674ce2 | ||
|
|
37b3b96e49 | ||
|
|
aeb579d6ad | ||
|
|
229bf119d4 | ||
|
|
cb7ba38f76 | ||
|
|
b80d395266 | ||
|
|
fff0959f96 | ||
|
|
b781f16add | ||
|
|
273e61bc94 | ||
|
|
9bc4f26f6e | ||
|
|
ce9778e189 | ||
|
|
44d890be59 | ||
|
|
e1e485501c | ||
|
|
a31119bd5d | ||
|
|
6b00f5c992 | ||
|
|
20bdb78084 | ||
|
|
4ac7c1213a | ||
|
|
d834742337 | ||
|
|
baf0cd7788 | ||
|
|
572309d03c | ||
|
|
d9e009864b | ||
|
|
46cc57e5fc | ||
|
|
7e2b054fc1 | ||
|
|
d358c8bc1c | ||
|
|
2bc807edc8 | ||
|
|
57364bb581 | ||
|
|
a92aebddd7 | ||
|
|
8b63b32580 | ||
|
|
76cb52eb14 | ||
|
|
48ab169c60 | ||
|
|
0f4d16400f | ||
|
|
329a0f4d7f | ||
|
|
058a67dd40 | ||
|
|
40f2a9f35a | ||
|
|
3eea703d02 | ||
|
|
74daa4d3c5 | ||
|
|
0539b25046 | ||
|
|
a7e767d0b7 | ||
|
|
78a765147e |
142
.gitignore
vendored
@@ -77,6 +77,7 @@ Tools/unix/zx/zx
|
||||
|
||||
!Source/ver.lib
|
||||
!Source/Apps/FAT/FAT.COM
|
||||
!Source/Apps/copysl/copysl.com
|
||||
!Source/Apps/ZMP/zmpx.com
|
||||
!Source/Apps/ZMD/zmdsubs.rel
|
||||
!Source/Apps/Test/vdctest/font.asm
|
||||
@@ -99,6 +100,7 @@ Tools/unix/zx/zx
|
||||
!Source/ZRC512/*.bin
|
||||
!Source/Z1RCC/*.bin
|
||||
!Source/ZZRCC/*.bin
|
||||
!Source/FZ80/*.bin
|
||||
!Tools/cpm/**
|
||||
!Tools/unix/zx/*
|
||||
!Tools/zx/*
|
||||
@@ -109,4 +111,142 @@ Source/ZPM3/zccp.com
|
||||
Source/ZPM3/zpmldr.com
|
||||
Source/ZPM3/genbnk.dat
|
||||
|
||||
Source/ZSDOS/zsdos.err
|
||||
Source/ZSDOS/zsdos.err
|
||||
|
||||
# Lets explicit list all generate untracked binary files
|
||||
Binary/Apps/Tunes/bgm.vgm
|
||||
Binary/Apps/Tunes/ending.vgm
|
||||
Binary/Apps/Tunes/inchina.vgm
|
||||
Binary/Apps/Tunes/shirakaw.vgm
|
||||
Binary/Apps/Tunes/startdem.vgm
|
||||
Binary/Apps/Tunes/wonder01.vgm
|
||||
Binary/Apps/fdu.doc
|
||||
Binary/Apps/zmconfig.ovr
|
||||
Binary/Apps/zminit.ovr
|
||||
Binary/Apps/zmp.doc
|
||||
Binary/Apps/zmp.hlp
|
||||
Binary/Apps/zmterm.ovr
|
||||
Binary/Apps/zmxfer.ovr
|
||||
Binary/CPM3/bdos3.spr
|
||||
Binary/CPM3/bios3.spr
|
||||
Binary/CPM3/bnkbdos3.spr
|
||||
Binary/CPM3/bnkbios3.spr
|
||||
Binary/CPM3/cpm3fix.pat
|
||||
Binary/CPM3/genbnk.dat
|
||||
Binary/CPM3/gencpm.dat
|
||||
Binary/CPM3/genres.dat
|
||||
Binary/CPM3/readme.1st
|
||||
Binary/CPM3/resbdos3.spr
|
||||
Binary/CPNET/cpn12duo.lbr
|
||||
Binary/CPNET/cpn12mt.lbr
|
||||
Binary/CPNET/cpn12ser.lbr
|
||||
Binary/CPNET/cpn3duo.lbr
|
||||
Binary/CPNET/cpn3mt.lbr
|
||||
Binary/CPNET/cpn3ser.lbr
|
||||
Binary/RCEZ80_std.upd
|
||||
Binary/RCZ80_std.upd
|
||||
Binary/ZPM3/bnkbdos3.spr
|
||||
Binary/ZPM3/bnkbios3.spr
|
||||
Binary/ZPM3/gencpm.dat
|
||||
Binary/ZPM3/resbdos3.spr
|
||||
Binary/ZPM3/zinstal.zpm
|
||||
Binary/hd1k_prefix.dat
|
||||
Source/BPBIOS/def-ww.lib
|
||||
Source/CPNET/cpn12duo.lbr
|
||||
Source/CPNET/cpn12mt.lbr
|
||||
Source/CPNET/cpn12ser.lbr
|
||||
Source/CPNET/cpn3duo.lbr
|
||||
Source/CPNET/cpn3mt.lbr
|
||||
Source/CPNET/cpn3ser.lbr
|
||||
Source/Fonts/font8x11c.asm
|
||||
Source/Fonts/font8x11c.bin
|
||||
Source/Fonts/font8x11u.asm
|
||||
Source/Fonts/font8x16c.asm
|
||||
Source/Fonts/font8x16c.bin
|
||||
Source/Fonts/font8x16u.asm
|
||||
Source/Fonts/font8x8c.asm
|
||||
Source/Fonts/font8x8c.bin
|
||||
Source/Fonts/font8x8u.asm
|
||||
Source/Fonts/fontcgac.asm
|
||||
Source/Fonts/fontcgac.bin
|
||||
Source/Fonts/fontcgau.asm
|
||||
Source/Fonts/fontvgarcc.asm
|
||||
Source/Fonts/fontvgarcc.bin
|
||||
Source/Fonts/fontvgarcu.asm
|
||||
Source/HBIOS/RCEZ80_std.upd
|
||||
Source/HBIOS/RCZ80_std.upd
|
||||
Source/HBIOS/build_env.cmd
|
||||
Source/HBIOS/hbios_env.sh
|
||||
Source/Images/blank144
|
||||
Source/Images/blankhd1k
|
||||
Source/Images/blankhd512
|
||||
Source/Images/fd144_aztecc.img
|
||||
Source/Images/fd144_bascomp.img
|
||||
Source/Images/fd144_cowgol.img
|
||||
Source/Images/fd144_cpm22.img
|
||||
Source/Images/fd144_cpm3.img
|
||||
Source/Images/fd144_fortran.img
|
||||
Source/Images/fd144_games.img
|
||||
Source/Images/fd144_hitechc.img
|
||||
Source/Images/fd144_nzcom.img
|
||||
Source/Images/fd144_qpm.img
|
||||
Source/Images/fd144_tpascal.img
|
||||
Source/Images/fd144_ws4.img
|
||||
Source/Images/fd144_z80asm.img
|
||||
Source/Images/fd144_zpm3.img
|
||||
Source/Images/fd144_zsdos.img
|
||||
Source/Images/hd1k_aztecc.img
|
||||
Source/Images/hd1k_bascomp.img
|
||||
Source/Images/hd1k_blank.img
|
||||
Source/Images/hd1k_bp.img
|
||||
Source/Images/hd1k_combo.img
|
||||
Source/Images/hd1k_cowgol.img
|
||||
Source/Images/hd1k_cpm22.img
|
||||
Source/Images/hd1k_cpm3.img
|
||||
Source/Images/hd1k_fortran.img
|
||||
Source/Images/hd1k_games.img
|
||||
Source/Images/hd1k_hitechc.img
|
||||
Source/Images/hd1k_nzcom.img
|
||||
Source/Images/hd1k_qpm.img
|
||||
Source/Images/hd1k_tpascal.img
|
||||
Source/Images/hd1k_ws4.img
|
||||
Source/Images/hd1k_z80asm.img
|
||||
Source/Images/hd1k_zpm3.img
|
||||
Source/Images/hd1k_zsdos.img
|
||||
Source/Images/hd512_aztecc.img
|
||||
Source/Images/hd512_bascomp.img
|
||||
Source/Images/hd512_blank.img
|
||||
Source/Images/hd512_combo.img
|
||||
Source/Images/hd512_cowgol.img
|
||||
Source/Images/hd512_cpm22.img
|
||||
Source/Images/hd512_cpm3.img
|
||||
Source/Images/hd512_dos65.img
|
||||
Source/Images/hd512_fortran.img
|
||||
Source/Images/hd512_games.img
|
||||
Source/Images/hd512_hitechc.img
|
||||
Source/Images/hd512_nzcom.img
|
||||
Source/Images/hd512_qpm.img
|
||||
Source/Images/hd512_tpascal.img
|
||||
Source/Images/hd512_ws4.img
|
||||
Source/Images/hd512_z80asm.img
|
||||
Source/Images/hd512_zpm3.img
|
||||
Source/Images/hd512_zsdos.img
|
||||
Source/RomDsk/rom0_una.dat
|
||||
Source/RomDsk/rom0_wbw.dat
|
||||
Source/RomDsk/rom128_una.dat
|
||||
Source/RomDsk/rom128_wbw.dat
|
||||
Source/RomDsk/rom256_una.dat
|
||||
Source/RomDsk/rom256_wbw.dat
|
||||
Source/RomDsk/rom384_una.dat
|
||||
Source/RomDsk/rom384_wbw.dat
|
||||
Source/RomDsk/rom896_una.dat
|
||||
Source/RomDsk/rom896_wbw.dat
|
||||
Source/ZCPR-DJ/zcprdemo.com
|
||||
Source/ZPM3/autotog.com
|
||||
Source/ZPM3/clrhist.com
|
||||
Source/ZPM3/cpmldr.com
|
||||
Source/ZPM3/setz3.com
|
||||
Tools/unix/OpenSpin/build/
|
||||
Tools/unix/zxcc/config.h
|
||||
Tools/unix/zxcc/zxcc
|
||||
Binary/Apps/bbcbasic.txt
|
||||
|
||||
4
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"files.trimTrailingWhitespace": false,
|
||||
"files.eol": "\r\n"
|
||||
}
|
||||
@@ -8,5 +8,6 @@ if exist *.hlp del *.hlp
|
||||
if exist Tunes\*.pt? del Tunes\*.pt?
|
||||
if exist Tunes\*.mym del Tunes\*.mym
|
||||
if exist Tunes\*.vgm del Tunes\*.vgm
|
||||
if exist bbcbasic.txt del bbcbasic.txt
|
||||
|
||||
pushd Test && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -8,4 +8,4 @@ all::
|
||||
mkdir -p Tunes
|
||||
|
||||
clean::
|
||||
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.ovr *.hlp *.doc *.COM *.BIN Tunes/*.mym Tunes/*.pt? Tunes/*.vgm
|
||||
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.ovr *.hlp *.doc *.COM *.BIN Tunes/*.mym Tunes/*.pt? Tunes/*.vgm bbcbasic.txt
|
||||
|
||||
44
Binary/Apps/Test/inttest.doc
Normal file
@@ -0,0 +1,44 @@
|
||||
INTTEST
|
||||
=======
|
||||
|
||||
RomWBW includes an API allowing applications to "hook" interrupts.
|
||||
The `INTTEST` utility allows you to test this functionality.
|
||||
|
||||
|
||||
** Syntax **
|
||||
|
||||
`INTTEST`
|
||||
|
||||
|
||||
** Usage **
|
||||
|
||||
`INTTEST` is an interactive application. At startup, it will display
|
||||
a list of the interrupt vector slots in your system along with the
|
||||
current vector address for each of them.
|
||||
|
||||
It then prompts you to enter the slot number (in hex) of a vector to
|
||||
hook. After entering this, the application will watch the hooked
|
||||
vector and countdown from 0xFF to 0x00 as interrupts are noted.
|
||||
|
||||
When the counter reaches 0x00, the interrupt is unhooked and the
|
||||
application terminates. The application can also be terminated by
|
||||
pressing <esc>.
|
||||
|
||||
|
||||
** Notes **
|
||||
|
||||
If your system is running without interrupts active, the application
|
||||
will terminate immediately.
|
||||
|
||||
All slots have vectors even if the corresponding interrupt is not
|
||||
doing anything. In this case, the vector is pointing to the "bad
|
||||
interrupt" handler.
|
||||
|
||||
If you hook a vector that is not receiving any interrupts, the
|
||||
down-counter will not do anything.
|
||||
|
||||
|
||||
** Etymology* *
|
||||
|
||||
The `INTTEST` command is an original product and the source code is
|
||||
provided in the RomWBW distribution.
|
||||
4
Binary/CPM22/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.sys del *.sys
|
||||
7
Binary/CPM22/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.sys
|
||||
23
Binary/CPM22/ReadMe.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the CP/M 2.2 system files for the RomWBW CP/M 2.2
|
||||
adaptation. All of these files are already included on the CP/M
|
||||
boot disk images. However if you are creating a CP/M boot disk
|
||||
manually, you should copy all of these files to the boot disk.
|
||||
|
||||
Note: Two file have been provided one for RomWBW HBIOS, and one for UNA
|
||||
BIOS. One of these files must be installed on the system boot track.
|
||||
This is usually achieved by the SYSCOPY utility e.g.
|
||||
|
||||
SYSCOPY a:=cpm_wbw.sys
|
||||
|
||||
These files should also be copied to any CP/M 2.2 boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
@@ -12,6 +12,9 @@ if exist *.pdf del *.pdf
|
||||
if exist *.eeprom del *.eeprom
|
||||
|
||||
pushd Apps && call Clean || exit /b 1 & popd
|
||||
pushd CPM22 && call Clean || exit /b 1 & popd
|
||||
pushd CPM3 && call Clean || exit /b 1 & popd
|
||||
pushd QPM && call Clean || exit /b 1 & popd
|
||||
pushd ZSDOS && call Clean || exit /b 1 & popd
|
||||
pushd ZPM3 && call Clean || exit /b 1 & popd
|
||||
pushd CPNET && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
TOOLS = ../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom)
|
||||
SUBDIRS = Apps CPM3 ZPM3 CPNET
|
||||
SUBDIRS = Apps CPM22 CPM3 QPM ZSDOS ZPM3 CPNET
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
|
||||
4
Binary/QPM/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.sys del *.sys
|
||||
7
Binary/QPM/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.sys *.bin
|
||||
21
Binary/QPM/ReadMe.txt
Normal file
@@ -0,0 +1,21 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the QPM 2.7 system files for the RomWBW QPM 2.7
|
||||
adaptation. All of these files are already included on the QPM
|
||||
boot disk images. However if you are creating a QPM boot disk
|
||||
manually, you should copy all of these files to the boot disk.
|
||||
|
||||
Note: Two file have been provided one for RomWBW HBIOS, and one for UNA
|
||||
BIOS. One of these files must be installed on the system boot track.
|
||||
Refer to the QPM Documentation for installing QPM
|
||||
|
||||
These files should also be copied to any QPM boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
@@ -6,37 +6,37 @@
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Binary") is part of the RomWBW System Software
|
||||
distribution archive. It contains the completed binary outputs of
|
||||
the build process. As described below, these files are used to
|
||||
This directory ("Binary") is part of the RomWBW System Software
|
||||
distribution archive. It contains the completed binary outputs of
|
||||
the build process. As described below, these files are used to
|
||||
assemble a working RetroBrew Computers system.
|
||||
|
||||
The files in this directory are created by the build process that is
|
||||
documented in the ReadMe.txt file in the Source directory. When
|
||||
released the directory is populated with the default output files.
|
||||
However, the output of custom builds will be placed in this directory
|
||||
The files in this directory are created by the build process that is
|
||||
documented in the ReadMe.txt file in the Source directory. When
|
||||
released the directory is populated with the default output files.
|
||||
However, the output of custom builds will be placed in this directory
|
||||
as well.
|
||||
|
||||
If you only see a few files in this directory, then you downloaded
|
||||
just the source from GitHub. To retrieve the full release download
|
||||
package, go to https://github.com/wwarthen/RomWBW. On this page,
|
||||
look for the text "XX releases" where XX is a number. Click on this
|
||||
text to go to the releases page. On this page, you will see the
|
||||
latest releases listed. For each release, you will see a package
|
||||
file called something like "RomWBW-2.9.0-Package.zip". Click on the
|
||||
If you only see a few files in this directory, then you downloaded
|
||||
just the source from GitHub. To retrieve the full release download
|
||||
package, go to https://github.com/wwarthen/RomWBW. On this page,
|
||||
look for the text "XX releases" where XX is a number. Click on this
|
||||
text to go to the releases page. On this page, you will see the
|
||||
latest releases listed. For each release, you will see a package
|
||||
file called something like "RomWBW-2.9.0-Package.zip". Click on the
|
||||
package file for the release you want to download.
|
||||
|
||||
ROM Firmware Images (<plt>_<cfg>.rom)
|
||||
-------------------------------------
|
||||
|
||||
The files with a ".rom" extension are binary images ready to program
|
||||
into an appropriate PROM. These files are named with the format
|
||||
<plt>_<cfg>.rom. <plt> refers to the primary platform such as Zeta,
|
||||
N8, Mark IV, etc. <cfg> refers to the specific configuration. In
|
||||
general, there will be a standard configuration ("std") for each
|
||||
platform. So, for example, the file called MK4_std.rom is a ROM
|
||||
image for the Mark IV with the standard configuration. If a custom
|
||||
configuration called "custom" is created and built, a new file called
|
||||
The files with a ".rom" extension are binary images ready to program
|
||||
into an appropriate PROM. These files are named with the format
|
||||
<plt>_<cfg>.rom. <plt> refers to the primary platform such as Zeta,
|
||||
N8, Mark IV, etc. <cfg> refers to the specific configuration. In
|
||||
general, there will be a standard configuration ("std") for each
|
||||
platform. So, for example, the file called MK4_std.rom is a ROM
|
||||
image for the Mark IV with the standard configuration. If a custom
|
||||
configuration called "custom" is created and built, a new file called
|
||||
MK4_custom.rom will be added to this directory.
|
||||
|
||||
Documentation of the pre-built ROM Images is contained in
|
||||
@@ -54,52 +54,52 @@ contents. Refer to the RomWBW User Guide for more information.
|
||||
ROM Executable Images (<plt>_<cfg>.com)
|
||||
---------------------------------------
|
||||
|
||||
When a ROM image (".rom") is created, an executable version of the
|
||||
ROM is also created. These files have the same naming convention as
|
||||
the ROM Image files, but have the extension ".com". These files can
|
||||
When a ROM image (".rom") is created, an executable version of the
|
||||
ROM is also created. These files have the same naming convention as
|
||||
the ROM Image files, but have the extension ".com". These files can
|
||||
be copied to a working system and run like a normal CP/M application.
|
||||
|
||||
When run on the target system, they install in RAM just like they had
|
||||
When run on the target system, they install in RAM just like they had
|
||||
been loaded from ROM. This allows a new ROM build to be tested
|
||||
without reprogramming the actual ROM.
|
||||
|
||||
WARNING: In a few cases the .com file is too big to load. If you get
|
||||
a message like "Full" or "BAD LOAD" when trying to load one of the
|
||||
.com files, it is too big. In these cases, you will not be able to
|
||||
WARNING: In a few cases the .com file is too big to load. If you get
|
||||
a message like "Full" or "BAD LOAD" when trying to load one of the
|
||||
.com files, it is too big. In these cases, you will not be able to
|
||||
test the ROM prior to programming it.
|
||||
|
||||
VDU ROM Image (vdu.rom)
|
||||
-----------------------
|
||||
|
||||
The VDU video board requires a dedicated onboard ROM containing the
|
||||
font data. The "vdu.rom" file contains the binary data to program
|
||||
The VDU video board requires a dedicated onboard ROM containing the
|
||||
font data. The "vdu.rom" file contains the binary data to program
|
||||
onto that chip.
|
||||
|
||||
Disk Images (fd_*.img, hd_*.img, psys.img)
|
||||
------------------------------------------
|
||||
Disk Images (fd_*.img, hd_*.img)
|
||||
--------------------------------
|
||||
|
||||
RomWBW includes a mechanism for generating floppy disk and hard disk
|
||||
binary images that are ready to copy directly to a floppy, hard disk,
|
||||
CF Card, or SD Card which will then be ready for use in any
|
||||
RomWBW includes a mechanism for generating floppy disk and hard disk
|
||||
binary images that are ready to copy directly to a floppy, hard disk,
|
||||
CF Card, or SD Card which will then be ready for use in any
|
||||
RomWBW-based system.
|
||||
|
||||
Essentially, these files contain prepared floppy and hard disk images
|
||||
with a large set of programs and related files. By copying the
|
||||
contents of these files to appropriate media as described below, you
|
||||
Essentially, these files contain prepared floppy and hard disk images
|
||||
with a large set of programs and related files. By copying the
|
||||
contents of these files to appropriate media as described below, you
|
||||
can quickly create ready-to-use media. Win32DiskImager or
|
||||
RawWriteWin can be used to copy images directly to media. These
|
||||
programs are included in the RomWBW Tools directory.
|
||||
|
||||
The fd_*.img files are floppy disk images. They are sized for 1.44MB
|
||||
floppy media and can be copied to actual floppy disks using
|
||||
RawWriteWin (as long as you have access to a floppy drive on your
|
||||
Windows computer). The resulting floppy disks will be usable on any
|
||||
The fd_*.img files are floppy disk images. They are sized for 1.44MB
|
||||
floppy media and can be copied to actual floppy disks using
|
||||
RawWriteWin (as long as you have access to a floppy drive on your
|
||||
Windows computer). The resulting floppy disks will be usable on any
|
||||
RomWBW-based system with floppy drive(s).
|
||||
|
||||
Likewise, the hd512_*.img and hd1k_*.img files are hard disk images.
|
||||
Each file is intended to be copied to the start of any type of hard
|
||||
disk media (typically a CF Card or SD Card). The resulting media will
|
||||
be usable on any RomWBW-based system that accepts the corresponding
|
||||
Likewise, the hd512_*.img and hd1k_*.img files are hard disk images.
|
||||
Each file is intended to be copied to the start of any type of hard
|
||||
disk media (typically a CF Card or SD Card). The resulting media will
|
||||
be usable on any RomWBW-based system that accepts the corresponding
|
||||
media type.
|
||||
|
||||
NOTE: The hd512_*.img files are equivalent to the hd_*.img
|
||||
@@ -109,39 +109,86 @@ maximum number of CP/M directory entries from 512 to 1024.
|
||||
Refer to the ReadMe.txt in the Source/Images directory
|
||||
for details.
|
||||
|
||||
Documentation of the pre-built disk images is contained in the
|
||||
Documentation of the pre-built disk images is contained in the
|
||||
"RomWBW User Guide" found in the Doc directory. The contents of
|
||||
the disk images is contained in the "RomWBW Disk Catalog", but it
|
||||
is significantly out-of-date.
|
||||
|
||||
The contents of the floppy/hard disk images are created by
|
||||
the BuildImages.cmd script in the Source directory. Additional
|
||||
information on how to generate custom disk images is found in the
|
||||
The contents of the floppy/hard disk images are created by
|
||||
the BuildImages.cmd script in the Source directory. Additional
|
||||
information on how to generate custom disk images is found in the
|
||||
Source\Images ReadMe.txt file.
|
||||
|
||||
The psys.img file contains a full implementation of the UCSD p-System
|
||||
for the Z80 running under RomWBW. This image file must be placed on
|
||||
disk media by itself (not appended or concatenated with hd*.img files.
|
||||
Refer to the Source/pSys/ReadMe.txt file for more information on the
|
||||
Disk Images (hd512_combo.img, hd1k_combo.img, *_std_hd1k_combo.img)
|
||||
-------------------------------------------------------------------
|
||||
|
||||
The hd512_combo.img and hd1k_combo.img file are the primary combo
|
||||
disk image files suitable for most platforms.
|
||||
|
||||
The *_std_hd1k_combo.img files are platform specific combo files
|
||||
typically used in romless platforms, they also contain RomWBW binary code
|
||||
that is loaded at boot time into RAM
|
||||
|
||||
Disk Images (hd1k_prefix.dat, *_std_hd1k_prefix.dat)
|
||||
----------------------------------------------------
|
||||
|
||||
The hd1k_prefix.dat file is part of the combo disk images and is
|
||||
applied to hd1k image files as a prefix, it contains the standard
|
||||
partion table.
|
||||
|
||||
The *_std_hd1k_prefix.dat files are platform specific prefixes
|
||||
typically used in romless platforms, they also contain RomWBW binary code
|
||||
that is loaded at boot time into RAM
|
||||
|
||||
Disk Images (psys.img)
|
||||
----------------------
|
||||
|
||||
The psys.img file contains a full implementation of the UCSD p-System
|
||||
for the Z80 running under RomWBW. This image file must be placed on
|
||||
disk media by itself (not appended or concatenated with hd*.img files.
|
||||
Refer to the Source/pSys/ReadMe.txt file for more information on the
|
||||
p-System implementation.
|
||||
|
||||
Propeller ROM Images (*.eeprom)
|
||||
-------------------------------
|
||||
|
||||
The files with and extension of ".eeprom" contain the binary images
|
||||
to be programmed into the Propeller-based boards. The list below
|
||||
The files with and extension of ".eeprom" contain the binary images
|
||||
to be programmed into the Propeller-based boards. The list below
|
||||
indicates which file targets each of the Propeller board variants:
|
||||
|
||||
ParPortProp ParPortProp.eeprom
|
||||
PropIO V1 PropIO.eeprom
|
||||
PropIO V2 PropIO2.eeprom
|
||||
|
||||
Refer to the board documentation of the boards for more information
|
||||
Refer to the board documentation of the boards for more information
|
||||
on how to program the EEPROMs on these boards.
|
||||
|
||||
SUB DIRECTORIES
|
||||
===============
|
||||
|
||||
Apps Directory
|
||||
--------------
|
||||
|
||||
The Apps subdirectory contains the executable application files that
|
||||
are specific to RomWBW. The source for these applications is found
|
||||
in the Source\Apps directory of the distribution.
|
||||
in the Source\Apps directory of the distribution.
|
||||
|
||||
CPNET Directory
|
||||
---------------
|
||||
|
||||
This directory contains the CP/NET client packages. Please refer to
|
||||
the RomWBW User Guide for instructions on installing these packages,
|
||||
or see the Readme.txt file in this sub-directory
|
||||
|
||||
CPM22 CPM3 ZSDOS ZPM3 QPM Directories
|
||||
-------------------------------------
|
||||
|
||||
These directories contains the system files for the RomWBW adaptations
|
||||
for each operating system. All of these files are already included on
|
||||
the boot disk images. However if you are creating a o/s boot disk
|
||||
manually, you will need copy all of these files to the boot disk.
|
||||
|
||||
These files should also be copied to any boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
|
||||
4
Binary/ZSDOS/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.sys del *.sys
|
||||
7
Binary/ZSDOS/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.sys
|
||||
23
Binary/ZSDOS/ReadMe.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the ZSDOS system files for the RomWBW ZSDOS
|
||||
adaptation. All of these files are already included on the ZSDOS
|
||||
boot disk images. However if you are creating a ZSDOS boot disk
|
||||
manually, you should copy all of these files to the boot disk.
|
||||
|
||||
Note: Two file have been provided one for RomWBW HBIOS, and one for UNA
|
||||
BIOS. One of these files must be installed on the system boot track.
|
||||
This is usually achieved by the SYSCOPY utility e.g.
|
||||
|
||||
SYSCOPY a:=zsys_wbw.sys
|
||||
|
||||
These files should also be copied to any ZSDOS boot disks on your
|
||||
system when you upgrade your ROM firmware. Some of these files
|
||||
*must* match the version of the RomWBW firmware you are using for
|
||||
proper operation of your system.
|
||||
@@ -7,8 +7,8 @@
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Doc/CPM") is part of the RomWBW System Software
|
||||
distribution archive. It contains documentation for the CP/M
|
||||
operating system components of the system.
|
||||
distribution archive. It contains documentation for the CP/M and
|
||||
CP/M work-alike operating system components of the system.
|
||||
|
||||
|
||||
CPM Manual ("CPM Manual.pdf")
|
||||
|
||||
@@ -14,7 +14,36 @@ Version 3.5
|
||||
- DDW: Added support for Duodyne Media board
|
||||
- WBW: Auto restore TMS video on user reset (CP/M warm boot)
|
||||
- L?B: Added support for NABU w/ RomWBW Option Board
|
||||
- M?P: Reorganization of Doc directory introducing subfolders
|
||||
- MAP: Reorganization of Doc directory introducing subfolders
|
||||
- WBW: Upgraded BBCBASIC to v5.00
|
||||
- W?S: Updated FLASH utility to v1.3.9
|
||||
- WBW: Support RCBus PS/2 Keyboard (EP/Sally)
|
||||
- M?R: Update Timer app to display output in decimal
|
||||
- WBW: Preliminary support for S100 FPGA Z80 platform
|
||||
- WBW: Added simple serial (SSER) driver
|
||||
- WBW: Added preliminary support for S100 FPGA Z80 SD Cards
|
||||
- M?R: Consolidated ROM Applications document into the Applications document
|
||||
- M?R: Reviewed and substantially improved the Applications document
|
||||
- WBW: Added support for DS1305 RTC on S100 FPGA Z80
|
||||
- WBW: Added support for Les Bird's RCBus Graphics/Sound/Joystick module
|
||||
- WBW: Added support for Les Bird's Dual 16C550 UART module
|
||||
- WBW: Refactor UART driver for more flexible configuration
|
||||
- M?R: Added hour/minute/second display to timer app
|
||||
- WBW: Substantial customization of NZ-COM disk image
|
||||
- WBW: Refactor build post-processing (ZRC, ZZRCC, etc.)
|
||||
- MAP: Improved section Real Time Clock in User Guide document
|
||||
- WBW: Support for Hitachi HD44780-based LCD display
|
||||
- DRJ: Added support for Genesis STD Bus Z180 platform
|
||||
- MAP: Improved section Disk Management in User Guide document
|
||||
- WBW: Add CPU speed selection for HEATH platform to HBIOS
|
||||
- WBW: Add Warm/Cold reboot options to CPUSPD utility
|
||||
- D?N: Added support for eZ80 CPU
|
||||
- MAP: Contributed COPYSL utility
|
||||
- MAP: Added new HBIOS function EXT_SLICE (orginally SYSGET_DIOMED)
|
||||
- MAP: ROMLDR now uses EXT_SLICE to get Slice Sector for boot
|
||||
- MAP: CBIOS now uses EXT_SLICE during drive selection
|
||||
- MAP: CPM3 Boot Loader, and BIOS (drive select) now use EXT_SLICE
|
||||
- M?R: Added REBOOT application
|
||||
|
||||
Version 3.4
|
||||
-----------
|
||||
@@ -683,4 +712,4 @@ interrupts disabled the BIOS will now start OK even if some vagrant
|
||||
hardware is asserting an interrupt (DISKIO). Seems like this is better
|
||||
anyway -- general idea is that we only enable interupts precisely
|
||||
when desired for very specific controled purposes since there is no
|
||||
concept of interrupt dispatching available.
|
||||
concept of interrupt dispatching available.
|
||||
|
||||
BIN
Doc/Contrib/AY-3-8910 Registers.xlsx
Normal file
@@ -20,7 +20,7 @@ Beyond the construction and integration of the actual DOS itself, the majority o
|
||||
|
||||
The remainder of this document details the changes I made as I went along. In all cases, my goal was to keep the result as close to the original distribution as possible. I started by copying all of the files from the distribution (contained in zsdos2.zip) into Support\ZSDOS. From there I tested, modified, updated, and customized as documented below. Finally, I cherry picked files that made sense to include on the ZSystem ROM disks.
|
||||
|
||||
1. CLOCKS.DAT has been updated to include the RomWBW clock driver, HBCLK. I have also added the SIMHCLOK clock driver.
|
||||
1. CLOCKS.DAT has been updated to include the RomWBW clock driver, WBWCLK. I have also added the SIMHCLOK clock driver.
|
||||
|
||||
2. STAMPS.DAT has been replaced with an updated version. The update was called STAMPS11.DAT and was found on the Walnut Creek CP/M CDROM. The original version has a bug that prevents RSX (resident system extension) mode to load properly.
|
||||
|
||||
|
||||
@@ -1,144 +0,0 @@
|
||||
SIMH (X)
|
||||
----
|
||||
- Test UART driver
|
||||
- Test HDSK driver
|
||||
|
||||
Zeta 1 (X)
|
||||
------
|
||||
- Test UART driver
|
||||
- Test PPP detection (startup w/ and w/o PPP)
|
||||
- Test boot to CRT
|
||||
- Test PPPSD driver
|
||||
- Test PPPCON driver (video & kbd)
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
|
||||
Zeta 2 (X)
|
||||
------
|
||||
- Test UART driver
|
||||
- Test PPP detection (startup w/ and w/o PPP)
|
||||
- Test boot to CRT
|
||||
- Test PPPSD driver
|
||||
- Test PPPCON driver (video & kbd)
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
|
||||
RCBus (X)
|
||||
------
|
||||
- Test SIO driver (Serial Module)
|
||||
- Test ACIA driver (Dual Serial Module)
|
||||
- Test IDE driver (Compact Flash Module)
|
||||
- Test PPIDE driver (IDE Module)
|
||||
- Test FD driver (SMC and WDC)
|
||||
- Test FDU app (SMC and WDC)
|
||||
|
||||
N8-2312 (X)
|
||||
-------
|
||||
- Test ASCI driver
|
||||
- Test SD driver (CSIO mode)
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
- Test TMS driver (video & kbd)
|
||||
|
||||
N8-2511 (X)
|
||||
-------
|
||||
- Test ASCI driver
|
||||
- Test SD driver (Juha mode)
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
- Test TMS driver (video & kbd)
|
||||
|
||||
SBC (X)
|
||||
---
|
||||
- Test UART driver
|
||||
- Test PPIDE driver
|
||||
- Test PPISD driver
|
||||
- Test PRP detection
|
||||
- Test boot to CRT console
|
||||
|
||||
MK4 (X)
|
||||
---
|
||||
- Test ASCI driver
|
||||
- Test IDE driver
|
||||
- Test SD driver
|
||||
- Test PRP detection
|
||||
|
||||
RAMF (X)
|
||||
----
|
||||
- Test RAMF driver
|
||||
|
||||
PRP (X)
|
||||
---
|
||||
- Test PRPSD driver
|
||||
- Test PRPCON driver (video & kbd)
|
||||
|
||||
SCG (X)
|
||||
---
|
||||
- Test TMS driver (video)
|
||||
|
||||
VDU (X)
|
||||
---
|
||||
- Test CVDU driver (video & kbd)
|
||||
|
||||
CVDU (X)
|
||||
----
|
||||
- Test CVDU driver (video & kbd)
|
||||
|
||||
VGA (X)
|
||||
---
|
||||
- Test VGA driver (video & kbd)
|
||||
|
||||
DIO (X)
|
||||
---
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
- Test IDE driver
|
||||
|
||||
DIO3 (X)
|
||||
----
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
- Test PPIDE driver
|
||||
|
||||
DIDE (X)
|
||||
----
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
- Test IDE driver
|
||||
|
||||
DSD (X)
|
||||
---
|
||||
- Test SD driver
|
||||
|
||||
4UART (X)
|
||||
-----
|
||||
- Test UART driver
|
||||
|
||||
|
||||
UNA (X)
|
||||
---
|
||||
- General Startup
|
||||
- Boot from disk functionality
|
||||
- Image loading
|
||||
- Monitor
|
||||
- XM app
|
||||
- ASSIGN app
|
||||
- MODE app
|
||||
- SYSCOPY app
|
||||
- OSLDR app
|
||||
- FDU app
|
||||
- FDISK80 app
|
||||
|
||||
GENERAL (X)
|
||||
-------
|
||||
- Boot to ROM
|
||||
- Boot to Disk
|
||||
- Boot to Monitor
|
||||
- XM app
|
||||
- XM port auto-detect
|
||||
- ASSIGN app
|
||||
- MODE app
|
||||
- SYSCOPY app
|
||||
- FDU app
|
||||
- FDISK80 app
|
||||
- TUNE app
|
||||
48
Dockerfile
Normal file
@@ -0,0 +1,48 @@
|
||||
FROM ubuntu:jammy-20240111 as basebuilder
|
||||
|
||||
# This docker file can be used to build a tool chain docker image for building RomWBW images.
|
||||
|
||||
# Tested on a ubuntu host and on Windows un WSL (with docker desktop)
|
||||
|
||||
# First build the docker image (will b)
|
||||
# docker build --progress plain -t romwbw-chain .
|
||||
|
||||
# After you have built the above image (called romwbw-chain), you can use it to compile and build the RomWBW images
|
||||
# as per the standard make scripts within RomWBW.
|
||||
# Start a new terminal, cd to where you have clone RomWBW, and then run this command:
|
||||
# docker run -v ${PWD}:/src/ --privileged=true -u $(id -u ${USER}):$(id -g ${USER}) -it romwbw-chain:latest
|
||||
|
||||
# you can now compile and build the required images:
|
||||
|
||||
# cd Tools && make
|
||||
# cd Source && make # at least once to build many common units
|
||||
# cd Source && make rom ROM_PLATFORM=RCEZ80 ROM_CONFIG=std
|
||||
|
||||
# when finish, type 'exit' to return to back to your standard terminal session
|
||||
|
||||
LABEL Maintainer="Dean Netherton" \
|
||||
Description="spike to use clang for ez80 target"
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
|
||||
RUN dpkg --add-architecture i386
|
||||
RUN sed -i 's/http:\/\/archive\.ubuntu\.com\/ubuntu/http:\/\/au.archive.ubuntu.com\/ubuntu/g' /etc/apt/sources.list
|
||||
RUN apt update -y
|
||||
RUN apt dist-upgrade -y
|
||||
RUN apt install -y --no-install-recommends cmake lzip ca-certificates mtools build-essential dos2unix libboost-all-dev texinfo texi2html libxml2-dev subversion bison flex zlib1g-dev m4 git wget dosfstools curl
|
||||
|
||||
RUN mkdir work
|
||||
WORKDIR /work
|
||||
|
||||
FROM basebuilder as main
|
||||
|
||||
LABEL Maintainer="Dean Netherton" \
|
||||
Description="spike to build RomWBW"
|
||||
|
||||
RUN mkdir /src
|
||||
WORKDIR /src/
|
||||
|
||||
RUN apt install -y --no-install-recommends build-essential libncurses-dev srecord bsdmainutils
|
||||
|
||||
RUN adduser --disabled-password --gecos "" builder
|
||||
13
ReadMe.md
@@ -3,7 +3,7 @@
|
||||
**RomWBW ReadMe** \
|
||||
Version 3.5 \
|
||||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
|
||||
17 May 2024
|
||||
13 Oct 2024
|
||||
|
||||
# Overview
|
||||
|
||||
@@ -124,8 +124,6 @@ Documentation for RomWBW includes:
|
||||
Guide](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20System%20Guide.pdf)
|
||||
- [RomWBW
|
||||
Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Applications.pdf)
|
||||
- [RomWBW ROM
|
||||
Applications](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20ROM%20Applications.pdf)
|
||||
- [RomWBW
|
||||
Errata](https://github.com/wwarthen/RomWBW/raw/master/Doc/RomWBW%20Errata.pdf)
|
||||
|
||||
@@ -188,8 +186,8 @@ let me know if I missed you!
|
||||
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
|
||||
- Dean Netherton contributed the sound driver interface and the SN76489
|
||||
sound driver.
|
||||
- Dean Netherton contributed eZ80 CPU support, the sound driver
|
||||
interface, and the SN76489 sound driver.
|
||||
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
@@ -198,7 +196,10 @@ let me know if I missed you!
|
||||
Microsoft Fortran Compiler, and a Games compendium.
|
||||
|
||||
- Martin R has provided substantial help reviewing and improving the
|
||||
User Guide.
|
||||
User Guide and Applications documents.
|
||||
|
||||
- Mark Pruden has also contributed a great deal of content to the User
|
||||
Guide as well as the COPYSL utility.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
|
||||
12
ReadMe.txt
@@ -1,6 +1,6 @@
|
||||
RomWBW ReadMe
|
||||
Wayne Warthen (wwarthen@gmail.com)
|
||||
17 May 2024
|
||||
13 Oct 2024
|
||||
|
||||
|
||||
|
||||
@@ -122,7 +122,6 @@ Documentation for RomWBW includes:
|
||||
- RomWBW User Guide
|
||||
- RomWBW System Guide
|
||||
- RomWBW Applications
|
||||
- RomWBW ROM Applications
|
||||
- RomWBW Errata
|
||||
|
||||
|
||||
@@ -188,8 +187,8 @@ let me know if I missed you!
|
||||
|
||||
- Tasty Basic is a product of Dimitri Theulings.
|
||||
|
||||
- Dean Netherton contributed the sound driver interface and the
|
||||
SN76489 sound driver.
|
||||
- Dean Netherton contributed eZ80 CPU support, the sound driver
|
||||
interface, and the SN76489 sound driver.
|
||||
|
||||
- The RomWBW Disk Catalog document was produced by Mykl Orders.
|
||||
|
||||
@@ -198,7 +197,10 @@ let me know if I missed you!
|
||||
BASIC Compiler, Microsoft Fortran Compiler, and a Games compendium.
|
||||
|
||||
- Martin R has provided substantial help reviewing and improving the
|
||||
User Guide.
|
||||
User Guide and Applications documents.
|
||||
|
||||
- Mark Pruden has also contributed a great deal of content to the User
|
||||
Guide as well as the COPYSL utility.
|
||||
|
||||
- Jacques Pelletier has contributed the DS1501 RTC driver code.
|
||||
|
||||
|
||||
23
Source/Apps/BBCBASIC/Build.cmd
Normal file
@@ -0,0 +1,23 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=..\..\..\Tools
|
||||
|
||||
set PATH=%TOOLS%\zxcc;%PATH%
|
||||
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
zxcc z80asm -dist/FM
|
||||
zxcc z80asm -main/FM
|
||||
zxcc z80asm -exec/FM
|
||||
zxcc z80asm -eval/FM
|
||||
zxcc z80asm -asmb/FM
|
||||
zxcc z80asm -cmos/FM
|
||||
zxcc z80asm -math/FM
|
||||
zxcc z80asm -hook/FM
|
||||
zxcc z80asm -data/FM
|
||||
|
||||
zxcc slrnk -/v,/a:0100,dist,main,exec,eval,asmb,math,hook,cmos,/p:4B00,data,bbcbasic/n,/e
|
||||
|
||||
copy /Y bbcbasic.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y bbcbasic.txt ..\..\..\Binary\Apps\ || exit /b
|
||||
9
Source/Apps/BBCBASIC/Clean.cmd
Normal file
@@ -0,0 +1,9 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.hex del *.hex
|
||||
if exist *.prn del *.prn
|
||||
if exist *.rel del *.rel
|
||||
if exist *.sym del *.sym
|
||||
11
Source/Apps/BBCBASIC/Makefile
Normal file
@@ -0,0 +1,11 @@
|
||||
OBJECTS = bbcbasic.com
|
||||
DOCS = bbcbasic.txt
|
||||
DEST = ../../../Binary/Apps
|
||||
DOCDEST = ../../../Binary/Apps
|
||||
TOOLS = ../../../Tools
|
||||
OTHERS = *.rel
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
bbcbasic.com: dist.rel main.rel exec.rel eval.rel asmb.rel cmos.rel math.rel hook.rel data.rel
|
||||
$(ZXCC) SLRNK -/V,/A:0100,DIST,MAIN,EXEC,EVAL,ASMB,MATH,HOOK,CMOS,/P:4B00,DATA,BBCBASIC/N,/E
|
||||
1010
Source/Apps/BBCBASIC/asmb.z80
Normal file
@@ -1,3 +1,20 @@
|
||||
This is a RomWBW HBIOS adaptation of BBCBASIC v5.00. The
|
||||
cursor and screen management assumes the use of an ANSI/VT-100 terminal
|
||||
which is generally correct for RomWBW. Support for a hardware system
|
||||
timer is also implemented. If your system does not have a hardware
|
||||
timer, the TIME function will always return 0 and the timeout
|
||||
parameter of the INKEY(n) function will not be observed (will never
|
||||
timeout).
|
||||
|
||||
What follows is some basic information on BBCBASIC from the
|
||||
distribution. Note that it starts with the v3.00 information and
|
||||
later on provides information on the changes in v5.00.
|
||||
|
||||
-- WBW 1:15 PM 5/30/2024
|
||||
|
||||
|
||||
|
||||
|
||||
BBC BASIC (Z80)
|
||||
|
||||
Generic CP/M Version 3.00
|
||||
@@ -366,4 +383,73 @@
|
||||
198 Disk full 254 Bad command
|
||||
200 Close error 255 CP/M error
|
||||
204 Bad name
|
||||
|
||||
|
||||
|
||||
New features in BBC BASIC (Z80) version 5.00, May 2024:
|
||||
|
||||
1. BASIC V statements
|
||||
|
||||
1.1 WHILE...ENDWHILE
|
||||
1.2 Multi-line IF...THEN...ELSE...ENDIF
|
||||
1.3 CASE...WHEN...OTHERWISE...ENDCASE
|
||||
1.4 LOCAL DATA / RESTORE DATA
|
||||
1.5 ON ERROR LOCAL / RESTORE ERROR
|
||||
1.6 DIM var LOCAL size
|
||||
1.7 ERROR err, message$
|
||||
1.8 RESTORE +n
|
||||
1.9 SWAP var1,var2
|
||||
1.10 BPUT #file,string$[;]
|
||||
1.11 QUIT
|
||||
|
||||
2. BASIC V functions
|
||||
|
||||
2.1 DIM(array()[,sub])
|
||||
2.2 END (pointer to free space)
|
||||
2.3 REPORT$
|
||||
2.4 Binary constants
|
||||
2.5 LEFT$ & RIGHT$ with last parameter omitted
|
||||
2.6 MOD(array)
|
||||
2.7 SUM(array)
|
||||
2.8 SUMLEN(array)
|
||||
2.9 GET$#file
|
||||
|
||||
3. BASIC V whole array operations
|
||||
|
||||
3.1 Pass a whole array to a FN/PROC
|
||||
3.2 Pass a whole array to CALL
|
||||
3.3 Whole array assignment
|
||||
3.4 Whole array arithmetic *
|
||||
3.5 Array dot-product operator
|
||||
3.6 Array initialisation lists
|
||||
3.7 Array compound assignment (+= etc.)
|
||||
3.8 Make a whole array LOCAL
|
||||
3.9 DIM a LOCAL array (on the stack) +
|
||||
|
||||
* String array expressions A$() = B$() + C$() are not currently supported.
|
||||
+ LOCAL string arrays should be initialised to their maximum needed length
|
||||
to eliminate the risk of a memory leak each time the PROC/FN is called:
|
||||
LOCAL a$() : DIM a$(size%) : a$() = STRING$(max%, "a") : a$() = ""
|
||||
|
||||
4. Miscellaneous BASIC V features
|
||||
|
||||
4.1 Bit-shifts <<, >>, >>>
|
||||
4.2 Floating-point indirection (|)
|
||||
4.3 RETURNed parameters from FN/PROC
|
||||
4.4 Compound assignment (+=, -=, *=, /= etc.)
|
||||
4.5 Assigning to a sub-string: LEFT$()=, MID$()= , RIGHT$()=
|
||||
4.6 Hooks for CIRCLE,ELLIPSE,FILL,LINE,MOUSE,ORIGIN,RECTANGLE,TINT,SYS,WAIT
|
||||
4.7 Hooks for WIDTH function, TINT function, MODE function
|
||||
|
||||
5. Extensions to Acorn's BASIC V, compatible with BB4W, BBCSDL and BBCTTY
|
||||
|
||||
5.1 EXIT REPEAT / WHILE / FOR [var]
|
||||
5.2 Address-of operator ^
|
||||
5.3 Byte variables and arrays (& suffix)
|
||||
5.4 'BY len' and 'TO term' qualifiers to GET$#file
|
||||
5.5 ELSE IF <condition> THEN; (trailing semicolon)
|
||||
5.6 == synonymous with = in comparisons
|
||||
5.7 DIM a global array inside a FN/PROC (use RETURN)
|
||||
|
||||
Note: The token for PUT has changed from &CE in version 3 to &0E in version 5.
|
||||
If this token is present in existing programs it will list as ENDWHILE rather
|
||||
than PUT, and the programs will need to be modified to restore functionality.
|
||||
1494
Source/Apps/BBCBASIC/cmos.z80
Normal file
69
Source/Apps/BBCBASIC/data.z80
Normal file
@@ -0,0 +1,69 @@
|
||||
TITLE BBC BASIC (C) R.T.RUSSELL 1981-2024
|
||||
NAME ('DATA')
|
||||
;
|
||||
;RAM MODULE FOR BBC BASIC INTERPRETER
|
||||
;FOR USE WITH VERSION 5.0 OF BBC BASIC
|
||||
;(C) COPYRIGHT R.T.RUSSELL 1981-2024
|
||||
;
|
||||
GLOBAL ACCS
|
||||
GLOBAL BUFFER
|
||||
GLOBAL ONERSP
|
||||
GLOBAL LIBASE
|
||||
GLOBAL PAGE
|
||||
GLOBAL LOMEM
|
||||
GLOBAL FREE
|
||||
GLOBAL HIMEM
|
||||
GLOBAL RANDOM
|
||||
GLOBAL COUNT
|
||||
GLOBAL WIDTH
|
||||
GLOBAL ERL
|
||||
GLOBAL ERR
|
||||
GLOBAL ERRTRP
|
||||
GLOBAL ERRTXT
|
||||
GLOBAL TRACEN
|
||||
GLOBAL AUTONO
|
||||
GLOBAL INCREM
|
||||
GLOBAL LISTON
|
||||
GLOBAL DATPTR
|
||||
GLOBAL FNPTR
|
||||
GLOBAL PROPTR
|
||||
GLOBAL STAVAR
|
||||
GLOBAL OC
|
||||
GLOBAL PC
|
||||
GLOBAL DYNVAR
|
||||
GLOBAL CURLIN
|
||||
GLOBAL USER
|
||||
;
|
||||
;n.b. ACCS, BUFFER & STAVAR must be on page boundaries.
|
||||
;
|
||||
ACCS: DEFS 256 ;STRING ACCUMULATOR
|
||||
BUFFER: DEFS 256 ;STRING INPUT BUFFER
|
||||
STAVAR: DEFS 27*4 ;STATIC VARIABLES
|
||||
OC EQU STAVAR+15*4 ;CODE ORIGIN (O%)
|
||||
PC EQU STAVAR+16*4 ;PROGRAM COUNTER (P%)
|
||||
DYNVAR: DEFS 54*2 ;DYN. VARIABLE POINTERS
|
||||
FNPTR: DEFS 2 ;DYN. FUNCTION POINTER
|
||||
PROPTR: DEFS 2 ;DYN. PROCEDURE POINTER
|
||||
;
|
||||
PAGE: DEFS 2 ;START OF USER PROGRAM
|
||||
LOMEM: DEFS 2 ;START OF DYN. STORAGE
|
||||
FREE: DEFS 2 ;FIRST FREE-SPACE BYTE
|
||||
HIMEM: DEFS 2 ;FIRST BYTE ABOVE STACK
|
||||
LIBASE: DEFS 2 ;START OF FIRST LIBRARY
|
||||
;
|
||||
TRACEN: DEFS 2 ;TRACE FLAG AND NUMBER
|
||||
AUTONO: DEFS 2 ;AUTO FLAG AND NUMBER
|
||||
ERRTRP: DEFS 2 ;ON ERROR STMT POINTER \
|
||||
ONERSP: DEFS 2 ;ON ERROR LOCAL STKPTR /
|
||||
ERRTXT: DEFS 2 ;ERROR MESSAGE POINTER
|
||||
DATPTR: DEFS 2 ;DATA POINTER
|
||||
ERL: DEFS 2 ;LINE NO OF LAST ERROR
|
||||
CURLIN: DEFS 2 ;POINTER TO CURRENT LINE
|
||||
RANDOM: DEFS 5 ;RANDOM NUMBER
|
||||
COUNT: DEFS 1 ;PRINT POSITION
|
||||
WIDTH: DEFS 1 ;PRINT WIDTH
|
||||
ERR: DEFS 1 ;ERROR NUMBER
|
||||
LISTON: DEFS 1 ;LISTO & OPT FLAG
|
||||
INCREM: DEFS 1 ;AUTO INCREMENT
|
||||
;
|
||||
USER: END
|
||||
@@ -1,7 +1,8 @@
|
||||
TITLE BBCDIST.Z80 (C) R.T.RUSSELL 1982
|
||||
TITLE BBCDIST.Z80 (C) R.T.RUSSELL 1982-2024
|
||||
NAME ('DIST3')
|
||||
;
|
||||
;BBC BASIC (Z80) - CP/M VERSION 2.30 & 3.00
|
||||
;(C) COPYRIGHT R.T.RUSSELL, 1982.
|
||||
;BBC BASIC (Z80) - CP/M VERSION 2.20 & 3.00
|
||||
;(C) COPYRIGHT R.T.RUSSELL, 1982-2024.
|
||||
;ALL RIGHTS RESERVED.
|
||||
;
|
||||
;THIS PROGRAM ALLOWS THE USER TO ADAPT BBC BASIC TO THE
|
||||
@@ -13,11 +14,14 @@
|
||||
;PLEASE NOTE THAT A Z80 PROCESSOR AND CP/M VERSION 2.2
|
||||
;OR LATER ARE REQUIRED.
|
||||
;
|
||||
;R.T.RUSSELL, 11-03-1984, 03-05-1989
|
||||
;ALTERNATE REGISTERS SAVED FOR BDOS CALL, 04-06-2000
|
||||
;R.T.RUSSELL, 11-03-1984, 03-05-1989, 12-05-2024
|
||||
;
|
||||
CPM EQU 5
|
||||
COLD EQU 200H
|
||||
;
|
||||
CR EQU 0DH
|
||||
LF EQU 0AH
|
||||
ESC EQU 1BH
|
||||
;
|
||||
GLOBAL CLRSCN
|
||||
GLOBAL PUTCSR
|
||||
@@ -26,14 +30,18 @@ COLD EQU 200H
|
||||
GLOBAL GETIME
|
||||
GLOBAL GETKEY
|
||||
GLOBAL BYE
|
||||
GLOBAL BEGIN
|
||||
; GLOBAL BDOS
|
||||
;
|
||||
ASEG
|
||||
ORG 100H
|
||||
; EXTRN PRTDEC16
|
||||
;
|
||||
;ASEG
|
||||
;ORG 100H
|
||||
;
|
||||
;JUMP TABLE - BASIC makes calls to hardware-dependent
|
||||
;features via this table:
|
||||
;
|
||||
JP INIT
|
||||
BEGIN: JP INIT
|
||||
CLRSCN: JP CLS ;CLEAR SCREEN
|
||||
PUTCSR: JP PCSR ;SET CURSOR POSN.
|
||||
GETCSR: JP GCSR ;READ CURSOR POSN.
|
||||
@@ -42,30 +50,33 @@ GETIME: JP GTIME ;READ ELAPSED TIME
|
||||
GETKEY: JP INKEY ;READ KEY (TIME LIMIT)
|
||||
BYE: JP REBOOT ;RETURN TO CP/M
|
||||
;
|
||||
;THE CODE WHICH FOLLOWS IS A SKELETON VERSION SUITABLE
|
||||
;FOR ANY CP/M SYSTEM. IT HAS BEEN CONFIGURED FOR A VT100 TO SOME DEGREE
|
||||
;BY PETER SCHORN.
|
||||
;BDOS - Save the IX and IY registers and before performing a
|
||||
; CP/M function call.
|
||||
;
|
||||
BDOS: PUSH IX
|
||||
PUSH IY
|
||||
CALL CPM
|
||||
POP IY
|
||||
POP IX
|
||||
RET
|
||||
;
|
||||
|
||||
PRSTR EQU 9
|
||||
|
||||
;INIT - Perform hardware initialisation (if any).
|
||||
;
|
||||
INIT: LD A,2
|
||||
INC A
|
||||
LD DE,NOTZ80
|
||||
JP PE,FAIL
|
||||
LD C,12
|
||||
CALL BDOS
|
||||
OR A
|
||||
LD DE,NOTV2
|
||||
JP NZ,COLD
|
||||
FAIL: LD C,PRSTR
|
||||
INIT: LD HL,40H ;CPM/HBIOS MARKER LOC
|
||||
LD A,'W'
|
||||
CP (HL)
|
||||
JR NZ,FAIL
|
||||
INC HL
|
||||
LD A,NOT 'W'
|
||||
CP (HL)
|
||||
JR NZ,FAIL
|
||||
JP COLD
|
||||
FAIL: LD DE,NOTHB
|
||||
LD C,9
|
||||
CALL BDOS
|
||||
RST 0
|
||||
;
|
||||
NOTZ80: DEFB 'Wrong processor$'
|
||||
NOTV2: DEFB 'Wrong CP/M version$'
|
||||
NOTHB: DEFB 'CP/M w/ HBIOS required$'
|
||||
;
|
||||
;REBOOT - Switch off interrupts and return to CP/M
|
||||
;
|
||||
@@ -75,31 +86,34 @@ REBOOT: RST 0
|
||||
; Outputs: DEHL = elapsed time (centiseconds)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
GTIME: LD DE,0
|
||||
LD HL,0
|
||||
RET
|
||||
GTIME: JR TICKS
|
||||
;
|
||||
;PTIME - Load elapsed-time clock.
|
||||
; Inputs: DEHL = time to load (centiseconds)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
PTIME: RET
|
||||
;
|
||||
;CLS - Clear screen for VT100.
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
CLS: PUSH BC ; save BC
|
||||
LD C,PRSTR ; command for output string
|
||||
LD DE,CLSSTR ; start address of string
|
||||
CALL BDOS ; output to terminal
|
||||
POP BC ; restore BC
|
||||
PTIME:
|
||||
LD BC,0F9D0H
|
||||
SRL D
|
||||
RR E
|
||||
RR H
|
||||
RR L
|
||||
RST 08
|
||||
RET
|
||||
;
|
||||
; Get OS elapsed-time clock
|
||||
; Outputs: DEHL = time (centiseconds)
|
||||
; Destroys: A,B,C,D,E,H,L,F
|
||||
;
|
||||
TICKS: LD BC,0F8D0H
|
||||
RST 08
|
||||
SLA L
|
||||
RL H
|
||||
RL E
|
||||
RL D
|
||||
RET
|
||||
CLSSTR: DEFB 27,'[2J$' ; VT100 string for clear screen
|
||||
|
||||
;
|
||||
;INKEY - Sample keyboard with specified wait.
|
||||
; This version uses a simple software timing loop.
|
||||
; Modify to use hardware/interrupt timer if available.
|
||||
; Inputs: HL = Time to wait (centiseconds)
|
||||
; Outputs: Carry reset indicates time-out.
|
||||
; If carry set, A = character typed.
|
||||
@@ -107,52 +121,64 @@ CLSSTR: DEFB 27,'[2J$' ; VT100 string for clear screen
|
||||
;
|
||||
INKEY: PUSH BC
|
||||
PUSH HL
|
||||
CALL TICKS
|
||||
POP DE
|
||||
ADD HL,DE
|
||||
WAIT: PUSH HL
|
||||
LD C,6
|
||||
LD E,0FFH
|
||||
CALL BDOS ;CONSOLE INPUT
|
||||
CALL BDOS
|
||||
POP HL
|
||||
POP BC
|
||||
OR A
|
||||
SCF
|
||||
RET NZ ;KEY PRESSED
|
||||
OR H
|
||||
OR L
|
||||
RET Z ;TIME-OUT
|
||||
PUSH BC
|
||||
LD A,-1
|
||||
LD BC,1250 ;DELAY CONSTANT
|
||||
WAIT: DEC BC
|
||||
CP B
|
||||
JP NZ,WAIT ;WAIT FOR APPROX 10ms
|
||||
POP BC
|
||||
DEC HL
|
||||
JR INKEY
|
||||
JR NZ,INKEY1
|
||||
PUSH HL
|
||||
CALL TICKS
|
||||
POP DE
|
||||
SBC HL,DE
|
||||
EX DE,HL
|
||||
JR C,WAIT
|
||||
INKEY1: POP BC
|
||||
RET
|
||||
;
|
||||
;CLS - Clear screen.
|
||||
; (Customise to suit your VDU)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
CLS:
|
||||
LD DE,CLSSTR
|
||||
LD C,9
|
||||
JP BDOS
|
||||
;
|
||||
CLSSTR: DEFB ESC,'[H',ESC,'[2J$'
|
||||
;
|
||||
;PCSR - Move cursor to specified position.
|
||||
; Inputs: DE = horizontal position (LHS=0)
|
||||
; HL = vertical position (TOP=0)
|
||||
; called by TAB(column, row)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
PCSR: LD B,L ; vertical = line (row)
|
||||
CALL CONV ; normalized and convert to decimal
|
||||
LD (LIN),HL ; and store into string
|
||||
LD B,E ; horizontal = column
|
||||
CALL CONV ; normalized and convert to decimal
|
||||
LD (COL),HL ; and store into string
|
||||
LD C,PRSTR ; output string command
|
||||
LD C,9 ; output string command
|
||||
LD DE,CURS ; start of string
|
||||
JR BDOS ; output string to terminal
|
||||
|
||||
JP BDOS ; output string to terminal
|
||||
;
|
||||
; VT100 sequence for cursor positioning
|
||||
CURS: DEFB 27, '['
|
||||
LIN: DEFW 0 ; high byte, low byte for decimal line
|
||||
DEFB ';'
|
||||
COL: DEFW 0 ; high byte, low byte for decimal column
|
||||
DEFB 'H$'
|
||||
|
||||
;
|
||||
; convert binary B (0 <= B < 99, not checked) into B+1 in decimal.
|
||||
; L = upper byte, H = lower byte. ready for LD (...), HL
|
||||
; destroys A, B, L, H
|
||||
; optimized for space over time
|
||||
;
|
||||
CONV: INC B ; normalize, home in VT100 is (1,1)
|
||||
LD A,'0' ; A is counter for low byte of result
|
||||
LD L,A ; L is counter for high byte of result
|
||||
@@ -164,35 +190,7 @@ CONVLP: INC A ; now B times increment AL in decimal
|
||||
CONT: DJNZ CONVLP ; B times
|
||||
LD H,A ; put low byte into right place
|
||||
RET
|
||||
|
||||
|
||||
;BDOS - Save the IX and IY and alternate registers
|
||||
; before performing a CP/M function call.
|
||||
;
|
||||
BDOS: PUSH IX
|
||||
PUSH IY
|
||||
EXX
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
EXX
|
||||
EX AF,AF'
|
||||
PUSH AF
|
||||
EX AF,AF'
|
||||
CALL CPM
|
||||
EX AF,AF'
|
||||
POP AF
|
||||
EX AF,AF'
|
||||
EXX
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
EXX
|
||||
POP IY
|
||||
POP IX
|
||||
RET
|
||||
|
||||
|
||||
;GCSR - Return cursor coordinates.
|
||||
; Outputs: DE = X coordinate (POS)
|
||||
; HL = Y coordinate (VPOS)
|
||||
@@ -202,24 +200,42 @@ GCSR: LD DE,0
|
||||
LD HL,0
|
||||
RET
|
||||
;
|
||||
IF $ GT 1F4H
|
||||
;COUT - Output a character to the console
|
||||
; Inputs: A = character
|
||||
; Destroys: A,F
|
||||
;
|
||||
COUT: PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD E,A
|
||||
LD C,2
|
||||
CALL BDOS
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
;IF $ GT 1F0H
|
||||
IF $-BEGIN GT 0F0H
|
||||
ERROR 'INSUFFICIENT SPACE'
|
||||
ENDIF
|
||||
;
|
||||
ORG 1F4H
|
||||
;ORG 1F0H
|
||||
DEFS 0F0H - ($ - BEGIN)
|
||||
;
|
||||
OFFLO: DEFW 0 ;TIME OFFSET LO
|
||||
OFFHI: DEFW 0 ;TIME OFFSET HI
|
||||
DEFB 80 ;WIDTH
|
||||
DEFB 'E' AND 1FH ;CURSOR UP
|
||||
DEFB 'X' AND 1FH ;CURSOR DOWN
|
||||
DEFB 'A' AND 1FH ;START OF LINE
|
||||
DEFB 'F' AND 1FH ;END OF LINE
|
||||
DEFB 'T' AND 1FH ;DELETE TO END OF LINE
|
||||
DEFB 'H' AND 1FH ;BACKSPACE
|
||||
DEFB 'U' AND 1FH ;CANCEL LINE
|
||||
DEFB 'S' AND 1FH ;CURSOR LEFT
|
||||
DEFB 'D' AND 1FH ;CURSOR RIGHT
|
||||
DEFB 'G' AND 1FH ;DELETE CHARACTER
|
||||
DEFB 'V' AND 1FH ;INSERT CHARACTER
|
||||
DEFB 'G' AND 1FH ;CURSOR UP
|
||||
DEFB 'O' AND 1FH ;CURSOR DOWN
|
||||
DEFB 'F' AND 1FH ;START OF LINE
|
||||
DEFB 'N' AND 1FH ;END OF LINE
|
||||
DEFB 'X' AND 1FH ;DELETE TO END OF LINE
|
||||
DEFB 08H ;BACKSPACE & DELETE
|
||||
DEFB 'U' AND 1FH ;DEL TO START OF LINE
|
||||
DEFB 'J' AND 1FH ;CURSOR LEFT
|
||||
DEFB 'L' AND 1FH ;CURSOR RIGHT
|
||||
DEFB 'R' AND 1FH ;DELETE CHARACTER
|
||||
DEFB 'Q' AND 1FH ;INS/OVR TOGGLE
|
||||
;
|
||||
FIN: END
|
||||
|
||||
2587
Source/Apps/BBCBASIC/eval.z80
Normal file
3274
Source/Apps/BBCBASIC/exec.z80
Normal file
64
Source/Apps/BBCBASIC/hook.z80
Normal file
@@ -0,0 +1,64 @@
|
||||
NAME ('HOOK')
|
||||
;
|
||||
GLOBAL CLG
|
||||
GLOBAL COLOUR
|
||||
GLOBAL DRAW
|
||||
GLOBAL ENVEL
|
||||
GLOBAL GCOL
|
||||
GLOBAL MODE
|
||||
GLOBAL MOVE
|
||||
GLOBAL PLOT
|
||||
GLOBAL SOUND
|
||||
GLOBAL PUTIMS
|
||||
GLOBAL CIRCLE
|
||||
GLOBAL ELLIPSE
|
||||
GLOBAL FILL
|
||||
GLOBAL MOUSE
|
||||
GLOBAL ORIGIN
|
||||
GLOBAL RECTAN
|
||||
GLOBAL LINE
|
||||
GLOBAL TINT
|
||||
GLOBAL WAIT
|
||||
GLOBAL SYS
|
||||
;
|
||||
GLOBAL ADVAL
|
||||
GLOBAL POINT
|
||||
GLOBAL GETIMS
|
||||
GLOBAL TINTFN
|
||||
GLOBAL MODEFN
|
||||
GLOBAL WIDFN
|
||||
;
|
||||
EXTRN EXTERR
|
||||
;
|
||||
CLG:
|
||||
COLOUR:
|
||||
DRAW:
|
||||
ENVEL:
|
||||
GCOL:
|
||||
MODE:
|
||||
MOVE:
|
||||
PLOT:
|
||||
SOUND:
|
||||
ADVAL:
|
||||
POINT:
|
||||
GETIMS:
|
||||
PUTIMS:
|
||||
CIRCLE:
|
||||
ELLIPSE:
|
||||
FILL:
|
||||
MOUSE:
|
||||
ORIGIN:
|
||||
RECTAN:
|
||||
LINE:
|
||||
TINT:
|
||||
TINTFN:
|
||||
MODEFN:
|
||||
WIDFN:
|
||||
WAIT:
|
||||
SYS:
|
||||
XOR A
|
||||
CALL EXTERR
|
||||
DEFM 'Sorry'
|
||||
DEFB 0
|
||||
;
|
||||
END
|
||||
2237
Source/Apps/BBCBASIC/main.z80
Normal file
2267
Source/Apps/BBCBASIC/math.z80
Normal file
@@ -28,8 +28,11 @@ pushd ZMD && call Build || exit /b & popd
|
||||
pushd Dev && call Build || exit /b & popd
|
||||
pushd VGM && call Build || exit /b & popd
|
||||
pushd cpuspd && call Build || exit /b & popd
|
||||
pushd reboot && call Build || exit /b & popd
|
||||
pushd Survey && call Build || exit /b & popd
|
||||
pushd HTalk && call Build || exit /b & popd
|
||||
pushd BBCBASIC && call Build || exit /b & popd
|
||||
pushd copysl && call Build || exit /b & popd
|
||||
|
||||
copy *.com %APPBIN%\ || exit /b
|
||||
|
||||
|
||||
@@ -17,5 +17,8 @@ pushd ZMD && call Clean || exit /b 1 & popd
|
||||
pushd Dev && call Clean || exit /b 1 & popd
|
||||
pushd VGM && call Clean || exit /b 1 & popd
|
||||
pushd cpuspd && call Clean || exit /b 1 & popd
|
||||
pushd reboot && call Clean || exit /b 1 & popd
|
||||
pushd Survey && call Clean || exit /b 1 & popd
|
||||
pushd HTalk && call Clean || exit /b 1 & popd
|
||||
pushd BBCBASIC && call Clean || exit /b 1 & popd
|
||||
pushd copysl && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
OBJECTS = sysgen.com syscopy.com assign.com format.com talk.com \
|
||||
mode.com rtc.com timer.com rtchb.com
|
||||
SUBDIRS = HTalk XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd Survey
|
||||
SUBDIRS = HTalk XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd reboot Survey BBCBASIC copysl
|
||||
DEST = ../../Binary/Apps
|
||||
TOOLS =../../Tools
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ pushd piomon && call Build || exit /b & popd
|
||||
pushd banktest && call Build || exit /b & popd
|
||||
pushd portscan && call Build || exit /b & popd
|
||||
pushd sound && call Build || exit /b & popd
|
||||
pushd testh8p && call Build || exit /b & popd
|
||||
|
||||
goto :eof
|
||||
|
||||
|
||||
@@ -22,3 +22,4 @@ pushd piomon && call Clean || exit /b 1 & popd
|
||||
pushd banktest && call Clean || exit /b 1 & popd
|
||||
pushd portscan && call Clean || exit /b 1 & popd
|
||||
pushd sound && call Clean || exit /b 1 & popd
|
||||
pushd testh8p && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
OBJECTS =
|
||||
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info 2piotst piomon banktest portscan sound
|
||||
SUBDIRS = DMAmon I2C inttest ppidetst ramtest tstdskng rzsz vdctest kbdtest ps2info 2piotst piomon banktest portscan sound testh8p
|
||||
DEST = ../../../Binary/Apps/Test
|
||||
TOOLS =../../../Tools
|
||||
|
||||
|
||||
@@ -8,4 +8,5 @@ set TASMTABS=%TOOLS%\tasm32
|
||||
tasm -t180 -g3 -fFF inttest.asm inttest.com inttest.lst || exit /b
|
||||
|
||||
copy /Y inttest.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
copy /Y inttest.doc ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
OBJECTS = inttest.com
|
||||
DOCS = inttest.doc
|
||||
DEST = ../../../../Binary/Apps/Test
|
||||
DOCDEST = ../../../../Binary/Apps/Test
|
||||
TOOLS =../../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
44
Source/Apps/Test/inttest/inttest.doc
Normal file
@@ -0,0 +1,44 @@
|
||||
INTTEST
|
||||
=======
|
||||
|
||||
RomWBW includes an API allowing applications to "hook" interrupts.
|
||||
The `INTTEST` utility allows you to test this functionality.
|
||||
|
||||
|
||||
** Syntax **
|
||||
|
||||
`INTTEST`
|
||||
|
||||
|
||||
** Usage **
|
||||
|
||||
`INTTEST` is an interactive application. At startup, it will display
|
||||
a list of the interrupt vector slots in your system along with the
|
||||
current vector address for each of them.
|
||||
|
||||
It then prompts you to enter the slot number (in hex) of a vector to
|
||||
hook. After entering this, the application will watch the hooked
|
||||
vector and countdown from 0xFF to 0x00 as interrupts are noted.
|
||||
|
||||
When the counter reaches 0x00, the interrupt is unhooked and the
|
||||
application terminates. The application can also be terminated by
|
||||
pressing <esc>.
|
||||
|
||||
|
||||
** Notes **
|
||||
|
||||
If your system is running without interrupts active, the application
|
||||
will terminate immediately.
|
||||
|
||||
All slots have vectors even if the corresponding interrupt is not
|
||||
doing anything. In this case, the vector is pointing to the "bad
|
||||
interrupt" handler.
|
||||
|
||||
If you hook a vector that is not receiving any interrupts, the
|
||||
down-counter will not do anything.
|
||||
|
||||
|
||||
** Etymology* *
|
||||
|
||||
The `INTTEST` command is an original product and the source code is
|
||||
provided in the RomWBW distribution.
|
||||
@@ -11,6 +11,7 @@
|
||||
; WBW 2022-04-01: Add menu for test functions
|
||||
; WBW 2022-04-02: Fix prtchr register saving/recovery
|
||||
; WBW 2023-10-19: Add support for Duodyne
|
||||
; WBW 2024-06-10: Add support for RC2014
|
||||
;
|
||||
;=======================================================================
|
||||
;
|
||||
@@ -25,6 +26,10 @@ iodat_rph .equ $8C ; PS/2 controller data port address
|
||||
; Duodyne:
|
||||
iocmd_duo .equ $4D ; PS/2 controller command port address
|
||||
iodat_duo .equ $4C ; PS/2 controller data port address
|
||||
; RC2014 (EP/Sally)
|
||||
iocmd_rc .equ $64 ; PS/2 controller command port address
|
||||
iodat_rc .equ $60 ; PS/2 controller data port address
|
||||
|
||||
;
|
||||
cpumhz .equ 8 ; for time delay calculations (not critical)
|
||||
;
|
||||
@@ -87,6 +92,8 @@ setup1:
|
||||
jr z,setup_rph
|
||||
cp '3' ; Duodyne
|
||||
jr z,setup_duo
|
||||
cp '4' ; RC2014 EP/Sally
|
||||
jr z,setup_rc
|
||||
cp 'X'
|
||||
jr z,exit
|
||||
jr setup
|
||||
@@ -115,6 +122,14 @@ setup_duo:
|
||||
ld de,str_duo
|
||||
jr setup2
|
||||
;
|
||||
setup_rc:
|
||||
ld a,iocmd_rc
|
||||
ld (iocmd),a
|
||||
ld a,iodat_rc
|
||||
ld (iodat),a
|
||||
ld de,str_rc
|
||||
jr setup2
|
||||
;
|
||||
setup2:
|
||||
call prtstr
|
||||
call crlf2
|
||||
@@ -1437,16 +1452,18 @@ delay1:
|
||||
; Constants
|
||||
;=======================================================================
|
||||
;
|
||||
str_banner .db "PS/2 Keyboard/Mouse Information v0.8, 6-Nov-2023",0
|
||||
str_banner .db "PS/2 Keyboard/Mouse Information v0.9, 10-Jun-2024",0
|
||||
str_hwmenu .db "PS/2 Controller Port Options:\r\n\r\n"
|
||||
.db " 1 - Nhyodyne\r\n"
|
||||
.db " 2 - Rhyophyre\r\n"
|
||||
.db " 3 - Duodyne\r\n"
|
||||
.db " 4 - RC2014\r\n"
|
||||
.db " X - Exit Application\r\n"
|
||||
.db "\r\nSelection? ",0
|
||||
str_mbc .db "Nhyodyne",0
|
||||
str_rph .db "Rhyophyre",0
|
||||
str_duo .db "Duodyne",0
|
||||
str_rc .db "RC2014 (Saly)",0
|
||||
str_menu .db "PS/2 Testing Options:\r\n\r\n"
|
||||
.db " C - Test PS/2 Controller\r\n"
|
||||
.db " K - Test PS/2 Keyboard\r\n"
|
||||
|
||||
10
Source/Apps/Test/testh8p/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t80 -g3 -fFF testh8p.asm testh8p.com testh8p.lst || exit /b
|
||||
|
||||
copy /Y testh8p.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
6
Source/Apps/Test/testh8p/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
9
Source/Apps/Test/testh8p/Makefile
Normal file
@@ -0,0 +1,9 @@
|
||||
OBJECTS = testh8p.com
|
||||
# DOCS = testh8p.doc
|
||||
DEST = ../../../../Binary/Apps/Test
|
||||
DOCDEST = ../../../../Binary/Apps/Test
|
||||
TOOLS =../../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
238
Source/Apps/Test/testh8p/testh8p.asm
Normal file
@@ -0,0 +1,238 @@
|
||||
;===============================================================================
|
||||
; H8 Panel Test
|
||||
;===============================================================================
|
||||
;
|
||||
; AUTHOR: WAYNE WARTHEN (wwarthen@gmail.com)
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
;
|
||||
; Trivial utility to test the register pair display functionality of the
|
||||
; Heath H8 Front Panel.
|
||||
;
|
||||
; Program will display a set of known register values on the console,
|
||||
; then go into an infinite loop. The H8 panel can then be checked to
|
||||
; see if the correct values are displayed.
|
||||
;
|
||||
; There is no way to exit this program. You must reset your system.
|
||||
;
|
||||
;===============================================================================
|
||||
; Definitions
|
||||
;===============================================================================
|
||||
;
|
||||
stksiz .equ $40 ; Working stack size
|
||||
;
|
||||
restart .equ $0000 ; CP/M restart vector
|
||||
bdos .equ $0005 ; BDOS invocation vector
|
||||
;
|
||||
regA .equ $11
|
||||
regBC .equ $2233
|
||||
regDE .equ $4455
|
||||
regHL .equ $6677
|
||||
;
|
||||
;===============================================================================
|
||||
; Code Section
|
||||
;===============================================================================
|
||||
;
|
||||
;
|
||||
.org $100
|
||||
;
|
||||
; setup stack (save old value)
|
||||
ld (stksav),sp ; save stack
|
||||
ld sp,stack ; set new stack
|
||||
;
|
||||
ld de,str_prefix
|
||||
call prtstr
|
||||
;
|
||||
ld de,str_A
|
||||
ld hl,regA
|
||||
call prtreg
|
||||
ld de,str_BC
|
||||
ld hl,regBC
|
||||
call prtreg
|
||||
ld de,str_DE
|
||||
ld hl,regDE
|
||||
call prtreg
|
||||
ld de,str_HL
|
||||
ld hl,regHL
|
||||
call prtreg
|
||||
ld de,str_SP
|
||||
ld hl,regSP
|
||||
call prtreg
|
||||
ld de,str_PC
|
||||
ld hl,regPC
|
||||
call prtreg
|
||||
;
|
||||
ld a,regA
|
||||
ld bc,regBC
|
||||
ld de,regDE
|
||||
ld hl,regHL
|
||||
regPC: jr $
|
||||
;
|
||||
;
|
||||
;
|
||||
prtreg:
|
||||
call prtstr ; print label
|
||||
ld a,h ; first byte
|
||||
call prtoctbyte ; print it
|
||||
ld a,'.' ; separator
|
||||
call prtchr ; print it
|
||||
ld a,l ; second byte
|
||||
call prtoctbyte ; print it
|
||||
ret
|
||||
;
|
||||
;
|
||||
;
|
||||
prtoctbyte:
|
||||
rlca ; 2 ms bits
|
||||
rlca
|
||||
push af
|
||||
and %00000011 ; isolate
|
||||
add a,'0' ; make char
|
||||
call prtchr ; show it
|
||||
pop af
|
||||
rlca ; next 3 bits
|
||||
rlca
|
||||
rlca
|
||||
push af
|
||||
and %00000111 ; isolate
|
||||
add a,'0' ; make char
|
||||
call prtchr ; show it
|
||||
pop af
|
||||
rlca ; next 3 bits
|
||||
rlca
|
||||
rlca
|
||||
push af
|
||||
and %00000111 ; isolate
|
||||
add a,'0' ; make char
|
||||
call prtchr ; show it
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Print character in A without destroying any registers
|
||||
;
|
||||
prtchr:
|
||||
push bc ; save registers
|
||||
push de
|
||||
push hl
|
||||
ld e,a ; character to print in E
|
||||
ld c,$02 ; BDOS function to output a character
|
||||
call bdos ; do it
|
||||
pop hl ; restore registers
|
||||
pop de
|
||||
pop bc
|
||||
ret
|
||||
;
|
||||
; Print a zero terminated string at (DE) without destroying any registers
|
||||
;
|
||||
prtstr:
|
||||
push de
|
||||
;
|
||||
prtstr1:
|
||||
ld a,(de) ; get next char
|
||||
or a
|
||||
jr z,prtstr2
|
||||
call prtchr
|
||||
inc de
|
||||
jr prtstr1
|
||||
;
|
||||
prtstr2:
|
||||
pop de ; restore registers
|
||||
ret
|
||||
;
|
||||
; Start a new line
|
||||
;
|
||||
crlf2:
|
||||
call crlf ; two of them
|
||||
crlf:
|
||||
push af ; preserve AF
|
||||
ld a,13 ; <CR>
|
||||
call prtchr ; print it
|
||||
ld a,10 ; <LF>
|
||||
call prtchr ; print it
|
||||
pop af ; restore AF
|
||||
ret
|
||||
;
|
||||
; Print the value in A in hex without destroying any registers
|
||||
;
|
||||
prthex:
|
||||
push af ; save AF
|
||||
push de ; save DE
|
||||
call hexascii ; convert value in A to hex chars in DE
|
||||
ld a,d ; get the high order hex char
|
||||
call prtchr ; print it
|
||||
ld a,e ; get the low order hex char
|
||||
call prtchr ; print it
|
||||
pop de ; restore DE
|
||||
pop af ; restore AF
|
||||
ret ; done
|
||||
;
|
||||
; print the hex word value in hl
|
||||
;
|
||||
prthexword:
|
||||
push af
|
||||
ld a,h
|
||||
call prthex
|
||||
ld a,l
|
||||
call prthex
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; print the hex dword value in de:hl
|
||||
;
|
||||
prthex32:
|
||||
push bc
|
||||
push de
|
||||
pop bc
|
||||
call prthexword
|
||||
push hl
|
||||
pop bc
|
||||
call prthexword
|
||||
pop bc
|
||||
ret
|
||||
;
|
||||
; Convert binary value in A to ascii hex characters in DE
|
||||
;
|
||||
hexascii:
|
||||
ld d,a ; save A in D
|
||||
call hexconv ; convert low nibble of A to hex
|
||||
ld e,a ; save it in E
|
||||
ld a,d ; get original value back
|
||||
rlca ; rotate high order nibble to low bits
|
||||
rlca
|
||||
rlca
|
||||
rlca
|
||||
call hexconv ; convert nibble
|
||||
ld d,a ; save it in D
|
||||
ret ; done
|
||||
;
|
||||
; Convert low nibble of A to ascii hex
|
||||
;
|
||||
hexconv:
|
||||
and $0F ; low nibble only
|
||||
add a,$90
|
||||
daa
|
||||
adc a,$40
|
||||
daa
|
||||
ret
|
||||
;
|
||||
;===============================================================================
|
||||
; Storage Section
|
||||
;===============================================================================
|
||||
;
|
||||
rtcbuf .fill 6,$FF ; RTC data buffer
|
||||
;
|
||||
str_prefix .db "\r\n\r\nRegisters: ",0
|
||||
;
|
||||
str_A .db "A=",0
|
||||
str_BC .db ", BC=",0
|
||||
str_DE .db ", DE=",0
|
||||
str_HL .db ", HL=",0
|
||||
str_SP .db ", SP=",0
|
||||
str_PC .db ", PC=",0
|
||||
;
|
||||
stksav .dw 0 ; stack pointer saved at start
|
||||
.fill stksiz,0 ; stack
|
||||
stack .equ $ ; stack top
|
||||
regSP:
|
||||
;
|
||||
.end
|
||||
@@ -49,6 +49,9 @@
|
||||
; 2024-02-23 [WBW] Include ACR value in config table
|
||||
; 2024-04-16 [WBW] Add support for NABU AY-3-8910
|
||||
; 2024-05-10 [WBW] Hack to avoid corrupting bits 6&7 of PSG R7 for NABU!
|
||||
; 2024-07-08 [WBW] Add support for Les Bird's Graphics, Sound, Joystick
|
||||
; 2024-07-11 [WBW] Updated, Les Bird's module now uses same settings as EB6
|
||||
; 2024-09-17 [WBW] Add support for HEATH H8 with Les Bird's MSX Card
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
; ToDo:
|
||||
@@ -572,8 +575,8 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
.DB $07, $D8, $D0, $D8, $FF, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
;
|
||||
.DB $07, $A0, $A1, $A2, $FF, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (EB Rev 6)
|
||||
.DW HWSTR_RCEB6
|
||||
.DB $07, $A0, $A1, $A2, $FF, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (MSX)
|
||||
.DW HWSTR_RCMSX
|
||||
;
|
||||
.DB $07, $D1, $D0, $D0, $FF, $FF, $FF ; RCZ80 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
@@ -584,8 +587,8 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
.DB $08, $68, $60, $68, $C0, $FF, $FF ; RCZ180 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
;
|
||||
.DB $08, $A0, $A1, $A2, $C0, $FF, $FF ; RCZ180 W/ RC SOUND MODULE (EB Rev 6)
|
||||
.DW HWSTR_RCEB6
|
||||
.DB $08, $A0, $A1, $A2, $C0, $FF, $FF ; RCZ180 W/ RC SOUND MODULE (MSX)
|
||||
.DW HWSTR_RCMSX
|
||||
;
|
||||
.DB $08, $61, $60, $60, $C0, $FF, $FF ; RCZ180 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
@@ -596,8 +599,8 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
.DB $09, $D8, $D0, $D8, $FF, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
;
|
||||
.DB $09, $A0, $A1, $A2, $FF, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (EB Rev 6)
|
||||
.DW HWSTR_RCEB6
|
||||
.DB $09, $A0, $A1, $A2, $FF, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (MSX)
|
||||
.DW HWSTR_RCMSX
|
||||
;
|
||||
.DB $09, $D1, $D0, $D0, $FF, $FF, $FF ; EZZ80 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
@@ -608,8 +611,8 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
.DB $0A, $68, $60, $68, $C0, $FF, $FF ; SCZ180 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
;
|
||||
.DB $0A, $A0, $A1, $A2, $C0, $FF, $FF ; SCZ180 W/ RC SOUND MODULE (EB Rev 6)
|
||||
.DW HWSTR_RCEB6
|
||||
.DB $0A, $A0, $A1, $A2, $C0, $FF, $FF ; SCZ180 W/ RC SOUND MODULE (MS6)
|
||||
.DW HWSTR_RCMSX
|
||||
;
|
||||
.DB $0A, $61, $60, $60, $C0, $FF, $FF ; SCZ180 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
@@ -620,8 +623,8 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
.DB $0B, $D8, $D0, $D8, $FF, $FF, $FF ; RCZ280 W/ RC SOUND MODULE (EB)
|
||||
.DW HWSTR_RCEB
|
||||
;
|
||||
.DB $0B, $A0, $A1, $A2, $FF, $FF, $FF ; RCZ280 W/ RC SOUND MODULE (EB Rev 6)
|
||||
.DW HWSTR_RCEB6
|
||||
.DB $0B, $A0, $A1, $A2, $FF, $FF, $FF ; RCZ280 W/ RC SOUND MODULE (MSX)
|
||||
.DW HWSTR_RCMSX
|
||||
;
|
||||
.DB $0B, $D1, $D0, $D0, $FF, $FF, $FF ; RCZ280 W/ RC SOUND MODULE (MF)
|
||||
.DW HWSTR_RCMF
|
||||
@@ -634,6 +637,9 @@ CFGSIZ .EQU $ - CFGTBL
|
||||
;
|
||||
.DB 17, $A4, $A5, $A4, $FF, $A6, $FE ; DUODYNE
|
||||
.DW HWSTR_DUO
|
||||
;
|
||||
.DB 18, $A0, $A1, $A2, $FF, $FF, $FF ; HEATH H8
|
||||
.DW HWSTR_HEATH
|
||||
;
|
||||
.DB 22, $41, $40, $40, $FF, $FF, $FF ; NABU
|
||||
.DW HWSTR_NABU
|
||||
@@ -666,7 +672,7 @@ TMP .DB 0 ; work around use of undocumented Z80
|
||||
HBIOSMD .DB 0 ; NON-ZERO IF USING HBIOS SOUND DRIVER, ZERO OTHERWISE
|
||||
OCTAVEADJ .DB 0 ; AMOUNT TO ADJUST OCTAVE UP OR DOWN
|
||||
|
||||
MSGBAN .DB "Tune Player for RomWBW v3.8, 10-May-2024",0
|
||||
MSGBAN .DB "Tune Player for RomWBW v3.11, 17-Sep-2024",0
|
||||
MSGUSE .DB "Copyright (C) 2024, Wayne Warthen, GNU GPL v3",13,10
|
||||
.DB "PTxPlayer Copyright (C) 2004-2007 S.V.Bulba",13,10
|
||||
.DB "MYMPlay by Marq/Lieves!Tuore",13,10,13,10
|
||||
@@ -687,12 +693,13 @@ MSGERR .DB "App Error", 0
|
||||
HWSTR_SCG .DB "SCG ECB Board",0
|
||||
HWSTR_N8 .DB "N8 Onboard Sound",0
|
||||
HWSTR_RCEB .DB "RCBus Sound Module (EB)",0
|
||||
HWSTR_RCEB6 .DB "RCBus Sound Module (EBv6)",0
|
||||
HWSTR_RCMSX .DB "RCBus Sound Module (MSX)",0
|
||||
HWSTR_RCMF .DB "RCBus Sound Module (MF)",0
|
||||
HWSTR_LINC .DB "Z50 LiNC Sound Module",0
|
||||
HWSTR_MBC .DB "NHYODYNE Sound Module",0
|
||||
HWSTR_DUO .DB "DUODYNE Sound Module",0
|
||||
HWSTR_NABU .DB "NABU Onboard Sound",0
|
||||
HWSTR_HEATH .DB "HEATH H8 MSX Module",0
|
||||
|
||||
MSGUNSUP .db "MYM files not supported with HBIOS yet!\r\n", 0
|
||||
|
||||
|
||||
8
Source/Apps/copysl/Build.cmd
Normal file
@@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: copysl.com is currently distributed as a binary application, so
|
||||
:: it is not built here.
|
||||
|
||||
copy /Y copysl.com ..\..\..\Binary\Apps\ || exit /b
|
||||
copy /Y copysl.doc ..\..\..\Binary\Apps\ || exit /b
|
||||
5
Source/Apps/copysl/Clean.cmd
Normal file
@@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
:: copysl.com is currently distributed as a binary application, so
|
||||
:: we do not delete the .COM file.
|
||||
7
Source/Apps/copysl/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = copysl.com
|
||||
NODELETE = $(OBJECTS)
|
||||
DOCS = copysl.doc
|
||||
DEST = ../../../Binary/Apps
|
||||
DOCDEST = ../../../Binary/Apps
|
||||
TOOLS=../../../Tools
|
||||
include $(TOOLS)/Makefile.inc
|
||||
BIN
Source/Apps/copysl/copysl.com
Normal file
98
Source/Apps/copysl/copysl.doc
Normal file
@@ -0,0 +1,98 @@
|
||||
==========================================================================
|
||||
CopySlice Utility v0.2 for RomWbW computers
|
||||
written by Mark Pruden (Sept 2024)
|
||||
==========================================================================
|
||||
|
||||
Purpose:
|
||||
--------
|
||||
|
||||
The purpose of this utility is to allow the copying of whole disk slices
|
||||
from one disk slice to another slice
|
||||
|
||||
Background
|
||||
----------
|
||||
|
||||
This tool is only supported by RomWBW HBIOS, it uses HDIOS for all its
|
||||
disk IO. UNA UBIOS is not supported by this tool.
|
||||
|
||||
This tool is running on CP/M 2.2 or 3.0 and has access to full 64kb of
|
||||
RAM, with a minimum of 48kb TPA
|
||||
|
||||
This tool only works with hard disk devices, other media types like
|
||||
floppy, are not supported at this time. This tool works across different
|
||||
hard disk device types, even of different physical type
|
||||
|
||||
Both hd1k and hd512 are fully supported, however copying from one layout
|
||||
type to the other is not supported.
|
||||
|
||||
During operation data is copied in a single read/write pass, data is not
|
||||
verified by default. If there is a write error, it will be reported, and
|
||||
operation will stop.
|
||||
|
||||
General Usage
|
||||
-------------
|
||||
This tool operates at the disk level via RomWBW, thus all disk identifiers
|
||||
are in the RomWBW <disk>.<unit> format
|
||||
|
||||
The syntax (similar to copy) for the command is:
|
||||
|
||||
COPYSL <destunit>[.<slice>]=<srcunit>[.<slice>] [/options]
|
||||
|
||||
E.g.
|
||||
|
||||
COPYSL 3.3=2.10 /U
|
||||
|
||||
Means copy from slice 10 on disk 2, onto disk 3 slice 3. This is in
|
||||
unattended mode, so you will not be asked to confirm the copy operation.
|
||||
|
||||
Options
|
||||
-------
|
||||
F - Full disk copy. Copies the complete disk slice, all sectors.
|
||||
U - Unattended. Will complete copy without confirmation from the user.
|
||||
V - Verify. Does an additional read and verify after write.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
When run COPYSL will perform command line argument validation and display
|
||||
an error if they are illegal. Also any disk IO errors will cause COPYSL
|
||||
to exit.
|
||||
|
||||
When specifying slice number(s) a check is made that the slice number is
|
||||
valid, i.e. not too large that it would extend past the end of the
|
||||
partition (hd1k), or the end of the media (hd512). For hd512 a check is
|
||||
also performed to ensure that the slice would not extend into the first
|
||||
defined partition.
|
||||
|
||||
The copy operation will be faster if the source disk has been formatted
|
||||
with the CP/M file system, since during copy the CP/M directory is scanned,
|
||||
and unused blocks are not copied.
|
||||
|
||||
If a filesystem is not found, (or the /F option is chosen) all data is
|
||||
copied.
|
||||
|
||||
Verification (if option chosen) will do an aditional read (after write)
|
||||
and compare the data read matches what was written. This compare is only
|
||||
on every 32'nd byte. This is done for efficiency.
|
||||
|
||||
During copy dots "." will be displayed to indicate progress of the copy.
|
||||
Each "." represents 16 kBytes of data. Each line of "." 's is 1 mBytes.
|
||||
|
||||
Testing
|
||||
-------
|
||||
This tool has been writen and tested on a SC126 computer. Testing been on both
|
||||
SD and CF media types, and with both hd1k and hd512 formats
|
||||
|
||||
History
|
||||
-------
|
||||
* v 0.1 Initial Release
|
||||
* v 0.2 Added the /v command option to read and verify after write
|
||||
|
||||
Future
|
||||
------
|
||||
* support ability to read and write from image files stored in CP/M filesystem
|
||||
* maybe the verify options could allow more complete verification.
|
||||
This would be at the cost of performance
|
||||
* ability to abort once the copy has started <ctrl><c>
|
||||
|
||||
|
||||
@@ -23,6 +23,12 @@ rtc_port .equ $70 ; RTC latch port adr
|
||||
restart .equ $0000 ; CP/M restart vector
|
||||
bdos .equ $0005 ; BDOS invocation vector
|
||||
;
|
||||
bf_sysreset .equ $F0 ; restart system
|
||||
;
|
||||
bf_sysres_int .equ $00 ; reset hbios internal
|
||||
bf_sysres_warm .equ $01 ; warm start (restart boot loader)
|
||||
bf_sysres_cold .equ $02 ; cold start
|
||||
;
|
||||
ident .equ $FFFE ; loc of RomWBW HBIOS ident ptr
|
||||
;
|
||||
;=======================================================================
|
||||
@@ -113,6 +119,10 @@ main1:
|
||||
;
|
||||
main2:
|
||||
ret z ; if end, nothing to do
|
||||
cp 'W' ; warm boot?
|
||||
jp z,wboot ; if so, do it
|
||||
cp 'C' ; cold boot?
|
||||
jp z,cboot ; if so, do it
|
||||
cp ',' ; no new speed?
|
||||
jr z,main2a ; go to wait states
|
||||
; parse speed string (half, full, double)
|
||||
@@ -161,6 +171,9 @@ parse_spd:
|
||||
ld c,2 ; assume double speed
|
||||
cp 'D' ; check it
|
||||
jr z,parse_spd1 ; if equal, done
|
||||
ld c,3 ; assume quad speed
|
||||
cp 'Q' ; check it
|
||||
jr z,parse_spd1 ; if equal, done
|
||||
or a ; clear CF
|
||||
ccf ; set CF to indicate error
|
||||
ret
|
||||
@@ -222,6 +235,9 @@ show_spd:
|
||||
ld de,str_dbl
|
||||
cp 2
|
||||
jr z,show_spd1
|
||||
ld de,str_quad
|
||||
cp 3
|
||||
jr z,show_spd1
|
||||
jp err_invalid
|
||||
show_spd1:
|
||||
call prtstr
|
||||
@@ -267,6 +283,24 @@ usage:
|
||||
or $FF
|
||||
ret
|
||||
;
|
||||
; Handle Warm Boot
|
||||
;
|
||||
wboot:
|
||||
ld de,str_warmboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_warm ; warm start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
; Handle Cold Boot
|
||||
;
|
||||
cboot:
|
||||
ld de,str_coldboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_cold ; cold start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
; Error Handlers
|
||||
;
|
||||
err_una:
|
||||
@@ -510,9 +544,6 @@ prtd3m2:
|
||||
call prtchr
|
||||
prtd3m3:
|
||||
ret
|
||||
|
||||
|
||||
|
||||
;
|
||||
; Get the next non-blank character from (HL).
|
||||
;
|
||||
@@ -665,7 +696,7 @@ delay1:
|
||||
; Constants
|
||||
;=======================================================================
|
||||
;
|
||||
str_banner .db "RomWBW CPU Speed Selector v0.6, 29-Dec-2023",0
|
||||
str_banner .db "RomWBW CPU Speed Selector v1.0, 11-Sep-2024",0
|
||||
str_spacer .db " ",0
|
||||
str_oscspd .db " MHz Oscillator",0
|
||||
str_cpuspd .db " CPU speed is ",0
|
||||
@@ -674,8 +705,11 @@ str_mhz .db " MHz",0
|
||||
str_slow .db " (Half)",0
|
||||
str_full .db " (Full)",0
|
||||
str_dbl .db " (Double)",0
|
||||
str_quad .db " (Quad)",0
|
||||
str_memws .db " Memory Wait State(s)",0
|
||||
str_iows .db " I/O Wait State(s)",0
|
||||
str_warmboot .db "\r\n\r\nWarm booting...",0
|
||||
str_coldboot .db "\r\n\r\nCold booting...",0
|
||||
str_err_una .db " ERROR: UNA not supported by application",0
|
||||
str_err_inv .db " ERROR: Invalid BIOS (signature missing)",0
|
||||
str_err_ver .db " ERROR: Unexpected HBIOS version",0
|
||||
@@ -684,8 +718,10 @@ str_err_not_sup .db " ERROR: Platform or configuration does not support CPU sp
|
||||
str_err_invalid .db " ERROR: Invalid configuration!",0
|
||||
str_err_api .db " ERROR: HBIOS API error!",0
|
||||
str_usage .db " Usage: CPUSPD <cpuspd>,<memws>,<iows>\r\n"
|
||||
.db " CPUSPD (W)armBoot\r\n"
|
||||
.db " CPUSPD (C)oldBoot\r\n"
|
||||
.db "\r\n"
|
||||
.db " <cpuspd>: \"Half\", \"Full\", or \"Double\"\r\n"
|
||||
.db " <cpuspd>: (H)alf | (F)ull | (D)ouble | (Q)uad\r\n"
|
||||
.db " <memws>: Memory wait states\r\n"
|
||||
.db " <iows>: I/O wait states\r\n"
|
||||
.db "\r\n"
|
||||
|
||||
10
Source/Apps/reboot/Build.cmd
Normal file
@@ -0,0 +1,10 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
tasm -t180 -g3 -fFF reboot.asm reboot.com reboot.lst || exit /b
|
||||
|
||||
copy /Y reboot.com ..\..\..\Binary\Apps\ || exit /b
|
||||
6
Source/Apps/reboot/Clean.cmd
Normal file
@@ -0,0 +1,6 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
7
Source/Apps/reboot/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
OBJECTS = reboot.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS =../../../Tools
|
||||
|
||||
USETASM=1
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
299
Source/Apps/reboot/reboot.asm
Normal file
@@ -0,0 +1,299 @@
|
||||
;==============================================================================
|
||||
; REBOOT - Allows the user to Cold or Warm Boot the RomWBW System
|
||||
; Version 1.0 12-October-2024
|
||||
;==============================================================================
|
||||
;
|
||||
; Author: MartinR (October 2024)
|
||||
; Based **very heavily** on code by Wayne Warthen (wwarthen@gmail.com)
|
||||
;______________________________________________________________________________
|
||||
;
|
||||
; Usage:
|
||||
; REBOOT [/C] [/W] [/?]
|
||||
; ex: REBOOT Display version and usage
|
||||
; REBOOT /? Display version and usage
|
||||
; REBOOT /C Cold boot RomWBW system
|
||||
; REBOOT /W Warm boot RomWBW system
|
||||
;
|
||||
; Operation:
|
||||
; Cold or warm boots a RomWBW system depending on the user option selected.
|
||||
;
|
||||
; This code will only execute on a Z80 CPU (or derivitive)
|
||||
;
|
||||
; This source code assembles with TASM V3.2 under Windows-11 using the
|
||||
; following command line:
|
||||
; tasm -80 -g3 -l REBOOT.ASM REBOOT.COM
|
||||
; ie: Z80 CPU; output format 'binary' named .COM (rather than .OBJ)
|
||||
; and includes a symbol table as part of the listing file.
|
||||
;______________________________________________________________________________
|
||||
;
|
||||
; Change Log:
|
||||
; 2024-09-11 [WBW] Release of RomWBW CPU Speed Selector v1.0 used as the basis
|
||||
; 2024-10-12 [MR ] Initial release of version 1.0
|
||||
;______________________________________________________________________________
|
||||
;
|
||||
; Include Files
|
||||
;
|
||||
#include "../../ver.inc" ; Used for building RomWBW
|
||||
#include "../../HBIOS/hbios.inc"
|
||||
|
||||
;#include "ver.inc" ; Used for testing purposes....
|
||||
;#include "hbios.inc" ; ....during code development
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
; General operational equates (should not requre adjustment)
|
||||
;
|
||||
stksiz .equ $40 ; Working stack size
|
||||
;
|
||||
restart .equ $0000 ; CP/M restart vector
|
||||
bdos .equ $0005 ; BDOS invocation vector
|
||||
;
|
||||
bf_sysreset .equ $F0 ; restart system
|
||||
bf_sysres_int .equ $00 ; reset hbios internal
|
||||
bf_sysres_warm .equ $01 ; warm start (restart boot loader)
|
||||
bf_sysres_cold .equ $02 ; cold start
|
||||
;
|
||||
ident .equ $FFFE ; loc of RomWBW HBIOS ident ptr
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
.org $0100 ; standard CP/M TPA executable
|
||||
;
|
||||
; setup stack (save old value)
|
||||
ld (stksav),sp ; save stack
|
||||
ld sp,stack ; set new stack
|
||||
;
|
||||
call crlf
|
||||
ld de,str_banner ; banner
|
||||
call prtstr
|
||||
;
|
||||
; initialization
|
||||
call init ; initialize
|
||||
jr nz,exit ; abort if init fails
|
||||
;
|
||||
call main ; do the real work
|
||||
;
|
||||
exit:
|
||||
; clean up and return to command processor
|
||||
call crlf ; formatting
|
||||
ld sp,(stksav) ; restore stack
|
||||
jp restart ; return to CP/M via restart
|
||||
;
|
||||
;
|
||||
;===============================================================================
|
||||
; Main Program
|
||||
;===============================================================================
|
||||
;
|
||||
; Initialization
|
||||
;
|
||||
init:
|
||||
; check for UNA (UBIOS)
|
||||
ld a,($FFFD) ; fixed location of UNA API vector
|
||||
cp $C3 ; jp instruction?
|
||||
jr nz,initwbw ; if not, not UNA
|
||||
ld hl,($FFFE) ; get jp address
|
||||
ld a,(hl) ; get byte at target address
|
||||
cp $FD ; first byte of UNA push ix instruction
|
||||
jr nz,initwbw ; if not, not UNA
|
||||
inc hl ; point to next byte
|
||||
ld a,(hl) ; get next byte
|
||||
cp $E5 ; second byte of UNA push ix instruction
|
||||
jr nz,initwbw ; if not, not UNA
|
||||
jp err_una ; UNA not supported
|
||||
;
|
||||
initwbw:
|
||||
; get location of config data and verify integrity
|
||||
ld hl,(ident) ; HL := adr or RomWBW HBIOS ident
|
||||
ld a,(hl) ; get first byte of RomWBW marker
|
||||
cp 'W' ; match?
|
||||
jp nz,err_inv ; abort with invalid config block
|
||||
inc hl ; next byte (marker byte 2)
|
||||
ld a,(hl) ; load it
|
||||
cp ~'W' ; match?
|
||||
jp nz,err_inv ; abort with invalid config block
|
||||
inc hl ; next byte (major/minor version)
|
||||
ld a,(hl) ; load it
|
||||
cp rmj << 4 | rmn ; match?
|
||||
jp nz,err_ver ; abort with invalid os version
|
||||
;
|
||||
initz:
|
||||
; initialization complete
|
||||
xor a ; signal success
|
||||
ret ; return
|
||||
;
|
||||
;
|
||||
;
|
||||
main:
|
||||
; skip to start of first command line parameter
|
||||
ld ix,$0081 ; point to start of parm area (past length byte)
|
||||
call nonblank ; skip to next non-blank char
|
||||
cp '/' ; option prefix?
|
||||
jr nz,usage ; display help info & exit if nothing to do
|
||||
;
|
||||
; process any options
|
||||
inc ix ; fetch next character and process
|
||||
ld a,(ix)
|
||||
call upcase ; ensure it's an upper case character
|
||||
cp 'C' ; if it's a 'C' then
|
||||
jr z,cboot ; do a cold boot.
|
||||
cp 'W' ; if it's a 'W' then
|
||||
jr z,wboot ; do a warm boot.
|
||||
cp '?' ; if it's a '?' then
|
||||
jr z,usage ; display usage info and exit.
|
||||
jr err_parm ; or not a recognised option, so report and exit.
|
||||
;
|
||||
; Handle Usage Information
|
||||
;
|
||||
usage:
|
||||
call crlf2 ; display the options for this utility
|
||||
ld de,str_usage
|
||||
call prtstr
|
||||
or $FF
|
||||
ret ; exit back out to CP/M CCP
|
||||
;
|
||||
; Handle Warm Boot
|
||||
;
|
||||
wboot:
|
||||
ld de,str_warmboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_warm ; warm start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
; Handle Cold Boot
|
||||
;
|
||||
cboot:
|
||||
ld de,str_coldboot ; message
|
||||
call prtstr ; display it
|
||||
ld b,bf_sysreset ; system restart
|
||||
ld c,bf_sysres_cold ; cold start
|
||||
call $fff0 ; call hbios
|
||||
;
|
||||
;===============================================================================
|
||||
; Error Handlers
|
||||
;===============================================================================
|
||||
;
|
||||
err_una:
|
||||
ld de,str_err_una
|
||||
jr err_ret
|
||||
err_inv:
|
||||
ld de,str_err_inv
|
||||
jr err_ret
|
||||
err_ver:
|
||||
ld de,str_err_ver
|
||||
jr err_ret
|
||||
err_parm:
|
||||
ld de,str_err_parm
|
||||
jr err_ret
|
||||
|
||||
;
|
||||
err_ret:
|
||||
call crlf2
|
||||
call prtstr
|
||||
or $FF ; signal error
|
||||
ret
|
||||
;
|
||||
;===============================================================================
|
||||
; Utility Routines
|
||||
;===============================================================================
|
||||
;
|
||||
; Print character in A without destroying any registers
|
||||
;
|
||||
prtchr:
|
||||
push af
|
||||
push bc ; save registers
|
||||
push de
|
||||
push hl
|
||||
ld e,a ; character to print in E
|
||||
ld c,$02 ; BDOS function to output a character
|
||||
call bdos ; do it
|
||||
pop hl ; restore registers
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Start a new line
|
||||
;
|
||||
crlf2:
|
||||
call crlf ; two of them
|
||||
crlf:
|
||||
push af ; preserve AF
|
||||
ld a,13 ; <CR>
|
||||
call prtchr ; print it
|
||||
ld a,10 ; <LF>
|
||||
call prtchr ; print it
|
||||
pop af ; restore AF
|
||||
ret
|
||||
;
|
||||
; Print a zero terminated string at (de) without destroying any registers
|
||||
;
|
||||
prtstr:
|
||||
push af
|
||||
push de
|
||||
;
|
||||
prtstr1:
|
||||
ld a,(de) ; get next char
|
||||
or a
|
||||
jr z,prtstr2
|
||||
call prtchr
|
||||
inc de
|
||||
jr prtstr1
|
||||
;
|
||||
prtstr2:
|
||||
pop de ; restore registers
|
||||
pop af
|
||||
ret
|
||||
;
|
||||
; Get the next non-blank character from (ix)
|
||||
;
|
||||
nonblank:
|
||||
ld a,(ix) ; load next character
|
||||
or a ; string ends with a null
|
||||
ret z ; if null, return pointing to null
|
||||
cp ' ' ; check for blank
|
||||
ret nz ; return if not blank
|
||||
inc ix ; if blank, increment character pointer
|
||||
jr nonblank ; and loop
|
||||
;
|
||||
; Convert character in A to uppercase
|
||||
;
|
||||
upcase:
|
||||
cp 'a' ; if below 'a'
|
||||
ret c ; ... do nothing and return
|
||||
cp 'z' + 1 ; if above 'z'
|
||||
ret nc ; ... do nothing and return
|
||||
res 5,a ; clear bit 5 to make lower case -> upper case
|
||||
ret ; and return
|
||||
;
|
||||
;===============================================================================
|
||||
; Constants
|
||||
;===============================================================================
|
||||
;
|
||||
str_banner .db "RomWBW Reboot Utility, Version 1.0, 12-Oct-2024\r\n"
|
||||
.db " Wayne Warthen (wwarthen@gmail.com) & MartinR",0
|
||||
;
|
||||
str_warmboot .db "\r\n\r\nWarm booting...\r\n",0
|
||||
str_coldboot .db "\r\n\r\nCold booting...\r\n",0
|
||||
;
|
||||
str_err_una .db " ERROR: UNA not supported by application",0
|
||||
str_err_inv .db " ERROR: Invalid BIOS (signature missing)",0
|
||||
str_err_ver .db " ERROR: Unexpected HBIOS version",0
|
||||
str_err_parm .db " ERROR: Parameter error (REBOOT /? for usage)",0
|
||||
;
|
||||
str_usage .db " Usage: REBOOT /? - Display this help info.\r\n"
|
||||
.db " REBOOT /W - Warm boot system\r\n"
|
||||
.db " REBOOT /C - Cold boot system\r\n"
|
||||
.db " Options are case insensitive.\r\n",0
|
||||
;
|
||||
;===============================================================================
|
||||
; Working data
|
||||
;===============================================================================
|
||||
;
|
||||
stksav .dw 0 ; stack pointer saved at start
|
||||
.fill stksiz,0 ; stack
|
||||
stack .equ $ ; stack top
|
||||
;
|
||||
;===============================================================================
|
||||
;
|
||||
.end
|
||||
@@ -33,6 +33,8 @@
|
||||
;
|
||||
;[2023/07/07] v1.9 Support DUODYNE
|
||||
;
|
||||
;[2024/09/02] v1.10 Support Genesis STD Z180
|
||||
;
|
||||
; Constants
|
||||
;
|
||||
mask_data .EQU %10000000 ; RTC data line
|
||||
@@ -52,6 +54,7 @@ PORT_RCZ280 .EQU $C0 ; RTC port for RCZ280
|
||||
PORT_MBC .EQU $70 ; RTC port for MBC
|
||||
PORT_RPH .EQU $84 ; RTC port for RHYOPHYRE
|
||||
PORT_DUO .EQU $94 ; RTC port for DUODYNE
|
||||
PORT_STDZ180 .EQU $84 ; RTC Port for STD Bus Z180 board
|
||||
|
||||
|
||||
BDOS .EQU 5 ; BDOS invocation vector
|
||||
@@ -1143,7 +1146,13 @@ HINIT:
|
||||
CP 17 ; DUODYNE
|
||||
JP Z,RTC_INIT2
|
||||
;
|
||||
; Unknown platform
|
||||
LD C,PORT_STDZ180
|
||||
LD DE,PLT_STDZ180
|
||||
CP 21 ; STD Z180
|
||||
JP Z,RTC_INIT2
|
||||
;
|
||||
|
||||
; Unknown platform
|
||||
LD DE,PLTERR ; BIOS error message
|
||||
LD C,9 ; BDOS string display function
|
||||
CALL BDOS ; Do it
|
||||
@@ -1769,6 +1778,7 @@ PLT_RCZ280 .TEXT ", RCBus Z280 RTC Module Latch Port 0xC0\r\n$"
|
||||
PLT_MBC .TEXT ", MBC RTC Latch Port 0x70\r\n$"
|
||||
PLT_RPH .TEXT ", RHYOPHYRE RTC Latch Port 0x84\r\n$"
|
||||
PLT_DUO .TEXT ", DUODYNE RTC Latch Port 0x70\r\n$"
|
||||
PLT_STDZ180 .TEXT ", STD Z180 RTC Module latch port 0x84\r\n$"
|
||||
|
||||
;
|
||||
; Generic FOR-NEXT loop algorithm
|
||||
|
||||
@@ -11,6 +11,7 @@ call BuildZRC || exit /b
|
||||
call BuildZ1RCC || exit /b
|
||||
call BuildZZRCC || exit /b
|
||||
call BuildZRC512 || exit /b
|
||||
call BuildFZ80 || exit /b
|
||||
|
||||
if "%1" == "dist" (
|
||||
call Clean || exit /b
|
||||
|
||||
4
Source/BuildFZ80.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
pushd FZ80 && call Build || exit /b & popd
|
||||
@@ -439,12 +439,12 @@ WBOOT:
|
||||
LD DE,(BNKBIOS) ; UBIOS_PAGE (SEE PAGES.INC)
|
||||
RST 08 ; DO IT
|
||||
PUSH DE ; SAVE PREVIOUS BANK
|
||||
|
||||
|
||||
LD HL,(CCPBUF) ; ADDRESS OF CCP BUF IN BIOS MEM
|
||||
LD DE,CCP_LOC ; ADDRESS IN HI MEM OF CCP
|
||||
LD BC,CCP_SIZ ; SIZE OF CCP
|
||||
LDIR ; DO IT
|
||||
|
||||
|
||||
LD BC,$01FB ; UNA FUNC = SET BANK
|
||||
POP DE ; RECOVER OPERATING BANK
|
||||
RST 08 ; DO IT
|
||||
@@ -804,7 +804,7 @@ WRITE:
|
||||
LD A,C
|
||||
LD (WRTYPE),A ; SAVE WRITE TYPE
|
||||
LD A,DOP_WRITE
|
||||
JR READWRITE
|
||||
;JR READWRITE ; OPTIMISATION (FALL THRU TO READWRITE)
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
READWRITE:
|
||||
@@ -1232,11 +1232,11 @@ DSK_GETINF:
|
||||
RLCA ; ... TO USE AS OFFSET INTO DRVMAP
|
||||
CALL ADDHLA ; ADD OFFSET
|
||||
LD D,(HL) ; D := UNIT
|
||||
|
||||
|
||||
LD A,D ; PUT UNIT IN ACCUM
|
||||
INC A ; $FF -> $00
|
||||
JR Z,DSK_GETINF1 ; HANDLE UNASSIGNED DRIVE LETTER
|
||||
|
||||
|
||||
INC HL ; BUMP TO SLICE
|
||||
LD E,(HL) ; E := SLICE
|
||||
INC HL ; POINT TO DPH LSB
|
||||
@@ -1261,7 +1261,8 @@ DSK_GETINF1: ; ERROR RETURN
|
||||
INC A
|
||||
RET
|
||||
;
|
||||
;
|
||||
; BIOS FUNCTION FOR SELECTING CPM DRIVE (A-P) IN C REGISTER
|
||||
; RETURN HL - BASE ADDRESS OF DPH (0x0000 FOR AN ERROR)
|
||||
;
|
||||
DSK_SELECT:
|
||||
LD B,E ; SAVE E IN B FOR NOW
|
||||
@@ -1321,19 +1322,8 @@ DSK_SELECT1A:
|
||||
LD (MEDID),A
|
||||
;
|
||||
#ELSE
|
||||
;
|
||||
; DETERMINE MEDIA IN DRIVE
|
||||
LD A,(SEKUNIT) ; GET UNIT
|
||||
LD C,A ; STORE IN C
|
||||
LD B,BF_DIOMEDIA ; DRIVER FUNCTION = DISK MEDIA
|
||||
LD E,1 ; ENABLE MEDIA CHECK/DISCOVERY
|
||||
RST 08 ; DO IT
|
||||
LD A,E ; RESULTANT MEDIA ID TO ACCUM
|
||||
LD (MEDID),A ; SAVE IT
|
||||
OR A ; SET FLAGS
|
||||
LD HL,0 ; ASSUME FAILURE
|
||||
RET Z ; BAIL OUT IF NO MEDIA
|
||||
;
|
||||
; NOTE: Setting the (MEDID) is not required for RomWBW at this point
|
||||
; The media ID is determined during call to DSK_MBR:
|
||||
#ENDIF
|
||||
;
|
||||
; CLEAR LBA OFFSET (DWORD)
|
||||
@@ -1343,24 +1333,7 @@ DSK_SELECT1A:
|
||||
SET 7,H ; ASSUME LBA ACCESS FOR NOW
|
||||
LD (SEKLBA+2),HL ; CLEAR SECOND WORD
|
||||
;
|
||||
#IFDEF PLTWBW
|
||||
;
|
||||
LD A,(SEKUNIT) ; GET UNIT
|
||||
LD C,A ; STORE IN C
|
||||
LD B,BF_DIODEVICE ; HBIOS FUNC: REPORT DEVICE INFO
|
||||
RST 08 ; GET UNIT INFO, DEVICE TYPE IN D
|
||||
LD A,D ; DEVICE TYPE -> A
|
||||
CP DIODEV_FD ; FLOPPY?
|
||||
JR NZ,DSK_SELECT1B ; IF NOT, DO LBA IO
|
||||
LD HL,SEKLBA+3 ; POINT TO HIGH ORDER BYTE
|
||||
RES 7,(HL) ; SWITCH FROM LBA -> CHS
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
DSK_SELECT1B:
|
||||
; SET LEGACY SECTORS PER SLICE
|
||||
LD HL,16640 ; LEGACY SECTORS PER SLICE
|
||||
LD (SPS),HL ; SAVE IT
|
||||
;
|
||||
; CHECK MBR OF PHYSICAL DISK BEING SELECTED
|
||||
; WILL UPDATE MEDID AND LBAOFF IF VALID CP/M PARTITION EXISTS
|
||||
@@ -1407,29 +1380,47 @@ DSK_SELECT2:
|
||||
; THE MEDIA ID (MEDID).
|
||||
;
|
||||
DSK_MBR:
|
||||
;
|
||||
#IFDEF PLTWBW
|
||||
;
|
||||
; GET EXTENDED INFORMATION FOR THE DEVICE/SLICE
|
||||
LD A,(SEKUNIT) ; PASSING BOOT UNIT
|
||||
LD D,A
|
||||
LD A,(SLICE) ; AND SLICE
|
||||
LD E,A
|
||||
LD B,BF_EXTSLICE ; HBIOS FUNC: SLICE
|
||||
RST 08 ; DO IT
|
||||
;
|
||||
; CHECK ERRORS FROM THE FUNCTION
|
||||
RET NZ ; ABORT ON ERROR
|
||||
|
||||
; SAVE MEDIA ID
|
||||
LD A,C ; C IS MEDIA ID FROM HBIOS
|
||||
LD (MEDID),A ; SAVE IT
|
||||
|
||||
; TEST IF FLOPPY MEDIA - BIT 7 DEVICE ATTRIBUTES
|
||||
BIT 7,B ; B IS ATTRIBUTES FROM HBIOS
|
||||
JR NZ,DSK_MBR11 ; FLOPPY - SAVE AND RETURN DEHL -> CHS
|
||||
|
||||
; CODE FALL THRU NEXT IFDEF AND SETS 7,D
|
||||
; THEN RETURNS DEHL -> LBA MODE
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IFDEF PLTUNA
|
||||
; CHECK MEDIA TYPE, ONLY HARD DISK IS APPLICABLE
|
||||
LD A,(MEDID) ; GET MEDIA ID
|
||||
CP MID_HD ; HARD DISK?
|
||||
JR Z,DSK_MBR0 ; IF SO, CONTINUE
|
||||
XOR A ; ELSE, N/A, SIGNAL SUCCESS
|
||||
RET ; AND RETURN
|
||||
|
||||
|
||||
DSK_MBR0:
|
||||
;
|
||||
#IFDEF PLTWBW
|
||||
; ACTIVATE BIOS BANK TO ACCESS DISK BUFFER
|
||||
LD (STKSAV),SP ; SAVE CUR STACK
|
||||
LD SP,STACK ; NEW STACK IN HI MEM
|
||||
LD A,(BNKBIOS) ; ACTIVATE HBIOS BANK
|
||||
PUSH IX ; SAVE IX
|
||||
LD IX,DSK_MBR1 ; ROUTINE TO RUN
|
||||
CALL HB_BNKCALL ; DO IT
|
||||
POP IX ; RESTORE IX
|
||||
LD SP,(STKSAV) ; RESTORE ORIGINAL STACK
|
||||
RET
|
||||
#ENDIF
|
||||
;
|
||||
DSK_MBR1:
|
||||
; SET LEGACY SECTORS PER SLICE - USED IN CAPACITY CALC
|
||||
LD HL,SPS_HD512 ; LEGACY SECTORS PER SLICE
|
||||
LD (SPS),HL ; SAVE IT
|
||||
;
|
||||
; FLUSH DSKBUF TO MAKE SURE IT IS SAFE TO USE IT.
|
||||
CALL BLKFLSH ; MAKE SURE DISK BUFFER IS NOT DIRTY
|
||||
XOR A ; CLEAR ACCUM
|
||||
@@ -1441,9 +1432,6 @@ DSK_MBR1:
|
||||
LD C,A ; PUT IN C
|
||||
LD DE,0 ; LBA SECTOR ZERO
|
||||
LD HL,0 ; ...
|
||||
#IFDEF PLTWBW
|
||||
SET 7,D ; MAKE SURE LBA ACCESS BIT SET
|
||||
#ENDIF
|
||||
CALL DSK_IO2 ; DO IT
|
||||
RET NZ ; ABORT ON ERROR
|
||||
;
|
||||
@@ -1487,6 +1475,8 @@ DSK_MBR3:
|
||||
; CHECK THAT REQUESTED SLICE IS "INSIDE" PARTITION
|
||||
; SLICE SIZE IS EXACTLY 16,384 SECTORS (8MB), SO WE CAN JUST
|
||||
; RIGHT SHIFT PARTITION SECTOR COUNT BY 14 BITS
|
||||
; IMPLEMENTED BY : LEFT SHIFT BY 2, AND TAKE HIGH ORDER WORD
|
||||
; SAME AS DISCARDING THE LOWER 14 BITS, SINCE KEEP 2 BY SHIFT
|
||||
LD E,(HL) ; HL POINTS TO FIRST BYTE
|
||||
INC HL ; ... OF 32 BIT PARTITION
|
||||
LD D,(HL) ; ... SECTOR COUNT,
|
||||
@@ -1510,7 +1500,7 @@ DSK_MBR3:
|
||||
;
|
||||
DSK_MBR4:
|
||||
; IF BOOT FROM PARTITION, USE NEW SECTORS PER SLICE VALUE
|
||||
LD HL,16384 ; NEW SECTORS PER SLICE
|
||||
LD HL,SPS_HD1K ; NEW SECTORS PER SLICE
|
||||
LD (SPS),HL ; SAVE IT
|
||||
|
||||
; UPDATE MEDIA ID
|
||||
@@ -1519,18 +1509,19 @@ DSK_MBR4:
|
||||
;
|
||||
DSK_MBR5:
|
||||
; ADJUST LBA OFFSET BASED ON TARGET SLICE
|
||||
; ALSO JP HERE IF NO PARTITION TABLE, OR NO CPM PARTION
|
||||
LD A,(SLICE) ; GET SLICE, A IS LOOP CNT
|
||||
LD HL,(SEKLBA) ; SET DE:HL
|
||||
LD DE,(SEKLBA+2) ; ... TO STARTING LBA
|
||||
LD BC,(SPS) ; SECTORS PER SLICE
|
||||
RES 7,D ; CLEAR LBA MODE BIT
|
||||
DSK_MBR6:
|
||||
DSK_MBR6:
|
||||
OR A ; SET FLAGS TO CHECK LOOP CNTR
|
||||
JR Z,DSK_MBR8 ; DONE IF COUNTER EXHAUSTED
|
||||
ADD HL,BC ; ADD ONE SLICE TO LOW WORD
|
||||
JR NC,DSK_MBR7 ; CHECK FOR CARRY
|
||||
INC DE ; IF SO, BUMP HIGH WORD
|
||||
DSK_MBR7:
|
||||
DSK_MBR7:
|
||||
DEC A ; DEC LOOP DOWNCOUNTER
|
||||
JR DSK_MBR6 ; AND LOOP
|
||||
DSK_MBR8:
|
||||
@@ -1552,21 +1543,11 @@ DSK_MBR9:
|
||||
LD (CAP_REQ),HL ; LSW
|
||||
LD (CAP_REQ+2),DE ; MSW
|
||||
;
|
||||
#IFDEF PLTWBW
|
||||
; GET DSK_CAP (DE:HL)
|
||||
LD B,BF_DIOCAP ; HBIOS DISK CAPACITY FUNC
|
||||
LD A,(SEKUNIT) ; DISK UNIT NUMBER
|
||||
LD C,A ; ... INTO C
|
||||
RST 08 ; HBIOS CALL (DE:HL = CAPACITY)
|
||||
#ENDIF
|
||||
;
|
||||
#IFDEF PLTUNA
|
||||
; GET DSK_CAP (DE:HL)
|
||||
LD C,$45 ; UBIOS DISK INFO FUNC
|
||||
LD A,(SEKUNIT) ; DISK UNIT NUMBER
|
||||
LD B,A ; ... INTO B
|
||||
RST 08 ; CALL UNA (DE:HL = CAPACITY)
|
||||
#ENDIF
|
||||
;
|
||||
; SAVE DSK_CAP (DE:HL)
|
||||
PUSH DE ; SAVE DSK_CAP (MSW)
|
||||
@@ -1591,9 +1572,12 @@ DSK_MBR9:
|
||||
OR $FF ; SIGNAL ERROR
|
||||
RET ; DONE
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
DSK_MBR10:
|
||||
; FINALIZE SLICE LBA
|
||||
SET 7,D ; SET LBA ACCESS FLAG
|
||||
DSK_MBR11:
|
||||
; RESAVE IT
|
||||
LD (SEKLBA),HL ; LOWORD
|
||||
LD (SEKLBA+2),DE ; HIWORD
|
||||
@@ -1601,7 +1585,7 @@ DSK_MBR10:
|
||||
XOR A ; SUCCESS
|
||||
RET ; DONE
|
||||
;
|
||||
;
|
||||
; CHECK DISK STATUS (PART OF BIOS COLD WARM BOOT)
|
||||
;
|
||||
DSK_STATUS:
|
||||
#IFDEF PLTUNA
|
||||
@@ -1619,21 +1603,21 @@ DSK_STATUS:
|
||||
RET
|
||||
#ENDIF
|
||||
;
|
||||
;
|
||||
; READ PHYSICAL SECTOR INTO BUFFER
|
||||
;
|
||||
DSK_READ:
|
||||
; SET B = FUNCTION: READ
|
||||
LD B,BF_DIOREAD
|
||||
JR DSK_IO
|
||||
;
|
||||
;
|
||||
; WRITE PHYSICAL SECTOR FROM BUFFER
|
||||
;
|
||||
DSK_WRITE:
|
||||
; SET B = FUNCTION: WRITE
|
||||
LD B,BF_DIOWRITE
|
||||
JR DSK_IO
|
||||
;
|
||||
;
|
||||
; READ/WRITE PHYSICAL SECTOR
|
||||
;
|
||||
DSK_IO:
|
||||
LD A,(HSTUNIT) ; GET UNIT
|
||||
@@ -1671,8 +1655,8 @@ LBA_IO:
|
||||
LD L,A
|
||||
; ADD IN LBA OFFSET FOR PARTITION AND/OR SLICE
|
||||
LD BC,(HSTLBA) ; LBA OFFSET LOWORD
|
||||
ADD HL,BC
|
||||
EX DE,HL
|
||||
ADD HL,BC
|
||||
EX DE,HL
|
||||
LD BC,(HSTLBA+2) ; LBA OFFSET HIWORD
|
||||
ADC HL,BC
|
||||
EX DE,HL
|
||||
@@ -1816,8 +1800,10 @@ DEFDRIVE .DB 0 ; DEFAULT DRIVE
|
||||
CCPBUF .DW 0 ; ADDRESS OF CCP BUF IN BIOS BANK
|
||||
MEDID .DB 0 ; TEMP STORAGE FOR MEDIA ID
|
||||
SLICE .DB 0 ; CURRENT SLICE
|
||||
#IFDEF PLTUNA
|
||||
SPS .DW 0 ; SECTORS PER SLICE
|
||||
CAP_REQ .DW 0,0 ; LBA CAP REQUIRED FOR SLICE
|
||||
#ENDIF
|
||||
STKSAV .DW 0 ; TEMP SAVED STACK POINTER
|
||||
;
|
||||
#IFDEF PLTWBW
|
||||
@@ -2596,7 +2582,7 @@ MD_INIT:
|
||||
LD A,(HCB + HCB_RAMD_BNKS) ; RAM DISK SIZE IN BANKS
|
||||
LD IX,DPB_RAM ; ADDRESS OF DPB
|
||||
CALL MD_INIT1 ; FIX IT UP
|
||||
;
|
||||
;
|
||||
JR MD_INIT4 ; DONE
|
||||
;
|
||||
MD_INIT1:
|
||||
|
||||
@@ -38,6 +38,10 @@ copy /b os2ccp.bin + os3bdos.bin + ..\cbios\cbios_una.bin cpm_una.bin || exit /b
|
||||
copy /b loader.bin + cpm_wbw.bin cpm_wbw.sys || exit /b
|
||||
copy /b loader.bin + cpm_una.bin cpm_una.sys || exit /b
|
||||
|
||||
rem Copy OS files to Binary directory
|
||||
copy cpm_wbw.sys ..\..\Binary\CPM22 || exit /b
|
||||
copy cpm_una.sys ..\..\Binary\CPM22 || exit /b
|
||||
|
||||
goto :eof
|
||||
|
||||
:asm
|
||||
|
||||
@@ -3,14 +3,20 @@ BINFILES = cpm_wbw.bin cpm_una.bin
|
||||
OBJECTS = CCP.bin BDOS.bin CCP22.bin BDOS22.bin OS2CCP.bin OS3BDOS.bin \
|
||||
ccpb03.bin bdosb01.bin loader.bin $(SYSFILES) $(BINFILES)
|
||||
OTHERS = *.hex
|
||||
NOCOPY = cpm_wbw.bin cpm_una.bin \
|
||||
CCP.bin BDOS.bin CCP22.bin BDOS22.bin OS2CCP.bin OS3BDOS.bin \
|
||||
ccpb03.bin bdosb01.bin loader.bin
|
||||
|
||||
DEST = ../../Binary/CPM22
|
||||
TOOLS = ../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
%.sys: %.bin loader.bin
|
||||
cat loader.bin $*.bin > $@
|
||||
%.sys: %.bin loader.bin
|
||||
cat loader.bin $*.bin > $@
|
||||
|
||||
cpm_una.bin: OS2CCP.bin OS3BDOS.bin ../CBIOS/cbios_una.bin
|
||||
cat OS2CCP.bin OS3BDOS.bin ../CBIOS/cbios_una.bin > $@
|
||||
|
||||
|
||||
cpm_wbw.bin: OS2CCP.bin OS3BDOS.bin ../CBIOS/cbios_wbw.bin
|
||||
cat OS2CCP.bin OS3BDOS.bin ../CBIOS/cbios_wbw.bin > $@
|
||||
|
||||
@@ -4,11 +4,13 @@
|
||||
maclib cpm3.lib
|
||||
|
||||
cseg
|
||||
|
||||
|
||||
extrn phex16, phex8
|
||||
extrn cin, cout
|
||||
extrn crlf, crlf2
|
||||
|
||||
|
||||
include hbios.z80
|
||||
|
||||
debug equ false
|
||||
|
||||
; BIOS Jump vector.
|
||||
@@ -65,7 +67,7 @@ boot:
|
||||
; this routine to avoid issues.
|
||||
ld (stksav),sp
|
||||
ld sp,stack
|
||||
|
||||
|
||||
; Do the real work
|
||||
call boot0
|
||||
|
||||
@@ -78,6 +80,10 @@ boot0:
|
||||
if cmdline
|
||||
|
||||
boot1:
|
||||
;
|
||||
; The following Code is the Entry Point for the Loader when
|
||||
; it is built as a COM file. Typically CPMLDR.COM or ZPMLDR.COM
|
||||
;
|
||||
; Get disk unit from user
|
||||
ld de,msgunit ; disk unit prompt
|
||||
call writestr ; display on console
|
||||
@@ -88,7 +94,7 @@ boot1:
|
||||
sub '0' ; convert to binary
|
||||
ld (unit),a ; save it
|
||||
jr c,selerr ; loop if below 0 entered
|
||||
ld bc,0F810h ; HBIOS, get disk unit count
|
||||
ld bc,BC_SYSGET_DIOCNT ; HBIOS, get disk unit count
|
||||
call 0FFF0h ; do it, E := disk unit count
|
||||
ld a,(unit) ; get unit num back
|
||||
cp e ; compare to entry
|
||||
@@ -118,7 +124,7 @@ selerr:
|
||||
|
||||
boot2:
|
||||
; Record unit & slice w/ HBIOS
|
||||
ld bc,0F9E0h ; HBIOS func: set boot info
|
||||
ld bc,BC_SYSSET_BOOTINFO ; HBIOS func: set boot info
|
||||
ld a,(unit) ; get unit
|
||||
ld d,a ; put in D
|
||||
ld a,(slice) ; get slice
|
||||
@@ -128,8 +134,13 @@ boot2:
|
||||
|
||||
else
|
||||
|
||||
;
|
||||
; The following Code is the Entry Point for the Loader when
|
||||
; it is built as a SYS file, and run from the System Track
|
||||
;
|
||||
|
||||
; Get unit & slice from HBIOS
|
||||
ld bc,0F8E0h ; HBIOS func: get boot info
|
||||
ld bc,BC_SYSGET_BOOTINFO ; HBIOS func: get boot info
|
||||
call 0FFF0h ; do it, D := boot unit, E: := slice
|
||||
ld a,d ; move unit to A
|
||||
ld (unit),a ; save it
|
||||
@@ -138,103 +149,27 @@ boot2:
|
||||
|
||||
endif
|
||||
|
||||
; Check that drive actually exists
|
||||
ld bc,0F810h ; HBIOS func: get disk count
|
||||
call 0FFF0h ; do it, E=disk count
|
||||
ld a,(unit) ; get boot disk unit
|
||||
cp e ; compare to count
|
||||
jp nc,err_nodisk ; handle no disk err
|
||||
|
||||
; Sense media to determine media format
|
||||
ld a,(unit) ; Get boot unit
|
||||
ld c,a ; put in C
|
||||
ld b,18h ; HBIOS Media function
|
||||
ld e,1 ; Enable media check/discovery
|
||||
ld d,a ; put in D
|
||||
ld a,(slice) ; get boot slice
|
||||
ld e,a ; put in E
|
||||
ld b,BF_EXTSLICE ; HBIOS FUNC: SLICE
|
||||
call 0FFF0H ; HBIOS call
|
||||
jp nz,err_diskio ; handle error
|
||||
ld a,e ; resultant media id to accum
|
||||
|
||||
; Check errors from the Function
|
||||
cp ERR_NOUNIT ; compare to no unit error
|
||||
jp z,err_nodisk ; handle no disk err
|
||||
cp ERR_NOMEDIA ; no media in the device
|
||||
jp z,err_nodisk ; handle the error
|
||||
cp ERR_RANGE ; slice is invalid
|
||||
jp z,err_noslice ; bad slice, handle err
|
||||
or a ; any other error
|
||||
jp nz,err_diskio ; handle as general IO error
|
||||
|
||||
; Initialize slice start LBA and Media ID
|
||||
ld a,c
|
||||
ld (medid),a ; save media id
|
||||
or a ; set flags, 0 is no media
|
||||
jp z,err_diskio ; handle no media error
|
||||
|
||||
; Initialize slice start LBA & sectors per slice
|
||||
ld hl,0 ; assume slice starts
|
||||
ld (lba),hl ; ... at LBA offset
|
||||
ld (lba+2),hl ; ... of zero
|
||||
ld hl,16640 ; assume legacy value for
|
||||
ld (sps),hl ; ... sectors per slice
|
||||
|
||||
; If not hard disk, skip partition & slice stuff
|
||||
ld a,(medid) ; get media id
|
||||
cp 4 ; hard disk?
|
||||
jr nz,boot9 ; if not, jump ahead
|
||||
|
||||
; Read MBR
|
||||
ld de,8000h ; LBA address zero
|
||||
ld hl,0 ; ... to read first sector
|
||||
ld bc,mbrsec ; read into MBR buffer
|
||||
ld (dma),bc ; save
|
||||
ld b,1 ; one sector
|
||||
ld a,(unit) ; get bootunit
|
||||
ld c,a ; put in C
|
||||
call diskread ; do it, no return on err
|
||||
|
||||
; Check signature
|
||||
ld hl,(mbrsec+1FEh) ; get signature
|
||||
ld a,l ; first byte
|
||||
cp 055h ; should be $55
|
||||
jr nz,boot5 ; if not, no part table
|
||||
ld a,h ; second byte
|
||||
cp 0AAh ; should be $AA
|
||||
jr nz,boot5 ; if not, no part table
|
||||
|
||||
; Search part table for CP/M entry (type 0x2E)
|
||||
ld b,4 ; four entries in part table
|
||||
ld hl,mbrsec+1BEh+4 ; offset of first part type
|
||||
boot3:
|
||||
ld a,(hl) ; get part type
|
||||
cp 2Eh ; CP/M partition?
|
||||
jr z,boot4 ; cool, grab the LBA offset
|
||||
ld de,16 ; part table entry size
|
||||
add hl,de ; bump to next part type
|
||||
djnz boot3 ; loop thru table
|
||||
jr boot5 ; too bad, no CP/M partition
|
||||
|
||||
boot4:
|
||||
; Capture the starting LBA of the CP/M partition we found
|
||||
ld de,4 ; LBA is 4 bytes after part type
|
||||
add hl,de ; point to it
|
||||
ld de,lba ; loc to store lba offset
|
||||
ld bc,4 ; 4 bytes (32 bits)
|
||||
ldir ; copy it
|
||||
|
||||
; For now, it is implied that a slice within a partition
|
||||
; table will be in the "new" disk format. So, we now
|
||||
; adjust the sectors per slice and media id.
|
||||
|
||||
; Use new slice format sectors per slice value
|
||||
ld hl,16384 ; new sectors per slice
|
||||
ld (sps),hl ; save it
|
||||
|
||||
; Update media id for new hard disk format
|
||||
ld a,10 ; new media id
|
||||
ld (medid),a ; save it
|
||||
|
||||
boot5:
|
||||
; Adjust LBA offset based on target slice
|
||||
ld a,(slice) ; get boot slice, A is loop cnt
|
||||
ld hl,(lba) ; set DE:HL
|
||||
ld de,(lba+2) ; ... to starting LBA
|
||||
ld bc,(sps) ; sectors per slice
|
||||
boot6:
|
||||
or a ; set flags to check loop cntr
|
||||
jr z,boot8 ; done if counter exhausted
|
||||
add hl,bc ; add one slice to low word
|
||||
jr nc,boot7 ; check for carry
|
||||
inc de ; if so, bump high word
|
||||
boot7:
|
||||
dec a ; dec loop downcounter
|
||||
jr boot6 ; and loop
|
||||
boot8:
|
||||
ld (lba),hl ; save new lba, low word
|
||||
ld (lba+2),de ; save new lba, high word
|
||||
@@ -277,7 +212,7 @@ conin:
|
||||
conout:
|
||||
ld e,c ; output character in E
|
||||
ld bc,0180h ; unit 80h (console), func 1 = COUT
|
||||
jp 0FFF0h
|
||||
jp 0FFF0h
|
||||
list:
|
||||
ld a,85H
|
||||
halt
|
||||
@@ -311,7 +246,7 @@ setdma:
|
||||
call crlf
|
||||
call phex16
|
||||
pop hl
|
||||
|
||||
|
||||
endif
|
||||
|
||||
ld (dma),bc
|
||||
@@ -337,18 +272,18 @@ read:
|
||||
call phex16
|
||||
ld hl,(lba+0)
|
||||
call phex16
|
||||
|
||||
|
||||
endif
|
||||
|
||||
; Check device type
|
||||
ld a,(unit) ; get unit
|
||||
ld c,a ; BIOS Disk Unit in C
|
||||
ld b,17h ; HBIOS DEVICE function
|
||||
ld b,BF_DIODEVICE ; HBIOS DEVICE function
|
||||
rst 08 ; Do it, D=device type
|
||||
ld a,d ; put in accum
|
||||
cp 01h ; floppy?
|
||||
jr nz,read2 ; if not, do LBA i/o
|
||||
|
||||
|
||||
; Floppy I/O
|
||||
ld de,(sect) ; sector -> de, head(d) becomes zero
|
||||
ld hl,(trk) ; track -> hl (low bit has head)
|
||||
@@ -356,7 +291,7 @@ read:
|
||||
rr l ; ... and into carry
|
||||
rl d ; carry bit (head) into d
|
||||
jr read3 ; do the disk i/o
|
||||
|
||||
|
||||
; LBA I/O
|
||||
read2:
|
||||
ld hl,(trk) ; get track
|
||||
@@ -386,7 +321,7 @@ read3:
|
||||
call phex16
|
||||
ex de,hl
|
||||
call phex16
|
||||
|
||||
|
||||
endif
|
||||
|
||||
; DE:HL has sector address to read (LBA or CHS)
|
||||
@@ -401,14 +336,14 @@ diskread:
|
||||
|
||||
; Seek to requested sector in DE:HL
|
||||
push bc ; save unit & count
|
||||
ld b,012h ; HBIOS func: seek
|
||||
ld b,BF_DIOSEEK ; HBIOS func: seek
|
||||
call 0FFF0h ; do it
|
||||
pop bc ; recover unit & count
|
||||
jp nz,err_diskio ; handle error
|
||||
|
||||
; Read sector(s) into buffer
|
||||
ld e,b ; transfer count
|
||||
ld b,013h ; HBIOS func: disk read
|
||||
ld b,BF_DIOREAD ; HBIOS func: disk read
|
||||
ld hl,(dma) ; read into info sec buffer
|
||||
ld a,(0FFE0h) ; get current bank
|
||||
ld d,a ; put in D
|
||||
@@ -477,7 +412,7 @@ xmove:
|
||||
;cin:
|
||||
; ; Input character from console via HBIOS
|
||||
; ld c,080H ; console unit to C
|
||||
; ld b,00H ; HBIOS func: input char
|
||||
; ld b,BF_CIOIN ; HBIOS func: input char
|
||||
; call 0FFF0H ; HBIOS reads character
|
||||
; ld a,e ; To A for return
|
||||
; ret ; done
|
||||
@@ -486,7 +421,7 @@ xmove:
|
||||
; ; Output character to console via HBIOS
|
||||
; ld e,a ; output char to E
|
||||
; ld c,080H ; console unit to C
|
||||
; ld b,01H ; HBIOS func: output char
|
||||
; ld b,BF_CIOOUT ; HBIOS func: output char
|
||||
; jp 0FFF0H ; output & return
|
||||
|
||||
writestr:
|
||||
@@ -539,7 +474,7 @@ err:
|
||||
|
||||
str_err_prefix db "\r\n\r\n*** ","$"
|
||||
str_err_nodisk db "Disk unit not available","$"
|
||||
str_err_noslice db "Disk unit does not support slices","$"
|
||||
str_err_noslice db "Slice not supported","$"
|
||||
str_err_diskio db "Disk I/O failure","$"
|
||||
str_err_sig db "No system image on disk","$"
|
||||
str_err_api db "HBIOS API failure","$"
|
||||
@@ -728,7 +663,6 @@ dma ds 2 ; current DMA address
|
||||
|
||||
medid ds 1 ; media id
|
||||
lba ds 4 ; current lba
|
||||
sps ds 2 ; sectors per slice
|
||||
|
||||
ds 64
|
||||
stack equ $
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
extrn ?pderr ; print BIOS disk error header
|
||||
extrn ?conin,?cono ; con in and out
|
||||
extrn ?const ; get console status
|
||||
|
||||
|
||||
extrn ?bnkxlt
|
||||
|
||||
|
||||
extrn phex16, phex8, cout, crlf, crlf2
|
||||
|
||||
|
||||
@@ -45,15 +45,18 @@
|
||||
|
||||
maclib cpm3.lib
|
||||
|
||||
; HBIOS related definitons
|
||||
|
||||
include hbios.z80
|
||||
|
||||
; common control characters
|
||||
|
||||
cr equ 13
|
||||
lf equ 10
|
||||
bell equ 7
|
||||
|
||||
; Extended Disk Parameter Headers (XDPHs)
|
||||
|
||||
; Extended Disk Parameter Headers (XPDHs)
|
||||
|
||||
; All DPH entries below are generic. They are updated during
|
||||
; boot to point to available HBIOS disk unit/slices dynamically.
|
||||
|
||||
@@ -186,7 +189,7 @@ dph15: dph 0,dpb$max ; Real DPB filled in at disk login
|
||||
dw 0, 0 ; LBA Offset
|
||||
|
||||
cseg ; DPB must be resident
|
||||
|
||||
|
||||
dpb$max:
|
||||
dw 64 ; spt: sectors per track
|
||||
db 5 ; bsh: block shift factor
|
||||
@@ -288,7 +291,7 @@ dpb_fd144: ; 3.5" DS/HD Floppy Drive (1.44M)
|
||||
db 2 ; psh: 2 for 512 byte sectors
|
||||
db 3 ; phm: (512 / 128) - 1
|
||||
|
||||
dpb_fd360: ; 5.25" DS/DD Floppy Drive (360K)
|
||||
dpb_fd360: ; 5.25" DS/DD Floppy Drive (360K)
|
||||
dw 36 ; spt: sectors per track
|
||||
db 4 ; bsh: block shift factor
|
||||
db 15 ; blm: block mask
|
||||
@@ -370,7 +373,7 @@ dsk$init:
|
||||
|
||||
dsk$init1:
|
||||
; Get bank count of RAM/ROM disk
|
||||
ld b,0FAh ; HBIOS Peek Function
|
||||
ld b,BF_SYSPEEK ; HBIOS Peek Function
|
||||
ld a,(@hbbio) ; HBIOS bank id
|
||||
ld d,a ; ... goes in D
|
||||
rst 08 ; Call HBIOS, value in E
|
||||
@@ -399,9 +402,9 @@ dsk$init3:
|
||||
dec hl ; subtract 1 for proper DSM value
|
||||
ld (ix+5),l ; save updated
|
||||
ld (ix+6),h ; ... DSM value
|
||||
|
||||
|
||||
ret
|
||||
|
||||
|
||||
;ld a,(@rdrv) ; unit being initialized
|
||||
;ld hl,@bootdu
|
||||
;cp (hl) ; compare to boot unit
|
||||
@@ -445,14 +448,13 @@ dsk$login:
|
||||
|
||||
;ret ; we have nothing to do in
|
||||
; simple single density only environment.
|
||||
|
||||
|
||||
|
||||
;ld a,'L'
|
||||
;call cout
|
||||
|
||||
|
||||
ld (curdph),de ; save working DPH
|
||||
ex de,hl ; DPH adr to HL
|
||||
dec hl ; point to slice
|
||||
dec hl ; point to slice
|
||||
ld a,(hl) ; get slice
|
||||
ld (slice),a ; save it
|
||||
dec hl ; point to disk unit
|
||||
@@ -460,194 +462,38 @@ dsk$login:
|
||||
ld (unit),a ; save it
|
||||
inc a ; 0FFh -> 000h
|
||||
jp z,err_ret ; bail out on no disk mapped here
|
||||
|
||||
;call media ; update DPH for media
|
||||
;ret
|
||||
|
||||
media:
|
||||
; Set retry address
|
||||
ld hl,media
|
||||
ld (retry$adr),hl
|
||||
|
||||
|
||||
; Sense media to determine media format
|
||||
ld a,(unit) ; get disk unit
|
||||
ld c,a ; put in C
|
||||
ld b,18h ; HBIOS Media function
|
||||
ld e,1 ; Enable media check/discovery
|
||||
ld b,BF_EXTSLICE ; HBIOS func: SLICE
|
||||
ld a,(unit) ; passing boot unit
|
||||
ld d,a
|
||||
ld a,(slice) ; and slice
|
||||
ld e,a
|
||||
call 0FFF0H ; HBIOS call
|
||||
jp nz,err_diskio ; handle error
|
||||
ld a,e ; resultant media id to accum
|
||||
|
||||
; Check errors from the Function
|
||||
cp ERR_NOUNIT ; compare to no unit error
|
||||
jp z,err_nodisk ; handle no disk err
|
||||
cp ERR_NOMEDIA ; no media in the device
|
||||
jp z,err_nodisk ; handle the error
|
||||
cp ERR_RANGE ; slice is invalid
|
||||
jp z,err_noslice ; bad slice, handle err
|
||||
or a ; any other error
|
||||
jp nz,err_diskio ; handle as general IO error
|
||||
|
||||
; Capture the Result
|
||||
ld a,c ; resultant media id to accum
|
||||
ld (medid),a ; save media id
|
||||
or a ; set flags, 0 is no media
|
||||
jp z,err_nodisk ; handle no media error
|
||||
|
||||
; Initialize slice start LBA & sectors per slice
|
||||
ld hl,0 ; assume slice starts
|
||||
ld (lba),hl ; ... at LBA offset
|
||||
set 7,h ; ... of zero
|
||||
ld (lba+2),hl ; ... w/ LBA access
|
||||
|
||||
; Check device type
|
||||
ld a,(unit) ; get disk unit
|
||||
ld c,a ; put in C
|
||||
ld b,17h ; HBIOS func: report device info
|
||||
call 0FFF0h ; get unit info, device type in D
|
||||
ld a,d ; device type -> A
|
||||
cp 01h ; floppy?
|
||||
jr nz,media1 ; if not, do LBA I/O
|
||||
ld hl,lba+3 ; point to high order byte
|
||||
res 7,(hl) ; switch from LBA -> CHS
|
||||
|
||||
media1:
|
||||
ld hl,16640 ; assume legacy value for
|
||||
ld (sps),hl ; ... sectors per slice
|
||||
|
||||
; If not hard disk, skip partition & slice stuff
|
||||
ld a,(medid) ; get media id
|
||||
cp 4 ; hard disk?
|
||||
jp nz,media9 ; if not, jump ahead
|
||||
|
||||
; Read MBR
|
||||
ld de,8000h ; LBA address zero
|
||||
ld hl,0 ; ... to read first sector
|
||||
ld bc,mbrsec ; read into MBR buffer
|
||||
ld (dma),bc ; save
|
||||
ld a,(0FFE0h) ; get current HBIOS bank
|
||||
ld (bank),a ; set DMA bank
|
||||
ld a,(unit) ; get bootunit
|
||||
ld c,a ; put in C
|
||||
ld b,013h ; HBIOS func: disk read
|
||||
call dsk$io ; do it
|
||||
ret nz ; abort on error
|
||||
|
||||
; Check signature
|
||||
ld hl,(mbrsec+1FEh) ; get signature
|
||||
ld a,l ; first byte
|
||||
cp 055h ; should be $55
|
||||
jr nz,media5 ; if not, no part table
|
||||
ld a,h ; second byte
|
||||
cp 0AAh ; should be $AA
|
||||
jr nz,media5 ; if not, no part table
|
||||
|
||||
; Search part table for CP/M entry (type 0x2E)
|
||||
ld b,4 ; four entries in part table
|
||||
ld hl,mbrsec+1BEh+4 ; offset of first part type
|
||||
media3:
|
||||
ld a,(hl) ; get part type
|
||||
cp 2Eh ; CP/M partition?
|
||||
jr z,media4 ; cool, grab the LBA offset
|
||||
ld de,16 ; part table entry size
|
||||
add hl,de ; bump to next part type
|
||||
djnz media3 ; loop thru table
|
||||
jr media5 ; too bad, no CP/M partition
|
||||
|
||||
media4:
|
||||
; Capture the starting LBA of the CP/M partition we found
|
||||
ld de,4 ; LBA is 4 bytes after part type
|
||||
add hl,de ; point to it
|
||||
ld de,lba ; loc to store lba offset
|
||||
ld bc,4 ; 4 bytes (32 bits)
|
||||
ldir ; copy it
|
||||
|
||||
; Check that requested slice is "inside" partition.
|
||||
; Slice size is exactly 16,384 sectors (8mb), so we can just
|
||||
; right shift partition sector count by 14 bits
|
||||
ld e,(hl) ; HL points to first byte
|
||||
inc hl ; ... of 32 bit partition
|
||||
ld d,(hl) ; ... sector count,
|
||||
inc hl ; ... load sector count
|
||||
push de ; ... into DE:HL
|
||||
ld e,(hl) ; ...
|
||||
inc hl ; ...
|
||||
ld d,(hl) ; ...
|
||||
pop hl ; ... DE:HL = part size in sectors
|
||||
ld b,2 ; DE = DE:HL >> 2 (tricky!)
|
||||
call rl32 ; DE = slicecnt
|
||||
ex de,hl ; HL = slicecnt
|
||||
ld a,(slice) ; get target slice
|
||||
ld c,a ; put in C
|
||||
ld b,0 ; BC := requested slice #
|
||||
scf ; set carry!
|
||||
sbc hl,bc ; max slices - slice - 1
|
||||
jp c,err_noslice ; slice too high, error exit
|
||||
|
||||
; For now, it is implied that a slice within a partition
|
||||
; table will be in the "new" disk format. So, we now
|
||||
; adjust the sectors per slice and media id.
|
||||
|
||||
; Use new slice format sectors per slice value
|
||||
ld hl,16384 ; new sectors per slice
|
||||
ld (sps),hl ; save it
|
||||
|
||||
; Update media id for new hard disk format
|
||||
ld a,10 ; new media id
|
||||
ld (medid),a ; save it
|
||||
|
||||
media5:
|
||||
; Adjust LBA offset based on target slice
|
||||
ld a,(slice) ; get slice, A is loop cnt
|
||||
ld hl,(lba) ; set DE:HL
|
||||
ld de,(lba+2) ; ... to starting LBA
|
||||
ld bc,(sps) ; sectors per slice
|
||||
res 7,d ; clear lba mode bit
|
||||
boot6:
|
||||
or a ; set flags to check loop cntr
|
||||
jr z,boot8 ; done if counter exhausted
|
||||
add hl,bc ; add one slice to low word
|
||||
jr nc,boot7 ; check for carry
|
||||
inc de ; if so, bump high word
|
||||
boot7:
|
||||
dec a ; dec loop downcounter
|
||||
jr boot6 ; and loop
|
||||
boot8:
|
||||
|
||||
; LBA offset of desired slice is now in DE:HL.
|
||||
; Need to check if the slice is beyond capacity of media.
|
||||
; If lba_off + sps >= dsk_cap, error!
|
||||
|
||||
; Save lba_off
|
||||
push de ; msw
|
||||
push hl ; lsw
|
||||
|
||||
; Add sps to compute lba_req
|
||||
ld bc,(sps) ; sectors per slice
|
||||
add hl,bc ; add one slice to low word
|
||||
jr nc,dsk_mbr9 ; check for carry
|
||||
inc de ; if so, bump high word
|
||||
dsk_mbr9:
|
||||
; Save cap_req
|
||||
ld (cap_req),hl ; lsw
|
||||
ld (cap_req+2),de ; msw
|
||||
|
||||
; Get dsk_cap (de:hl)
|
||||
ld b,1Ah ; hbios disk capacity func
|
||||
ld a,(unit) ; disk unit number
|
||||
ld c,a ; ... into c
|
||||
rst 08 ; hbios call (de:hl = capacity)
|
||||
|
||||
; Save dsk_cap (de:hl)
|
||||
push de ; save dsk_cap (msw)
|
||||
push hl ; save dsk_cap (lsw)
|
||||
|
||||
; Check dsk_cap >= cap_req, cf set on overflow
|
||||
; No need save actual result
|
||||
or a ; clear carry for sbc
|
||||
pop hl ; dsk_cap lsw
|
||||
ld de,(cap_req) ; cap_req lsw
|
||||
sbc hl,de ; dsk_cap - lba_req (lsw)
|
||||
pop hl ; dsk_cap msw
|
||||
ld de,(cap_req+2) ; cap_req msw
|
||||
sbc hl,de ; dsk_cap - lba_req (msw)
|
||||
|
||||
; Restore lba_off
|
||||
pop hl ; lsw
|
||||
pop de ; msw
|
||||
|
||||
; Abort on overflow with error!
|
||||
jp c,err_noslice ; slice too high, error exit
|
||||
|
||||
; Finalize slice lba
|
||||
BIT 7,B ; Is the floppy Disk Attribute Set
|
||||
jr nz,media8 ; if it is Floppy; Skip Setting LBA
|
||||
set 7,d ; set LBA access flag
|
||||
media8:
|
||||
ld (lba),hl ; save new lba, low word
|
||||
ld (lba+2),de ; save new lba, high word
|
||||
|
||||
@@ -698,23 +544,23 @@ media10:
|
||||
; if necessary, then return an error code in <A>
|
||||
|
||||
dsk$read:
|
||||
ld a,13h ; HBIOS disk read function
|
||||
ld a,BF_DIOREAD ; HBIOS disk read function
|
||||
ld (func),a ; save it
|
||||
jr dsk$rw ; common disk read/write code
|
||||
|
||||
dsk$write:
|
||||
ld a,14h ; HBIOS disk write function
|
||||
ld a,BF_DIOWRITE ; HBIOS disk write function
|
||||
ld (func),a ; save it
|
||||
jr dsk$rw ; common disk read/write code
|
||||
|
||||
dsk$rw:
|
||||
; Common disk read/write routine
|
||||
; Assumes func is set to HBIOS read or write
|
||||
|
||||
|
||||
; Set retry address
|
||||
ld hl,dsk$rw$retry
|
||||
ld (retry$adr),hl
|
||||
|
||||
|
||||
; Save XDPH address
|
||||
ld (curdph),de ; save to curdph
|
||||
|
||||
@@ -743,12 +589,12 @@ dsk$rw$retry:
|
||||
rr l ; ... and into carry
|
||||
rl d ; carry bit (head) into d
|
||||
jr dsk$rw9 ; do the disk I/O
|
||||
|
||||
|
||||
dsk$rw2:
|
||||
; LBA I/O
|
||||
push de ; save hiword of LBA
|
||||
push hl ; save loword of LBA
|
||||
|
||||
|
||||
; Get track and shift into correct bits
|
||||
ld hl,(@trk) ; get track
|
||||
ld de,0 ; clear hiword
|
||||
@@ -767,7 +613,7 @@ dsk$rw2:
|
||||
pop bc ; lba offset hiword
|
||||
adc hl,bc ; add w/ carry to cur hiword
|
||||
ex de,hl ; swap back
|
||||
|
||||
|
||||
dsk$rw9:
|
||||
; DE:HL has sector address to read (LBA or CHS)
|
||||
ld bc,(@dma) ; get dma address
|
||||
@@ -791,7 +637,7 @@ dsk$io:
|
||||
|
||||
; Seek to requested sector in DE:HL
|
||||
push bc ; save func & unit
|
||||
ld b,012h ; HBIOS func: seek
|
||||
ld b,BF_DIOSEEK ; HBIOS func: seek
|
||||
call 0FFF0h ; do it
|
||||
pop bc ; recover func & unit
|
||||
jp nz,err_diskio ; handle error
|
||||
@@ -824,7 +670,7 @@ mult8_loop:
|
||||
mult8_noadd:
|
||||
djnz mult8_loop
|
||||
ret
|
||||
|
||||
|
||||
rl32:
|
||||
; Left shift DE:HL by B bits (B > 0)
|
||||
or a ; clear carry
|
||||
@@ -834,7 +680,7 @@ rl32:
|
||||
rl d ; rotate D thru carry
|
||||
djnz rl32 ; loop B times
|
||||
ret ; done
|
||||
|
||||
|
||||
cin$echo: ; get console input, echo it, and shift to upper case
|
||||
call ?const ; check for char
|
||||
or a ; set flags
|
||||
@@ -851,7 +697,7 @@ cin$echo1:
|
||||
ret c ; done if carry
|
||||
sub 'a' - 'A' ; make upper case
|
||||
ret ; and done
|
||||
|
||||
|
||||
; call ?const ! ora a ! jz u$c1 ; see if any char already struck
|
||||
; call ?conin ! jmp u$conin$echo ; yes, eat it and try again
|
||||
;u$c1:
|
||||
@@ -872,7 +718,7 @@ err_perm:
|
||||
call prt_err
|
||||
jr err_ret
|
||||
err_diskio:
|
||||
cp -10 ; HBIOS read only error
|
||||
cp ERR_READONLY ; HBIOS read only error
|
||||
jr z,err_rdonly ; if so, handle special
|
||||
ld a,(@ermde) ; get error mode
|
||||
cp 0FFh ; FFh means suppress
|
||||
@@ -916,9 +762,6 @@ medid db 0 ; working media id value
|
||||
unit db 0 ; working disk unit num
|
||||
slice db 0 ; working slice num
|
||||
lba dw 0,0 ; working lba
|
||||
sps dw 0 ; sectors per slice
|
||||
cap_req dw 0,0 ; lba cap required for slice
|
||||
mbrsec ds 512 ; MBR sector buffer
|
||||
dma dw 0 ; current DMA address
|
||||
bank db 0 ; HBIOS DMA bank
|
||||
func db 0 ; HBIOS function
|
||||
|
||||
90
Source/CPM3/hbios.z80
Normal file
@@ -0,0 +1,90 @@
|
||||
|
||||
;
|
||||
BF_CIO EQU 000h
|
||||
BF_CIOIN EQU BF_CIO + 0 ; CHARACTER INPUT
|
||||
BF_CIOOUT EQU BF_CIO + 1 ; CHARACTER OUTPUT
|
||||
BF_CIOIST EQU BF_CIO + 2 ; CHARACTER INPUT STATUS
|
||||
BF_CIOOST EQU BF_CIO + 3 ; CHARACTER OUTPUT STATUS
|
||||
BF_CIOINIT EQU BF_CIO + 4 ; INIT/RESET DEVICE/LINE CONFIG
|
||||
BF_CIOQUERY EQU BF_CIO + 5 ; REPORT DEVICE/LINE CONFIG
|
||||
BF_CIODEVICE EQU BF_CIO + 6 ; REPORT DEVICE INFO
|
||||
;
|
||||
;
|
||||
BF_DIO EQU 010h
|
||||
BF_DIOSTATUS EQU BF_DIO + 0 ; DISK STATUS
|
||||
BF_DIORESET EQU BF_DIO + 1 ; DISK RESET
|
||||
BF_DIOSEEK EQU BF_DIO + 2 ; DISK SEEK
|
||||
BF_DIOREAD EQU BF_DIO + 3 ; DISK READ SECTORS
|
||||
BF_DIOWRITE EQU BF_DIO + 4 ; DISK WRITE SECTORS
|
||||
BF_DIOVERIFY EQU BF_DIO + 5 ; DISK VERIFY SECTORS
|
||||
BF_DIOFORMAT EQU BF_DIO + 6 ; DISK FORMAT TRACK
|
||||
BF_DIODEVICE EQU BF_DIO + 7 ; DISK DEVICE INFO REPORT
|
||||
BF_DIOMEDIA EQU BF_DIO + 8 ; DISK MEDIA REPORT
|
||||
BF_DIODEFMED EQU BF_DIO + 9 ; DEFINE DISK MEDIA
|
||||
BF_DIOCAP EQU BF_DIO + 10 ; DISK CAPACITY REPORT
|
||||
BF_DIOGEOM EQU BF_DIO + 11 ; DISK GEOMETRY REPORT
|
||||
;
|
||||
BF_EXT EQU 0E0h
|
||||
BF_EXTSLICE EQU BF_EXT + 0 ; SLICE CALCULATION (WAS BF_SYSGET_DIOMED)
|
||||
;
|
||||
BF_SYS EQU 0F0h
|
||||
BF_SYSRESET EQU BF_SYS + 0 ; SOFT RESET HBIOS
|
||||
BF_SYSVER EQU BF_SYS + 1 ; GET HBIOS VERSION
|
||||
BF_SYSSETBNK EQU BF_SYS + 2 ; SET CURRENT BANK
|
||||
BF_SYSGETBNK EQU BF_SYS + 3 ; GET CURRENT BANK
|
||||
BF_SYSSETCPY EQU BF_SYS + 4 ; BANK MEMORY COPY SETUP
|
||||
BF_SYSBNKCPY EQU BF_SYS + 5 ; BANK MEMORY COPY
|
||||
BF_SYSALLOC EQU BF_SYS + 6 ; ALLOC HBIOS HEAP MEMORY
|
||||
BF_SYSFREE EQU BF_SYS + 7 ; FREE HBIOS HEAP MEMORY
|
||||
BF_SYSGET EQU BF_SYS + 8 ; GET HBIOS INFO
|
||||
BF_SYSSET EQU BF_SYS + 9 ; SET HBIOS PARAMETERS
|
||||
BF_SYSPEEK EQU BF_SYS + 10 ; GET A BYTE VALUE FROM ALT BANK
|
||||
BF_SYSPOKE EQU BF_SYS + 11 ; SET A BYTE VALUE IN ALT BANK
|
||||
BF_SYSINT EQU BF_SYS + 12 ; MANAGE INTERRUPT VECTORS
|
||||
;
|
||||
; 2 BYTE FUNCTION/SUBFUNCTION : BC_ => BIOS CALL -> LOAD TO BC REGISTER
|
||||
;
|
||||
BC_SYSGET_CIOCNT EQU 0F800h ; GET CHAR UNIT COUNT
|
||||
BC_SYSGET_CIOFN EQU 0F801h ; GET CIO UNIT FN/DATA ADR
|
||||
BC_SYSGET_DIOCNT EQU 0F810h ; GET DISK UNIT COUNT
|
||||
BC_SYSGET_DIOFN EQU 0F811h ; GET DIO UNIT FN/DATA ADR
|
||||
BC_SYSGET_RTCCNT EQU 0F820h ; GET RTC UNIT COUNT
|
||||
BC_SYSGET_DSKYCNT EQU 0F830h ; GET DSKY UNIT COUNT
|
||||
BC_SYSGET_VDACNT EQU 0F840h ; GET VDA UNIT COUNT
|
||||
BC_SYSGET_VDAFN EQU 0F841h ; GET VDA UNIT FN/DATA ADR
|
||||
BC_SYSGET_SNDCNT EQU 0F850h ; GET VDA UNIT COUNT
|
||||
BC_SYSGET_SNDFN EQU 0F851h ; GET SND UNIT FN/DATA ADR
|
||||
BC_SYSGET_TIMER EQU 0F8D0h ; GET CURRENT TIMER VALUE
|
||||
BC_SYSGET_SECS EQU 0F8D1h ; GET CURRENT SECONDS VALUE
|
||||
BC_SYSGET_BOOTINFO EQU 0F8E0h ; GET BOOT INFORMATION
|
||||
BC_SYSGET_CPUINFO EQU 0F8F0h ; GET CPU INFORMATION
|
||||
BC_SYSGET_MEMINFO EQU 0F8F1h ; GET MEMORY CAPACTITY INFO
|
||||
BC_SYSGET_BNKINFO EQU 0F8F2h ; GET BANK ASSIGNMENT INFO
|
||||
BC_SYSGET_CPUSPD EQU 0F8F3h ; GET CLOCK SPEED & WAIT STATES
|
||||
BC_SYSGET_PANEL EQU 0F8F4h ; GET FRONT PANEL SWITCHES VAL
|
||||
BC_SYSGET_APPBNKS EQU 0F8F5h ; GET APP BANK INFORMATION
|
||||
;
|
||||
BC_SYSSET_TIMER EQU 0F9D0h ; SET TIMER VALUE
|
||||
BC_SYSSET_SECS EQU 0F9D1h ; SET SECONDS VALUE
|
||||
BC_SYSSET_BOOTINFO EQU 0F9E0h ; SET BOOT INFORMATION
|
||||
BC_SYSSET_CPUSPD EQU 0F9F3h ; SET CLOCK SPEED & WAIT STATES
|
||||
BC_SYSSET_PANEL EQU 0F9F4h ; SET FRONT PANEL LEDS
|
||||
;
|
||||
;
|
||||
;
|
||||
ERR_NONE EQU 0 ; SUCCESS
|
||||
;
|
||||
ERR_UNDEF EQU -1 ; UNDEFINED ERROR
|
||||
ERR_NOTIMPL EQU -2 ; FUNCTION NOT IMPLEMENTED
|
||||
ERR_NOFUNC EQU -3 ; INVALID FUNCTION
|
||||
ERR_NOUNIT EQU -4 ; INVALID UNIT NUMBER
|
||||
ERR_NOMEM EQU -5 ; OUT OF MEMORY
|
||||
ERR_RANGE EQU -6 ; PARAMETER OUT OF RANGE
|
||||
ERR_NOMEDIA EQU -7 ; MEDIA NOT PRESENT
|
||||
ERR_NOHW EQU -8 ; HARDWARE NOT PRESENT
|
||||
ERR_IO EQU -9 ; I/O ERROR
|
||||
ERR_READONLY EQU -10 ; WRITE REQUEST TO READ-ONLY MEDIA
|
||||
ERR_TIMEOUT EQU -11 ; DEVICE TIMEOUT
|
||||
ERR_BADCFG EQU -12 ; INVALID CONFIGURATION
|
||||
ERR_INTERNAL EQU -13 ; INTERNAL ERROR
|
||||
|
||||
@@ -11,7 +11,6 @@ $define{doc_orgurl}{www.retrobrewcomputers.org}$
|
||||
$define{doc_user}{[RomWBW User Guide]($doc_root$/RomWBW User Guide.pdf)}$
|
||||
$define{doc_sys}{[RomWBW System Guide]($doc_root$/RomWBW System Guide.pdf)}$
|
||||
$define{doc_apps}{[RomWBW Applications]($doc_root$/RomWBW Applications.pdf)}$
|
||||
$define{doc_romapps}{[RomWBW ROM Applications]($doc_root$/RomWBW ROM Applications.pdf)}$
|
||||
$define{doc_catalog}{[RomWBW Disk Catalog]($doc_root$/RomWBW Disk Catalog.pdf)}$
|
||||
$define{doc_errata}{[RomWBW Errata]($doc_root$/RomWBW Errata.pdf)}$
|
||||
|
||||
|
||||
@@ -2,8 +2,12 @@
|
||||
setlocal
|
||||
|
||||
::
|
||||
:: NOTE: Pandoc and Latex (MiKTeX or TexLive) must be installed
|
||||
:: and available on commandline for this build to work!!!
|
||||
:: NOTE: Pandoc, LuaLatex (MiKTeX or TexLive), and Roboto Font
|
||||
:: must be installed and available on commandline for this build to work!!!
|
||||
::
|
||||
:: - Pandoc (https://pandoc.org/)
|
||||
:: - MiKTeX (https://miktex.org/)
|
||||
:: - Install Roboto font from MiKTeX Console
|
||||
::
|
||||
|
||||
set TOOLS=..\..\Tools
|
||||
@@ -11,20 +15,18 @@ set PATH=%TOOLS%\gpp;%PATH%
|
||||
|
||||
if not "%1"=="" (call :GenDoc %1 & goto :eof)
|
||||
|
||||
call :GenDoc ReadMe
|
||||
call :GenDoc UserGuide
|
||||
call :GenDoc SystemGuide
|
||||
call :GenDoc Applications
|
||||
call :GenDoc ROM_Applications
|
||||
call :GenDoc Catalog
|
||||
call :GenDoc Errata
|
||||
call :GenDoc ReadMe || exit /b
|
||||
call :GenDoc UserGuide || exit /b
|
||||
call :GenDoc SystemGuide || exit /b
|
||||
call :GenDoc Applications || exit /b
|
||||
call :GenDoc Catalog || exit /b
|
||||
call :GenDoc Errata || exit /b
|
||||
|
||||
if exist ReadMe.gfm copy Readme.gfm ..\..\ReadMe.md || exit /b
|
||||
if exist ReadMe.txt copy ReadMe.txt ..\..\ReadMe.txt || exit /b
|
||||
if exist UserGuide.pdf copy UserGuide.pdf "..\..\Doc\RomWBW User Guide.pdf" || exit /b
|
||||
if exist SystemGuide.pdf copy SystemGuide.pdf "..\..\Doc\RomWBW System Guide.pdf" || exit /b
|
||||
if exist Applications.pdf copy Applications.pdf "..\..\Doc\RomWBW Applications.pdf" || exit /b
|
||||
if exist ROM_Applications.pdf copy ROM_Applications.pdf "..\..\Doc\RomWBW ROM Applications.pdf" || exit /b
|
||||
if exist Catalog.pdf copy Catalog.pdf "..\..\Doc\RomWBW Disk Catalog.pdf" || exit /b
|
||||
if exist Errata.pdf copy Errata.pdf "..\..\Doc\RomWBW Errata.pdf" || exit /b
|
||||
|
||||
@@ -37,9 +39,6 @@ echo.
|
||||
|
||||
echo Processing document %1...
|
||||
|
||||
::gpp -o %1.tmp %1.md
|
||||
::gpp -o %1.tmp -U "\\" "" "{" "}{" "}" "{" "}" "#" "" %1.md
|
||||
::gpp -o %1.tmp -U "" "" "(" "," ")" "(" ")" "#" "" -M "#" "\n" " " " " "\n" "(" ")" %1.md
|
||||
gpp -o %1.tmp -U "$" "$" "{" "}{" "}$" "{" "}" "@@@" "" -M "$" "$" "{" "}{" "}$" "{" "}" %1.md || exit /b
|
||||
|
||||
::pandoc %1.tmp -f markdown -t latex -s -o %1.tex --default-image-extension=pdf || exit /b
|
||||
|
||||
@@ -217,9 +217,9 @@ on using the applications and files listed.
|
||||
| `INITDIR.COM` | ZSDOS | ZSDOS Prepare disks for P2DOS Stamps |
|
||||
| `KERMIT.COM` | -- | Generic CP/M 2.2 Kermit communication application |
|
||||
| `LBREXT.COM` | -- | Extract library files |
|
||||
| `LDDS.COM` | ZSDOS | Clock driver |
|
||||
| `LDNZT.COM` | ZSDOS | Clock driver |
|
||||
| `LDP2D.COM` | ZSDOS | Clock driver |
|
||||
| `LDDS.COM` | ZSDOS | Load DateStamper date/time stamping resident extension |
|
||||
| `LDNZT.COM` | ZSDOS | Load NZT date/time stamping resident extension |
|
||||
| `LDP2D.COM` | ZSDOS | Load P2DOS date/time stamping resident extension |
|
||||
| `LIB.COM` | -- | DRI Library manager |
|
||||
| `LINK.COM` | -- | DRI CPM relocatable linker |
|
||||
| `LOAD.COM` | -- | DRI hex file loader into memory |
|
||||
@@ -229,7 +229,7 @@ on using the applications and files listed.
|
||||
| `PMARC.COM` | -- | LHA file compressor |
|
||||
| `PMEXT.COM` | -- | Extractor for PMARC archives |
|
||||
| `PUTBG.COM` | ZSDOS | ZSDOS Prepare disk for backgrounder |
|
||||
| `PUTDS.COM` | ZSDOS | ZSDOS Prepare disk for datestamper |
|
||||
| `PUTDS.COM` | ZSDOS | ZSDOS Prepare disk for datestamper date/time stamping|
|
||||
| `RELOG.COM` | ZSDOS | ZSDOS relog disks after program that bypasses BDOS |
|
||||
| `RMAC.COM` | -- | DRI Relocatable Macro Assembler |
|
||||
| `SETTERM.COM` | ZSDOS | ZSDOS Installs terminal control codes into DateSamper utilities |
|
||||
|
||||
|
Before Width: | Height: | Size: 63 KiB After Width: | Height: | Size: 59 KiB |
366
Source/Doc/Graphics/BankSwitchedMemory.svg
Normal file
@@ -0,0 +1,366 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by Microsoft Visio, SVG Export BankSwitchedMemory.svg Page-1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
|
||||
width="6.51042in" height="5.73361in" viewBox="0 0 468.75 412.82" xml:space="preserve" color-interpolation-filters="sRGB"
|
||||
class="st22">
|
||||
<style type="text/css">
|
||||
<![CDATA[
|
||||
.st1 {fill:#c0c0c0;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
|
||||
.st2 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
|
||||
.st3 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
|
||||
.st4 {fill:#ffffff;stroke:none;stroke-linecap:butt;stroke-width:7.2}
|
||||
.st5 {fill:#000000;font-family:Calibri;font-size:0.75em}
|
||||
.st6 {fill:#ffffff;stroke:none;stroke-linecap:butt}
|
||||
.st7 {fill:#000000;font-family:Calibri;font-size:1.00001em}
|
||||
.st8 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st9 {fill:#000000;font-family:Calibri;font-size:0.833336em}
|
||||
.st10 {font-size:1em}
|
||||
.st11 {stroke:#000000;stroke-dasharray:7,5;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
|
||||
.st12 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
|
||||
.st13 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
|
||||
.st14 {marker-end:url(#mrkr4-136);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
|
||||
.st15 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.37313432835821}
|
||||
.st16 {fill:#000000;font-family:Calibri;font-size:0.666664em}
|
||||
.st17 {stroke:#000000;stroke-dasharray:1.5,3;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
|
||||
.st18 {marker-end:url(#mrkr4-165);marker-start:url(#mrkr10-163);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
|
||||
.st19 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.08695652173913}
|
||||
.st20 {marker-end:url(#mrkr4-136);marker-start:url(#mrkr10-193);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
|
||||
.st21 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:1}
|
||||
.st22 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<defs id="Markers">
|
||||
<g id="lend4">
|
||||
<path d="M 2 1 L 0 0 L 2 -1 L 2 1 " style="stroke:none"/>
|
||||
</g>
|
||||
<marker id="mrkr4-136" class="st15" refX="-5.36" orient="auto" markerUnits="strokeWidth" overflow="visible">
|
||||
<use xlink:href="#lend4" transform="scale(-2.68,-2.68) "/>
|
||||
</marker>
|
||||
<g id="lend10">
|
||||
<path
|
||||
d="M 0 0.75 C -0.414214 0.75 -0.75 0.414214 -0.75 0 -0.75 -0.414214 -0.414214 -0.75 0 -0.75 0.414214 -0.75 0.75 -0.414214 0.75 0 0.75 0.414214 0.414214 0.75 0 0.75 Z "
|
||||
style="stroke:none"/>
|
||||
</g>
|
||||
<marker id="mrkr10-163" class="st19" refX="7.125" orient="auto" markerUnits="strokeWidth" overflow="visible">
|
||||
<use xlink:href="#lend10" transform="scale(11.5) "/>
|
||||
</marker>
|
||||
<marker id="mrkr4-165" class="st19" refX="-23" orient="auto" markerUnits="strokeWidth" overflow="visible">
|
||||
<use xlink:href="#lend4" transform="scale(-11.5,-11.5) "/>
|
||||
</marker>
|
||||
<marker id="mrkr10-193" class="st15" refX="1.77" orient="auto" markerUnits="strokeWidth" overflow="visible">
|
||||
<use xlink:href="#lend10" transform="scale(2.68) "/>
|
||||
</marker>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Page-1</title>
|
||||
<g id="group13-1" transform="translate(216.75,-109.92)">
|
||||
<title>Data block.13</title>
|
||||
<g id="shape14-2" transform="translate(157.745,0)">
|
||||
<title>Sheet.14</title>
|
||||
<path d="M0 412.82 L11.41 401.41 L11.41 228.61 L0 240.02 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape15-4" transform="translate(0,-172.8)">
|
||||
<title>Sheet.15</title>
|
||||
<path d="M0 412.82 L157.75 412.82 L169.15 401.41 L11.41 401.41 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape16-6">
|
||||
<title>Sheet.16</title>
|
||||
<rect x="0" y="240.02" width="157.745" height="172.8" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="group9-8" transform="translate(216.75,-282.72)">
|
||||
<title>Data block.9</title>
|
||||
<g id="shape10-9" transform="translate(157.745,0)">
|
||||
<title>Sheet.10</title>
|
||||
<path d="M0 412.82 L11.41 401.41 L11.41 343.81 L0 355.22 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape11-11" transform="translate(0,-57.6)">
|
||||
<title>Sheet.11</title>
|
||||
<path d="M0 412.82 L157.75 412.82 L169.15 401.41 L11.41 401.41 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape12-13">
|
||||
<title>Sheet.12</title>
|
||||
<rect x="0" y="355.22" width="157.745" height="57.6" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="group5-15" transform="translate(216.75,-340.32)">
|
||||
<title>Data block</title>
|
||||
<g id="shape6-16" transform="translate(157.745,0)">
|
||||
<title>Sheet.6</title>
|
||||
<path d="M0 412.82 L11.41 401.41 L11.41 379.81 L0 391.22 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape7-18" transform="translate(0,-21.6)">
|
||||
<title>Sheet.7</title>
|
||||
<path d="M0 412.82 L157.75 412.82 L169.15 401.41 L11.41 401.41 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape8-20">
|
||||
<title>Sheet.8</title>
|
||||
<rect x="0" y="391.22" width="157.745" height="21.6" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape2-22" transform="translate(65.55,486.457) rotate(180)">
|
||||
<title>Sheet.2</title>
|
||||
<desc>$FE00</desc>
|
||||
<path d="M0 412.82 L36 412.82" class="st3"/>
|
||||
<rect x="-29.1072" y="-418.22" width="22.2144" height="10.7998" transform="rotate(180)" class="st4"/>
|
||||
<text x="-29.11" y="-410.12" transform="rotate(180)" class="st5">$FE00</text> </g>
|
||||
<g id="shape3-27" transform="translate(65.55,542.541) rotate(180)">
|
||||
<title>Sheet.3</title>
|
||||
<desc>$D000</desc>
|
||||
<path d="M0 412.82 L36 412.82" class="st3"/>
|
||||
<rect x="-29.8916" y="-418.22" width="23.7832" height="10.7998" transform="rotate(180)" class="st6"/>
|
||||
<text x="-29.89" y="-410.12" transform="rotate(180)" class="st5">$D000</text> </g>
|
||||
<g id="shape17-32" transform="translate(433.37,106.7) rotate(90)">
|
||||
<title>Sheet.17</title>
|
||||
<desc>$8000</desc>
|
||||
<path d="M0 412.82 L46.25 412.82" class="st3"/>
|
||||
<rect x="-38.3323" y="-420.02" width="30.4102" height="14.4001" transform="rotate(180)" class="st6"/>
|
||||
<text x="-38.33" y="-409.22" transform="rotate(180)" class="st7">$8000</text> </g>
|
||||
<g id="group18-37" transform="translate(297.405,-282.72)">
|
||||
<title>3D stack middle</title>
|
||||
<g id="shape19-38" transform="translate(77.0909,0)">
|
||||
<title>Sheet.19</title>
|
||||
<path d="M0 412.82 L7.2 405.62 L7.2 387.58 L0 394.78 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape20-40">
|
||||
<title>Sheet.20</title>
|
||||
<rect x="0" y="394.784" width="77.0909" height="18.0364" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="group21-42" transform="translate(297.405,-297.12)">
|
||||
<title>3D stack middle.21</title>
|
||||
<g id="shape22-43" transform="translate(77.0909,0)">
|
||||
<title>Sheet.22</title>
|
||||
<path d="M0 412.82 L7.2 405.62 L7.2 384.02 L0 391.22 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape23-45">
|
||||
<title>Sheet.23</title>
|
||||
<rect x="0" y="391.22" width="77.0909" height="21.6" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="group24-47" transform="translate(297.405,-318.72)">
|
||||
<title>3D stack middle.24</title>
|
||||
<g id="shape25-48" transform="translate(77.0909,0)">
|
||||
<title>Sheet.25</title>
|
||||
<path d="M0 412.82 L7.2 405.62 L7.2 384.02 L0 391.22 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape26-50">
|
||||
<title>Sheet.26</title>
|
||||
<rect x="0" y="391.22" width="77.0909" height="21.6" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape27-52" transform="translate(220.314,-340.32)">
|
||||
<title>Sheet.27</title>
|
||||
<desc>HBIOS Proxy (RST 08)</desc>
|
||||
<rect x="0" y="391.22" width="154.182" height="21.6" class="st8"/>
|
||||
<text x="34.06" y="405.02" class="st9">HBIOS Proxy (RST 08)</text> </g>
|
||||
<g id="shape28-55" transform="translate(220.314,-109.92)">
|
||||
<title>Sheet.28</title>
|
||||
<desc>Application Area (TPA)</desc>
|
||||
<rect x="0" y="237.402" width="154.836" height="175.418" class="st8"/>
|
||||
<text x="22.5" y="328.71" class="st7">Application Area (TPA)</text> </g>
|
||||
<g id="shape29-58" transform="translate(220.314,-282.72)">
|
||||
<title>Sheet.29</title>
|
||||
<desc>Operating System CP/M or ZSYS</desc>
|
||||
<rect x="0" y="355.22" width="77.0909" height="57.6" class="st8"/>
|
||||
<text x="2.38" y="375.02" class="st9">Operating System <tspan x="11.08" dy="2.4em" class="st10">CP/M or ZSYS</tspan></text> </g>
|
||||
<g id="shape30-62" transform="translate(297.405,-318.72)">
|
||||
<title>Sheet.30</title>
|
||||
<desc>CBIOS</desc>
|
||||
<rect x="0" y="391.22" width="77.0909" height="21.6" class="st8"/>
|
||||
<text x="26.29" y="405.02" class="st9">CBIOS</text> </g>
|
||||
<g id="shape31-65" transform="translate(297.405,-297.12)">
|
||||
<title>Sheet.31</title>
|
||||
<desc>BDOS</desc>
|
||||
<rect x="0" y="391.22" width="77.0909" height="21.6" class="st8"/>
|
||||
<text x="27.14" y="405.02" class="st9">BDOS</text> </g>
|
||||
<g id="shape32-68" transform="translate(297.405,-282.72)">
|
||||
<title>Sheet.32</title>
|
||||
<desc>CCP</desc>
|
||||
<rect x="0" y="398.42" width="77.0909" height="14.4" class="st8"/>
|
||||
<text x="30.63" y="408.62" class="st9">CCP</text> </g>
|
||||
<g id="group33-71" transform="translate(72.75,-109.92)">
|
||||
<title>Data block.33</title>
|
||||
<g id="shape34-72" transform="translate(108,0)">
|
||||
<title>Sheet.34</title>
|
||||
<path d="M0 412.82 L11.41 401.41 L11.41 286.21 L0 297.62 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape35-74" transform="translate(0,-115.2)">
|
||||
<title>Sheet.35</title>
|
||||
<path d="M0 412.82 L108 412.82 L119.41 401.41 L11.41 401.41 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape36-76">
|
||||
<title>Sheet.36</title>
|
||||
<rect x="0" y="297.62" width="108" height="115.2" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape37-78" transform="translate(22.35,-225.12)">
|
||||
<title>Sheet.37</title>
|
||||
<path d="M0 412.82 L360 412.82" class="st11"/>
|
||||
</g>
|
||||
<g id="shape38-81" transform="translate(72.75,-109.92)">
|
||||
<title>Sheet.38</title>
|
||||
<desc>HBIOS (Hardware Drivers)</desc>
|
||||
<rect x="0" y="297.62" width="108" height="115.2" class="st8"/>
|
||||
<text x="38.76" y="351.62" class="st7">HBIOS <tspan x="7.61" dy="1.2em" class="st10">(Hardware Drivers)</tspan></text> </g>
|
||||
<g id="shape39-85" transform="translate(22.35,-109.92)">
|
||||
<title>Sheet.39</title>
|
||||
<path d="M0 412.82 L338.4 412.82" class="st11"/>
|
||||
</g>
|
||||
<g id="shape40-88" transform="translate(22.35,-361.92)">
|
||||
<title>Sheet.40</title>
|
||||
<path d="M0 412.82 L360 412.82" class="st11"/>
|
||||
</g>
|
||||
<g id="shape43-91" transform="translate(-397.67,302.9) rotate(-90)">
|
||||
<title>Sheet.43</title>
|
||||
<desc>Z80 CPU Address Space</desc>
|
||||
<rect x="0" y="398.42" width="252" height="14.4" class="st12"/>
|
||||
<text x="69.04" y="409.22" class="st7">Z80 CPU Address Space</text> </g>
|
||||
<g id="shape41-94" transform="translate(-383.27,302.9) rotate(-90)">
|
||||
<title>Sheet.41</title>
|
||||
<desc>Banked Lower 32K</desc>
|
||||
<rect x="0" y="398.42" width="115.2" height="14.4" class="st12"/>
|
||||
<text x="12.48" y="409.22" class="st7">Banked Lower 32K</text> </g>
|
||||
<g id="shape42-97" transform="translate(-383.27,187.7) rotate(-90)">
|
||||
<title>Sheet.42</title>
|
||||
<desc>Fixed Upper 32K</desc>
|
||||
<rect x="0" y="398.42" width="136.8" height="14.4" class="st12"/>
|
||||
<text x="28.39" y="409.22" class="st7">Fixed Upper 32K</text> </g>
|
||||
<g id="shape1-100" transform="translate(65.55,463.72) rotate(180)">
|
||||
<title>Sheet.1</title>
|
||||
<desc>$10000</desc>
|
||||
<path d="M0 412.82 L36 412.82" class="st3"/>
|
||||
<rect x="-31.6846" y="-418.22" width="27.3691" height="10.7998" transform="rotate(180)" class="st6"/>
|
||||
<text x="-31.68" y="-410.12" transform="rotate(180)" class="st5">$10000</text> </g>
|
||||
<g id="shape4-105" transform="translate(65.55,715.72) rotate(180)">
|
||||
<title>Sheet.4</title>
|
||||
<desc>$0000</desc>
|
||||
<path d="M0 412.82 L36 412.82" class="st3"/>
|
||||
<rect x="-29.4038" y="-418.22" width="22.8076" height="10.7998" transform="rotate(180)" class="st4"/>
|
||||
<text x="-29.4" y="-410.12" transform="rotate(180)" class="st5">$0000</text> </g>
|
||||
<g id="shape44-110" transform="translate(798.77,50.9) rotate(90)">
|
||||
<title>Bracket</title>
|
||||
<path d="M0 412.82 A6.11239 6.11239 0 0 1 5.4 407.42 L64.22 407.42 A6.11239 6.11239 -180 0 0 69.62 402.02 A6.11239 6.11239
|
||||
-180 0 0 75.02 407.42 L131.4 407.42 A6.11239 6.11239 0 0 1 136.8 412.82" class="st13"/>
|
||||
</g>
|
||||
<g id="shape45-113" transform="translate(0.750002,-52.32)">
|
||||
<title>Sheet.45</title>
|
||||
<desc>Bank 0</desc>
|
||||
<rect x="0" y="398.42" width="36" height="14.4" class="st12"/>
|
||||
<text x="5.69" y="408.32" class="st5">Bank 0</text> </g>
|
||||
<g id="shape47-116" transform="translate(252.75,-52.32)">
|
||||
<title>Sheet.47</title>
|
||||
<desc>App/OS Banks</desc>
|
||||
<rect x="0" y="398.42" width="108" height="14.4" class="st12"/>
|
||||
<text x="28.09" y="408.32" class="st5">App/OS Banks</text> </g>
|
||||
<g id="shape48-119" transform="translate(360.75,-52.32)">
|
||||
<title>Sheet.48</title>
|
||||
<desc>Bank N-1</desc>
|
||||
<rect x="0" y="398.42" width="36" height="14.4" class="st12"/>
|
||||
<text x="1.41" y="408.32" class="st5">Bank N-1</text> </g>
|
||||
<g id="shape49-122" transform="translate(396.75,-52.32)">
|
||||
<title>Sheet.49</title>
|
||||
<desc>Bank N</desc>
|
||||
<rect x="0" y="398.42" width="36" height="14.4" class="st12"/>
|
||||
<text x="5.06" y="408.32" class="st5">Bank N</text> </g>
|
||||
<g id="shape50-125" transform="translate(36.75,-52.32)">
|
||||
<title>Sheet.50</title>
|
||||
<desc>• • •</desc>
|
||||
<rect x="0" y="398.42" width="216" height="14.4" class="st12"/>
|
||||
<text x="91.49" y="408.62" class="st9">• • •</text> </g>
|
||||
<g id="shape51-128" transform="translate(375.15,715.72) rotate(180)">
|
||||
<title>Bracket.51</title>
|
||||
<path d="M0 412.82 A8.14985 8.14985 0 0 1 7.2 405.62 L36 405.62 A8.14985 8.14985 -180 0 0 43.2 398.42 A8.14985 8.14985
|
||||
-180 0 0 50.4 405.62 L151.2 405.62 A8.14985 8.14985 0 0 1 158.4 412.82" class="st13"/>
|
||||
</g>
|
||||
<g id="shape55-131" transform="translate(396.75,-66.72)">
|
||||
<title>Sheet.55</title>
|
||||
<path d="M0 187.31 L9 187.31 A9 9 0 0 1 18 196.31 L18 404.78" class="st14"/>
|
||||
</g>
|
||||
<g id="shape56-137" transform="translate(0.750002,-37.92)">
|
||||
<title>Sheet.56</title>
|
||||
<desc>Physical RAM (32K per bank)</desc>
|
||||
<rect x="0" y="398.42" width="432" height="14.4" class="st12"/>
|
||||
<text x="157.88" y="408.62" class="st9">Physical RAM (32K per bank)</text> </g>
|
||||
<g id="shape57-140" transform="translate(180.75,715.72) rotate(180)">
|
||||
<title>Bracket.57</title>
|
||||
<desc>`</desc>
|
||||
<path d="M0 412.82 A8.14984 8.14984 0 0 1 7.2 405.62 L46.8 405.62 A8.14984 8.14984 -180 0 0 54 398.42 A8.14984 8.14984
|
||||
-180 0 0 61.2 405.62 L100.8 405.62 A8.14984 8.14984 0 0 1 108 412.82" class="st13"/>
|
||||
<rect x="393.092" y="-58.7999" width="2.328" height="9.59985" transform="rotate(90)" class="st4"/>
|
||||
<text x="393.09" y="-51.6" transform="rotate(90)" class="st16">`</text> </g>
|
||||
<g id="shape58-145" transform="translate(449.57,360.5) rotate(90)">
|
||||
<title>Sheet.58</title>
|
||||
<path d="M0 412.82 L34.16 412.82" class="st17"/>
|
||||
</g>
|
||||
<g id="group60-148" transform="translate(36.75,-0.12)">
|
||||
<title>3D stack top</title>
|
||||
<desc>RAM Disk</desc>
|
||||
<g id="shape61-149" transform="translate(208.8,0)">
|
||||
<title>Sheet.61</title>
|
||||
<path d="M0 412.82 L7.09 405.73 L7.09 387.73 L0 394.82 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape62-151" transform="translate(0,-18)">
|
||||
<title>Sheet.62</title>
|
||||
<path d="M0 412.82 L208.8 412.82 L215.89 405.73 L7.09 405.73 L0 412.82 Z" class="st1"/>
|
||||
</g>
|
||||
<g id="shape63-153">
|
||||
<title>Sheet.63</title>
|
||||
<rect x="0" y="394.82" width="208.8" height="18" class="st2"/>
|
||||
</g>
|
||||
<g id="shape60-155">
|
||||
<text x="88.83" y="406.22" class="st16">RAM Disk</text> </g>
|
||||
</g>
|
||||
<g id="shape64-157" transform="translate(-59.27,84.02) rotate(-90)">
|
||||
<title>Pointer (1-D)</title>
|
||||
<path d="M1.71 412.82 L2.07 412.82 L16.08 412.82" class="st18"/>
|
||||
</g>
|
||||
<g id="shape65-166" transform="translate(-95.27,108.5) rotate(-90)">
|
||||
<title>Pointer (1-D).65</title>
|
||||
<path d="M1.71 412.82 L2.07 412.82 L18.96 412.82" class="st18"/>
|
||||
</g>
|
||||
<g id="shape66-173" transform="translate(-52.07,122.9) rotate(-90)">
|
||||
<title>Pointer (1-D).66</title>
|
||||
<path d="M1.71 412.82 L2.07 412.82 L11.76 412.82" class="st18"/>
|
||||
</g>
|
||||
<g id="shape67-180" transform="translate(-105.35,137.3) rotate(-90)">
|
||||
<title>Pointer (1-D).67</title>
|
||||
<path d="M1.71 412.82 L2.07 412.82 L26.16 412.82" class="st18"/>
|
||||
</g>
|
||||
<g id="shape70-187" transform="translate(228.935,-227.945) scale(-1,1)">
|
||||
<title>Sheet.70</title>
|
||||
<path d="M2.65 293.24 L3.01 293.24 L76.08 293.24 A22.5 22.5 0 0 1 98.58 315.74 L98.58 404.78" class="st20"/>
|
||||
</g>
|
||||
<g id="shape68-195" transform="translate(87.15,-289.92)">
|
||||
<title>Sheet.68</title>
|
||||
<desc>HBIOS Function Call w/ Bank Switch</desc>
|
||||
<rect x="0" y="384.02" width="86.4" height="28.8" class="st2"/>
|
||||
<text x="7.14" y="395.72" class="st5">HBIOS Function Call <tspan x="15.11" dy="1.2em" class="st10">w/ Bank Switch</tspan></text> </g>
|
||||
<g id="shape69-199" transform="translate(0.75,-390.72)">
|
||||
<title>Sheet.69</title>
|
||||
<desc>RomWBW Bank Switched Memory Layout</desc>
|
||||
<rect x="0" y="391.22" width="432" height="21.6" class="st21"/>
|
||||
<text x="113.82" y="405.62" class="st7">RomWBW Bank Switched Memory Layout</text> </g>
|
||||
<g id="shape59-202" transform="translate(665.566,362.226) rotate(90.2396)">
|
||||
<title>Sheet.59</title>
|
||||
<path d="M0 412.82 L27.11 412.82" class="st17"/>
|
||||
</g>
|
||||
<g id="shape52-205" transform="translate(16.33,324.5) rotate(-90)">
|
||||
<title>Sheet.52</title>
|
||||
<desc>Fixed Mapping of Upper 32K to Last Bank</desc>
|
||||
<rect x="0" y="398.42" width="172.8" height="14.4" class="st8"/>
|
||||
<text x="11.1" y="408.32" class="st5">Fixed Mapping of Upper 32K to Last Bank</text> </g>
|
||||
<g id="shape72-208" transform="translate(331.95,-66.72)">
|
||||
<title>Sheet.72</title>
|
||||
<path d="M0 384.02 L0 387.62 A3.59999 3.59999 -180 0 0 3.6 391.22 L45.4 391.22 A5 5 0 0 1 50.4 396.22 L50.4 404.78"
|
||||
class="st14"/>
|
||||
</g>
|
||||
<g id="shape74-213" transform="translate(126.75,-66.72) scale(-1,1)">
|
||||
<title>Sheet.74</title>
|
||||
<path d="M0 384.02 L0 387.62 A3.59999 3.59999 -180 0 0 3.6 391.22 L103 391.22 A5 5 0 0 1 108 396.22 L108 404.78"
|
||||
class="st14"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 51 KiB |
830
Source/Doc/Graphics/CharacterEmulationVideoServices.svg
Normal file
@@ -0,0 +1,830 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by Microsoft Visio, SVG Export CharacterEmulationVideoServices.svg Page-1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
|
||||
width="6.01042in" height="5.76042in" viewBox="0 0 432.75 414.75" xml:space="preserve" color-interpolation-filters="sRGB"
|
||||
class="st16">
|
||||
<style type="text/css">
|
||||
<![CDATA[
|
||||
.st1 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st2 {fill:#000000;font-family:Calibri;font-size:0.833336em;font-weight:bold}
|
||||
.st3 {font-size:1em}
|
||||
.st4 {marker-end:url(#mrkr13-15);stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st5 {fill:#000000;fill-opacity:1;stroke:#000000;stroke-opacity:1;stroke-width:0.22935779816514}
|
||||
.st6 {fill:#a5a5a5;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st7 {fill:#000000;font-family:Calibri;font-size:0.666664em;font-weight:bold}
|
||||
.st8 {fill:#ffffff;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24}
|
||||
.st9 {fill:#00ff00;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st10 {fill:#e6e6e6;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st11 {fill:#b3b3b3;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st12 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st13 {fill:#ffffff;stroke:#000000;stroke-dasharray:0.75,1.5;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st14 {fill:#000000;font-family:Calibri;font-size:0.499992em;font-weight:bold}
|
||||
.st15 {fill:#000000;font-family:Calibri;font-size:1.16666em;font-weight:bold}
|
||||
.st16 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<defs id="Markers">
|
||||
<g id="lend13">
|
||||
<path d="M 3 1 L 0 0 L 3 -1 L 3 1 " style="stroke:none"/>
|
||||
</g>
|
||||
<marker id="mrkr13-15" class="st5" refX="-13.08" orient="auto" markerUnits="strokeWidth" overflow="visible">
|
||||
<use xlink:href="#lend13" transform="scale(-4.36,-4.36) "/>
|
||||
</marker>
|
||||
</defs>
|
||||
<g>
|
||||
<title>Page-1</title>
|
||||
<g id="shape81-1" transform="translate(17.625,414.375) rotate(-90)">
|
||||
<title>Sheet.81</title>
|
||||
<rect x="0" y="279.75" width="360" height="135" class="st1"/>
|
||||
</g>
|
||||
<g id="shape80-3" transform="translate(-135.375,414.375) rotate(-90)">
|
||||
<title>Sheet.80</title>
|
||||
<rect x="0" y="189.75" width="360" height="225" class="st1"/>
|
||||
</g>
|
||||
<g id="shape1-5" transform="translate(108.539,-315.375)">
|
||||
<title>Sheet.1</title>
|
||||
<desc>Character I/O Services</desc>
|
||||
<rect x="0" y="378.75" width="53.8364" height="36" class="st1"/>
|
||||
<text x="6.75" y="387.75" class="st2">Character <tspan x="20.06" dy="1.2em" class="st3">I/O </tspan><tspan x="10.06"
|
||||
dy="1.2em" class="st3">Services</tspan></text> </g>
|
||||
<g id="shape2-10" transform="translate(36.375,-333.375)">
|
||||
<title>Sheet.2</title>
|
||||
<path d="M0 414.75 L62.35 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape8-16" transform="translate(550.125,153.375) rotate(90)">
|
||||
<title>Sheet.8</title>
|
||||
<path d="M0 414.75 L17.19 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape9-21" transform="translate(108.375,-189.375)">
|
||||
<title>Sheet.9</title>
|
||||
<desc>Emulation Services</desc>
|
||||
<rect x="0" y="369.75" width="54" height="45" class="st1"/>
|
||||
<text x="5.78" y="389.25" class="st2">Emulation <tspan x="10.14" dy="1.2em" class="st3">Services</tspan></text> </g>
|
||||
<g id="shape10-25" transform="translate(108.375,-171.375)">
|
||||
<title>Sheet.10</title>
|
||||
<desc>TTY</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="19.45" y="408.75" class="st2">TTY</text> </g>
|
||||
<g id="shape11-28" transform="translate(108.375,-153.375)">
|
||||
<title>Sheet.11</title>
|
||||
<desc>ANSI</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="16.98" y="408.75" class="st2">ANSI</text> </g>
|
||||
<g id="shape12-31" transform="translate(162.211,-180.375)">
|
||||
<title>Sheet.12</title>
|
||||
<path d="M0 414.75 L17.35 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape13-36" transform="translate(162.211,-162.375)">
|
||||
<title>Sheet.13</title>
|
||||
<path d="M0 414.75 L17.35 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape14-41" transform="translate(189.375,-99.375)">
|
||||
<title>Sheet.14</title>
|
||||
<desc>Video Display Adapter Services</desc>
|
||||
<rect x="0" y="324.75" width="54" height="90" class="st1"/>
|
||||
<text x="14.93" y="354.75" class="st2">Video <tspan x="11.88" dy="1.2em" class="st3">Display </tspan><tspan x="10.11"
|
||||
dy="1.2em" class="st3">Adapter </tspan><tspan x="10.14" dy="1.2em" class="st3">Services</tspan></text> </g>
|
||||
<g id="shape18-47" transform="translate(243.375,-36.375)">
|
||||
<title>Sheet.18</title>
|
||||
<path d="M0 414.75 L62.19 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape27-52" transform="translate(315.375,-315.375)">
|
||||
<title>Sheet.27</title>
|
||||
<desc>UART</desc>
|
||||
<rect x="0" y="396.75" width="44.9182" height="18" class="st6"/>
|
||||
<text x="13.19" y="408.15" class="st7">UART</text> </g>
|
||||
<g id="shape34-55" transform="translate(314.311,-261.375)">
|
||||
<title>Sheet.34</title>
|
||||
<desc>ASCI</desc>
|
||||
<rect x="0" y="396.75" width="44.9182" height="18" class="st6"/>
|
||||
<text x="14.96" y="408.15" class="st7">ASCI</text> </g>
|
||||
<g id="group20-58" transform="translate(396.375,-94.875)">
|
||||
<title>Terminal.20</title>
|
||||
<g id="shape36-59" transform="translate(-391.186,414.75) rotate(-90)">
|
||||
<title>Sheet.36</title>
|
||||
<path d="M0 414.75 L27 414.75 L27 409.08 L0 409.08 L0 414.75 ZM26.25 403.93 L23.44 399.37 L3.53 399.37 L0.75 403.93
|
||||
L26.25 403.93 ZM23.44 399.37 L23.44 391.19 L3.53 391.19 L3.53 399.37 L23.44 399.37 ZM26.25 407.7 L26.25
|
||||
403.93 L0.75 403.93 L0.75 407.7 L26.25 407.7 ZM24.83 407.7 A1223.48 394.162 90 0 1 2.17 407.7 L24.83
|
||||
407.7 Z" class="st8"/>
|
||||
</g>
|
||||
<g id="shape37-61" transform="translate(-395.768,392.25) rotate(-90)">
|
||||
<title>Sheet.37</title>
|
||||
<rect x="0" y="414.641" width="0.75" height="0.109091" class="st9"/>
|
||||
</g>
|
||||
<g id="shape38-63" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.38</title>
|
||||
<path d="M1.69 410.93 L2.63 410.93 L2.63 410.39 L1.69 410.39 L1.69 410.93 ZM2.81 410.93 L3.75 410.93 L3.75 410.39
|
||||
L2.81 410.39 L2.81 410.93 ZM3.94 410.93 L4.87 410.93 L4.87 410.39 L3.94 410.39 L3.94 410.93 ZM5.06 410.93
|
||||
L6 410.93 L6 410.39 L5.06 410.39 L5.06 410.93 ZM12.28 410.93 L13.22 410.93 L13.22 410.39 L12.28 410.39
|
||||
L12.28 410.93 ZM13.41 410.93 L14.34 410.93 L14.34 410.39 L13.41 410.39 L13.41 410.93 ZM14.53 410.93
|
||||
L15.47 410.93 L15.47 410.39 L14.53 410.39 L14.53 410.93 ZM15.66 410.93 L16.59 410.93 L16.59 410.39 L15.66
|
||||
410.39 L15.66 410.93 ZM0 412.02 L1.5 412.02 L1.5 411.48 L0 411.48 L0 412.02 ZM1.69 412.02 L2.63 412.02
|
||||
L2.63 411.48 L1.69 411.48 L1.69 412.02 ZM2.81 412.02 L3.75 412.02 L3.75 411.48 L2.81 411.48 L2.81 412.02
|
||||
ZM3.94 412.02 L4.87 412.02 L4.87 411.48 L3.94 411.48 L3.94 412.02 ZM5.06 412.02 L6 412.02 L6 411.48
|
||||
L5.06 411.48 L5.06 412.02 ZM6.19 412.02 L7.12 412.02 L7.12 411.48 L6.19 411.48 L6.19 412.02 ZM7.31 412.02
|
||||
L8.25 412.02 L8.25 411.48 L7.31 411.48 L7.31 412.02 ZM8.44 412.02 L9.37 412.02 L9.37 411.48 L8.44 411.48
|
||||
L8.44 412.02 ZM9.56 412.02 L10.5 412.02 L10.5 411.48 L9.56 411.48 L9.56 412.02 ZM10.69 412.02 L11.62
|
||||
412.02 L11.62 411.48 L10.69 411.48 L10.69 412.02 ZM11.81 412.02 L12.75 412.02 L12.75 411.48 L11.81 411.48
|
||||
L11.81 412.02 ZM12.94 412.02 L13.87 412.02 L13.87 411.48 L12.94 411.48 L12.94 412.02 ZM14.06 412.02
|
||||
L15 412.02 L15 411.48 L14.06 411.48 L14.06 412.02 ZM1.69 412.7 L2.63 412.7 L2.63 412.16 L1.69 412.16
|
||||
L1.69 412.7 ZM2.81 412.7 L3.75 412.7 L3.75 412.16 L2.81 412.16 L2.81 412.7 ZM3.94 412.7 L4.87 412.7
|
||||
L4.87 412.16 L3.94 412.16 L3.94 412.7 ZM5.06 412.7 L6 412.7 L6 412.16 L5.06 412.16 L5.06 412.7 ZM6.19
|
||||
412.7 L7.12 412.7 L7.12 412.16 L6.19 412.16 L6.19 412.7 ZM7.31 412.7 L8.25 412.7 L8.25 412.16 L7.31
|
||||
412.16 L7.31 412.7 ZM8.44 412.7 L9.37 412.7 L9.37 412.16 L8.44 412.16 L8.44 412.7 ZM9.56 412.7 L10.5
|
||||
412.7 L10.5 412.16 L9.56 412.16 L9.56 412.7 ZM10.69 412.7 L11.62 412.7 L11.62 412.16 L10.69 412.16 L10.69
|
||||
412.7 ZM11.81 412.7 L12.75 412.7 L12.75 412.16 L11.81 412.16 L11.81 412.7 ZM12.94 412.7 L13.87 412.7
|
||||
L13.87 412.16 L12.94 412.16 L12.94 412.7 ZM14.06 412.7 L15 412.7 L15 412.16 L14.06 412.16 L14.06 412.7
|
||||
ZM1.69 413.39 L2.63 413.39 L2.63 412.84 L1.69 412.84 L1.69 413.39 ZM2.81 413.39 L3.75 413.39 L3.75 412.84
|
||||
L2.81 412.84 L2.81 413.39 ZM3.94 413.39 L4.87 413.39 L4.87 412.84 L3.94 412.84 L3.94 413.39 ZM5.06 413.39
|
||||
L6 413.39 L6 412.84 L5.06 412.84 L5.06 413.39 ZM6.19 413.39 L7.12 413.39 L7.12 412.84 L6.19 412.84 L6.19
|
||||
413.39 ZM7.31 413.39 L8.25 413.39 L8.25 412.84 L7.31 412.84 L7.31 413.39 ZM8.44 413.39 L9.37 413.39
|
||||
L9.37 412.84 L8.44 412.84 L8.44 413.39 ZM9.56 413.39 L10.5 413.39 L10.5 412.84 L9.56 412.84 L9.56 413.39
|
||||
ZM10.69 413.39 L11.62 413.39 L11.62 412.84 L10.69 412.84 L10.69 413.39 ZM11.81 413.39 L12.75 413.39
|
||||
L12.75 412.84 L11.81 412.84 L11.81 413.39 ZM12.94 413.39 L13.87 413.39 L13.87 412.84 L12.94 412.84 L12.94
|
||||
413.39 ZM14.06 413.39 L15 413.39 L15 412.84 L14.06 412.84 L14.06 413.39 ZM1.69 414.07 L2.63 414.07 L2.63
|
||||
413.52 L1.69 413.52 L1.69 414.07 ZM2.81 414.07 L3.75 414.07 L3.75 413.52 L2.81 413.52 L2.81 414.07 ZM3.94
|
||||
414.07 L4.87 414.07 L4.87 413.52 L3.94 413.52 L3.94 414.07 ZM5.06 414.07 L6 414.07 L6 413.52 L5.06 413.52
|
||||
L5.06 414.07 ZM6.19 414.07 L7.12 414.07 L7.12 413.52 L6.19 413.52 L6.19 414.07 ZM7.31 414.07 L8.25 414.07
|
||||
L8.25 413.52 L7.31 413.52 L7.31 414.07 ZM8.44 414.07 L9.37 414.07 L9.37 413.52 L8.44 413.52 L8.44 414.07
|
||||
ZM9.56 414.07 L10.5 414.07 L10.5 413.52 L9.56 413.52 L9.56 414.07 ZM10.69 414.07 L11.62 414.07 L11.62
|
||||
413.52 L10.69 413.52 L10.69 414.07 ZM11.81 414.07 L12.75 414.07 L12.75 413.52 L11.81 413.52 L11.81 414.07
|
||||
ZM12.94 414.07 L13.87 414.07 L13.87 413.52 L12.94 413.52 L12.94 414.07 ZM3.94 414.75 L11.62 414.75 L11.62
|
||||
414.2 L3.94 414.2 L3.94 414.75 ZM21 414.75 L23.25 414.75 L23.25 414.2 L21 414.2 L21 414.75 ZM23.44 414.75
|
||||
L24.37 414.75 L24.37 414.2 L23.44 414.2 L23.44 414.75 ZM23.44 414.07 L24.37 414.07 L24.37 413.52 L23.44
|
||||
413.52 L23.44 414.07 ZM22.22 414.07 L23.16 414.07 L23.16 413.52 L22.22 413.52 L22.22 414.07 ZM21 414.07
|
||||
L21.94 414.07 L21.94 413.52 L21 413.52 L21 414.07 ZM21 413.39 L21.94 413.39 L21.94 412.84 L21 412.84
|
||||
L21 413.39 ZM21 412.7 L21.94 412.7 L21.94 412.16 L21 412.16 L21 412.7 ZM22.22 412.7 L23.16 412.7 L23.16
|
||||
412.16 L22.22 412.16 L22.22 412.7 ZM23.44 412.7 L24.37 412.7 L24.37 412.16 L23.44 412.16 L23.44 412.7
|
||||
ZM23.44 413.39 L24.37 413.39 L24.37 412.84 L23.44 412.84 L23.44 413.39 ZM22.22 413.39 L23.16 413.39
|
||||
L23.16 412.84 L22.22 412.84 L22.22 413.39 Z" class="st10"/>
|
||||
</g>
|
||||
<g id="shape39-65" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.39</title>
|
||||
<path d="M0 410.93 L0.94 410.93 L0.94 410.39 L0 410.39 L0 410.93 ZM0 412.7 L1.5 412.7 L1.5 412.16 L0 412.16 L0 412.7
|
||||
ZM0 413.39 L1.5 413.39 L1.5 412.84 L0 412.84 L0 413.39 ZM0 414.07 L1.5 414.07 L1.5 413.52 L0 413.52
|
||||
L0 414.07 ZM0 414.75 L1.5 414.75 L1.5 414.2 L0 414.2 L0 414.75 ZM1.69 414.75 L2.63 414.75 L2.63 414.2
|
||||
L1.69 414.2 L1.69 414.75 ZM2.81 414.75 L3.75 414.75 L3.75 414.2 L2.81 414.2 L2.81 414.75 ZM11.81 414.75
|
||||
L12.75 414.75 L12.75 414.2 L11.81 414.2 L11.81 414.75 ZM12.94 414.75 L13.87 414.75 L13.87 414.2 L12.94
|
||||
414.2 L12.94 414.75 ZM14.06 414.75 L15 414.75 L15 414.2 L14.06 414.2 L14.06 414.75 ZM15.19 414.75 L16.69
|
||||
414.75 L16.69 414.2 L15.19 414.2 L15.19 414.75 ZM17.25 414.75 L18.19 414.75 L18.19 414.2 L17.25 414.2
|
||||
L17.25 414.75 ZM18.37 414.75 L19.31 414.75 L19.31 414.2 L18.37 414.2 L18.37 414.75 ZM19.5 414.75 L20.44
|
||||
414.75 L20.44 414.2 L19.5 414.2 L19.5 414.75 ZM24.66 414.75 L25.59 414.75 L25.59 413.55 L24.66 413.55
|
||||
L24.66 414.75 ZM24.66 413.44 L25.59 413.44 L25.59 412.16 L24.66 412.16 L24.66 413.44 ZM24.66 412.02
|
||||
L25.59 412.02 L25.59 411.48 L24.66 411.48 L24.66 412.02 ZM23.44 412.02 L24.37 412.02 L24.37 411.48 L23.44
|
||||
411.48 L23.44 412.02 ZM22.22 412.02 L23.16 412.02 L23.16 411.48 L22.22 411.48 L22.22 412.02 ZM21 412.02
|
||||
L21.94 412.02 L21.94 411.48 L21 411.48 L21 412.02 ZM19.5 412.02 L20.44 412.02 L20.44 411.48 L19.5 411.48
|
||||
L19.5 412.02 ZM19.5 412.7 L20.44 412.7 L20.44 412.16 L19.5 412.16 L19.5 412.7 ZM18.37 414.07 L19.31
|
||||
414.07 L19.31 413.52 L18.37 413.52 L18.37 414.07 ZM14.06 414.06 L16.69 414.06 L16.69 413.51 L14.06 413.51
|
||||
L14.06 414.06 ZM15.19 413.37 L16.69 413.37 L16.69 412.17 L15.19 412.17 L15.19 413.37 ZM17.25 412.7 L18.19
|
||||
412.7 L18.19 412.16 L17.25 412.16 L17.25 412.7 ZM18.37 412.7 L19.31 412.7 L19.31 412.16 L18.37 412.16
|
||||
L18.37 412.7 ZM18.37 412.02 L19.31 412.02 L19.31 411.48 L18.37 411.48 L18.37 412.02 ZM15.19 412.02 L16.69
|
||||
412.02 L16.69 411.48 L15.19 411.48 L15.19 412.02 ZM24.19 410.6 L24.94 410.6 L24.94 410.5 L24.19 410.5
|
||||
L24.19 410.6 ZM23.06 410.6 L23.81 410.6 L23.81 410.5 L23.06 410.5 L23.06 410.6 ZM19.5 410.93 L20.44
|
||||
410.93 L20.44 410.39 L19.5 410.39 L19.5 410.93 ZM18.37 410.93 L19.31 410.93 L19.31 410.39 L18.37 410.39
|
||||
L18.37 410.93 ZM17.25 410.93 L18.19 410.93 L18.19 410.39 L17.25 410.39 L17.25 410.93 ZM10.31 410.93
|
||||
L11.25 410.93 L11.25 410.39 L10.31 410.39 L10.31 410.93 ZM9.19 410.93 L10.12 410.93 L10.12 410.39 L9.19
|
||||
410.39 L9.19 410.93 ZM8.06 410.93 L9 410.93 L9 410.39 L8.06 410.39 L8.06 410.93 ZM6.94 410.93 L7.87
|
||||
410.93 L7.87 410.39 L6.94 410.39 L6.94 410.93 ZM17.25 412.02 L18.19 412.02 L18.19 411.48 L17.25 411.48
|
||||
L17.25 412.02 Z" class="st11"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape40-67" transform="translate(315.375,-99.375)">
|
||||
<title>Sheet.40</title>
|
||||
<desc>CVDU</desc>
|
||||
<rect x="0" y="396.75" width="44.9182" height="18" class="st6"/>
|
||||
<text x="12.84" y="408.15" class="st7">CVDU</text> </g>
|
||||
<g id="shape41-70" transform="translate(360.293,-108.375)">
|
||||
<title>Sheet.41</title>
|
||||
<path d="M0 414.75 L26.27 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape47-75" transform="translate(315.375,-63.375)">
|
||||
<title>Sheet.47</title>
|
||||
<desc>UPD7220</desc>
|
||||
<rect x="0" y="396.75" width="44.9182" height="18" class="st6"/>
|
||||
<text x="7.09" y="408.15" class="st7">UPD7220</text> </g>
|
||||
<g id="shape54-78" transform="translate(315.375,-27.375)">
|
||||
<title>Sheet.54</title>
|
||||
<desc>N8</desc>
|
||||
<rect x="0" y="396.75" width="44.9182" height="18" class="st6"/>
|
||||
<text x="17.8" y="408.15" class="st7">N8</text> </g>
|
||||
<g id="shape56-81" transform="translate(54.375,-333.375)">
|
||||
<title>Sheet.56</title>
|
||||
<desc>CIOXXX</desc>
|
||||
<rect x="0" y="401.25" width="45" height="13.5" class="st12"/>
|
||||
<text x="10" y="410.4" class="st7">CIOXXX</text> </g>
|
||||
<g id="shape57-84" transform="translate(54.375,-117.375)">
|
||||
<title>Sheet.57</title>
|
||||
<desc>VDAXXX</desc>
|
||||
<rect x="0" y="401.25" width="45" height="13.5" class="st12"/>
|
||||
<text x="8.58" y="410.4" class="st7">VDAXXX</text> </g>
|
||||
<g id="shape58-87" transform="translate(-378.375,414.375) rotate(-90)">
|
||||
<title>Sheet.58</title>
|
||||
<desc>Operating System / Utilities</desc>
|
||||
<rect x="0" y="378.75" width="360" height="36" class="st1"/>
|
||||
<text x="122.42" y="399.75" class="st2">Operating System / Utilities</text> </g>
|
||||
<g id="shape59-90" transform="translate(108.375,-135.375)">
|
||||
<title>Sheet.59</title>
|
||||
<desc>Others...</desc>
|
||||
<path d="M0 414.75 L54 414.75 L54 396.75 L0 396.75 L0 414.75 Z" class="st13"/>
|
||||
<text x="8.91" y="408.75" class="st2">Others...</text> </g>
|
||||
<g id="shape60-93" transform="translate(162.211,-144.375)">
|
||||
<title>Sheet.60</title>
|
||||
<path d="M0 414.75 L17.35 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape61-98" transform="translate(36.375,-211.875)">
|
||||
<title>Sheet.61</title>
|
||||
<path d="M0 414.75 L62.19 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape62-103" transform="translate(54.375,-211.875)">
|
||||
<title>Sheet.62</title>
|
||||
<desc>EMUXXX</desc>
|
||||
<rect x="0" y="401.25" width="45" height="13.5" class="st12"/>
|
||||
<text x="7.83" y="410.4" class="st7">EMUXXX</text> </g>
|
||||
<g id="shape15-106" transform="translate(36.375,-117.375)">
|
||||
<title>Sheet.15</title>
|
||||
<path d="M0 414.75 L143.19 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="group16-111" transform="translate(396.375,-58.875)">
|
||||
<title>Terminal.16</title>
|
||||
<g id="shape42-112" transform="translate(-391.186,414.75) rotate(-90)">
|
||||
<title>Sheet.42</title>
|
||||
<path d="M0 414.75 L27 414.75 L27 409.08 L0 409.08 L0 414.75 ZM26.25 403.93 L23.44 399.37 L3.53 399.37 L0.75 403.93
|
||||
L26.25 403.93 ZM23.44 399.37 L23.44 391.19 L3.53 391.19 L3.53 399.37 L23.44 399.37 ZM26.25 407.7 L26.25
|
||||
403.93 L0.75 403.93 L0.75 407.7 L26.25 407.7 ZM24.83 407.7 A1223.48 394.162 90 0 1 2.17 407.7 L24.83
|
||||
407.7 Z" class="st8"/>
|
||||
</g>
|
||||
<g id="shape43-114" transform="translate(-395.768,392.25) rotate(-90)">
|
||||
<title>Sheet.43</title>
|
||||
<rect x="0" y="414.641" width="0.75" height="0.109091" class="st9"/>
|
||||
</g>
|
||||
<g id="shape44-116" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.44</title>
|
||||
<path d="M1.69 410.93 L2.63 410.93 L2.63 410.39 L1.69 410.39 L1.69 410.93 ZM2.81 410.93 L3.75 410.93 L3.75 410.39
|
||||
L2.81 410.39 L2.81 410.93 ZM3.94 410.93 L4.87 410.93 L4.87 410.39 L3.94 410.39 L3.94 410.93 ZM5.06 410.93
|
||||
L6 410.93 L6 410.39 L5.06 410.39 L5.06 410.93 ZM12.28 410.93 L13.22 410.93 L13.22 410.39 L12.28 410.39
|
||||
L12.28 410.93 ZM13.41 410.93 L14.34 410.93 L14.34 410.39 L13.41 410.39 L13.41 410.93 ZM14.53 410.93
|
||||
L15.47 410.93 L15.47 410.39 L14.53 410.39 L14.53 410.93 ZM15.66 410.93 L16.59 410.93 L16.59 410.39 L15.66
|
||||
410.39 L15.66 410.93 ZM0 412.02 L1.5 412.02 L1.5 411.48 L0 411.48 L0 412.02 ZM1.69 412.02 L2.63 412.02
|
||||
L2.63 411.48 L1.69 411.48 L1.69 412.02 ZM2.81 412.02 L3.75 412.02 L3.75 411.48 L2.81 411.48 L2.81 412.02
|
||||
ZM3.94 412.02 L4.87 412.02 L4.87 411.48 L3.94 411.48 L3.94 412.02 ZM5.06 412.02 L6 412.02 L6 411.48
|
||||
L5.06 411.48 L5.06 412.02 ZM6.19 412.02 L7.12 412.02 L7.12 411.48 L6.19 411.48 L6.19 412.02 ZM7.31 412.02
|
||||
L8.25 412.02 L8.25 411.48 L7.31 411.48 L7.31 412.02 ZM8.44 412.02 L9.37 412.02 L9.37 411.48 L8.44 411.48
|
||||
L8.44 412.02 ZM9.56 412.02 L10.5 412.02 L10.5 411.48 L9.56 411.48 L9.56 412.02 ZM10.69 412.02 L11.62
|
||||
412.02 L11.62 411.48 L10.69 411.48 L10.69 412.02 ZM11.81 412.02 L12.75 412.02 L12.75 411.48 L11.81 411.48
|
||||
L11.81 412.02 ZM12.94 412.02 L13.87 412.02 L13.87 411.48 L12.94 411.48 L12.94 412.02 ZM14.06 412.02
|
||||
L15 412.02 L15 411.48 L14.06 411.48 L14.06 412.02 ZM1.69 412.7 L2.63 412.7 L2.63 412.16 L1.69 412.16
|
||||
L1.69 412.7 ZM2.81 412.7 L3.75 412.7 L3.75 412.16 L2.81 412.16 L2.81 412.7 ZM3.94 412.7 L4.87 412.7
|
||||
L4.87 412.16 L3.94 412.16 L3.94 412.7 ZM5.06 412.7 L6 412.7 L6 412.16 L5.06 412.16 L5.06 412.7 ZM6.19
|
||||
412.7 L7.12 412.7 L7.12 412.16 L6.19 412.16 L6.19 412.7 ZM7.31 412.7 L8.25 412.7 L8.25 412.16 L7.31
|
||||
412.16 L7.31 412.7 ZM8.44 412.7 L9.37 412.7 L9.37 412.16 L8.44 412.16 L8.44 412.7 ZM9.56 412.7 L10.5
|
||||
412.7 L10.5 412.16 L9.56 412.16 L9.56 412.7 ZM10.69 412.7 L11.62 412.7 L11.62 412.16 L10.69 412.16 L10.69
|
||||
412.7 ZM11.81 412.7 L12.75 412.7 L12.75 412.16 L11.81 412.16 L11.81 412.7 ZM12.94 412.7 L13.87 412.7
|
||||
L13.87 412.16 L12.94 412.16 L12.94 412.7 ZM14.06 412.7 L15 412.7 L15 412.16 L14.06 412.16 L14.06 412.7
|
||||
ZM1.69 413.39 L2.63 413.39 L2.63 412.84 L1.69 412.84 L1.69 413.39 ZM2.81 413.39 L3.75 413.39 L3.75 412.84
|
||||
L2.81 412.84 L2.81 413.39 ZM3.94 413.39 L4.87 413.39 L4.87 412.84 L3.94 412.84 L3.94 413.39 ZM5.06 413.39
|
||||
L6 413.39 L6 412.84 L5.06 412.84 L5.06 413.39 ZM6.19 413.39 L7.12 413.39 L7.12 412.84 L6.19 412.84 L6.19
|
||||
413.39 ZM7.31 413.39 L8.25 413.39 L8.25 412.84 L7.31 412.84 L7.31 413.39 ZM8.44 413.39 L9.37 413.39
|
||||
L9.37 412.84 L8.44 412.84 L8.44 413.39 ZM9.56 413.39 L10.5 413.39 L10.5 412.84 L9.56 412.84 L9.56 413.39
|
||||
ZM10.69 413.39 L11.62 413.39 L11.62 412.84 L10.69 412.84 L10.69 413.39 ZM11.81 413.39 L12.75 413.39
|
||||
L12.75 412.84 L11.81 412.84 L11.81 413.39 ZM12.94 413.39 L13.87 413.39 L13.87 412.84 L12.94 412.84 L12.94
|
||||
413.39 ZM14.06 413.39 L15 413.39 L15 412.84 L14.06 412.84 L14.06 413.39 ZM1.69 414.07 L2.63 414.07 L2.63
|
||||
413.52 L1.69 413.52 L1.69 414.07 ZM2.81 414.07 L3.75 414.07 L3.75 413.52 L2.81 413.52 L2.81 414.07 ZM3.94
|
||||
414.07 L4.87 414.07 L4.87 413.52 L3.94 413.52 L3.94 414.07 ZM5.06 414.07 L6 414.07 L6 413.52 L5.06 413.52
|
||||
L5.06 414.07 ZM6.19 414.07 L7.12 414.07 L7.12 413.52 L6.19 413.52 L6.19 414.07 ZM7.31 414.07 L8.25 414.07
|
||||
L8.25 413.52 L7.31 413.52 L7.31 414.07 ZM8.44 414.07 L9.37 414.07 L9.37 413.52 L8.44 413.52 L8.44 414.07
|
||||
ZM9.56 414.07 L10.5 414.07 L10.5 413.52 L9.56 413.52 L9.56 414.07 ZM10.69 414.07 L11.62 414.07 L11.62
|
||||
413.52 L10.69 413.52 L10.69 414.07 ZM11.81 414.07 L12.75 414.07 L12.75 413.52 L11.81 413.52 L11.81 414.07
|
||||
ZM12.94 414.07 L13.87 414.07 L13.87 413.52 L12.94 413.52 L12.94 414.07 ZM3.94 414.75 L11.62 414.75 L11.62
|
||||
414.2 L3.94 414.2 L3.94 414.75 ZM21 414.75 L23.25 414.75 L23.25 414.2 L21 414.2 L21 414.75 ZM23.44 414.75
|
||||
L24.37 414.75 L24.37 414.2 L23.44 414.2 L23.44 414.75 ZM23.44 414.07 L24.37 414.07 L24.37 413.52 L23.44
|
||||
413.52 L23.44 414.07 ZM22.22 414.07 L23.16 414.07 L23.16 413.52 L22.22 413.52 L22.22 414.07 ZM21 414.07
|
||||
L21.94 414.07 L21.94 413.52 L21 413.52 L21 414.07 ZM21 413.39 L21.94 413.39 L21.94 412.84 L21 412.84
|
||||
L21 413.39 ZM21 412.7 L21.94 412.7 L21.94 412.16 L21 412.16 L21 412.7 ZM22.22 412.7 L23.16 412.7 L23.16
|
||||
412.16 L22.22 412.16 L22.22 412.7 ZM23.44 412.7 L24.37 412.7 L24.37 412.16 L23.44 412.16 L23.44 412.7
|
||||
ZM23.44 413.39 L24.37 413.39 L24.37 412.84 L23.44 412.84 L23.44 413.39 ZM22.22 413.39 L23.16 413.39
|
||||
L23.16 412.84 L22.22 412.84 L22.22 413.39 Z" class="st10"/>
|
||||
</g>
|
||||
<g id="shape45-118" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.45</title>
|
||||
<path d="M0 410.93 L0.94 410.93 L0.94 410.39 L0 410.39 L0 410.93 ZM0 412.7 L1.5 412.7 L1.5 412.16 L0 412.16 L0 412.7
|
||||
ZM0 413.39 L1.5 413.39 L1.5 412.84 L0 412.84 L0 413.39 ZM0 414.07 L1.5 414.07 L1.5 413.52 L0 413.52
|
||||
L0 414.07 ZM0 414.75 L1.5 414.75 L1.5 414.2 L0 414.2 L0 414.75 ZM1.69 414.75 L2.63 414.75 L2.63 414.2
|
||||
L1.69 414.2 L1.69 414.75 ZM2.81 414.75 L3.75 414.75 L3.75 414.2 L2.81 414.2 L2.81 414.75 ZM11.81 414.75
|
||||
L12.75 414.75 L12.75 414.2 L11.81 414.2 L11.81 414.75 ZM12.94 414.75 L13.87 414.75 L13.87 414.2 L12.94
|
||||
414.2 L12.94 414.75 ZM14.06 414.75 L15 414.75 L15 414.2 L14.06 414.2 L14.06 414.75 ZM15.19 414.75 L16.69
|
||||
414.75 L16.69 414.2 L15.19 414.2 L15.19 414.75 ZM17.25 414.75 L18.19 414.75 L18.19 414.2 L17.25 414.2
|
||||
L17.25 414.75 ZM18.37 414.75 L19.31 414.75 L19.31 414.2 L18.37 414.2 L18.37 414.75 ZM19.5 414.75 L20.44
|
||||
414.75 L20.44 414.2 L19.5 414.2 L19.5 414.75 ZM24.66 414.75 L25.59 414.75 L25.59 413.55 L24.66 413.55
|
||||
L24.66 414.75 ZM24.66 413.44 L25.59 413.44 L25.59 412.16 L24.66 412.16 L24.66 413.44 ZM24.66 412.02
|
||||
L25.59 412.02 L25.59 411.48 L24.66 411.48 L24.66 412.02 ZM23.44 412.02 L24.37 412.02 L24.37 411.48 L23.44
|
||||
411.48 L23.44 412.02 ZM22.22 412.02 L23.16 412.02 L23.16 411.48 L22.22 411.48 L22.22 412.02 ZM21 412.02
|
||||
L21.94 412.02 L21.94 411.48 L21 411.48 L21 412.02 ZM19.5 412.02 L20.44 412.02 L20.44 411.48 L19.5 411.48
|
||||
L19.5 412.02 ZM19.5 412.7 L20.44 412.7 L20.44 412.16 L19.5 412.16 L19.5 412.7 ZM18.37 414.07 L19.31
|
||||
414.07 L19.31 413.52 L18.37 413.52 L18.37 414.07 ZM14.06 414.06 L16.69 414.06 L16.69 413.51 L14.06 413.51
|
||||
L14.06 414.06 ZM15.19 413.37 L16.69 413.37 L16.69 412.17 L15.19 412.17 L15.19 413.37 ZM17.25 412.7 L18.19
|
||||
412.7 L18.19 412.16 L17.25 412.16 L17.25 412.7 ZM18.37 412.7 L19.31 412.7 L19.31 412.16 L18.37 412.16
|
||||
L18.37 412.7 ZM18.37 412.02 L19.31 412.02 L19.31 411.48 L18.37 411.48 L18.37 412.02 ZM15.19 412.02 L16.69
|
||||
412.02 L16.69 411.48 L15.19 411.48 L15.19 412.02 ZM24.19 410.6 L24.94 410.6 L24.94 410.5 L24.19 410.5
|
||||
L24.19 410.6 ZM23.06 410.6 L23.81 410.6 L23.81 410.5 L23.06 410.5 L23.06 410.6 ZM19.5 410.93 L20.44
|
||||
410.93 L20.44 410.39 L19.5 410.39 L19.5 410.93 ZM18.37 410.93 L19.31 410.93 L19.31 410.39 L18.37 410.39
|
||||
L18.37 410.93 ZM17.25 410.93 L18.19 410.93 L18.19 410.39 L17.25 410.39 L17.25 410.93 ZM10.31 410.93
|
||||
L11.25 410.93 L11.25 410.39 L10.31 410.39 L10.31 410.93 ZM9.19 410.93 L10.12 410.93 L10.12 410.39 L9.19
|
||||
410.39 L9.19 410.93 ZM8.06 410.93 L9 410.93 L9 410.39 L8.06 410.39 L8.06 410.93 ZM6.94 410.93 L7.87
|
||||
410.93 L7.87 410.39 L6.94 410.39 L6.94 410.93 ZM17.25 412.02 L18.19 412.02 L18.19 411.48 L17.25 411.48
|
||||
L17.25 412.02 Z" class="st11"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape46-120" transform="translate(360.375,-72.375)">
|
||||
<title>Sheet.46</title>
|
||||
<path d="M0 414.75 L26.19 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="group48-125" transform="translate(396.436,-22.875)">
|
||||
<title>Terminal.48</title>
|
||||
<g id="shape49-126" transform="translate(-391.186,414.75) rotate(-90)">
|
||||
<title>Sheet.49</title>
|
||||
<path d="M0 414.75 L27 414.75 L27 409.08 L0 409.08 L0 414.75 ZM26.25 403.93 L23.44 399.37 L3.53 399.37 L0.75 403.93
|
||||
L26.25 403.93 ZM23.44 399.37 L23.44 391.19 L3.53 391.19 L3.53 399.37 L23.44 399.37 ZM26.25 407.7 L26.25
|
||||
403.93 L0.75 403.93 L0.75 407.7 L26.25 407.7 ZM24.83 407.7 A1223.48 394.162 90 0 1 2.17 407.7 L24.83
|
||||
407.7 Z" class="st8"/>
|
||||
</g>
|
||||
<g id="shape50-128" transform="translate(-395.768,392.25) rotate(-90)">
|
||||
<title>Sheet.50</title>
|
||||
<rect x="0" y="414.641" width="0.75" height="0.109091" class="st9"/>
|
||||
</g>
|
||||
<g id="shape51-130" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.51</title>
|
||||
<path d="M1.69 410.93 L2.63 410.93 L2.63 410.39 L1.69 410.39 L1.69 410.93 ZM2.81 410.93 L3.75 410.93 L3.75 410.39
|
||||
L2.81 410.39 L2.81 410.93 ZM3.94 410.93 L4.87 410.93 L4.87 410.39 L3.94 410.39 L3.94 410.93 ZM5.06 410.93
|
||||
L6 410.93 L6 410.39 L5.06 410.39 L5.06 410.93 ZM12.28 410.93 L13.22 410.93 L13.22 410.39 L12.28 410.39
|
||||
L12.28 410.93 ZM13.41 410.93 L14.34 410.93 L14.34 410.39 L13.41 410.39 L13.41 410.93 ZM14.53 410.93
|
||||
L15.47 410.93 L15.47 410.39 L14.53 410.39 L14.53 410.93 ZM15.66 410.93 L16.59 410.93 L16.59 410.39 L15.66
|
||||
410.39 L15.66 410.93 ZM0 412.02 L1.5 412.02 L1.5 411.48 L0 411.48 L0 412.02 ZM1.69 412.02 L2.63 412.02
|
||||
L2.63 411.48 L1.69 411.48 L1.69 412.02 ZM2.81 412.02 L3.75 412.02 L3.75 411.48 L2.81 411.48 L2.81 412.02
|
||||
ZM3.94 412.02 L4.87 412.02 L4.87 411.48 L3.94 411.48 L3.94 412.02 ZM5.06 412.02 L6 412.02 L6 411.48
|
||||
L5.06 411.48 L5.06 412.02 ZM6.19 412.02 L7.12 412.02 L7.12 411.48 L6.19 411.48 L6.19 412.02 ZM7.31 412.02
|
||||
L8.25 412.02 L8.25 411.48 L7.31 411.48 L7.31 412.02 ZM8.44 412.02 L9.37 412.02 L9.37 411.48 L8.44 411.48
|
||||
L8.44 412.02 ZM9.56 412.02 L10.5 412.02 L10.5 411.48 L9.56 411.48 L9.56 412.02 ZM10.69 412.02 L11.62
|
||||
412.02 L11.62 411.48 L10.69 411.48 L10.69 412.02 ZM11.81 412.02 L12.75 412.02 L12.75 411.48 L11.81 411.48
|
||||
L11.81 412.02 ZM12.94 412.02 L13.87 412.02 L13.87 411.48 L12.94 411.48 L12.94 412.02 ZM14.06 412.02
|
||||
L15 412.02 L15 411.48 L14.06 411.48 L14.06 412.02 ZM1.69 412.7 L2.63 412.7 L2.63 412.16 L1.69 412.16
|
||||
L1.69 412.7 ZM2.81 412.7 L3.75 412.7 L3.75 412.16 L2.81 412.16 L2.81 412.7 ZM3.94 412.7 L4.87 412.7
|
||||
L4.87 412.16 L3.94 412.16 L3.94 412.7 ZM5.06 412.7 L6 412.7 L6 412.16 L5.06 412.16 L5.06 412.7 ZM6.19
|
||||
412.7 L7.12 412.7 L7.12 412.16 L6.19 412.16 L6.19 412.7 ZM7.31 412.7 L8.25 412.7 L8.25 412.16 L7.31
|
||||
412.16 L7.31 412.7 ZM8.44 412.7 L9.37 412.7 L9.37 412.16 L8.44 412.16 L8.44 412.7 ZM9.56 412.7 L10.5
|
||||
412.7 L10.5 412.16 L9.56 412.16 L9.56 412.7 ZM10.69 412.7 L11.62 412.7 L11.62 412.16 L10.69 412.16 L10.69
|
||||
412.7 ZM11.81 412.7 L12.75 412.7 L12.75 412.16 L11.81 412.16 L11.81 412.7 ZM12.94 412.7 L13.87 412.7
|
||||
L13.87 412.16 L12.94 412.16 L12.94 412.7 ZM14.06 412.7 L15 412.7 L15 412.16 L14.06 412.16 L14.06 412.7
|
||||
ZM1.69 413.39 L2.63 413.39 L2.63 412.84 L1.69 412.84 L1.69 413.39 ZM2.81 413.39 L3.75 413.39 L3.75 412.84
|
||||
L2.81 412.84 L2.81 413.39 ZM3.94 413.39 L4.87 413.39 L4.87 412.84 L3.94 412.84 L3.94 413.39 ZM5.06 413.39
|
||||
L6 413.39 L6 412.84 L5.06 412.84 L5.06 413.39 ZM6.19 413.39 L7.12 413.39 L7.12 412.84 L6.19 412.84 L6.19
|
||||
413.39 ZM7.31 413.39 L8.25 413.39 L8.25 412.84 L7.31 412.84 L7.31 413.39 ZM8.44 413.39 L9.37 413.39
|
||||
L9.37 412.84 L8.44 412.84 L8.44 413.39 ZM9.56 413.39 L10.5 413.39 L10.5 412.84 L9.56 412.84 L9.56 413.39
|
||||
ZM10.69 413.39 L11.62 413.39 L11.62 412.84 L10.69 412.84 L10.69 413.39 ZM11.81 413.39 L12.75 413.39
|
||||
L12.75 412.84 L11.81 412.84 L11.81 413.39 ZM12.94 413.39 L13.87 413.39 L13.87 412.84 L12.94 412.84 L12.94
|
||||
413.39 ZM14.06 413.39 L15 413.39 L15 412.84 L14.06 412.84 L14.06 413.39 ZM1.69 414.07 L2.63 414.07 L2.63
|
||||
413.52 L1.69 413.52 L1.69 414.07 ZM2.81 414.07 L3.75 414.07 L3.75 413.52 L2.81 413.52 L2.81 414.07 ZM3.94
|
||||
414.07 L4.87 414.07 L4.87 413.52 L3.94 413.52 L3.94 414.07 ZM5.06 414.07 L6 414.07 L6 413.52 L5.06 413.52
|
||||
L5.06 414.07 ZM6.19 414.07 L7.12 414.07 L7.12 413.52 L6.19 413.52 L6.19 414.07 ZM7.31 414.07 L8.25 414.07
|
||||
L8.25 413.52 L7.31 413.52 L7.31 414.07 ZM8.44 414.07 L9.37 414.07 L9.37 413.52 L8.44 413.52 L8.44 414.07
|
||||
ZM9.56 414.07 L10.5 414.07 L10.5 413.52 L9.56 413.52 L9.56 414.07 ZM10.69 414.07 L11.62 414.07 L11.62
|
||||
413.52 L10.69 413.52 L10.69 414.07 ZM11.81 414.07 L12.75 414.07 L12.75 413.52 L11.81 413.52 L11.81 414.07
|
||||
ZM12.94 414.07 L13.87 414.07 L13.87 413.52 L12.94 413.52 L12.94 414.07 ZM3.94 414.75 L11.62 414.75 L11.62
|
||||
414.2 L3.94 414.2 L3.94 414.75 ZM21 414.75 L23.25 414.75 L23.25 414.2 L21 414.2 L21 414.75 ZM23.44 414.75
|
||||
L24.37 414.75 L24.37 414.2 L23.44 414.2 L23.44 414.75 ZM23.44 414.07 L24.37 414.07 L24.37 413.52 L23.44
|
||||
413.52 L23.44 414.07 ZM22.22 414.07 L23.16 414.07 L23.16 413.52 L22.22 413.52 L22.22 414.07 ZM21 414.07
|
||||
L21.94 414.07 L21.94 413.52 L21 413.52 L21 414.07 ZM21 413.39 L21.94 413.39 L21.94 412.84 L21 412.84
|
||||
L21 413.39 ZM21 412.7 L21.94 412.7 L21.94 412.16 L21 412.16 L21 412.7 ZM22.22 412.7 L23.16 412.7 L23.16
|
||||
412.16 L22.22 412.16 L22.22 412.7 ZM23.44 412.7 L24.37 412.7 L24.37 412.16 L23.44 412.16 L23.44 412.7
|
||||
ZM23.44 413.39 L24.37 413.39 L24.37 412.84 L23.44 412.84 L23.44 413.39 ZM22.22 413.39 L23.16 413.39
|
||||
L23.16 412.84 L22.22 412.84 L22.22 413.39 Z" class="st10"/>
|
||||
</g>
|
||||
<g id="shape52-132" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.52</title>
|
||||
<path d="M0 410.93 L0.94 410.93 L0.94 410.39 L0 410.39 L0 410.93 ZM0 412.7 L1.5 412.7 L1.5 412.16 L0 412.16 L0 412.7
|
||||
ZM0 413.39 L1.5 413.39 L1.5 412.84 L0 412.84 L0 413.39 ZM0 414.07 L1.5 414.07 L1.5 413.52 L0 413.52
|
||||
L0 414.07 ZM0 414.75 L1.5 414.75 L1.5 414.2 L0 414.2 L0 414.75 ZM1.69 414.75 L2.63 414.75 L2.63 414.2
|
||||
L1.69 414.2 L1.69 414.75 ZM2.81 414.75 L3.75 414.75 L3.75 414.2 L2.81 414.2 L2.81 414.75 ZM11.81 414.75
|
||||
L12.75 414.75 L12.75 414.2 L11.81 414.2 L11.81 414.75 ZM12.94 414.75 L13.87 414.75 L13.87 414.2 L12.94
|
||||
414.2 L12.94 414.75 ZM14.06 414.75 L15 414.75 L15 414.2 L14.06 414.2 L14.06 414.75 ZM15.19 414.75 L16.69
|
||||
414.75 L16.69 414.2 L15.19 414.2 L15.19 414.75 ZM17.25 414.75 L18.19 414.75 L18.19 414.2 L17.25 414.2
|
||||
L17.25 414.75 ZM18.37 414.75 L19.31 414.75 L19.31 414.2 L18.37 414.2 L18.37 414.75 ZM19.5 414.75 L20.44
|
||||
414.75 L20.44 414.2 L19.5 414.2 L19.5 414.75 ZM24.66 414.75 L25.59 414.75 L25.59 413.55 L24.66 413.55
|
||||
L24.66 414.75 ZM24.66 413.44 L25.59 413.44 L25.59 412.16 L24.66 412.16 L24.66 413.44 ZM24.66 412.02
|
||||
L25.59 412.02 L25.59 411.48 L24.66 411.48 L24.66 412.02 ZM23.44 412.02 L24.37 412.02 L24.37 411.48 L23.44
|
||||
411.48 L23.44 412.02 ZM22.22 412.02 L23.16 412.02 L23.16 411.48 L22.22 411.48 L22.22 412.02 ZM21 412.02
|
||||
L21.94 412.02 L21.94 411.48 L21 411.48 L21 412.02 ZM19.5 412.02 L20.44 412.02 L20.44 411.48 L19.5 411.48
|
||||
L19.5 412.02 ZM19.5 412.7 L20.44 412.7 L20.44 412.16 L19.5 412.16 L19.5 412.7 ZM18.37 414.07 L19.31
|
||||
414.07 L19.31 413.52 L18.37 413.52 L18.37 414.07 ZM14.06 414.06 L16.69 414.06 L16.69 413.51 L14.06 413.51
|
||||
L14.06 414.06 ZM15.19 413.37 L16.69 413.37 L16.69 412.17 L15.19 412.17 L15.19 413.37 ZM17.25 412.7 L18.19
|
||||
412.7 L18.19 412.16 L17.25 412.16 L17.25 412.7 ZM18.37 412.7 L19.31 412.7 L19.31 412.16 L18.37 412.16
|
||||
L18.37 412.7 ZM18.37 412.02 L19.31 412.02 L19.31 411.48 L18.37 411.48 L18.37 412.02 ZM15.19 412.02 L16.69
|
||||
412.02 L16.69 411.48 L15.19 411.48 L15.19 412.02 ZM24.19 410.6 L24.94 410.6 L24.94 410.5 L24.19 410.5
|
||||
L24.19 410.6 ZM23.06 410.6 L23.81 410.6 L23.81 410.5 L23.06 410.5 L23.06 410.6 ZM19.5 410.93 L20.44
|
||||
410.93 L20.44 410.39 L19.5 410.39 L19.5 410.93 ZM18.37 410.93 L19.31 410.93 L19.31 410.39 L18.37 410.39
|
||||
L18.37 410.93 ZM17.25 410.93 L18.19 410.93 L18.19 410.39 L17.25 410.39 L17.25 410.93 ZM10.31 410.93
|
||||
L11.25 410.93 L11.25 410.39 L10.31 410.39 L10.31 410.93 ZM9.19 410.93 L10.12 410.93 L10.12 410.39 L9.19
|
||||
410.39 L9.19 410.93 ZM8.06 410.93 L9 410.93 L9 410.39 L8.06 410.39 L8.06 410.93 ZM6.94 410.93 L7.87
|
||||
410.93 L7.87 410.39 L6.94 410.39 L6.94 410.93 ZM17.25 412.02 L18.19 412.02 L18.19 411.48 L17.25 411.48
|
||||
L17.25 412.02 Z" class="st11"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape53-134" transform="translate(360.293,-36.375)">
|
||||
<title>Sheet.53</title>
|
||||
<path d="M0 414.75 L26.27 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="group22-139" transform="translate(396.375,-310.875)">
|
||||
<title>Terminal.22</title>
|
||||
<g id="shape23-140" transform="translate(-391.186,414.75) rotate(-90)">
|
||||
<title>Sheet.23</title>
|
||||
<path d="M0 414.75 L27 414.75 L27 409.08 L0 409.08 L0 414.75 ZM26.25 403.93 L23.44 399.37 L3.53 399.37 L0.75 403.93
|
||||
L26.25 403.93 ZM23.44 399.37 L23.44 391.19 L3.53 391.19 L3.53 399.37 L23.44 399.37 ZM26.25 407.7 L26.25
|
||||
403.93 L0.75 403.93 L0.75 407.7 L26.25 407.7 ZM24.83 407.7 A1223.48 394.162 90 0 1 2.17 407.7 L24.83
|
||||
407.7 Z" class="st8"/>
|
||||
</g>
|
||||
<g id="shape24-142" transform="translate(-395.768,392.25) rotate(-90)">
|
||||
<title>Sheet.24</title>
|
||||
<rect x="0" y="414.641" width="0.75" height="0.109091" class="st9"/>
|
||||
</g>
|
||||
<g id="shape25-144" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.25</title>
|
||||
<path d="M1.69 410.93 L2.63 410.93 L2.63 410.39 L1.69 410.39 L1.69 410.93 ZM2.81 410.93 L3.75 410.93 L3.75 410.39
|
||||
L2.81 410.39 L2.81 410.93 ZM3.94 410.93 L4.87 410.93 L4.87 410.39 L3.94 410.39 L3.94 410.93 ZM5.06 410.93
|
||||
L6 410.93 L6 410.39 L5.06 410.39 L5.06 410.93 ZM12.28 410.93 L13.22 410.93 L13.22 410.39 L12.28 410.39
|
||||
L12.28 410.93 ZM13.41 410.93 L14.34 410.93 L14.34 410.39 L13.41 410.39 L13.41 410.93 ZM14.53 410.93
|
||||
L15.47 410.93 L15.47 410.39 L14.53 410.39 L14.53 410.93 ZM15.66 410.93 L16.59 410.93 L16.59 410.39 L15.66
|
||||
410.39 L15.66 410.93 ZM0 412.02 L1.5 412.02 L1.5 411.48 L0 411.48 L0 412.02 ZM1.69 412.02 L2.63 412.02
|
||||
L2.63 411.48 L1.69 411.48 L1.69 412.02 ZM2.81 412.02 L3.75 412.02 L3.75 411.48 L2.81 411.48 L2.81 412.02
|
||||
ZM3.94 412.02 L4.87 412.02 L4.87 411.48 L3.94 411.48 L3.94 412.02 ZM5.06 412.02 L6 412.02 L6 411.48
|
||||
L5.06 411.48 L5.06 412.02 ZM6.19 412.02 L7.12 412.02 L7.12 411.48 L6.19 411.48 L6.19 412.02 ZM7.31 412.02
|
||||
L8.25 412.02 L8.25 411.48 L7.31 411.48 L7.31 412.02 ZM8.44 412.02 L9.37 412.02 L9.37 411.48 L8.44 411.48
|
||||
L8.44 412.02 ZM9.56 412.02 L10.5 412.02 L10.5 411.48 L9.56 411.48 L9.56 412.02 ZM10.69 412.02 L11.62
|
||||
412.02 L11.62 411.48 L10.69 411.48 L10.69 412.02 ZM11.81 412.02 L12.75 412.02 L12.75 411.48 L11.81 411.48
|
||||
L11.81 412.02 ZM12.94 412.02 L13.87 412.02 L13.87 411.48 L12.94 411.48 L12.94 412.02 ZM14.06 412.02
|
||||
L15 412.02 L15 411.48 L14.06 411.48 L14.06 412.02 ZM1.69 412.7 L2.63 412.7 L2.63 412.16 L1.69 412.16
|
||||
L1.69 412.7 ZM2.81 412.7 L3.75 412.7 L3.75 412.16 L2.81 412.16 L2.81 412.7 ZM3.94 412.7 L4.87 412.7
|
||||
L4.87 412.16 L3.94 412.16 L3.94 412.7 ZM5.06 412.7 L6 412.7 L6 412.16 L5.06 412.16 L5.06 412.7 ZM6.19
|
||||
412.7 L7.12 412.7 L7.12 412.16 L6.19 412.16 L6.19 412.7 ZM7.31 412.7 L8.25 412.7 L8.25 412.16 L7.31
|
||||
412.16 L7.31 412.7 ZM8.44 412.7 L9.37 412.7 L9.37 412.16 L8.44 412.16 L8.44 412.7 ZM9.56 412.7 L10.5
|
||||
412.7 L10.5 412.16 L9.56 412.16 L9.56 412.7 ZM10.69 412.7 L11.62 412.7 L11.62 412.16 L10.69 412.16 L10.69
|
||||
412.7 ZM11.81 412.7 L12.75 412.7 L12.75 412.16 L11.81 412.16 L11.81 412.7 ZM12.94 412.7 L13.87 412.7
|
||||
L13.87 412.16 L12.94 412.16 L12.94 412.7 ZM14.06 412.7 L15 412.7 L15 412.16 L14.06 412.16 L14.06 412.7
|
||||
ZM1.69 413.39 L2.63 413.39 L2.63 412.84 L1.69 412.84 L1.69 413.39 ZM2.81 413.39 L3.75 413.39 L3.75 412.84
|
||||
L2.81 412.84 L2.81 413.39 ZM3.94 413.39 L4.87 413.39 L4.87 412.84 L3.94 412.84 L3.94 413.39 ZM5.06 413.39
|
||||
L6 413.39 L6 412.84 L5.06 412.84 L5.06 413.39 ZM6.19 413.39 L7.12 413.39 L7.12 412.84 L6.19 412.84 L6.19
|
||||
413.39 ZM7.31 413.39 L8.25 413.39 L8.25 412.84 L7.31 412.84 L7.31 413.39 ZM8.44 413.39 L9.37 413.39
|
||||
L9.37 412.84 L8.44 412.84 L8.44 413.39 ZM9.56 413.39 L10.5 413.39 L10.5 412.84 L9.56 412.84 L9.56 413.39
|
||||
ZM10.69 413.39 L11.62 413.39 L11.62 412.84 L10.69 412.84 L10.69 413.39 ZM11.81 413.39 L12.75 413.39
|
||||
L12.75 412.84 L11.81 412.84 L11.81 413.39 ZM12.94 413.39 L13.87 413.39 L13.87 412.84 L12.94 412.84 L12.94
|
||||
413.39 ZM14.06 413.39 L15 413.39 L15 412.84 L14.06 412.84 L14.06 413.39 ZM1.69 414.07 L2.63 414.07 L2.63
|
||||
413.52 L1.69 413.52 L1.69 414.07 ZM2.81 414.07 L3.75 414.07 L3.75 413.52 L2.81 413.52 L2.81 414.07 ZM3.94
|
||||
414.07 L4.87 414.07 L4.87 413.52 L3.94 413.52 L3.94 414.07 ZM5.06 414.07 L6 414.07 L6 413.52 L5.06 413.52
|
||||
L5.06 414.07 ZM6.19 414.07 L7.12 414.07 L7.12 413.52 L6.19 413.52 L6.19 414.07 ZM7.31 414.07 L8.25 414.07
|
||||
L8.25 413.52 L7.31 413.52 L7.31 414.07 ZM8.44 414.07 L9.37 414.07 L9.37 413.52 L8.44 413.52 L8.44 414.07
|
||||
ZM9.56 414.07 L10.5 414.07 L10.5 413.52 L9.56 413.52 L9.56 414.07 ZM10.69 414.07 L11.62 414.07 L11.62
|
||||
413.52 L10.69 413.52 L10.69 414.07 ZM11.81 414.07 L12.75 414.07 L12.75 413.52 L11.81 413.52 L11.81 414.07
|
||||
ZM12.94 414.07 L13.87 414.07 L13.87 413.52 L12.94 413.52 L12.94 414.07 ZM3.94 414.75 L11.62 414.75 L11.62
|
||||
414.2 L3.94 414.2 L3.94 414.75 ZM21 414.75 L23.25 414.75 L23.25 414.2 L21 414.2 L21 414.75 ZM23.44 414.75
|
||||
L24.37 414.75 L24.37 414.2 L23.44 414.2 L23.44 414.75 ZM23.44 414.07 L24.37 414.07 L24.37 413.52 L23.44
|
||||
413.52 L23.44 414.07 ZM22.22 414.07 L23.16 414.07 L23.16 413.52 L22.22 413.52 L22.22 414.07 ZM21 414.07
|
||||
L21.94 414.07 L21.94 413.52 L21 413.52 L21 414.07 ZM21 413.39 L21.94 413.39 L21.94 412.84 L21 412.84
|
||||
L21 413.39 ZM21 412.7 L21.94 412.7 L21.94 412.16 L21 412.16 L21 412.7 ZM22.22 412.7 L23.16 412.7 L23.16
|
||||
412.16 L22.22 412.16 L22.22 412.7 ZM23.44 412.7 L24.37 412.7 L24.37 412.16 L23.44 412.16 L23.44 412.7
|
||||
ZM23.44 413.39 L24.37 413.39 L24.37 412.84 L23.44 412.84 L23.44 413.39 ZM22.22 413.39 L23.16 413.39
|
||||
L23.16 412.84 L22.22 412.84 L22.22 413.39 Z" class="st10"/>
|
||||
</g>
|
||||
<g id="shape26-146" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.26</title>
|
||||
<path d="M0 410.93 L0.94 410.93 L0.94 410.39 L0 410.39 L0 410.93 ZM0 412.7 L1.5 412.7 L1.5 412.16 L0 412.16 L0 412.7
|
||||
ZM0 413.39 L1.5 413.39 L1.5 412.84 L0 412.84 L0 413.39 ZM0 414.07 L1.5 414.07 L1.5 413.52 L0 413.52
|
||||
L0 414.07 ZM0 414.75 L1.5 414.75 L1.5 414.2 L0 414.2 L0 414.75 ZM1.69 414.75 L2.63 414.75 L2.63 414.2
|
||||
L1.69 414.2 L1.69 414.75 ZM2.81 414.75 L3.75 414.75 L3.75 414.2 L2.81 414.2 L2.81 414.75 ZM11.81 414.75
|
||||
L12.75 414.75 L12.75 414.2 L11.81 414.2 L11.81 414.75 ZM12.94 414.75 L13.87 414.75 L13.87 414.2 L12.94
|
||||
414.2 L12.94 414.75 ZM14.06 414.75 L15 414.75 L15 414.2 L14.06 414.2 L14.06 414.75 ZM15.19 414.75 L16.69
|
||||
414.75 L16.69 414.2 L15.19 414.2 L15.19 414.75 ZM17.25 414.75 L18.19 414.75 L18.19 414.2 L17.25 414.2
|
||||
L17.25 414.75 ZM18.37 414.75 L19.31 414.75 L19.31 414.2 L18.37 414.2 L18.37 414.75 ZM19.5 414.75 L20.44
|
||||
414.75 L20.44 414.2 L19.5 414.2 L19.5 414.75 ZM24.66 414.75 L25.59 414.75 L25.59 413.55 L24.66 413.55
|
||||
L24.66 414.75 ZM24.66 413.44 L25.59 413.44 L25.59 412.16 L24.66 412.16 L24.66 413.44 ZM24.66 412.02
|
||||
L25.59 412.02 L25.59 411.48 L24.66 411.48 L24.66 412.02 ZM23.44 412.02 L24.37 412.02 L24.37 411.48 L23.44
|
||||
411.48 L23.44 412.02 ZM22.22 412.02 L23.16 412.02 L23.16 411.48 L22.22 411.48 L22.22 412.02 ZM21 412.02
|
||||
L21.94 412.02 L21.94 411.48 L21 411.48 L21 412.02 ZM19.5 412.02 L20.44 412.02 L20.44 411.48 L19.5 411.48
|
||||
L19.5 412.02 ZM19.5 412.7 L20.44 412.7 L20.44 412.16 L19.5 412.16 L19.5 412.7 ZM18.37 414.07 L19.31
|
||||
414.07 L19.31 413.52 L18.37 413.52 L18.37 414.07 ZM14.06 414.06 L16.69 414.06 L16.69 413.51 L14.06 413.51
|
||||
L14.06 414.06 ZM15.19 413.37 L16.69 413.37 L16.69 412.17 L15.19 412.17 L15.19 413.37 ZM17.25 412.7 L18.19
|
||||
412.7 L18.19 412.16 L17.25 412.16 L17.25 412.7 ZM18.37 412.7 L19.31 412.7 L19.31 412.16 L18.37 412.16
|
||||
L18.37 412.7 ZM18.37 412.02 L19.31 412.02 L19.31 411.48 L18.37 411.48 L18.37 412.02 ZM15.19 412.02 L16.69
|
||||
412.02 L16.69 411.48 L15.19 411.48 L15.19 412.02 ZM24.19 410.6 L24.94 410.6 L24.94 410.5 L24.19 410.5
|
||||
L24.19 410.6 ZM23.06 410.6 L23.81 410.6 L23.81 410.5 L23.06 410.5 L23.06 410.6 ZM19.5 410.93 L20.44
|
||||
410.93 L20.44 410.39 L19.5 410.39 L19.5 410.93 ZM18.37 410.93 L19.31 410.93 L19.31 410.39 L18.37 410.39
|
||||
L18.37 410.93 ZM17.25 410.93 L18.19 410.93 L18.19 410.39 L17.25 410.39 L17.25 410.93 ZM10.31 410.93
|
||||
L11.25 410.93 L11.25 410.39 L10.31 410.39 L10.31 410.93 ZM9.19 410.93 L10.12 410.93 L10.12 410.39 L9.19
|
||||
410.39 L9.19 410.93 ZM8.06 410.93 L9 410.93 L9 410.39 L8.06 410.39 L8.06 410.93 ZM6.94 410.93 L7.87
|
||||
410.93 L7.87 410.39 L6.94 410.39 L6.94 410.93 ZM17.25 412.02 L18.19 412.02 L18.19 411.48 L17.25 411.48
|
||||
L17.25 412.02 Z" class="st11"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape28-148" transform="translate(360.293,-324.375)">
|
||||
<title>Sheet.28</title>
|
||||
<path d="M0 414.75 L26.27 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="group29-153" transform="translate(396.375,-256.875)">
|
||||
<title>Terminal.29</title>
|
||||
<g id="shape30-154" transform="translate(-391.186,414.75) rotate(-90)">
|
||||
<title>Sheet.30</title>
|
||||
<path d="M0 414.75 L27 414.75 L27 409.08 L0 409.08 L0 414.75 ZM26.25 403.93 L23.44 399.37 L3.53 399.37 L0.75 403.93
|
||||
L26.25 403.93 ZM23.44 399.37 L23.44 391.19 L3.53 391.19 L3.53 399.37 L23.44 399.37 ZM26.25 407.7 L26.25
|
||||
403.93 L0.75 403.93 L0.75 407.7 L26.25 407.7 ZM24.83 407.7 A1223.48 394.162 90 0 1 2.17 407.7 L24.83
|
||||
407.7 Z" class="st8"/>
|
||||
</g>
|
||||
<g id="shape31-156" transform="translate(-395.768,392.25) rotate(-90)">
|
||||
<title>Sheet.31</title>
|
||||
<rect x="0" y="414.641" width="0.75" height="0.109091" class="st9"/>
|
||||
</g>
|
||||
<g id="shape32-158" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.32</title>
|
||||
<path d="M1.69 410.93 L2.63 410.93 L2.63 410.39 L1.69 410.39 L1.69 410.93 ZM2.81 410.93 L3.75 410.93 L3.75 410.39
|
||||
L2.81 410.39 L2.81 410.93 ZM3.94 410.93 L4.87 410.93 L4.87 410.39 L3.94 410.39 L3.94 410.93 ZM5.06 410.93
|
||||
L6 410.93 L6 410.39 L5.06 410.39 L5.06 410.93 ZM12.28 410.93 L13.22 410.93 L13.22 410.39 L12.28 410.39
|
||||
L12.28 410.93 ZM13.41 410.93 L14.34 410.93 L14.34 410.39 L13.41 410.39 L13.41 410.93 ZM14.53 410.93
|
||||
L15.47 410.93 L15.47 410.39 L14.53 410.39 L14.53 410.93 ZM15.66 410.93 L16.59 410.93 L16.59 410.39 L15.66
|
||||
410.39 L15.66 410.93 ZM0 412.02 L1.5 412.02 L1.5 411.48 L0 411.48 L0 412.02 ZM1.69 412.02 L2.63 412.02
|
||||
L2.63 411.48 L1.69 411.48 L1.69 412.02 ZM2.81 412.02 L3.75 412.02 L3.75 411.48 L2.81 411.48 L2.81 412.02
|
||||
ZM3.94 412.02 L4.87 412.02 L4.87 411.48 L3.94 411.48 L3.94 412.02 ZM5.06 412.02 L6 412.02 L6 411.48
|
||||
L5.06 411.48 L5.06 412.02 ZM6.19 412.02 L7.12 412.02 L7.12 411.48 L6.19 411.48 L6.19 412.02 ZM7.31 412.02
|
||||
L8.25 412.02 L8.25 411.48 L7.31 411.48 L7.31 412.02 ZM8.44 412.02 L9.37 412.02 L9.37 411.48 L8.44 411.48
|
||||
L8.44 412.02 ZM9.56 412.02 L10.5 412.02 L10.5 411.48 L9.56 411.48 L9.56 412.02 ZM10.69 412.02 L11.62
|
||||
412.02 L11.62 411.48 L10.69 411.48 L10.69 412.02 ZM11.81 412.02 L12.75 412.02 L12.75 411.48 L11.81 411.48
|
||||
L11.81 412.02 ZM12.94 412.02 L13.87 412.02 L13.87 411.48 L12.94 411.48 L12.94 412.02 ZM14.06 412.02
|
||||
L15 412.02 L15 411.48 L14.06 411.48 L14.06 412.02 ZM1.69 412.7 L2.63 412.7 L2.63 412.16 L1.69 412.16
|
||||
L1.69 412.7 ZM2.81 412.7 L3.75 412.7 L3.75 412.16 L2.81 412.16 L2.81 412.7 ZM3.94 412.7 L4.87 412.7
|
||||
L4.87 412.16 L3.94 412.16 L3.94 412.7 ZM5.06 412.7 L6 412.7 L6 412.16 L5.06 412.16 L5.06 412.7 ZM6.19
|
||||
412.7 L7.12 412.7 L7.12 412.16 L6.19 412.16 L6.19 412.7 ZM7.31 412.7 L8.25 412.7 L8.25 412.16 L7.31
|
||||
412.16 L7.31 412.7 ZM8.44 412.7 L9.37 412.7 L9.37 412.16 L8.44 412.16 L8.44 412.7 ZM9.56 412.7 L10.5
|
||||
412.7 L10.5 412.16 L9.56 412.16 L9.56 412.7 ZM10.69 412.7 L11.62 412.7 L11.62 412.16 L10.69 412.16 L10.69
|
||||
412.7 ZM11.81 412.7 L12.75 412.7 L12.75 412.16 L11.81 412.16 L11.81 412.7 ZM12.94 412.7 L13.87 412.7
|
||||
L13.87 412.16 L12.94 412.16 L12.94 412.7 ZM14.06 412.7 L15 412.7 L15 412.16 L14.06 412.16 L14.06 412.7
|
||||
ZM1.69 413.39 L2.63 413.39 L2.63 412.84 L1.69 412.84 L1.69 413.39 ZM2.81 413.39 L3.75 413.39 L3.75 412.84
|
||||
L2.81 412.84 L2.81 413.39 ZM3.94 413.39 L4.87 413.39 L4.87 412.84 L3.94 412.84 L3.94 413.39 ZM5.06 413.39
|
||||
L6 413.39 L6 412.84 L5.06 412.84 L5.06 413.39 ZM6.19 413.39 L7.12 413.39 L7.12 412.84 L6.19 412.84 L6.19
|
||||
413.39 ZM7.31 413.39 L8.25 413.39 L8.25 412.84 L7.31 412.84 L7.31 413.39 ZM8.44 413.39 L9.37 413.39
|
||||
L9.37 412.84 L8.44 412.84 L8.44 413.39 ZM9.56 413.39 L10.5 413.39 L10.5 412.84 L9.56 412.84 L9.56 413.39
|
||||
ZM10.69 413.39 L11.62 413.39 L11.62 412.84 L10.69 412.84 L10.69 413.39 ZM11.81 413.39 L12.75 413.39
|
||||
L12.75 412.84 L11.81 412.84 L11.81 413.39 ZM12.94 413.39 L13.87 413.39 L13.87 412.84 L12.94 412.84 L12.94
|
||||
413.39 ZM14.06 413.39 L15 413.39 L15 412.84 L14.06 412.84 L14.06 413.39 ZM1.69 414.07 L2.63 414.07 L2.63
|
||||
413.52 L1.69 413.52 L1.69 414.07 ZM2.81 414.07 L3.75 414.07 L3.75 413.52 L2.81 413.52 L2.81 414.07 ZM3.94
|
||||
414.07 L4.87 414.07 L4.87 413.52 L3.94 413.52 L3.94 414.07 ZM5.06 414.07 L6 414.07 L6 413.52 L5.06 413.52
|
||||
L5.06 414.07 ZM6.19 414.07 L7.12 414.07 L7.12 413.52 L6.19 413.52 L6.19 414.07 ZM7.31 414.07 L8.25 414.07
|
||||
L8.25 413.52 L7.31 413.52 L7.31 414.07 ZM8.44 414.07 L9.37 414.07 L9.37 413.52 L8.44 413.52 L8.44 414.07
|
||||
ZM9.56 414.07 L10.5 414.07 L10.5 413.52 L9.56 413.52 L9.56 414.07 ZM10.69 414.07 L11.62 414.07 L11.62
|
||||
413.52 L10.69 413.52 L10.69 414.07 ZM11.81 414.07 L12.75 414.07 L12.75 413.52 L11.81 413.52 L11.81 414.07
|
||||
ZM12.94 414.07 L13.87 414.07 L13.87 413.52 L12.94 413.52 L12.94 414.07 ZM3.94 414.75 L11.62 414.75 L11.62
|
||||
414.2 L3.94 414.2 L3.94 414.75 ZM21 414.75 L23.25 414.75 L23.25 414.2 L21 414.2 L21 414.75 ZM23.44 414.75
|
||||
L24.37 414.75 L24.37 414.2 L23.44 414.2 L23.44 414.75 ZM23.44 414.07 L24.37 414.07 L24.37 413.52 L23.44
|
||||
413.52 L23.44 414.07 ZM22.22 414.07 L23.16 414.07 L23.16 413.52 L22.22 413.52 L22.22 414.07 ZM21 414.07
|
||||
L21.94 414.07 L21.94 413.52 L21 413.52 L21 414.07 ZM21 413.39 L21.94 413.39 L21.94 412.84 L21 412.84
|
||||
L21 413.39 ZM21 412.7 L21.94 412.7 L21.94 412.16 L21 412.16 L21 412.7 ZM22.22 412.7 L23.16 412.7 L23.16
|
||||
412.16 L22.22 412.16 L22.22 412.7 ZM23.44 412.7 L24.37 412.7 L24.37 412.16 L23.44 412.16 L23.44 412.7
|
||||
ZM23.44 413.39 L24.37 413.39 L24.37 412.84 L23.44 412.84 L23.44 413.39 ZM22.22 413.39 L23.16 413.39
|
||||
L23.16 412.84 L22.22 412.84 L22.22 413.39 Z" class="st10"/>
|
||||
</g>
|
||||
<g id="shape33-160" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.33</title>
|
||||
<path d="M0 410.93 L0.94 410.93 L0.94 410.39 L0 410.39 L0 410.93 ZM0 412.7 L1.5 412.7 L1.5 412.16 L0 412.16 L0 412.7
|
||||
ZM0 413.39 L1.5 413.39 L1.5 412.84 L0 412.84 L0 413.39 ZM0 414.07 L1.5 414.07 L1.5 413.52 L0 413.52
|
||||
L0 414.07 ZM0 414.75 L1.5 414.75 L1.5 414.2 L0 414.2 L0 414.75 ZM1.69 414.75 L2.63 414.75 L2.63 414.2
|
||||
L1.69 414.2 L1.69 414.75 ZM2.81 414.75 L3.75 414.75 L3.75 414.2 L2.81 414.2 L2.81 414.75 ZM11.81 414.75
|
||||
L12.75 414.75 L12.75 414.2 L11.81 414.2 L11.81 414.75 ZM12.94 414.75 L13.87 414.75 L13.87 414.2 L12.94
|
||||
414.2 L12.94 414.75 ZM14.06 414.75 L15 414.75 L15 414.2 L14.06 414.2 L14.06 414.75 ZM15.19 414.75 L16.69
|
||||
414.75 L16.69 414.2 L15.19 414.2 L15.19 414.75 ZM17.25 414.75 L18.19 414.75 L18.19 414.2 L17.25 414.2
|
||||
L17.25 414.75 ZM18.37 414.75 L19.31 414.75 L19.31 414.2 L18.37 414.2 L18.37 414.75 ZM19.5 414.75 L20.44
|
||||
414.75 L20.44 414.2 L19.5 414.2 L19.5 414.75 ZM24.66 414.75 L25.59 414.75 L25.59 413.55 L24.66 413.55
|
||||
L24.66 414.75 ZM24.66 413.44 L25.59 413.44 L25.59 412.16 L24.66 412.16 L24.66 413.44 ZM24.66 412.02
|
||||
L25.59 412.02 L25.59 411.48 L24.66 411.48 L24.66 412.02 ZM23.44 412.02 L24.37 412.02 L24.37 411.48 L23.44
|
||||
411.48 L23.44 412.02 ZM22.22 412.02 L23.16 412.02 L23.16 411.48 L22.22 411.48 L22.22 412.02 ZM21 412.02
|
||||
L21.94 412.02 L21.94 411.48 L21 411.48 L21 412.02 ZM19.5 412.02 L20.44 412.02 L20.44 411.48 L19.5 411.48
|
||||
L19.5 412.02 ZM19.5 412.7 L20.44 412.7 L20.44 412.16 L19.5 412.16 L19.5 412.7 ZM18.37 414.07 L19.31
|
||||
414.07 L19.31 413.52 L18.37 413.52 L18.37 414.07 ZM14.06 414.06 L16.69 414.06 L16.69 413.51 L14.06 413.51
|
||||
L14.06 414.06 ZM15.19 413.37 L16.69 413.37 L16.69 412.17 L15.19 412.17 L15.19 413.37 ZM17.25 412.7 L18.19
|
||||
412.7 L18.19 412.16 L17.25 412.16 L17.25 412.7 ZM18.37 412.7 L19.31 412.7 L19.31 412.16 L18.37 412.16
|
||||
L18.37 412.7 ZM18.37 412.02 L19.31 412.02 L19.31 411.48 L18.37 411.48 L18.37 412.02 ZM15.19 412.02 L16.69
|
||||
412.02 L16.69 411.48 L15.19 411.48 L15.19 412.02 ZM24.19 410.6 L24.94 410.6 L24.94 410.5 L24.19 410.5
|
||||
L24.19 410.6 ZM23.06 410.6 L23.81 410.6 L23.81 410.5 L23.06 410.5 L23.06 410.6 ZM19.5 410.93 L20.44
|
||||
410.93 L20.44 410.39 L19.5 410.39 L19.5 410.93 ZM18.37 410.93 L19.31 410.93 L19.31 410.39 L18.37 410.39
|
||||
L18.37 410.93 ZM17.25 410.93 L18.19 410.93 L18.19 410.39 L17.25 410.39 L17.25 410.93 ZM10.31 410.93
|
||||
L11.25 410.93 L11.25 410.39 L10.31 410.39 L10.31 410.93 ZM9.19 410.93 L10.12 410.93 L10.12 410.39 L9.19
|
||||
410.39 L9.19 410.93 ZM8.06 410.93 L9 410.93 L9 410.39 L8.06 410.39 L8.06 410.93 ZM6.94 410.93 L7.87
|
||||
410.93 L7.87 410.39 L6.94 410.39 L6.94 410.93 ZM17.25 412.02 L18.19 412.02 L18.19 411.48 L17.25 411.48
|
||||
L17.25 412.02 Z" class="st11"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape35-162" transform="translate(359.23,-270.375)">
|
||||
<title>Sheet.35</title>
|
||||
<path d="M0 414.75 L27.34 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape55-167" transform="translate(360.375,-324.375)">
|
||||
<title>Sheet.55</title>
|
||||
<desc>RS-232</desc>
|
||||
<rect x="0" y="405.75" width="27" height="9" class="st12"/>
|
||||
<text x="4.91" y="412.05" class="st14">RS-232</text> </g>
|
||||
<g id="shape63-170" transform="translate(359.311,-270.375)">
|
||||
<title>Sheet.63</title>
|
||||
<desc>RS-232</desc>
|
||||
<rect x="0" y="405.75" width="27" height="9" class="st12"/>
|
||||
<text x="4.91" y="412.05" class="st14">RS-232</text> </g>
|
||||
<g id="shape64-173" transform="translate(360.375,-108.375)">
|
||||
<title>Sheet.64</title>
|
||||
<desc>VGA</desc>
|
||||
<rect x="0" y="405.75" width="27" height="9" class="st12"/>
|
||||
<text x="8" y="412.05" class="st14">VGA</text> </g>
|
||||
<g id="shape65-176" transform="translate(360.375,-72.375)">
|
||||
<title>Sheet.65</title>
|
||||
<desc>VGA</desc>
|
||||
<rect x="0" y="405.75" width="27" height="9" class="st12"/>
|
||||
<text x="8" y="412.05" class="st14">VGA</text> </g>
|
||||
<g id="shape66-179" transform="translate(360.375,-36.375)">
|
||||
<title>Sheet.66</title>
|
||||
<desc>NTSC</desc>
|
||||
<rect x="0" y="405.75" width="27" height="9" class="st12"/>
|
||||
<text x="7.03" y="412.05" class="st14">NTSC</text> </g>
|
||||
<g id="shape67-182" transform="translate(108.375,-297.375)">
|
||||
<title>Sheet.67</title>
|
||||
<desc>UART</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="15.42" y="408.75" class="st2">UART</text> </g>
|
||||
<g id="shape68-185" transform="translate(108.375,-279.375)">
|
||||
<title>Sheet.68</title>
|
||||
<desc>ASCI</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="17.63" y="408.75" class="st2">ASCI</text> </g>
|
||||
<g id="shape69-188" transform="translate(108.375,-261.375)">
|
||||
<title>Sheet.69</title>
|
||||
<desc>VDU</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="17.63" y="408.75" class="st2">VDU</text> </g>
|
||||
<g id="shape74-191" transform="translate(189.375,-81.375)">
|
||||
<title>Sheet.74</title>
|
||||
<desc>SY6545</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="11.9" y="408.75" class="st2">SY6545</text> </g>
|
||||
<g id="shape75-194" transform="translate(189.375,-63.375)">
|
||||
<title>Sheet.75</title>
|
||||
<desc>MC8563</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="9.85" y="408.75" class="st2">MC8563</text> </g>
|
||||
<g id="shape76-197" transform="translate(189.375,-45.375)">
|
||||
<title>Sheet.76</title>
|
||||
<desc>uPD7220</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="8.37" y="408.75" class="st2">uPD7220</text> </g>
|
||||
<g id="shape79-200" transform="translate(0.375,-396.375)">
|
||||
<title>Sheet.79</title>
|
||||
<desc>Character / Emulation / Video Services</desc>
|
||||
<rect x="0" y="396.75" width="432" height="18" class="st1"/>
|
||||
<text x="103.64" y="409.95" class="st15">Character / Emulation / Video Services</text> </g>
|
||||
<g id="shape82-203" transform="translate(54.375,-360.375)">
|
||||
<title>Sheet.82</title>
|
||||
<desc>HBIOS</desc>
|
||||
<rect x="0" y="396.75" width="225" height="18" class="st12"/>
|
||||
<text x="99.47" y="408.75" class="st2">HBIOS</text> </g>
|
||||
<g id="shape83-206" transform="translate(297.375,-360.375)">
|
||||
<title>Sheet.83</title>
|
||||
<desc>HARDWARE</desc>
|
||||
<rect x="0" y="396.75" width="135" height="18" class="st12"/>
|
||||
<text x="42.53" y="408.75" class="st2">HARDWARE</text> </g>
|
||||
<g id="shape84-209" transform="translate(189.375,-27.375)">
|
||||
<title>Sheet.84</title>
|
||||
<desc>TMS9918</desc>
|
||||
<rect x="0" y="396.75" width="54" height="18" class="st1"/>
|
||||
<text x="7.65" y="408.75" class="st2">TMS9918</text> </g>
|
||||
<g id="group87-212" transform="translate(395.311,-130.875)">
|
||||
<title>Terminal.87</title>
|
||||
<g id="shape88-213" transform="translate(-391.186,414.75) rotate(-90)">
|
||||
<title>Sheet.88</title>
|
||||
<path d="M0 414.75 L27 414.75 L27 409.08 L0 409.08 L0 414.75 ZM26.25 403.93 L23.44 399.37 L3.53 399.37 L0.75 403.93
|
||||
L26.25 403.93 ZM23.44 399.37 L23.44 391.19 L3.53 391.19 L3.53 399.37 L23.44 399.37 ZM26.25 407.7 L26.25
|
||||
403.93 L0.75 403.93 L0.75 407.7 L26.25 407.7 ZM24.83 407.7 A1223.48 394.162 90 0 1 2.17 407.7 L24.83
|
||||
407.7 Z" class="st8"/>
|
||||
</g>
|
||||
<g id="shape89-215" transform="translate(-395.768,392.25) rotate(-90)">
|
||||
<title>Sheet.89</title>
|
||||
<rect x="0" y="414.641" width="0.75" height="0.109091" class="st9"/>
|
||||
</g>
|
||||
<g id="shape90-217" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.90</title>
|
||||
<path d="M1.69 410.93 L2.63 410.93 L2.63 410.39 L1.69 410.39 L1.69 410.93 ZM2.81 410.93 L3.75 410.93 L3.75 410.39
|
||||
L2.81 410.39 L2.81 410.93 ZM3.94 410.93 L4.87 410.93 L4.87 410.39 L3.94 410.39 L3.94 410.93 ZM5.06 410.93
|
||||
L6 410.93 L6 410.39 L5.06 410.39 L5.06 410.93 ZM12.28 410.93 L13.22 410.93 L13.22 410.39 L12.28 410.39
|
||||
L12.28 410.93 ZM13.41 410.93 L14.34 410.93 L14.34 410.39 L13.41 410.39 L13.41 410.93 ZM14.53 410.93
|
||||
L15.47 410.93 L15.47 410.39 L14.53 410.39 L14.53 410.93 ZM15.66 410.93 L16.59 410.93 L16.59 410.39 L15.66
|
||||
410.39 L15.66 410.93 ZM0 412.02 L1.5 412.02 L1.5 411.48 L0 411.48 L0 412.02 ZM1.69 412.02 L2.63 412.02
|
||||
L2.63 411.48 L1.69 411.48 L1.69 412.02 ZM2.81 412.02 L3.75 412.02 L3.75 411.48 L2.81 411.48 L2.81 412.02
|
||||
ZM3.94 412.02 L4.87 412.02 L4.87 411.48 L3.94 411.48 L3.94 412.02 ZM5.06 412.02 L6 412.02 L6 411.48
|
||||
L5.06 411.48 L5.06 412.02 ZM6.19 412.02 L7.12 412.02 L7.12 411.48 L6.19 411.48 L6.19 412.02 ZM7.31 412.02
|
||||
L8.25 412.02 L8.25 411.48 L7.31 411.48 L7.31 412.02 ZM8.44 412.02 L9.37 412.02 L9.37 411.48 L8.44 411.48
|
||||
L8.44 412.02 ZM9.56 412.02 L10.5 412.02 L10.5 411.48 L9.56 411.48 L9.56 412.02 ZM10.69 412.02 L11.62
|
||||
412.02 L11.62 411.48 L10.69 411.48 L10.69 412.02 ZM11.81 412.02 L12.75 412.02 L12.75 411.48 L11.81 411.48
|
||||
L11.81 412.02 ZM12.94 412.02 L13.87 412.02 L13.87 411.48 L12.94 411.48 L12.94 412.02 ZM14.06 412.02
|
||||
L15 412.02 L15 411.48 L14.06 411.48 L14.06 412.02 ZM1.69 412.7 L2.63 412.7 L2.63 412.16 L1.69 412.16
|
||||
L1.69 412.7 ZM2.81 412.7 L3.75 412.7 L3.75 412.16 L2.81 412.16 L2.81 412.7 ZM3.94 412.7 L4.87 412.7
|
||||
L4.87 412.16 L3.94 412.16 L3.94 412.7 ZM5.06 412.7 L6 412.7 L6 412.16 L5.06 412.16 L5.06 412.7 ZM6.19
|
||||
412.7 L7.12 412.7 L7.12 412.16 L6.19 412.16 L6.19 412.7 ZM7.31 412.7 L8.25 412.7 L8.25 412.16 L7.31
|
||||
412.16 L7.31 412.7 ZM8.44 412.7 L9.37 412.7 L9.37 412.16 L8.44 412.16 L8.44 412.7 ZM9.56 412.7 L10.5
|
||||
412.7 L10.5 412.16 L9.56 412.16 L9.56 412.7 ZM10.69 412.7 L11.62 412.7 L11.62 412.16 L10.69 412.16 L10.69
|
||||
412.7 ZM11.81 412.7 L12.75 412.7 L12.75 412.16 L11.81 412.16 L11.81 412.7 ZM12.94 412.7 L13.87 412.7
|
||||
L13.87 412.16 L12.94 412.16 L12.94 412.7 ZM14.06 412.7 L15 412.7 L15 412.16 L14.06 412.16 L14.06 412.7
|
||||
ZM1.69 413.39 L2.63 413.39 L2.63 412.84 L1.69 412.84 L1.69 413.39 ZM2.81 413.39 L3.75 413.39 L3.75 412.84
|
||||
L2.81 412.84 L2.81 413.39 ZM3.94 413.39 L4.87 413.39 L4.87 412.84 L3.94 412.84 L3.94 413.39 ZM5.06 413.39
|
||||
L6 413.39 L6 412.84 L5.06 412.84 L5.06 413.39 ZM6.19 413.39 L7.12 413.39 L7.12 412.84 L6.19 412.84 L6.19
|
||||
413.39 ZM7.31 413.39 L8.25 413.39 L8.25 412.84 L7.31 412.84 L7.31 413.39 ZM8.44 413.39 L9.37 413.39
|
||||
L9.37 412.84 L8.44 412.84 L8.44 413.39 ZM9.56 413.39 L10.5 413.39 L10.5 412.84 L9.56 412.84 L9.56 413.39
|
||||
ZM10.69 413.39 L11.62 413.39 L11.62 412.84 L10.69 412.84 L10.69 413.39 ZM11.81 413.39 L12.75 413.39
|
||||
L12.75 412.84 L11.81 412.84 L11.81 413.39 ZM12.94 413.39 L13.87 413.39 L13.87 412.84 L12.94 412.84 L12.94
|
||||
413.39 ZM14.06 413.39 L15 413.39 L15 412.84 L14.06 412.84 L14.06 413.39 ZM1.69 414.07 L2.63 414.07 L2.63
|
||||
413.52 L1.69 413.52 L1.69 414.07 ZM2.81 414.07 L3.75 414.07 L3.75 413.52 L2.81 413.52 L2.81 414.07 ZM3.94
|
||||
414.07 L4.87 414.07 L4.87 413.52 L3.94 413.52 L3.94 414.07 ZM5.06 414.07 L6 414.07 L6 413.52 L5.06 413.52
|
||||
L5.06 414.07 ZM6.19 414.07 L7.12 414.07 L7.12 413.52 L6.19 413.52 L6.19 414.07 ZM7.31 414.07 L8.25 414.07
|
||||
L8.25 413.52 L7.31 413.52 L7.31 414.07 ZM8.44 414.07 L9.37 414.07 L9.37 413.52 L8.44 413.52 L8.44 414.07
|
||||
ZM9.56 414.07 L10.5 414.07 L10.5 413.52 L9.56 413.52 L9.56 414.07 ZM10.69 414.07 L11.62 414.07 L11.62
|
||||
413.52 L10.69 413.52 L10.69 414.07 ZM11.81 414.07 L12.75 414.07 L12.75 413.52 L11.81 413.52 L11.81 414.07
|
||||
ZM12.94 414.07 L13.87 414.07 L13.87 413.52 L12.94 413.52 L12.94 414.07 ZM3.94 414.75 L11.62 414.75 L11.62
|
||||
414.2 L3.94 414.2 L3.94 414.75 ZM21 414.75 L23.25 414.75 L23.25 414.2 L21 414.2 L21 414.75 ZM23.44 414.75
|
||||
L24.37 414.75 L24.37 414.2 L23.44 414.2 L23.44 414.75 ZM23.44 414.07 L24.37 414.07 L24.37 413.52 L23.44
|
||||
413.52 L23.44 414.07 ZM22.22 414.07 L23.16 414.07 L23.16 413.52 L22.22 413.52 L22.22 414.07 ZM21 414.07
|
||||
L21.94 414.07 L21.94 413.52 L21 413.52 L21 414.07 ZM21 413.39 L21.94 413.39 L21.94 412.84 L21 412.84
|
||||
L21 413.39 ZM21 412.7 L21.94 412.7 L21.94 412.16 L21 412.16 L21 412.7 ZM22.22 412.7 L23.16 412.7 L23.16
|
||||
412.16 L22.22 412.16 L22.22 412.7 ZM23.44 412.7 L24.37 412.7 L24.37 412.16 L23.44 412.16 L23.44 412.7
|
||||
ZM23.44 413.39 L24.37 413.39 L24.37 412.84 L23.44 412.84 L23.44 413.39 ZM22.22 413.39 L23.16 413.39
|
||||
L23.16 412.84 L22.22 412.84 L22.22 413.39 Z" class="st10"/>
|
||||
</g>
|
||||
<g id="shape91-219" transform="translate(-391.623,414.188) rotate(-90)">
|
||||
<title>Sheet.91</title>
|
||||
<path d="M0 410.93 L0.94 410.93 L0.94 410.39 L0 410.39 L0 410.93 ZM0 412.7 L1.5 412.7 L1.5 412.16 L0 412.16 L0 412.7
|
||||
ZM0 413.39 L1.5 413.39 L1.5 412.84 L0 412.84 L0 413.39 ZM0 414.07 L1.5 414.07 L1.5 413.52 L0 413.52
|
||||
L0 414.07 ZM0 414.75 L1.5 414.75 L1.5 414.2 L0 414.2 L0 414.75 ZM1.69 414.75 L2.63 414.75 L2.63 414.2
|
||||
L1.69 414.2 L1.69 414.75 ZM2.81 414.75 L3.75 414.75 L3.75 414.2 L2.81 414.2 L2.81 414.75 ZM11.81 414.75
|
||||
L12.75 414.75 L12.75 414.2 L11.81 414.2 L11.81 414.75 ZM12.94 414.75 L13.87 414.75 L13.87 414.2 L12.94
|
||||
414.2 L12.94 414.75 ZM14.06 414.75 L15 414.75 L15 414.2 L14.06 414.2 L14.06 414.75 ZM15.19 414.75 L16.69
|
||||
414.75 L16.69 414.2 L15.19 414.2 L15.19 414.75 ZM17.25 414.75 L18.19 414.75 L18.19 414.2 L17.25 414.2
|
||||
L17.25 414.75 ZM18.37 414.75 L19.31 414.75 L19.31 414.2 L18.37 414.2 L18.37 414.75 ZM19.5 414.75 L20.44
|
||||
414.75 L20.44 414.2 L19.5 414.2 L19.5 414.75 ZM24.66 414.75 L25.59 414.75 L25.59 413.55 L24.66 413.55
|
||||
L24.66 414.75 ZM24.66 413.44 L25.59 413.44 L25.59 412.16 L24.66 412.16 L24.66 413.44 ZM24.66 412.02
|
||||
L25.59 412.02 L25.59 411.48 L24.66 411.48 L24.66 412.02 ZM23.44 412.02 L24.37 412.02 L24.37 411.48 L23.44
|
||||
411.48 L23.44 412.02 ZM22.22 412.02 L23.16 412.02 L23.16 411.48 L22.22 411.48 L22.22 412.02 ZM21 412.02
|
||||
L21.94 412.02 L21.94 411.48 L21 411.48 L21 412.02 ZM19.5 412.02 L20.44 412.02 L20.44 411.48 L19.5 411.48
|
||||
L19.5 412.02 ZM19.5 412.7 L20.44 412.7 L20.44 412.16 L19.5 412.16 L19.5 412.7 ZM18.37 414.07 L19.31
|
||||
414.07 L19.31 413.52 L18.37 413.52 L18.37 414.07 ZM14.06 414.06 L16.69 414.06 L16.69 413.51 L14.06 413.51
|
||||
L14.06 414.06 ZM15.19 413.37 L16.69 413.37 L16.69 412.17 L15.19 412.17 L15.19 413.37 ZM17.25 412.7 L18.19
|
||||
412.7 L18.19 412.16 L17.25 412.16 L17.25 412.7 ZM18.37 412.7 L19.31 412.7 L19.31 412.16 L18.37 412.16
|
||||
L18.37 412.7 ZM18.37 412.02 L19.31 412.02 L19.31 411.48 L18.37 411.48 L18.37 412.02 ZM15.19 412.02 L16.69
|
||||
412.02 L16.69 411.48 L15.19 411.48 L15.19 412.02 ZM24.19 410.6 L24.94 410.6 L24.94 410.5 L24.19 410.5
|
||||
L24.19 410.6 ZM23.06 410.6 L23.81 410.6 L23.81 410.5 L23.06 410.5 L23.06 410.6 ZM19.5 410.93 L20.44
|
||||
410.93 L20.44 410.39 L19.5 410.39 L19.5 410.93 ZM18.37 410.93 L19.31 410.93 L19.31 410.39 L18.37 410.39
|
||||
L18.37 410.93 ZM17.25 410.93 L18.19 410.93 L18.19 410.39 L17.25 410.39 L17.25 410.93 ZM10.31 410.93
|
||||
L11.25 410.93 L11.25 410.39 L10.31 410.39 L10.31 410.93 ZM9.19 410.93 L10.12 410.93 L10.12 410.39 L9.19
|
||||
410.39 L9.19 410.93 ZM8.06 410.93 L9 410.93 L9 410.39 L8.06 410.39 L8.06 410.93 ZM6.94 410.93 L7.87
|
||||
410.93 L7.87 410.39 L6.94 410.39 L6.94 410.93 ZM17.25 412.02 L18.19 412.02 L18.19 411.48 L17.25 411.48
|
||||
L17.25 412.02 Z" class="st11"/>
|
||||
</g>
|
||||
</g>
|
||||
<g id="shape92-221" transform="translate(314.311,-135.375)">
|
||||
<title>Sheet.92</title>
|
||||
<desc>VDU</desc>
|
||||
<rect x="0" y="396.75" width="44.9182" height="18" class="st6"/>
|
||||
<text x="14.96" y="408.15" class="st7">VDU</text> </g>
|
||||
<g id="shape93-224" transform="translate(359.23,-144.375)">
|
||||
<title>Sheet.93</title>
|
||||
<path d="M0 414.75 L26.27 414.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape94-229" transform="translate(359.311,-144.375)">
|
||||
<title>Sheet.94</title>
|
||||
<desc>NTSC</desc>
|
||||
<rect x="0" y="405.75" width="27" height="9" class="st12"/>
|
||||
<text x="7.03" y="412.05" class="st14">NTSC</text> </g>
|
||||
<g id="shape96-232" transform="translate(243.375,-90.375)">
|
||||
<title>Sheet.96</title>
|
||||
<path d="M0 414.75 L4.05 414.75 A4.05 4.05 -180 0 0 8.1 410.7 L8.1 365.25 A4.5 4.5 0 0 1 12.6 360.75 L61.13 360.75"
|
||||
class="st4"/>
|
||||
</g>
|
||||
<g id="shape7-237" transform="translate(243.375,-72.375)">
|
||||
<title>Sheet.7</title>
|
||||
<path d="M0 414.75 L13.5 414.75 A4.5 4.5 -180 0 0 18 410.25 L18 383.25 A4.5 4.5 0 0 1 22.5 378.75 L62.19 378.75"
|
||||
class="st4"/>
|
||||
</g>
|
||||
<g id="shape17-242" transform="translate(243.375,-54.375)">
|
||||
<title>Sheet.17</title>
|
||||
<path d="M0 414.75 L22.5 414.75 A4.5 4.5 -180 0 0 27 410.25 L27 401.25 A4.5 4.5 0 0 1 31.5 396.75 L62.19 396.75"
|
||||
class="st4"/>
|
||||
</g>
|
||||
<g id="shape3-247" transform="translate(162.375,-306.375)">
|
||||
<title>Sheet.3</title>
|
||||
<path d="M0 414.75 L31.5 414.75 A4.5 4.5 -180 0 0 36 410.25 L36 401.25 A4.5 4.5 0 0 1 40.5 396.75 L143.19 396.75"
|
||||
class="st4"/>
|
||||
</g>
|
||||
<g id="shape4-252" transform="translate(162.375,-270.375)">
|
||||
<title>Sheet.4</title>
|
||||
<path d="M0 396.75 L31.5 396.75 A4.5 4.5 0 0 1 36 401.25 L36 410.25 A4.5 4.5 -180 0 0 40.5 414.75 L142.13 414.75"
|
||||
class="st4"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.0 KiB |
@@ -1,15 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by Microsoft Visio, SVG Export WBW.svg Page-1 -->
|
||||
<!-- Generated by Microsoft Visio, SVG Export Logo.svg Page-1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
|
||||
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="8.5in" height="11in" viewBox="0 0 612 792"
|
||||
xml:space="preserve" color-interpolation-filters="sRGB" class="st3">
|
||||
<v:documentProperties v:langID="1033" v:viewMarkup="false">
|
||||
<v:userDefs>
|
||||
<v:ud v:nameU="msvNoAutoConnect" v:val="VT0(1):26"/>
|
||||
</v:userDefs>
|
||||
</v:documentProperties>
|
||||
|
||||
width="3.76042in" height="1.26042in" viewBox="0 0 270.75 90.75" xml:space="preserve" color-interpolation-filters="sRGB"
|
||||
class="st3">
|
||||
<style type="text/css">
|
||||
<![CDATA[
|
||||
.st1 {fill:#4bacc6;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:0;stroke-width:0.75}
|
||||
@@ -18,52 +12,51 @@
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<g v:mID="0" v:index="1" v:groupContext="foregroundPage">
|
||||
<g>
|
||||
<title>Page-1</title>
|
||||
<v:pageProperties v:drawingScale="1" v:pageScale="1" v:drawingUnits="19" v:shadowOffsetX="9" v:shadowOffsetY="-9"/>
|
||||
<g id="shape34-1" v:mID="34" v:groupContext="shape" transform="translate(18,-684)">
|
||||
<g id="shape34-1" transform="translate(0.375,-0.375)">
|
||||
<title>Sheet.34</title>
|
||||
<rect x="0" y="702" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="0.75" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape35-3" v:mID="35" v:groupContext="shape" transform="translate(54,-684)">
|
||||
<g id="shape35-3" transform="translate(36.375,-0.375)">
|
||||
<title>Sheet.35</title>
|
||||
<rect x="0" y="738" width="18" height="54" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="36.75" width="18" height="54" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape36-5" v:mID="36" v:groupContext="shape" transform="translate(90,-684)">
|
||||
<g id="shape36-5" transform="translate(72.375,-0.375)">
|
||||
<title>Sheet.36</title>
|
||||
<rect x="0" y="702" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="0.75" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape38-7" v:mID="38" v:groupContext="shape" transform="translate(234,-684)">
|
||||
<g id="shape38-7" transform="translate(216.375,-0.375)">
|
||||
<title>Sheet.38</title>
|
||||
<rect x="0" y="738" width="18" height="54" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="36.75" width="18" height="54" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape39-9" v:mID="39" v:groupContext="shape" transform="translate(270,-684)">
|
||||
<g id="shape39-9" transform="translate(252.375,-0.375)">
|
||||
<title>Sheet.39</title>
|
||||
<rect x="0" y="702" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="0.75" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape44-11" v:mID="44" v:groupContext="shape" transform="translate(198,-684)">
|
||||
<g id="shape44-11" transform="translate(180.375,-0.375)">
|
||||
<title>Sheet.44</title>
|
||||
<rect x="0" y="702" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="0.75" width="18" height="90" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape48-13" v:mID="48" v:groupContext="shape" transform="translate(126,-756)">
|
||||
<g id="shape48-13" transform="translate(108.375,-72.375)">
|
||||
<title>Sheet.48</title>
|
||||
<rect x="0" y="774" width="36" height="18" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="72.75" width="36" height="18" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape49-15" v:mID="49" v:groupContext="shape" transform="translate(126,-720)">
|
||||
<g id="shape49-15" transform="translate(108.375,-36.375)">
|
||||
<title>Sheet.49</title>
|
||||
<rect x="0" y="774" width="36" height="18" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="72.75" width="36" height="18" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape50-17" v:mID="50" v:groupContext="shape" transform="translate(126,-684)">
|
||||
<g id="shape50-17" transform="translate(108.375,-0.375)">
|
||||
<title>Sheet.50</title>
|
||||
<rect x="0" y="774" width="36" height="18" rx="9" ry="9" class="st1"/>
|
||||
<rect x="0" y="72.75" width="36" height="18" rx="9" ry="9" class="st1"/>
|
||||
</g>
|
||||
<g id="shape52-19" v:mID="52" v:groupContext="shape" transform="translate(153,-729)">
|
||||
<g id="shape52-19" transform="translate(135.375,-45.375)">
|
||||
<title>Sheet.52</title>
|
||||
<path d="M-0 756 A18 18 0 0 1 18 774 A18 18 0 0 1 -0 792" class="st2"/>
|
||||
<path d="M-0 54.75 A18 18 0 0 1 18 72.75 A18 18 0 0 1 -0 90.75" class="st2"/>
|
||||
</g>
|
||||
<g id="shape53-22" v:mID="53" v:groupContext="shape" transform="translate(153,-693)">
|
||||
<g id="shape53-22" transform="translate(135.375,-9.375)">
|
||||
<title>Sheet.53</title>
|
||||
<path d="M-0 756 A18 18 0 0 1 18 774 A18 18 0 0 1 -0 792" class="st2"/>
|
||||
<path d="M-0 54.75 A18 18 0 0 1 18 72.75 A18 18 0 0 1 -0 90.75" class="st2"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 14 KiB |
369
Source/Doc/Graphics/Panel.svg
Normal file
@@ -0,0 +1,369 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by Microsoft Visio, SVG Export Panel.svg Page-1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
|
||||
width="4.51042in" height="2.51042in" viewBox="0 0 324.75 180.75" xml:space="preserve" color-interpolation-filters="sRGB"
|
||||
class="st11">
|
||||
<style type="text/css">
|
||||
<![CDATA[
|
||||
.st1 {fill:#ff0000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st2 {fill:#7f7f7f;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st3 {fill:#000000;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st4 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}
|
||||
.st5 {fill:none;stroke:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st6 {fill:#000000;font-family:Calibri;font-size:1.00001em}
|
||||
.st7 {stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st8 {fill:#000000;font-family:Calibri;font-size:0.666664em}
|
||||
.st9 {fill:#000000;font-family:Calibri;font-size:0.499992em}
|
||||
.st10 {fill:none;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.75}
|
||||
.st11 {fill:none;fill-rule:evenodd;font-size:12px;overflow:visible;stroke-linecap:square;stroke-miterlimit:3}
|
||||
]]>
|
||||
</style>
|
||||
|
||||
<g>
|
||||
<title>Page-1</title>
|
||||
<g id="shape1-1" transform="translate(27.375,-117.375)">
|
||||
<title>Sheet.1</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape2-3" transform="translate(99.375,-27.375)">
|
||||
<title>Sheet.2</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape3-5" transform="translate(106.125,-18.375)">
|
||||
<title>Sheet.3</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape8-7" transform="translate(63.375,-117.375)">
|
||||
<title>Sheet.8</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape9-9" transform="translate(99.375,-117.375)">
|
||||
<title>Sheet.9</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape10-11" transform="translate(135.375,-117.375)">
|
||||
<title>Sheet.10</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape11-13" transform="translate(171.375,-117.375)">
|
||||
<title>Sheet.11</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape12-15" transform="translate(207.375,-117.375)">
|
||||
<title>Sheet.12</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape13-17" transform="translate(243.375,-117.375)">
|
||||
<title>Sheet.13</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape14-19" transform="translate(279.375,-117.375)">
|
||||
<title>Sheet.14</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st1"/>
|
||||
</g>
|
||||
<g id="shape18-21" transform="translate(27.375,-27.375)">
|
||||
<title>Sheet.18</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape19-23" transform="translate(34.125,-18.375)">
|
||||
<title>Sheet.19</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape20-25" transform="translate(63.375,-27.375)">
|
||||
<title>Sheet.20</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape21-27" transform="translate(70.125,-18.375)">
|
||||
<title>Sheet.21</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape22-29" transform="translate(135.375,-27.375)">
|
||||
<title>Sheet.22</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape23-31" transform="translate(142.125,-18.375)">
|
||||
<title>Sheet.23</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape24-33" transform="translate(171.375,-27.375)">
|
||||
<title>Sheet.24</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape25-35" transform="translate(178.125,-18.375)">
|
||||
<title>Sheet.25</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape26-37" transform="translate(207.375,-27.375)">
|
||||
<title>Sheet.26</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape27-39" transform="translate(214.125,-18.375)">
|
||||
<title>Sheet.27</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape28-41" transform="translate(243.375,-27.375)">
|
||||
<title>Sheet.28</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape29-43" transform="translate(250.125,-18.375)">
|
||||
<title>Sheet.29</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape30-45" transform="translate(279.375,-27.375)">
|
||||
<title>Sheet.30</title>
|
||||
<ellipse cx="9" cy="171.75" rx="9" ry="9.00001" class="st2"/>
|
||||
</g>
|
||||
<g id="shape31-47" transform="translate(286.125,-18.375)">
|
||||
<title>Sheet.31</title>
|
||||
<rect x="0" y="160.5" width="4.5" height="20.25" rx="2.25" ry="2.25" class="st3"/>
|
||||
</g>
|
||||
<g id="shape32-49" transform="translate(18.375,-153.375)">
|
||||
<title>Sheet.32</title>
|
||||
<path d="M0 180.75 L144 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape33-52" transform="translate(199.125,18.375) rotate(90)">
|
||||
<title>Sheet.33</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape34-55" transform="translate(343.125,18.375) rotate(90)">
|
||||
<title>Sheet.34</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape35-58" transform="translate(27.375,-135.375)">
|
||||
<title>Sheet.35</title>
|
||||
<desc>8</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">8</text> </g>
|
||||
<g id="shape36-61" transform="translate(63.375,-135.375)">
|
||||
<title>Sheet.36</title>
|
||||
<desc>4</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">4</text> </g>
|
||||
<g id="shape37-64" transform="translate(99.375,-135.375)">
|
||||
<title>Sheet.37</title>
|
||||
<desc>2</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">2</text> </g>
|
||||
<g id="shape38-67" transform="translate(135.375,-135.375)">
|
||||
<title>Sheet.38</title>
|
||||
<desc>1</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">1</text> </g>
|
||||
<g id="shape39-70" transform="translate(18.375,-153.375)">
|
||||
<title>Sheet.39</title>
|
||||
<desc>High</desc>
|
||||
<rect x="0" y="162.75" width="144" height="18" class="st5"/>
|
||||
<text x="60.91" y="175.35" class="st6">High</text> </g>
|
||||
<g id="shape40-73" transform="translate(162.375,-153.375)">
|
||||
<title>Sheet.40</title>
|
||||
<path d="M0 180.75 L144 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape41-76" transform="translate(343.125,18.375) rotate(90)">
|
||||
<title>Sheet.41</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape42-79" transform="translate(487.125,18.375) rotate(90)">
|
||||
<title>Sheet.42</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape43-82" transform="translate(171.375,-135.375)">
|
||||
<title>Sheet.43</title>
|
||||
<desc>8</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">8</text> </g>
|
||||
<g id="shape44-85" transform="translate(207.375,-135.375)">
|
||||
<title>Sheet.44</title>
|
||||
<desc>4</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">4</text> </g>
|
||||
<g id="shape45-88" transform="translate(243.375,-135.375)">
|
||||
<title>Sheet.45</title>
|
||||
<desc>2</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">2</text> </g>
|
||||
<g id="shape46-91" transform="translate(279.375,-135.375)">
|
||||
<title>Sheet.46</title>
|
||||
<desc>1</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">1</text> </g>
|
||||
<g id="shape47-94" transform="translate(162.375,-153.375)">
|
||||
<title>Sheet.47</title>
|
||||
<desc>Low</desc>
|
||||
<rect x="0" y="162.75" width="144" height="18" class="st5"/>
|
||||
<text x="62.02" y="175.35" class="st6">Low</text> </g>
|
||||
<g id="shape48-97" transform="translate(27.375,-99.3749)">
|
||||
<title>Sheet.48</title>
|
||||
<desc>7</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">7</text> </g>
|
||||
<g id="shape49-100" transform="translate(63.375,-99.3749)">
|
||||
<title>Sheet.49</title>
|
||||
<desc>6</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">6</text> </g>
|
||||
<g id="shape50-103" transform="translate(99.375,-99.375)">
|
||||
<title>Sheet.50</title>
|
||||
<desc>5</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">5</text> </g>
|
||||
<g id="shape52-106" transform="translate(135.375,-99.375)">
|
||||
<title>Sheet.52</title>
|
||||
<desc>4</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">4</text> </g>
|
||||
<g id="shape53-109" transform="translate(171.375,-99.375)">
|
||||
<title>Sheet.53</title>
|
||||
<desc>3</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">3</text> </g>
|
||||
<g id="shape54-112" transform="translate(207.375,-99.375)">
|
||||
<title>Sheet.54</title>
|
||||
<desc>2</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">2</text> </g>
|
||||
<g id="shape55-115" transform="translate(243.375,-99.375)">
|
||||
<title>Sheet.55</title>
|
||||
<desc>1</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">1</text> </g>
|
||||
<g id="shape56-118" transform="translate(279.375,-99.375)">
|
||||
<title>Sheet.56</title>
|
||||
<desc>0</desc>
|
||||
<rect x="0" y="162.75" width="18" height="18" class="st5"/>
|
||||
<text x="5.96" y="175.35" class="st6">0</text> </g>
|
||||
<g id="shape57-121" transform="translate(94.875,-58.875)">
|
||||
<title>Sheet.57</title>
|
||||
<path d="M0 180.75 L27 180.75" class="st7"/>
|
||||
</g>
|
||||
<g id="shape58-124" transform="translate(90.375,-58.875)">
|
||||
<title>Sheet.58</title>
|
||||
<desc>Auto</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="10.13" y="178.65" class="st8">Auto</text> </g>
|
||||
<g id="shape59-127" transform="translate(90.375,-49.875)">
|
||||
<title>Sheet.59</title>
|
||||
<desc>Menu</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="8.39" y="178.65" class="st8">Menu</text> </g>
|
||||
<g id="shape61-130" transform="translate(22.875,-58.875)">
|
||||
<title>Sheet.61</title>
|
||||
<path d="M0 180.75 L27 180.75" class="st7"/>
|
||||
</g>
|
||||
<g id="shape62-133" transform="translate(18.375,-58.875)">
|
||||
<title>Sheet.62</title>
|
||||
<desc>CRT</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="11.75" y="178.65" class="st8">CRT</text> </g>
|
||||
<g id="shape63-136" transform="translate(18.375,-49.875)">
|
||||
<title>Sheet.63</title>
|
||||
<desc>Serial</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="9.03" y="178.65" class="st8">Serial</text> </g>
|
||||
<g id="shape64-139" transform="translate(58.875,-58.875)">
|
||||
<title>Sheet.64</title>
|
||||
<path d="M0 180.75 L27 180.75" class="st7"/>
|
||||
</g>
|
||||
<g id="shape65-142" transform="translate(54.375,-58.875)">
|
||||
<title>Sheet.65</title>
|
||||
<desc>Sec</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="12.48" y="178.65" class="st8">Sec</text> </g>
|
||||
<g id="shape66-145" transform="translate(54.375,-49.875)">
|
||||
<title>Sheet.66</title>
|
||||
<desc>Pri</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="13.62" y="178.65" class="st8">Pri</text> </g>
|
||||
<g id="shape67-148" transform="translate(130.875,-58.875)">
|
||||
<title>Sheet.67</title>
|
||||
<path d="M0 180.75 L27 180.75" class="st7"/>
|
||||
</g>
|
||||
<g id="shape68-151" transform="translate(126.375,-58.875)">
|
||||
<title>Sheet.68</title>
|
||||
<desc>Disk</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="11.24" y="178.65" class="st8">Disk</text> </g>
|
||||
<g id="shape69-154" transform="translate(126.375,-49.875)">
|
||||
<title>Sheet.69</title>
|
||||
<desc>ROM</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="9.76" y="178.65" class="st8">ROM</text> </g>
|
||||
<g id="shape70-157" transform="translate(166.875,-58.875)">
|
||||
<title>Sheet.70</title>
|
||||
<path d="M0 180.75 L27 180.75" class="st7"/>
|
||||
</g>
|
||||
<g id="shape71-160" transform="translate(162.375,-58.875)">
|
||||
<title>Sheet.71</title>
|
||||
<desc>Floppy</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="7.12" y="178.65" class="st8">Floppy</text> </g>
|
||||
<g id="shape72-163" transform="translate(162.375,-49.875)">
|
||||
<title>Sheet.72</title>
|
||||
<desc>Hard</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="10.1" y="178.65" class="st8">Hard</text> </g>
|
||||
<g id="shape73-166" transform="translate(202.875,-58.875)">
|
||||
<title>Sheet.73</title>
|
||||
<path d="M0 180.75 L99 180.75" class="st7"/>
|
||||
</g>
|
||||
<g id="shape74-169" transform="translate(198.375,-49.875)">
|
||||
<title>Sheet.74</title>
|
||||
<desc>4</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="15.97" y="178.65" class="st8">4</text> </g>
|
||||
<g id="shape75-172" transform="translate(234.375,-49.875)">
|
||||
<title>Sheet.75</title>
|
||||
<desc>2</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="15.97" y="178.65" class="st8">2</text> </g>
|
||||
<g id="shape76-175" transform="translate(270.375,-49.875)">
|
||||
<title>Sheet.76</title>
|
||||
<desc>1</desc>
|
||||
<rect x="0" y="171.75" width="36" height="9.00001" class="st5"/>
|
||||
<text x="15.97" y="178.65" class="st8">1</text> </g>
|
||||
<g id="shape78-178" transform="translate(198.375,-58.875)">
|
||||
<title>Sheet.78</title>
|
||||
<desc>ROM App / Boot Slice</desc>
|
||||
<rect x="0" y="171.75" width="108" height="9.00001" class="st5"/>
|
||||
<text x="18.99" y="178.65" class="st8">ROM App / Boot Slice</text> </g>
|
||||
<g id="shape79-181" transform="translate(18.375,-0.375)">
|
||||
<title>Sheet.79</title>
|
||||
<desc>ROM Apps: 0=Monitor 1=BASIC 2=Forth 3=Game 4=CP/M 2.2 5=Z-Sys...</desc>
|
||||
<rect x="0" y="171.75" width="288" height="9" class="st5"/>
|
||||
<text x="19.9" y="178.05" class="st9">ROM Apps: 0=Monitor 1=BASIC 2=Forth 3=Game 4=CP/M 2.2 5=Z-System 6=Net Boot 7=User</text> </g>
|
||||
<g id="shape80-184" transform="translate(0.375,-0.375)">
|
||||
<title>Sheet.80</title>
|
||||
<rect x="0" y="0.750005" width="324" height="180" class="st10"/>
|
||||
</g>
|
||||
<g id="shape81-186" transform="translate(18.375,-72.375)">
|
||||
<title>Sheet.81</title>
|
||||
<path d="M0 180.75 L144 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape82-189" transform="translate(199.125,99.375) rotate(90)">
|
||||
<title>Sheet.82</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape84-192" transform="translate(18.375,-72.375)">
|
||||
<title>Sheet.84</title>
|
||||
<desc>Console</desc>
|
||||
<rect x="0" y="162.75" width="72" height="18" class="st5"/>
|
||||
<text x="16.61" y="175.35" class="st6">Console</text> </g>
|
||||
<g id="shape85-195" transform="translate(162.375,-72.375)">
|
||||
<title>Sheet.85</title>
|
||||
<path d="M0 180.75 L144 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape86-198" transform="translate(271.125,99.375) rotate(90)">
|
||||
<title>Sheet.86</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape87-201" transform="translate(487.125,99.375) rotate(90)">
|
||||
<title>Sheet.87</title>
|
||||
<path d="M0 180.75 L18 180.75" class="st4"/>
|
||||
</g>
|
||||
<g id="shape88-204" transform="translate(90.375,-72.375)">
|
||||
<title>Sheet.88</title>
|
||||
<desc>Boot</desc>
|
||||
<rect x="0" y="162.75" width="216" height="18" class="st5"/>
|
||||
<text x="96.4" y="175.35" class="st6">Boot</text> </g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 16 KiB |