mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Compare commits
652 Commits
v3.1.1-pre
...
v3.5.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21df9d8797 | ||
|
|
cd23863226 | ||
|
|
3999039102 | ||
|
|
df2ab201a2 | ||
|
|
cdc2b3964d | ||
|
|
21b2eee7ab | ||
|
|
b80d395266 | ||
|
|
fff0959f96 | ||
|
|
b781f16add | ||
|
|
273e61bc94 | ||
|
|
e1e485501c | ||
|
|
48ab169c60 | ||
|
|
0f4d16400f | ||
|
|
329a0f4d7f | ||
|
|
058a67dd40 | ||
|
|
40f2a9f35a | ||
|
|
3eea703d02 | ||
|
|
74daa4d3c5 | ||
|
|
0539b25046 | ||
|
|
a7e767d0b7 | ||
|
|
78a765147e | ||
|
|
1cb5f0b3b4 | ||
|
|
a34afaa11e | ||
|
|
e8d79bdf0a | ||
|
|
e5232c6696 | ||
|
|
70fcb2cbee | ||
|
|
dab2408166 | ||
|
|
d02c734478 | ||
|
|
c4cc800040 | ||
|
|
f82b4c9bc7 | ||
|
|
1db620d2d7 | ||
|
|
3b2c5b57ad | ||
|
|
69ab236d53 | ||
|
|
e7ed6ed27c | ||
|
|
5ea5003d01 | ||
|
|
7c41ef6fc9 | ||
|
|
7497e233d2 | ||
|
|
157af16d32 | ||
|
|
e0414bca05 | ||
|
|
2a6a3f36c2 | ||
|
|
337374c9e9 | ||
|
|
4946b313e1 | ||
|
|
a6505fbbb1 | ||
|
|
dd93a178fa | ||
|
|
a4fdebea2b | ||
|
|
3f63c92fd5 | ||
|
|
c8794d2b9c | ||
|
|
bf2d0b8196 | ||
|
|
e41cd6d8d2 | ||
|
|
47120dcf8c | ||
|
|
67d23dc540 | ||
|
|
99d5c50556 | ||
|
|
438df9a80b | ||
|
|
8c4a3d2b3d | ||
|
|
585c892a54 | ||
|
|
49025dca44 | ||
|
|
2d8c37307d | ||
|
|
d294fb6d09 | ||
|
|
1649b6093b | ||
|
|
d50593a70e | ||
|
|
874cc450ba | ||
|
|
918ed66967 | ||
|
|
7fe0312359 | ||
|
|
842a79ae5d | ||
|
|
34d25cb906 | ||
|
|
b8af62d7de | ||
|
|
b28c3b7978 | ||
|
|
bf9a8400de | ||
|
|
c3c541d150 | ||
|
|
cecd13fba9 | ||
|
|
7ce7bda43e | ||
|
|
bb5161dcb0 | ||
|
|
285853e65d | ||
|
|
ab1e9ccab8 | ||
|
|
33cbdd2040 | ||
|
|
792e76b069 | ||
|
|
d572a7ca32 | ||
|
|
c4f78bb3ae | ||
|
|
77ba29c73f | ||
|
|
1a24fcb61b | ||
|
|
9dbceb4a15 | ||
|
|
c2721d1572 | ||
|
|
b7a26bb274 | ||
|
|
6ecf8f9920 | ||
|
|
c1d7a41c82 | ||
|
|
c622e43c14 | ||
|
|
119e2d5421 | ||
|
|
b574768e2b | ||
|
|
2aa3bc2018 | ||
|
|
627e012f3f | ||
|
|
4d39bf93ba | ||
|
|
d2f7830b9e | ||
|
|
30db4c7fe9 | ||
|
|
b020fc3901 | ||
|
|
3f102e0151 | ||
|
|
e18014a8a7 | ||
|
|
074f2cfdb2 | ||
|
|
91f5b36fbc | ||
|
|
9ad7798713 | ||
|
|
807999928e | ||
|
|
0b1bbf3d2b | ||
|
|
d93e639e4b | ||
|
|
b633c309f4 | ||
|
|
a00cf821c7 | ||
|
|
d13ea96f35 | ||
|
|
8e4bb575f1 | ||
|
|
ee8cdfa4b8 | ||
|
|
6f7d1447ea | ||
|
|
3e6120e0fa | ||
|
|
61565bffd7 | ||
|
|
0bac6f32ea | ||
|
|
462545bfe7 | ||
|
|
cc4ad0d4b9 | ||
|
|
458b04404e | ||
|
|
4143cfa4cf | ||
|
|
438e59a05e | ||
|
|
7385d07b9a | ||
|
|
5bea1f400e | ||
|
|
1a9701e51d | ||
|
|
23e0b82112 | ||
|
|
b4b5ef19fc | ||
|
|
4dd46c3df6 | ||
|
|
17e3a95768 | ||
|
|
3529cdaa2f | ||
|
|
556b7074ae | ||
|
|
952489eac4 | ||
|
|
8f326fb081 | ||
|
|
2925ab3d42 | ||
|
|
cdb9f9b40a | ||
|
|
def84eded9 | ||
|
|
d89e055f18 | ||
|
|
62f9330de8 | ||
|
|
374ed7ab97 | ||
|
|
c7bee46f60 | ||
|
|
e9b9782ede | ||
|
|
af00df9182 | ||
|
|
e286a428bf | ||
|
|
f2fc049f07 | ||
|
|
d8a485a5fb | ||
|
|
ed53030de2 | ||
|
|
4b88986de8 | ||
|
|
3df34b4ce0 | ||
|
|
f230fb22da | ||
|
|
2225847212 | ||
|
|
edbe7d0781 | ||
|
|
1d3438fb29 | ||
|
|
a5de77438b | ||
|
|
b841705023 | ||
|
|
72cdbdd4ad | ||
|
|
b8ef50fad5 | ||
|
|
c7d22892c1 | ||
|
|
8b3deb057f | ||
|
|
df42cf544e | ||
|
|
55a41ec0a3 | ||
|
|
4417f871e5 | ||
|
|
1c10f734bd | ||
|
|
214182b514 | ||
|
|
08942fb944 | ||
|
|
5dc724785b | ||
|
|
ce17be9ba6 | ||
|
|
badca621ba | ||
|
|
291cdd2c03 | ||
|
|
888d9879c9 | ||
|
|
39446d5e4f | ||
|
|
af8385fba8 | ||
|
|
10ff97b6c6 | ||
|
|
7e9191f3ef | ||
|
|
a67b1ecd0a | ||
|
|
4012ee7775 | ||
|
|
150ca6b50c | ||
|
|
6af84e9ad8 | ||
|
|
6bcad122cd | ||
|
|
003481410f | ||
|
|
9a1c3f7929 | ||
|
|
ef536750ea | ||
|
|
347a15a3b6 | ||
|
|
1e5b38c251 | ||
|
|
29f93fb153 | ||
|
|
b0975745df | ||
|
|
163460856a | ||
|
|
3ce9246904 | ||
|
|
1a021e02b9 | ||
|
|
f2d304ef0d | ||
|
|
cbfbca8d92 | ||
|
|
b175808a92 | ||
|
|
3e86e79133 | ||
|
|
3247e67ed4 | ||
|
|
bbc84f0c2d | ||
|
|
872d51e9b6 | ||
|
|
b41f189a4c | ||
|
|
25fb2bd59e | ||
|
|
76867b8351 | ||
|
|
43745f8c90 | ||
|
|
ed4daf06a4 | ||
|
|
14cc41c3c4 | ||
|
|
0598d921bc | ||
|
|
93dcfe9610 | ||
|
|
d98547dea3 | ||
|
|
a157d9ba13 | ||
|
|
85783148be | ||
|
|
7bd930bc76 | ||
|
|
c1fa7b420a | ||
|
|
9072bc6d70 | ||
|
|
480dbe4f4c | ||
|
|
26fad23c3a | ||
|
|
883dab7e97 | ||
|
|
d3f5643791 | ||
|
|
5299d24379 | ||
|
|
a229db96a6 | ||
|
|
092e44c62e | ||
|
|
722bce819b | ||
|
|
2d470a2a90 | ||
|
|
b6700dfa4c | ||
|
|
cfc76d0659 | ||
|
|
7fce3277a0 | ||
|
|
2219e4c82d | ||
|
|
68e841e62c | ||
|
|
bb70c36b36 | ||
|
|
c391fd6d56 | ||
|
|
e69caf5059 | ||
|
|
8b7e71049b | ||
|
|
50e190c755 | ||
|
|
d0eccf026b | ||
|
|
39f796ce22 | ||
|
|
5610e79db4 | ||
|
|
e782b78b16 | ||
|
|
c0d3969244 | ||
|
|
c62af3df33 | ||
|
|
6d736996fd | ||
|
|
8bc801d0a4 | ||
|
|
2c6b7f7fb1 | ||
|
|
c3503f56d1 | ||
|
|
d4c87996f0 | ||
|
|
9f5b3a8b1c | ||
|
|
d06e1e2a5c | ||
|
|
22a0c52af3 | ||
|
|
85aa7e89c2 | ||
|
|
59d04f2446 | ||
|
|
9cc52e30d6 | ||
|
|
e1a4e815dc | ||
|
|
3c340d1ab9 | ||
|
|
138248fafc | ||
|
|
834eefb0bb | ||
|
|
7835eb5deb | ||
|
|
d1a5c66147 | ||
|
|
b184ccfb78 | ||
|
|
4776b32cd3 | ||
|
|
2bc5333f2b | ||
|
|
a5575456e2 | ||
|
|
bdb8dc020b | ||
|
|
faaba69554 | ||
|
|
0395bba4f5 | ||
|
|
14ac7a917b | ||
|
|
7a209d4053 | ||
|
|
7e5b140c2f | ||
|
|
1f1952fb19 | ||
|
|
229bdaa308 | ||
|
|
5c0894b8c1 | ||
|
|
9cefcfb0bc | ||
|
|
5d34a5c5d5 | ||
|
|
f8c800e527 | ||
|
|
b90e4d932a | ||
|
|
5457a7e7fd | ||
|
|
8f5cc510ee | ||
|
|
0475f5e853 | ||
|
|
5b7dee0689 | ||
|
|
6532f61747 | ||
|
|
4bdae4eccb | ||
|
|
efb9840b86 | ||
|
|
308a11cb32 | ||
|
|
3a7421de33 | ||
|
|
21a58397b6 | ||
|
|
9ae61806dc | ||
|
|
87ac6f07f8 | ||
|
|
1cd5313259 | ||
|
|
04c1ff04ac | ||
|
|
0e1a0afa2c | ||
|
|
5227bb68b5 | ||
|
|
fb68941768 | ||
|
|
8747ec8d02 | ||
|
|
abd939625f | ||
|
|
69716abb25 | ||
|
|
1f526d440a | ||
|
|
84374c86e6 | ||
|
|
45ea46b105 | ||
|
|
1333d6a491 | ||
|
|
b7e865dbf1 | ||
|
|
1c411f5552 | ||
|
|
364e48a5d3 | ||
|
|
63cb89dcfc | ||
|
|
6e316b46f0 | ||
|
|
3f23396536 | ||
|
|
c628ba10f2 | ||
|
|
9358299f14 | ||
|
|
d445c4a015 | ||
|
|
e32002545b | ||
|
|
7ac88efac1 | ||
|
|
9f71fe05aa | ||
|
|
ad3c533145 | ||
|
|
e43a939f54 | ||
|
|
e5b7409f44 | ||
|
|
9100f199b1 | ||
|
|
bcc50a31a9 | ||
|
|
c891ba2bad | ||
|
|
2f9e77ca13 | ||
|
|
f346209c82 | ||
|
|
0742fb6188 | ||
|
|
94239866a5 | ||
|
|
2681b84a20 | ||
|
|
b5437c56e9 | ||
|
|
f640630a06 | ||
|
|
53e201bd28 | ||
|
|
51d962aeab | ||
|
|
5f36cf9a12 | ||
|
|
d812066f2e | ||
|
|
7563863be2 | ||
|
|
9654d487ba | ||
|
|
5b339aef3e | ||
|
|
47a7d81bb9 | ||
|
|
a92c44e53f | ||
|
|
cc9f5dd516 | ||
|
|
6e34de0e02 | ||
|
|
5a6d7f853b | ||
|
|
a646f49866 | ||
|
|
98a33b8b50 | ||
|
|
8aebaab3fe | ||
|
|
798d8c3ea3 | ||
|
|
bbaf2b0714 | ||
|
|
74a8283bba | ||
|
|
e869e55252 | ||
|
|
e8a76817dc | ||
|
|
e839c77844 | ||
|
|
ada7254b84 | ||
|
|
cd96ea7e26 | ||
|
|
0098540cc9 | ||
|
|
b3e7e2ff62 | ||
|
|
582937de8e | ||
|
|
5f5953edd8 | ||
|
|
50cd6ff955 | ||
|
|
82c53bd20b | ||
|
|
0d0f5fb182 | ||
|
|
3773c9c7fa | ||
|
|
b7dc67b9c7 | ||
|
|
76c4209a5e | ||
|
|
76d9a99758 | ||
|
|
1db858027e | ||
|
|
d3fb3710ff | ||
|
|
170cecd112 | ||
|
|
f469699449 | ||
|
|
c4ff7315c9 | ||
|
|
ddbd338b6f | ||
|
|
77c6f934dc | ||
|
|
f72bf4e4c5 | ||
|
|
dcc6bd2b62 | ||
|
|
01fac79902 | ||
|
|
70d3f54834 | ||
|
|
650dcdb35f | ||
|
|
b27e14826a | ||
|
|
d2b9333288 | ||
|
|
cbd60d02d9 | ||
|
|
93a1eade2a | ||
|
|
5073a9c506 | ||
|
|
86f8df03b6 | ||
|
|
a7ef76b9c4 | ||
|
|
0a6719cf24 | ||
|
|
0b0f68d579 | ||
|
|
c2d58ebe3a | ||
|
|
894898a75d | ||
|
|
5da1f70b6c | ||
|
|
15e90c628a | ||
|
|
bc0d1ed5e8 | ||
|
|
fa12858bd3 | ||
|
|
2f733ff1aa | ||
|
|
ee0369c553 | ||
|
|
d17f531d19 | ||
|
|
0c4400920c | ||
|
|
15b2dcb6b6 | ||
|
|
39f51a9620 | ||
|
|
632cc0e7db | ||
|
|
f5cb22da8f | ||
|
|
7f186df54d | ||
|
|
590f5cff9a | ||
|
|
e6908ee259 | ||
|
|
5b7ca9d9e6 | ||
|
|
93ac0ba5d0 | ||
|
|
5d3c1e2d4a | ||
|
|
f080f5b80a | ||
|
|
f1382b75ec | ||
|
|
d175981c71 | ||
|
|
5e42066874 | ||
|
|
52a41663eb | ||
|
|
f0183bdd8a | ||
|
|
2398805617 | ||
|
|
08168681b6 | ||
|
|
fa3874ec45 | ||
|
|
fc634380b0 | ||
|
|
6b84dd36b0 | ||
|
|
93245434c0 | ||
|
|
06913144f8 | ||
|
|
04947015aa | ||
|
|
e7ab778929 | ||
|
|
147ab2ce4c | ||
|
|
af2a025cff | ||
|
|
2da5ba80ba | ||
|
|
d4700d0cdd | ||
|
|
e2426eff08 | ||
|
|
2b16617ea3 | ||
|
|
816234f0fa | ||
|
|
d960efdc4d | ||
|
|
bd664c3a1f | ||
|
|
dc151ad1a7 | ||
|
|
2f3fb51884 | ||
|
|
29c7f3a920 | ||
|
|
36fe842bec | ||
|
|
3a8a503c8e | ||
|
|
73213d4321 | ||
|
|
7d19d3e403 | ||
|
|
c157d52c1d | ||
|
|
3034fb6b5b | ||
|
|
fee6f29cf0 | ||
|
|
a531551573 | ||
|
|
53bdee68d5 | ||
|
|
0b8cb94cc2 | ||
|
|
975656ef6f | ||
|
|
ce6622244d | ||
|
|
b649cf19ce | ||
|
|
96902ae2bd | ||
|
|
97cb2f1dfc | ||
|
|
00158b0107 | ||
|
|
146826b142 | ||
|
|
979276e0b5 | ||
|
|
0a6009b38f | ||
|
|
8656cf992e | ||
|
|
4f48e48a99 | ||
|
|
6dac01102d | ||
|
|
cd161067db | ||
|
|
a9173c076b | ||
|
|
8ffe53ea68 | ||
|
|
4d9c93734f | ||
|
|
83ff343186 | ||
|
|
71a8b2b177 | ||
|
|
c51963529d | ||
|
|
979e763739 | ||
|
|
834f2d7682 | ||
|
|
16475fe408 | ||
|
|
ec5b19acad | ||
|
|
d2e1e5be4b | ||
|
|
3603ef9c9d | ||
|
|
3aed60afe2 | ||
|
|
e1e2c2efa9 | ||
|
|
55b4e1e26d | ||
|
|
2271c086b5 | ||
|
|
cb336c9ba5 | ||
|
|
ad0a6af047 | ||
|
|
22afb8333c | ||
|
|
2b4631195a | ||
|
|
d5f0699fc3 | ||
|
|
5c84fc6213 | ||
|
|
d9f11b9f5e | ||
|
|
bb2a68e066 | ||
|
|
cd426ba6ca | ||
|
|
491bbb68a6 | ||
|
|
b3bf3e27ee | ||
|
|
523ce60093 | ||
|
|
3f00cfbfb8 | ||
|
|
2dd9edd8ca | ||
|
|
6145383a65 | ||
|
|
c0721a3f85 | ||
|
|
c10497bd03 | ||
|
|
5b1542e49b | ||
|
|
96269a7f45 | ||
|
|
bd03277bfe | ||
|
|
c072027b87 | ||
|
|
e409391f14 | ||
|
|
030228e9b8 | ||
|
|
d584d3d553 | ||
|
|
2049b35ee2 | ||
|
|
285bc6611f | ||
|
|
be8177b8a4 | ||
|
|
9c80db786e | ||
|
|
d062b4345d | ||
|
|
03bf1527cc | ||
|
|
38318262e9 | ||
|
|
eefad65904 | ||
|
|
4d6a922402 | ||
|
|
e32d6e2d5d | ||
|
|
9ea462ef7a | ||
|
|
1681e159bd | ||
|
|
3b8973fa12 | ||
|
|
ef1989f600 | ||
|
|
023e54a9a8 | ||
|
|
73b0a3d941 | ||
|
|
f86019a628 | ||
|
|
1839120e9d | ||
|
|
8e110221a3 | ||
|
|
8df7712633 | ||
|
|
149ffb899b | ||
|
|
4f60cd4e57 | ||
|
|
e83e26b6db | ||
|
|
4cd533117f | ||
|
|
20cab617c7 | ||
|
|
323cfec931 | ||
|
|
ced09b2b95 | ||
|
|
93f8c67f9f | ||
|
|
999849c62b | ||
|
|
4babc51588 | ||
|
|
44ccc167ff | ||
|
|
eae8295811 | ||
|
|
c76cb6737e | ||
|
|
af723c5370 | ||
|
|
57e4ed476c | ||
|
|
167c10fafc | ||
|
|
6d1a9f5b7c | ||
|
|
bd0bb94c52 | ||
|
|
e1a833b1a8 | ||
|
|
7bd6df1e99 | ||
|
|
d3fcf8cea2 | ||
|
|
c7eb82e4dd | ||
|
|
20d07ded7b | ||
|
|
fc57ca4a68 | ||
|
|
444c57fdfb | ||
|
|
d8b7f88dad | ||
|
|
ca61f340db | ||
|
|
601ac66762 | ||
|
|
c204110a6f | ||
|
|
e8d0eedc2b | ||
|
|
7b55b8ba86 | ||
|
|
069aa2b5be | ||
|
|
eeff03c7aa | ||
|
|
791fcea466 | ||
|
|
f56c9007bb | ||
|
|
360ba5ca95 | ||
|
|
7adf2038f1 | ||
|
|
a77744d8e6 | ||
|
|
dd47283fda | ||
|
|
5cc85e0444 | ||
|
|
6e51070590 | ||
|
|
a7853fe6d0 | ||
|
|
590dcd0b4f | ||
|
|
e25107309b | ||
|
|
def29c7668 | ||
|
|
0c92c69ed8 | ||
|
|
54ce18bb75 | ||
|
|
0ebde397fa | ||
|
|
8bf93619a0 | ||
|
|
2727c02c56 | ||
|
|
d6ac15df40 | ||
|
|
c2a6c7fa22 | ||
|
|
a742e5016e | ||
|
|
248ef0e1b4 | ||
|
|
19101fda39 | ||
|
|
9d1cfd4a22 | ||
|
|
cb20784685 | ||
|
|
66d524c096 | ||
|
|
aceef15481 | ||
|
|
d4ca3de40f | ||
|
|
f0def03d0e | ||
|
|
b2b070232d | ||
|
|
27935123cf | ||
|
|
d40c6be60d | ||
|
|
aa93eb62f2 | ||
|
|
94c32c9fd0 | ||
|
|
3b0951f6d5 | ||
|
|
4385efb0f7 | ||
|
|
d241db5c11 | ||
|
|
d9a3a5086c | ||
|
|
0c61385df4 | ||
|
|
cf142b3a91 | ||
|
|
9a503696c8 | ||
|
|
bfdfd83f2a | ||
|
|
95f8c35c36 | ||
|
|
c065af147a | ||
|
|
11ea0c8c27 | ||
|
|
dbea21fadd | ||
|
|
4d5f2ab219 | ||
|
|
b82ff327cf | ||
|
|
44b17ccc3a | ||
|
|
b2e1294452 | ||
|
|
23a10343ca | ||
|
|
5805f13a62 | ||
|
|
d39f0201f4 | ||
|
|
94cf9a209e | ||
|
|
691842c1bc | ||
|
|
eb255e7016 | ||
|
|
fe19472a2c | ||
|
|
526a1a5d33 | ||
|
|
719c993a60 | ||
|
|
70697a762c | ||
|
|
a62f5805ca | ||
|
|
87a6701464 | ||
|
|
3f3a13bff6 | ||
|
|
982906757e | ||
|
|
c1412ee755 | ||
|
|
e974a4a960 | ||
|
|
0549cdcb36 | ||
|
|
0e32dd58fa | ||
|
|
69b54a000c | ||
|
|
0d8b04ffa6 | ||
|
|
9251f44dec | ||
|
|
fde0c285d2 | ||
|
|
44467f4725 | ||
|
|
0767a2ceff | ||
|
|
9b27118a3b | ||
|
|
b98ee17e14 | ||
|
|
c046f0365c | ||
|
|
16390d3159 | ||
|
|
1b34dc0941 | ||
|
|
4a88e0bcae | ||
|
|
1e52a0b7f3 | ||
|
|
f6d0e7fea4 | ||
|
|
4af5d457eb | ||
|
|
e804326d54 | ||
|
|
5b9e9ba6bf | ||
|
|
4f25cf1366 | ||
|
|
170ac7d9e8 | ||
|
|
eb208d735b | ||
|
|
25382b01e2 | ||
|
|
d55587e341 | ||
|
|
7d9ff0599b | ||
|
|
0efd08539e | ||
|
|
291017f1a9 | ||
|
|
7549789248 | ||
|
|
5d81574226 | ||
|
|
9ccbbbd475 | ||
|
|
f6285a8e6a | ||
|
|
9f3c9e180d | ||
|
|
97bc3ba3b5 | ||
|
|
8e414a3efc | ||
|
|
a0d437357e | ||
|
|
0b0b3611bb | ||
|
|
dd22c54f32 | ||
|
|
4e153a2bc1 | ||
|
|
51d9bdb655 | ||
|
|
25374946e0 | ||
|
|
689f8a2280 | ||
|
|
36b160f934 | ||
|
|
bf965c2604 | ||
|
|
e6b9d2dcfd | ||
|
|
33afeac10d | ||
|
|
2c0b818aba | ||
|
|
c5043d66f9 | ||
|
|
1b8e88e1a2 | ||
|
|
d599a3d57b | ||
|
|
461d1ce512 | ||
|
|
8c9ce2184e | ||
|
|
e5b1d5afc8 | ||
|
|
214ed54584 | ||
|
|
59c523c575 | ||
|
|
4d3640caaa | ||
|
|
d02fe9d8df | ||
|
|
bc04d5ecb9 | ||
|
|
5439a12fe8 |
11
.github/pull_request_template.md
vendored
Normal file
11
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
<!--
|
||||
BEFORE YOU CREATE A PULL REQUEST:
|
||||
|
||||
- Please base all pull requests against the master branch
|
||||
- Include a clear description of your change
|
||||
- Reference related Issue(s) (e.g., "Resolves Issue #123")
|
||||
|
||||
Thank you for contributing to RomWBW! I will review your pull request as soon as possible.
|
||||
|
||||
DELETE EVERYTHING IN THIS COMMENT BLOCK AND REPLACE WITH YOUR COMMENTS
|
||||
-->
|
||||
56
.github/workflows/commit.yml
vendored
56
.github/workflows/commit.yml
vendored
@@ -3,10 +3,9 @@ name: Commit Build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- dev
|
||||
- '**'
|
||||
tags-ignore:
|
||||
- v*
|
||||
- '**'
|
||||
|
||||
jobs:
|
||||
buildLinux:
|
||||
@@ -14,17 +13,20 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: rlespinasse/github-slug-action@v3.x
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Get Commit Ref
|
||||
run: |
|
||||
COMMIT_REF=$(git rev-parse --short $GITHUB_SHA)
|
||||
echo "COMMIT_REF: $COMMIT_REF"
|
||||
echo "COMMIT_REF=$COMMIT_REF" >>$GITHUB_ENV
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export TZ='America/Los_Angeles'
|
||||
sudo apt-get install libncurses-dev
|
||||
sudo apt-get install srecord
|
||||
make dist
|
||||
make clean
|
||||
make distlog
|
||||
rm -rf .git*
|
||||
|
||||
- name: List Output
|
||||
@@ -34,37 +36,29 @@ jobs:
|
||||
find -type f -exec md5sum '{}' \;
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4.3.0
|
||||
with:
|
||||
name: RomWBW_Linux-${{env.GITHUB_REF_SLUG}}-${{env.GITHUB_SHA_SHORT}}
|
||||
name: RomWBW-${{env.COMMIT_REF}}-Linux
|
||||
path: .
|
||||
|
||||
- name: Create Package Archive
|
||||
run: |
|
||||
zip -r RomWBW-SnapShot-Package.zip .
|
||||
|
||||
- name: Post SnapShot
|
||||
uses: "marvinpinto/action-automatic-releases@latest"
|
||||
with:
|
||||
repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
automatic_release_tag: "SnapShot"
|
||||
prerelease: true
|
||||
title: "RomWBW Development SnapShot Build"
|
||||
files: |
|
||||
RomWBW-SnapShot-Package.zip
|
||||
|
||||
buildMacOS:
|
||||
runs-on: macos-latest
|
||||
runs-on: macOS-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Get Commit Ref
|
||||
run: |
|
||||
COMMIT_REF=$(git rev-parse --short $GITHUB_SHA)
|
||||
echo "COMMIT_REF: $COMMIT_REF"
|
||||
echo "COMMIT_REF=$COMMIT_REF" >>$GITHUB_ENV
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export TZ='America/Los_Angeles'
|
||||
brew install srecord
|
||||
make dist
|
||||
make clean
|
||||
make distlog
|
||||
rm -rf .git*
|
||||
|
||||
- name: List Output
|
||||
@@ -74,7 +68,7 @@ jobs:
|
||||
find . -type f -exec md5 -r -- '{}' +;
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
uses: actions/upload-artifact@v4.3.0
|
||||
with:
|
||||
name: RomWBW_MacOS
|
||||
name: RomWBW-${{env.COMMIT_REF}}-MacOS
|
||||
path: .
|
||||
|
||||
124
.github/workflows/release.yml
vendored
124
.github/workflows/release.yml
vendored
@@ -1,8 +1,9 @@
|
||||
name: Release Build
|
||||
|
||||
on:
|
||||
release:
|
||||
types: published
|
||||
push:
|
||||
tags:
|
||||
- '**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@@ -10,42 +11,99 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Create Package Label
|
||||
run: |
|
||||
LABEL=`echo "$GITHUB_REF" | sed "s|^refs/tags/||"`
|
||||
echo "::set-env name=PKGLBL::$LABEL"
|
||||
|
||||
- name: Display Diagnostics
|
||||
run: |
|
||||
echo PKGLBL: "$PKGLBL"
|
||||
echo Upload URL: "${{github.event.release.upload_url}}"
|
||||
echo GITHUB_TOKEN: "${{secrets.GITHUB_TOKEN}}"
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
export TZ='America/Los_Angeles'
|
||||
sudo apt-get install libncurses-dev
|
||||
make dist
|
||||
make clean
|
||||
sudo apt-get install srecord
|
||||
make distlog
|
||||
rm -rf .git*
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: RomWBW-${{env.PKGLBL}}-Package
|
||||
path: .
|
||||
|
||||
- name: Create Package Archive
|
||||
run: |
|
||||
zip -r Package.zip .
|
||||
|
||||
- name: Upload Release Asset
|
||||
uses: actions/upload-release-asset@v1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||
zip -r RomWBW-${{github.ref_name}}-Package.zip .
|
||||
|
||||
- name: Set Title
|
||||
run: |
|
||||
echo "Tag: ${{github.ref_name}}"
|
||||
if grep -q "dev" <<< "${{github.ref_name}}"; then
|
||||
TITLE="RomWBW Development Snapshot"
|
||||
elif grep -q "pre" <<< "${{github.ref_name}}"; then
|
||||
TITLE="RomWBW Prerelease"
|
||||
elif grep -q "rc" <<< "${{github.ref_name}}"; then
|
||||
TITLE="RomWBW Release Candidate"
|
||||
else
|
||||
TITLE="RomWBW"
|
||||
fi
|
||||
echo "Title: $TITLE"
|
||||
echo "TITLE=$TITLE" >>$GITHUB_ENV
|
||||
|
||||
- name: Attach Package Archive
|
||||
uses: wwarthen/actions/packages/automatic-releases@built-packages
|
||||
with:
|
||||
upload_url: ${{github.event.release.upload_url}}
|
||||
asset_path: Package.zip
|
||||
asset_name: RomWBW-${{env.PKGLBL}}-Package.zip
|
||||
asset_content_type: application/zip
|
||||
repo_token: "${{secrets.GITHUB_TOKEN}}"
|
||||
draft: true
|
||||
prerelease: true
|
||||
title: "${{env.TITLE}} ${{github.ref_name}}"
|
||||
files: |
|
||||
RomWBW-${{github.ref_name}}-Package.zip
|
||||
|
||||
# - name: Upload Package Archive
|
||||
# uses: AButler/upload-release-assets@v2.0.2
|
||||
# with:
|
||||
# repo-token: ${{secrets.github_token}}
|
||||
# files: |
|
||||
# RomWBW-${{env.PKGLBL}}-Package.zip
|
||||
|
||||
|
||||
# - name: Post SnapShot
|
||||
# uses: docker://antonyurchenko/git-release:latest
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# RELEASE_NAME_PREFIX: "${{env.TITLE}} "
|
||||
# CHANGELOG_FILE: "none"
|
||||
# with:
|
||||
# args: |
|
||||
# RomWBW-SnapShot-Package.zip
|
||||
|
||||
# - name: Post SnapShot
|
||||
# uses: cb80/pubrel@latest
|
||||
# with:
|
||||
# replace: true
|
||||
# files: |
|
||||
# RomWBW-SnapShot-Package.zip
|
||||
|
||||
# - name: Post SnapShot
|
||||
# uses: wwarthen/actions/packages/automatic-releases@built-packages
|
||||
# with:
|
||||
# repo_token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
# prerelease: true
|
||||
# title: "RomWBW Development SnapShot ${{env.GITHUB_REF_SLUG}}"
|
||||
# files: |
|
||||
# RomWBW-SnapShot-Package.zip
|
||||
|
||||
# - name: Remove Older Releases
|
||||
# uses: wwarthen/delete-release-action@v1.2
|
||||
# with:
|
||||
# release-drop: true
|
||||
# release-keep-count: 0
|
||||
# release-drop-tag: true
|
||||
# pre-release-drop: false
|
||||
# pre-release-keep-count: 0
|
||||
# pre-release-drop-tag: true
|
||||
# draft-drop: true
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# - name: Remove Older Releases
|
||||
# uses: s00d/delete-older-releases@0.2.1
|
||||
# with:
|
||||
# keep_latest: 1
|
||||
## delete_tag_pattern: beta # defaults to ""
|
||||
# delete_type: 'release'
|
||||
# delete_branch: 'main'
|
||||
# env:
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
10
.gitignore
vendored
10
.gitignore
vendored
@@ -20,6 +20,7 @@
|
||||
|
||||
Binary/**/*.mym
|
||||
Binary/**/*.pt3
|
||||
!Binary/CPNET/NetBoot/cpnos-wbw.sys
|
||||
|
||||
Source/**/eeprom
|
||||
Source/Apps/Assign.com
|
||||
@@ -84,6 +85,7 @@ Tools/unix/zx/zx
|
||||
!Source/BPBIOS/*.lib
|
||||
!Source/BPBIOS/Z34RCP11/cledinst.com
|
||||
!Source/BPBIOS/Z34RCP11/cledsave.com
|
||||
!Source/CPNET/**
|
||||
!Source/Fonts/*
|
||||
!Source/Images/**
|
||||
!Source/RomDsk/**
|
||||
@@ -94,9 +96,11 @@ Tools/unix/zx/zx
|
||||
!Source/ZPM3/*.[Cc][Oo][Mm]
|
||||
!Source/ZSDOS/*.[Cc][Oo][Mm]
|
||||
!Source/ZRC/*.bin
|
||||
!Source/ZZR/*.bin
|
||||
!Source/ZZR/*.hex
|
||||
!Tools/cpm/bin/*
|
||||
!Source/ZRC512/*.bin
|
||||
!Source/Z1RCC/*.bin
|
||||
!Source/ZZRCC/*.bin
|
||||
!Source/FZ80/*.bin
|
||||
!Tools/cpm/**
|
||||
!Tools/unix/zx/*
|
||||
!Tools/zx/*
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -7,5 +7,5 @@ include $(TOOLS)/Makefile.inc
|
||||
all::
|
||||
mkdir -p Tunes
|
||||
|
||||
clobber::
|
||||
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.ovr *.hlp *.doc *.COM *.BIN Tunes/*.mym Tunes/*.pt?
|
||||
clean::
|
||||
@rm -f *.bin *.com *.img *.rom *.pdf *.log *.eeprom *.ovr *.hlp *.doc *.COM *.BIN Tunes/*.mym Tunes/*.pt? Tunes/*.vgm bbcbasic.txt
|
||||
|
||||
@@ -3,5 +3,5 @@ MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.com)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
clean::
|
||||
@rm -f *.com
|
||||
|
||||
44
Binary/Apps/Test/inttest.doc
Normal file
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.
|
||||
@@ -7,4 +7,4 @@
|
||||
***********************************************************************
|
||||
|
||||
This directory contains some sample ProTracker and MYM sound
|
||||
files that can be played by the TUNE application.
|
||||
files that can be played by the TUNE or VGMPLAY application.
|
||||
@@ -3,5 +3,5 @@ MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
@rm -f *.spr
|
||||
clean::
|
||||
@rm -f *.spr *.com *.sys *.dat cpm3fix.pat readme.1st
|
||||
|
||||
4
Binary/CPNET/Clean.cmd
Normal file
4
Binary/CPNET/Clean.cmd
Normal file
@@ -0,0 +1,4 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.lbr del *.lbr
|
||||
7
Binary/CPNET/Makefile
Normal file
7
Binary/CPNET/Makefile
Normal file
@@ -0,0 +1,7 @@
|
||||
TOOLS = ../../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.lbr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clean::
|
||||
@rm -f *.lbr
|
||||
BIN
Binary/CPNET/NetBoot/cpnos-wbw.sys
Normal file
BIN
Binary/CPNET/NetBoot/cpnos-wbw.sys
Normal file
Binary file not shown.
38
Binary/CPNET/ReadMe.txt
Normal file
38
Binary/CPNET/ReadMe.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory contains the CP/NET client packages. Please refer to
|
||||
the RomWBW User Guide for instructions on installing these packages.
|
||||
Either the MT011 RCBus module or the Duodyne Disk I/O board is required.
|
||||
|
||||
All of these files come from Douglas Miller. Please refer to
|
||||
https://github.com/durgadas311/cpnet-z80 for more information, complete
|
||||
documentation and the latest source code. Refer to the RomWBW
|
||||
User Guide for basic installation and usage instructions under RomWBW.
|
||||
|
||||
| File | CP/NET Version | OS | Hardware |
|
||||
+--------------+----------------+----------+-----------------------+
|
||||
| CPN12MT.LBR | CP/NET 1.2 | CP/M 2.2 | RCBus w/ MT011 |
|
||||
| CPN3MT.LBR | CP/NET 3 | CP/M 3 | RCBus w/ MT011 |
|
||||
| CPN12DUO.LBR | CP/NET 1.2 | CP/M 2.2 | Duodyne w/ Disk I/O |
|
||||
| CPN3DUO.LBR | CP/NET 3 | CP/M 3 | Duodyne w/ Disk I/O |
|
||||
|
||||
In general, to use CP/NET on RomWBW, it is intended that you will
|
||||
extract the appropriate set of files into your default directory in
|
||||
user area 0. Refer to the RomWBW User Guide for more information.
|
||||
|
||||
The libraries include enhanced help files appropriate for the version
|
||||
of CP/NET. Rename the desired topic collection to HELP.HLP on the
|
||||
target system.
|
||||
|
||||
CPM2NET.HLP CP/M 2.2 basic system with CP/NET 1.2
|
||||
CPNET12.HLP CP/NET 1.2 help only
|
||||
CPM3NET.HLP CP/M 3 basic system with CP/NET 3
|
||||
CPNET3.HLP CP/NET 3 help only
|
||||
|
||||
-- WBW 7:14 AM 2/11/2024
|
||||
@@ -14,3 +14,4 @@ if exist *.eeprom del *.eeprom
|
||||
pushd Apps && call Clean || exit /b 1 & popd
|
||||
pushd CPM3 && call Clean || exit /b 1 & popd
|
||||
pushd ZPM3 && call Clean || exit /b 1 & popd
|
||||
pushd CPNET && call Clean || exit /b 1 & popd
|
||||
|
||||
@@ -1,173 +0,0 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Binary") is part of the RomWBW System Software
|
||||
distribution archive. Refer to the ReadMe.txt file in this
|
||||
directory for more information on the overall contents of the
|
||||
directory.
|
||||
|
||||
RomWBW includes a set of disk images that are ready to copy onto
|
||||
a floppy or hard/CF/SD disk. You can use your modern computer
|
||||
(Windows/Linux/Mac) to copy the disk image file onto your disk
|
||||
media. The disk media will then be ready to use in your RomWBW
|
||||
System.
|
||||
|
||||
WARNING: The hdnew_*.img disk images are part of a new disk
|
||||
format that is a work in progress. Do not use these disk
|
||||
images without knowing exactly what you are doing! The
|
||||
hd_*.img disk images continue to be the images you should
|
||||
be using under normal circumstances.
|
||||
|
||||
A description of the disk images is provided later in this file.
|
||||
For more information on the creatioin of these images including
|
||||
instructions for customizing them or creating your own, refer to
|
||||
the ReadMe.txt file in the Source\Images directory.
|
||||
|
||||
Installing Images
|
||||
-----------------
|
||||
|
||||
The following instructions apply to Windows computers. Alternatively,
|
||||
you can use the "dd" command on Linux or Mac.
|
||||
|
||||
First of all, a MAJOR WARNING!!!! The tools described below are
|
||||
quite capable of obliterating your running Windows system drive. Use
|
||||
with extreme caution and make sure you have backups.
|
||||
|
||||
To install a floppy image on floppy media, you can use the tool
|
||||
called RaWriteWin. This tool is included in the Tools directory of
|
||||
the distribution. This tool will write your floppy image (fd_xxx.img)
|
||||
to a floppy disk using a raw block transfer. The tool is GUI based
|
||||
and it's operation is self explanatory.
|
||||
|
||||
To install a hard disk image on a CF card or SD card, you must have
|
||||
the appropriate media card slot on your computer. If you do, you can
|
||||
use the tool called Win32DiskImager. This tool is also included in
|
||||
the Tools directory of the distribution. It will write your
|
||||
hard disk image (hd_xxx.img) to the designated media card. This tool
|
||||
is also GUI based and self explanatory.
|
||||
|
||||
The use of the SIMH emulator is outside of the scope of this document.
|
||||
However, if you use SIMH, you will find that you can attach the hard
|
||||
disk images to the emulator with lines such as the following in your
|
||||
SIMH configuration file:
|
||||
|
||||
| attach hdsk0 hd_cpm22.img
|
||||
| set hdsk0 format=HDSK
|
||||
| set hdsk0 geom=T:2048/N:256/S:512
|
||||
| set hdsk0 wrtenb
|
||||
|
||||
Making Disk Images Bootable
|
||||
---------------------------
|
||||
|
||||
The Operating System disk images below are ready to boot by the
|
||||
RomWBW Boot Loader. However, if you update your RomWBW ROM, then
|
||||
you should also update the system tracks of your bootable disk
|
||||
images. You would use SYSCOPY to do this. SYSCOPY can also be
|
||||
used to make a disk bootable if it is not already bootable.
|
||||
|
||||
You would use a command like the following to make drive C bootable:
|
||||
|
||||
| B>SYSCOPY C:=CPM.SYS
|
||||
|
||||
The system file to use depends on the operating system you are trying
|
||||
to boot from the slice you are initializing with SYSCOPY:
|
||||
|
||||
CP/M 2.2 - cpm.sys
|
||||
ZSDOS 1.1 - zsys.sys
|
||||
CP/M 3 - cpmldr.sys
|
||||
ZPM3 - cpmldr.sys
|
||||
|
||||
Slices
|
||||
------
|
||||
|
||||
A RomWBW CP/M filesystem is fixed at 8MB. This is because it is the
|
||||
largest size filesystem supported by all common CP/M variants. Since
|
||||
all modern hard disks (including SD Cards and CF Cards) are much
|
||||
larger than 8MB, RomWBW supports the concept of "slices". This
|
||||
simply means that you can concatenate multiple CP/M filesystems (up
|
||||
to 256 of them) on a single physical hard disk and RomWBW will allow
|
||||
you to assign drive letters to them and treat them as multiple
|
||||
independent CP/M drives.
|
||||
|
||||
With the exception of the hd_combo image, each of the disk images
|
||||
includes a single CP/M file system (i.e., a single slice). However,
|
||||
you can easily create a multi-slice disk image by merely concatenating
|
||||
multiple images together. For example, if you wanted to create a 2
|
||||
slice disk image that has ZSDOS in the first slice and Wordstar in
|
||||
the second slice, you could use the following command from a Windows
|
||||
command prompt:
|
||||
|
||||
| C:\RomWBW\Binary>copy /b hd_zsdos.img + hd_ws.img hd_multi.img
|
||||
|
||||
You can now write hd_multi.img onto your SD or CF Card and you will
|
||||
have ZSDOS in the first slice and Wordstar in the second slice.
|
||||
|
||||
The hd_combo disk image is an example of this. It contains several
|
||||
slices in one image file. The contents of this special disk image
|
||||
are described below.
|
||||
|
||||
The concept of slices applies ONLY to hard disks. Floppy disks are
|
||||
not large enough to support multiple slices.
|
||||
|
||||
Disk Image Contents
|
||||
-------------------
|
||||
|
||||
What follows is a brief description of the contents of the
|
||||
disk images automatically provided in the RomWBW distribution.
|
||||
Note that all of the OS images include the RomWBW custom
|
||||
support apps.
|
||||
|
||||
cpm22 - DRI CP/M 2.2 (Bootable Floppy and Hard Disk)
|
||||
|
||||
Standard DRI CP/M 2.2 distribution files along with a few commonly
|
||||
used utilities.
|
||||
|
||||
zsdos - ZCPR1 + ZSDOS 1.1 (Bootable Floppy and Hard Disk)
|
||||
|
||||
Contains ZCPR1 and ZSDOS 1.1. This is roughly equivalent to the
|
||||
ROM boot contents, but provides a full set of the applications
|
||||
and related files that would not all fit on the ROM drive.
|
||||
|
||||
nzcom - NZCOM (Bootable Floppy and Hard Disk)
|
||||
|
||||
Standard NZCOM distribution. Note that you will need to run the
|
||||
NZCOM setup before this will run properly. You will need
|
||||
to refer to the NZCOM documentation.
|
||||
|
||||
cpm3 - DRI CP/M3 (Bootable Floppy and Hard Disk)
|
||||
|
||||
Standard DRI CP/M 3 adaptation for RomWBW that is ready to run.
|
||||
It can be started by running CPMLDR.
|
||||
|
||||
zpm3 - ZPM3 (Bootable Floppy and Hard Disk)
|
||||
|
||||
Simeon Cran's ZCPR 3 compatible OS for CP/M 3 adapted for RomWBW and
|
||||
ready to run. It can be started by running CPMLDR (which seems
|
||||
wrong, but ZPMLDR is somewhat broken).
|
||||
|
||||
ws4 - WordStar 4 (Floppy and Hard Disk)
|
||||
|
||||
Micropro Wordstar 4 full distribution. This image is not bootable
|
||||
and is intended to be added as an additional slice to an OS image.
|
||||
|
||||
bp - BPBIOS (Hard Disk only)
|
||||
|
||||
Adaptation of BPBIOS for RomWBW. This is NOT complete and NOT
|
||||
useable in it's current state.
|
||||
|
||||
combo - Multi-Boot Combination (Bootable Hard Disk)
|
||||
|
||||
A pre-created combo image that contains the following slices. The
|
||||
slices are identical to the individual images listed above.
|
||||
|
||||
Slice 0: cpm22 (bootable)
|
||||
Slice 1: zsdos (bootable)
|
||||
Slice 2: nzcom (bootable)
|
||||
Slice 3: cpm3 (bootable)
|
||||
Slice 4: zpm3 (bootable)
|
||||
Slice 5: ws4 (not bootable)
|
||||
@@ -1,8 +1,8 @@
|
||||
TOOLS = ../Tools
|
||||
MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.img *.rom *.com *.eeprom)
|
||||
SUBDIRS = Apps CPM3 ZPM3
|
||||
SUBDIRS = Apps CPM3 ZPM3 CPNET
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
@rm -f *.bin *.com *.img *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat
|
||||
clean::
|
||||
@rm -f *.bin *.com *.img *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat
|
||||
|
||||
@@ -39,8 +39,8 @@ 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 the
|
||||
RomList.txt file in this directory.
|
||||
Documentation of the pre-built ROM Images is contained in
|
||||
"RomWBW User Guide.pdf" in the Doc directory.
|
||||
|
||||
ROM Firmware Update Images (<plt>_<cfg>.upd)
|
||||
-------------------------------------
|
||||
@@ -49,7 +49,7 @@ The files with a ".upd" extension are binary images identical to the
|
||||
.rom files, but they only have the first 128K bytes. The first 128K
|
||||
is the system image without the ROM disk contents. These files can be
|
||||
used to update the system image without modifying the ROM disk
|
||||
contents. Refer to the Getting Started document for more information.
|
||||
contents. Refer to the RomWBW User Guide for more information.
|
||||
|
||||
ROM Executable Images (<plt>_<cfg>.com)
|
||||
---------------------------------------
|
||||
@@ -75,8 +75,8 @@ 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)
|
||||
------------------------------
|
||||
Disk Images (fd_*.img, hd_*.img, psys.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,
|
||||
@@ -96,25 +96,35 @@ 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 hd_*.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.
|
||||
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.
|
||||
|
||||
WARNING: The hdnew_*.img disk images are part of a new disk
|
||||
format that is a work in progress. Do not use these disk
|
||||
images without knowing exactly what you are doing! The
|
||||
hd_*.img disk images continue to be the images you should
|
||||
be using under normal circumstances.
|
||||
NOTE: The hd512_*.img files are equivalent to the hd_*.img
|
||||
files in previous distributions. The hd1k_*.img files
|
||||
contained a revised file system format that increases the
|
||||
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
|
||||
DiskList.txt file in this directory.
|
||||
"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
|
||||
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
|
||||
p-System implementation.
|
||||
|
||||
Propeller ROM Images (*.eeprom)
|
||||
-------------------------------
|
||||
|
||||
|
||||
@@ -1,260 +0,0 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Binary") is part of the RomWBW System Software
|
||||
distribution archive. Refer to the ReadMe.txt file in this
|
||||
directory for more information on the overall contents of the
|
||||
directory.
|
||||
|
||||
When distributed, RomWBW contains a set of pre-built ROM images that
|
||||
are ready to program onto the EEPROM of any of the Z80/Z180 based
|
||||
RetroBrew Computers CPU boards. Additionally, any custom built ROM
|
||||
images will be placed in this directory.
|
||||
|
||||
All of the pre-built ROM images are 512KB. This size is compatible
|
||||
with all of the Z80/Z180 systems. Some systems can accept different
|
||||
size ROM images. Creating alternative sizes requires a custom ROM
|
||||
build (see ReadMe.txt in the Source directory).
|
||||
|
||||
It is critical that the right ROM Imgae be selected for the target
|
||||
platform being used. The table below indicates the correct ROM
|
||||
image to use for each platform:
|
||||
|
||||
SBC V1/V2 SBC_std.rom
|
||||
SBC SimH SBC_simh.rom
|
||||
Zeta V1 ZETA_std.rom
|
||||
Zeta V2 ZETA2_std.rom
|
||||
N8 N8_std.rom
|
||||
Mark IV MK4_std.rom
|
||||
RC2014 w/ Z80 RCZ80_std.rom
|
||||
RC2014 w/ Z180 RCZ180_nat.rom (native Z180 memory addressing)
|
||||
RC2014 w/ Z180 RCZ180_ext.rom (external 512K RAM/ROM module)
|
||||
SC-series SC126, SC130, SC131
|
||||
Easy Z80 EZZ180_std.rom
|
||||
Dyno DYNO_std.rom
|
||||
|
||||
You will find there is one additional ROM image called
|
||||
"UNA_std.rom". This ROM image is an UNA-based RomWBW ROM image. As
|
||||
such, this ROM image can be used on any Z80/Z180 platform supported
|
||||
by John Coffman's UNA BIOS. Refer to RetroBrew Computers Wiki for
|
||||
more information on UNA hardware support.
|
||||
|
||||
For each of the ROM Images (".rom"), there are corresponding files
|
||||
with the extensions of ".com" and ".img". The .com variant can be
|
||||
copied to a functional RomWBW-based system and executed like a
|
||||
normal application under CP/M or Z-System. This will load the new
|
||||
ROM on-the-fly. It is an excellent way to test a ROM Image before
|
||||
actually burning it. Similarly, the .img files can be loaded using
|
||||
the UNA FAT loader for testing.
|
||||
|
||||
All of the standard ROM Images are configured for:
|
||||
- 512KB ROM Disk
|
||||
- 512KB RAM Disk
|
||||
- 38.4Kbps baud serial console (*)
|
||||
- Auto-discovery of all serial ports
|
||||
|
||||
* RC2014 and Stephen Cousins' kits run at 115,200Kbps baud
|
||||
|
||||
All hard disk type devices (IDE, PPIDE, CF Card, SD Card) will be
|
||||
automatically assigned at least two drive letters per device. The
|
||||
drive letters will refer to the first 2 slices of the device. The
|
||||
ASSIGN command can be used to display and reassign drives to disk
|
||||
devices and slices as desired.
|
||||
|
||||
Standard ROM Image Notes
|
||||
------------------------
|
||||
|
||||
The standard ROM images will detect and install support for certain
|
||||
devices and peripherals that are on-board or frequently used with
|
||||
each platform as documented below. If the device or peripheral is
|
||||
not detected at boot, the ROM will simply bypass support
|
||||
appropriately.
|
||||
|
||||
SBC (SBC_std.rom):
|
||||
- CPU speed is detected at startup
|
||||
- Console on onboard UART serial port at 38400 baud
|
||||
- Includes support for PPIDE/CF Card(s) connected to on-board
|
||||
parallel port.
|
||||
- Includes support for CVDU and VGA3 boards. If detected at
|
||||
startup, support for video and keyboard is installed
|
||||
including VT-100/ANSI terminal emulation.
|
||||
- Auto detects DiskIO v3 floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Auto-detects PropIO or PropIO V2 and installs associated
|
||||
video, keyboard and SD Card support if present.
|
||||
- If PropIO, PropIO V2, CVDU, or VGA hardware is detected,
|
||||
initial console output is determined by JP2. If JP2 is
|
||||
shorted, console will go to on-board serial port, if JP2
|
||||
is open, console will go to the detected video and keyboard
|
||||
ports.
|
||||
- SBC V1 has a known race condition in the bank switching
|
||||
circuit which is likely to cause system instability. SBC
|
||||
V2 does not have this issue.
|
||||
|
||||
SBC (SBC_simh.rom):
|
||||
- SBC variant customized to run under SimH
|
||||
- Implments two emulated SimH hard disk images
|
||||
- Uses SimH RTC
|
||||
|
||||
ZETA (ZETA_std.rom):
|
||||
- CPU speed is detected at startup
|
||||
- Console on onboard UART serial port at 38400 baud
|
||||
- Auto-detects FDC and installs 3.5" disk support
|
||||
if found
|
||||
- Auto detects on-board floppy disk controller and installs
|
||||
support for one attached 3.5" floppy disk if found
|
||||
- Auto-detects ParPortProp and includes support for it if it
|
||||
is attached.
|
||||
- If ParPortProp is installed, initial console output is
|
||||
determined by JP1. If JP1 is shorted, console will go to
|
||||
on-board serial port, if JP1 is open, console will go to
|
||||
ParPortProp video and keyboard ports.
|
||||
|
||||
ZETA2 (ZETA2_std.rom):
|
||||
- CPU speed is detected at startup
|
||||
- Console on onboard UART serial port at 38400 baud
|
||||
- Auto detects on-board floppy disk controller and installs
|
||||
support for one attached 3.5" floppy disk if found
|
||||
- Auto-detects ParPortProp and includes support for it if it
|
||||
is attached.
|
||||
- Uses CTC to generate periodic timer interrupts.
|
||||
- If ParPortProp is installed, initial console output is
|
||||
determined by JP1. If JP1 is shorted, console will go to
|
||||
on-board serial port, if JP1 is open, console will go to
|
||||
ParPortProp video and keyboard ports.
|
||||
|
||||
N8 (N8_std.rom):
|
||||
- CPU speed is detected at startup
|
||||
- Console on Z180 onboard primary ASCI serial port at 38400 baud
|
||||
- Auto detects onboard floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Includes support for on-board TMS9918 video and keyboard
|
||||
including VT-100/ANSI terminal emulation.
|
||||
- Includes support for on-board SD Card as hard disk and
|
||||
assumes a production level N8 board (date code >= 2312).
|
||||
|
||||
MK4 (MK4_std.rom):
|
||||
- CPU speed is detected at startup
|
||||
- Console on Z180 onboard primary ASCI serial port at 38400 baud
|
||||
- Includes support for on-board IDE port (CF Card via adapter).
|
||||
- Includes support for on-board SD Card port.
|
||||
- Auto detects Dual IDE floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Auto-detects PropIO or PropIO V2 and installs associated
|
||||
video, keyboard and SD Card support if present.
|
||||
- Includes support for CVDU and VGA3 boards. If detected at
|
||||
startup, support for video and keyboard is installed
|
||||
including VT-100/ANSI terminal emulation.
|
||||
|
||||
RCZ80 (RCZ80_std.rom):
|
||||
- Assumes CPU oscillator of 7.3728 MHz
|
||||
- Requires 512K RAM/ROM module
|
||||
- Auto detects Serial I/O Module (ACIA), Dual Serial
|
||||
Module (SIO/2), and EP Dual UART.
|
||||
- Console on whichever serial module is installed,
|
||||
order of priority is UART, SIO, then ACIA.
|
||||
- Baud rate is determined by hardware, but normally 115200.
|
||||
- Auto support for RC2014 Compact Flash Module
|
||||
- Auto support for RC2014 PPIDE Module
|
||||
- Support for Scott Baker SIO board may be enabled in config
|
||||
- Auto detects WDC floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Support for SMC floppy controller may be enabled in config
|
||||
- Support for J.B. Lang TMS9918 video card may be enabled in config
|
||||
- Support for PropIO V2 may be enabled in config (PRPENABLE). If
|
||||
enabled, will auto-detect and install associated
|
||||
video, keyboard and SD Card support if present.
|
||||
|
||||
RCZ80 w/ KIO (RCZ80_kio.rom):
|
||||
- Same as RCZ80_std
|
||||
- Requires KIO module
|
||||
- SIO ports provided by KIO
|
||||
|
||||
RCZ180 (RCZ180_nat.rom & RCZ180_ext.rom):
|
||||
- Assumes CPU oscillator of 18.432 MHz
|
||||
- Console on Z180 onboard primary ASCI serial port at 115200 baud
|
||||
- Auto support for RC2014 Compact Flash Module
|
||||
- Auto support for RC2014 PPIDE Module
|
||||
- Support for alternative serial modules may be enabled in config
|
||||
- Auto detects WDC floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Support for SMC floppy controller may be enabled in config
|
||||
- Support for J.B. Lang TMS9918 video card may be enabled in config
|
||||
- You must pick the variant (_ext or _nat) depending
|
||||
on which memory module you are using:
|
||||
- RCZ180_ext.rom uses external bank management to access
|
||||
memory, such as the 512K RAM/ROM module.
|
||||
- RCZ180_nat.rom uses the built-in Z180 memory manager
|
||||
for use with memory modules using direct physical
|
||||
addressing of memory, such as the SC119.
|
||||
- Support for PropIO V2 may be enabled in config (PRPENABLE). If
|
||||
enabled, will auto-detect and install associated
|
||||
video, keyboard and SD Card support if present.
|
||||
|
||||
RCZ280 (RCZ280_ext.rom, RCZ280_nat.rom, RCZ280_nat_zz.rom):
|
||||
- Assumes CPU oscillator of 24 MHz
|
||||
- Bus clock will be 6 MHz or 12 MHz, so does not match RC2014 standard!!!
|
||||
- Requires 512K RAM/ROM module (unless using ZZ80MB)
|
||||
- Auto detects Serial I/O Module (ACIA), Dual Serial
|
||||
Module (SIO), EP Dual UART (DUART), and built-in Z280 UART (Z2U).
|
||||
- ACIA module is only supported on _ext variant.
|
||||
- Built-in Z280 UART (Z2U) is buffered and interrupt driven only
|
||||
on _nat and _nat_zz variants. It uses polling I/O on _ext.
|
||||
- Console on whichever serial module is installed,
|
||||
order of priority is Z2U, UART, SIO, DUART, ACIA
|
||||
- Baud rate is determined by hardware, but normally 115200.
|
||||
- Auto support for RC2014 Compact Flash Module
|
||||
- Auto support for RC2014 PPIDE Module
|
||||
- Support for Scott Baker SIO board may be enabled in config
|
||||
- Auto detects WDC floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Support for SMC floppy controllers may be enabled in config
|
||||
- Support for J.B. Lang TMS9918 video card may be enabled in config
|
||||
- You must pick the variant (_ext, _nat, or _nat_zz) depending
|
||||
on which platform or memory module you are using:
|
||||
- RCZ280_ext.rom uses external bank management to access
|
||||
memory, such as the 512K RAM/ROM module.
|
||||
- RCZ280_nat.rom uses the built-in Z280 memory manager
|
||||
for use with memory modules using direct physical
|
||||
addressing of memory, such as the SC119.
|
||||
- RCZ280_nat_zz.rom is specifically for the ZZ80MB platform
|
||||
which has both CPU and memory onboard.
|
||||
- Support for PropIO V2 may be enabled in config (PRPENABLE). If
|
||||
enabled, will auto-detect and install associated
|
||||
video, keyboard and SD Card support if present.
|
||||
|
||||
SCZ180 (SCZ180_126.rom, SCZ180_130.rom, SCZ180_131.rom, SCZ140.rom):
|
||||
- Same as RCZ180
|
||||
- Adds auto support for onboard SPI SD Card
|
||||
- The 4 different variants of SCZ180 are provided to match the
|
||||
4 corresponding systems (SC126, SC130, SC131, and SC140)
|
||||
designed by Stephen Cousins.
|
||||
- Support for PropIO V2 may be enabled in config (PRPENABLE). If
|
||||
enabled, will auto-detect and install associated
|
||||
video, keyboard and SD Card support if present.
|
||||
|
||||
EZZ80 (EZZ80_std.rom):
|
||||
- Assumes CPU oscillator of 10.000 MHz
|
||||
- Console on primary SIO serial port at 115200 baud
|
||||
- Includes support for on-board SIO
|
||||
- Auto support for RC2014 Compact Flash Module
|
||||
- Auto support for RC2014 PPIDE Module
|
||||
- Auto detects WDC floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Support for SMC floppy controllers may be enabled in config
|
||||
- Support for PropIO V2 may be enabled in config (PRPENABLE). If
|
||||
enabled, will auto-detect and install associated
|
||||
video, keyboard and SD Card support if present.
|
||||
|
||||
DYNO (DYNO_std.rom):
|
||||
- Assumes CPU oscillator of 18.432 MHz
|
||||
- Console on Z180 onboard serial ports at 38400 baud
|
||||
- Includes support for BQ4842 RTC
|
||||
- Auto detects Dyno floppy disk controller and installs
|
||||
support for two attached 3.5" floppy disks if found
|
||||
- Includes support for onboard PPIDE
|
||||
@@ -3,5 +3,5 @@ MOREDIFF := $(shell $(TOOLS)/unix/casefn.sh *.spr)
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
clobber::
|
||||
@rm -f *.spr
|
||||
clean::
|
||||
@rm -f *.spr *.com *.sys *.dat *.zpm
|
||||
|
||||
@@ -3,4 +3,4 @@ setlocal
|
||||
|
||||
pushd Source && call Build %* || exit /b & popd
|
||||
|
||||
pause
|
||||
if "%*" == "" pause
|
||||
|
||||
128
CODE_OF_CONDUCT.md
Normal file
128
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,128 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
wwarthen@gmail.com.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
||||
42
CONTRIBUTING.md
Normal file
42
CONTRIBUTING.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Contributing to RomWBW
|
||||
|
||||
> **WARNING**: The `dev` branch of RomWBW has been deprecated as of v3.4. All Pull Requests should now target the `master` branch.
|
||||
|
||||
Contributions of all kinds to RomWBW are welcomed and greatly appreciated.
|
||||
|
||||
- Reporting bug(s) and suggesting new feature(s)
|
||||
- Discussing the current state of the code
|
||||
- Submitting a fixes and enhancements
|
||||
|
||||
## RomWBW GitHub Repository
|
||||
|
||||
The [RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW) is the primary location for developing, supporting, and distributing RomWBW. Although input is gladly accepted from almost any channel, the GitHub Repository is preferred.
|
||||
|
||||
- Use **Issues** to report bugs, request enhancements, or ask usage questions.
|
||||
- Use **Discussions** to interact with others
|
||||
- Use **Pull Requests** to submit content (code, documentation, etc.)
|
||||
|
||||
## Submitting Content
|
||||
|
||||
This RomWBW Project uses the standard [GitHub Flow](https://docs.github.com/en/get-started/quickstart/github-flow). Submission of content changes (including code) are ideally done via Pull Requests.
|
||||
|
||||
- Submitters are advised to contact [Wayne Warthen](mailto:wwarthen@gmail.com) or start a GitHub Discussion prior to starting any significant work. This is simply to ensure that submissions are consistent
|
||||
with the overall goals and intentions of RomWBW.
|
||||
- All submissions should be based on the `master` branch. To create your submission, fork the RomWBW repository and create your branch from `master`. Make (and test) your changes in your personal fork.
|
||||
- Please update relevant documentation and the `ChangeLog` found in the `Doc` folder.
|
||||
- You are encouraged to comment your submissions to ensure your work is properly attributed.
|
||||
- When ready, submit a Pull Request to merge your forked branch into the RomWBW master branch.
|
||||
|
||||
## Coding Style
|
||||
|
||||
Due to the nature of the project, you will find a variety of coding styles. When making changes to existing code, please try to be consistent with the existing coding style. You may not like the current style, but no one likes mixed styles
|
||||
in one file/module.
|
||||
|
||||
Be careful with white space. RomWBW is primarily assembly langauge code. The use of tab stops at every 8 characters is pretty standard for assembler. If you use something else, then your code will look odd when viewed by others.
|
||||
|
||||
In most cases, the use of `<cr><lf>` line endings is preferred. This is standard for the operating systems of the era that RomWBW provides. Also note that CP/M text files should end with a ctrl-Z (0x1A). This is not magically added by the
|
||||
tools that generate the disk images.
|
||||
|
||||
## License
|
||||
|
||||
RomWBW is licensed under GPLv3. When you submit code changes, your submissions are understood to be under the same [GPLv3 License](https://www.gnu.org/licenses/gpl-3.0.html) that covers the project.
|
||||
67
Doc/CPM/ReadMe.txt
Normal file
67
Doc/CPM/ReadMe.txt
Normal file
@@ -0,0 +1,67 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Doc/CPM") is part of the RomWBW System Software
|
||||
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")
|
||||
-----------------------------
|
||||
|
||||
The original DRI CP/M 2.x Operating System Manual. This should be
|
||||
considered the primary reference for system operation. The section
|
||||
on CP/M 2 Alteration can be ignored since this work has already been
|
||||
completed as part of the RomWBW distribution.
|
||||
|
||||
|
||||
CPM3 Command Summary ("CPM3 Command Summary.pdf")
|
||||
CPM3 Programmer's Guide ("CPM3 Programmers Guide.pdf")
|
||||
CPM3 System Guide ("CPM3 System Guide.pdf")
|
||||
CPM3 User's Guide ("CPM3 Users Guide.pdf")
|
||||
------------------------------------------------------
|
||||
|
||||
The original DRI CP/M 3.0 Operating System Documentation Set. This
|
||||
should be considered the primary reference for CP/M 3 system operation.
|
||||
|
||||
|
||||
NZCOM User's Manual ("NZCOM Users Manual.pdf")
|
||||
----------------------------------------------
|
||||
|
||||
NZCOM operating system operation manual.
|
||||
|
||||
|
||||
QP/M 2.7 Installation Guide and Supplements ("qpm27.pdf")
|
||||
QP/M 2.7 Interface Guide ("qdos27.pdf")
|
||||
QP/M 2.7 Features and Facilities ("qcp27.pdf")
|
||||
--------------------------------------------
|
||||
|
||||
Official documentation set for QP/M 2.7 from original QP/M distribution.
|
||||
|
||||
|
||||
ZCPR Manual ("ZCPR Manual.pdf")
|
||||
-------------------------------
|
||||
|
||||
ZCPR is the command proccessor portion of Z-System. This is the
|
||||
manual for ZCPR 1.x as included in RomWBW. The installation
|
||||
instructions can be ignored since that work has already been
|
||||
completed as part of the RomWBW distribution.
|
||||
|
||||
ZCPR D&J Manual ("ZCPR-DJ.doc")
|
||||
-------------------------------
|
||||
|
||||
ZCPR D&J User Manual. This manual supplements the ZCPR Manual.
|
||||
|
||||
|
||||
ZSDOS Manual ("ZSDOS Manual.pdf")
|
||||
---------------------------------
|
||||
|
||||
ZSDOS is the DOS portion of Z-System. This is the manual for ZSDOS
|
||||
1.x as included in RomWBW. The installation instructions can be
|
||||
ignored since that work has already been completed as part of the
|
||||
RomWBW distribution.
|
||||
BIN
Doc/CPM/qcp27.pdf
Normal file
BIN
Doc/CPM/qcp27.pdf
Normal file
Binary file not shown.
BIN
Doc/CPM/qdos27.pdf
Normal file
BIN
Doc/CPM/qdos27.pdf
Normal file
Binary file not shown.
BIN
Doc/CPM/qpm27.pdf
Normal file
BIN
Doc/CPM/qpm27.pdf
Normal file
Binary file not shown.
@@ -1,3 +1,110 @@
|
||||
Version 3.5
|
||||
-----------
|
||||
- M?F: Fix for hours display in HBRTC application
|
||||
- M?F: Fix for assembly error in DS1501RTC driver
|
||||
- WBW: Add VT-100 graphics char selection to Propeller firmware
|
||||
- WBW: Allow all lines of VGA display to be used on Propeller firmware
|
||||
- WBW: Allow front panel LED/Switch bits to be inverted in config
|
||||
- WBW: Add API to expose application banks available
|
||||
- WBW: Added console takeover at boot loader prompt
|
||||
- L?N: Fixed Propeller font vertical line character to align properly
|
||||
- L?S: EF9345 video display controller driver
|
||||
- WBW: Added Cowgol disk image based on the work of Ladislau Szilagyi
|
||||
- WBW: Added support for CP/NET on Duodyne Disk I/O
|
||||
- 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
|
||||
- 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
|
||||
|
||||
Version 3.4
|
||||
-----------
|
||||
NOTE: Changes require HBIOS/CBIOS/Apps sync, version bump to 3.4 to ensure integrity
|
||||
- WBW: Device type number moved from upper nibble to full byte
|
||||
- A?C: Support for EP ITX-Mini Z180 Platform
|
||||
- M?R: Significant improvement in User Guide document
|
||||
- J?P: Preliminary support for Monsputer (MON)
|
||||
- JLC: Standardize TMS driver memory map for compatibility
|
||||
- WBW: Improved IDE device detection
|
||||
- WBW: Fixed decompression when run on Z280
|
||||
- K?B: WDATE generic HBIOS date/time utility
|
||||
- WBW: Create new DSKY framework with simple driver style interface
|
||||
- JBL: Added ColecoVision config in TMS driver
|
||||
- WBW: Added support for interrupt mode 1 on Z180
|
||||
- WBW: Added S100 platform
|
||||
- WBW: Added Duodyne platform
|
||||
- WBW: Incorporated John Monahan's S100 Monitor in S100 platform build
|
||||
- WBW: Support ESP32 on Duodyne
|
||||
- M?C: Fixed port specification when using XM.COM send transfers
|
||||
- PMS: Support for Duodyne DMA
|
||||
- WBW: Added Serial ROM (SROM.COM) utility
|
||||
- WBW: Support S100 Propeller Console
|
||||
- SCC: Added support for SC700
|
||||
- WBW: Added Heath H8 platform
|
||||
- D?J: Enhanced build to run on Raspberry Pi 4
|
||||
- WBW: Complete overhaul of ROMless boot operation
|
||||
- WBW: Prevent access to slices outside of partition
|
||||
- T?P: Contributed the HTALK utility
|
||||
- WBW: CTS stall detection
|
||||
- W?S: Updated FLASH utility to v1.3.7
|
||||
- L?N: Updated UNARC to new OS universal version
|
||||
- B?C: Added support for Z1RCC
|
||||
- M?R: User Guide enhancements and corrections
|
||||
- D?H: Added support for specification of secondary console
|
||||
- WBW: Added platform for Monsputer
|
||||
- WBW: Added FAT.COM to standard ROM Disk (removed RMAC.COM & LINK.COM)
|
||||
|
||||
Version 3.3
|
||||
-----------
|
||||
NOTE: v3.3 was never released
|
||||
- WBW: Support Front Panel switches
|
||||
- A?C: Preliminary support for Z80-Retro
|
||||
- A?C: Support for SD PIO
|
||||
- A?C: Support for Z80-Retro SD interface
|
||||
- WBW: Support per-drive floppy configuration
|
||||
- WBW: Support for Bill Shen's VGARC
|
||||
- WBW: Support for MG014 Parallel Port module + printer
|
||||
- WBW: Support for IMM Zip Drive on PPI interface (much inspiration from Alan Cox)
|
||||
- WBW: Support for PPA Zip Drive on PPI interface (much inspiration from Alan Cox)
|
||||
- WBW: Support for SyQuest SparQ Drive on PPI interface (much inspiration from Alan Cox)
|
||||
- WBW: Support for ATAPI Disk Drives (not CD-ROMs) on IDE and PPIDE interfaces
|
||||
- R?P: Added new disk images: Aztec C, MS BASIC Compiler, MS Fortran, Games, HiTech-C, Turbo Pascal, SLR Z80ASM
|
||||
- JBL: Added RCZ80 configuration for ColecoVision
|
||||
- WBW: Support for Z180 running interrupt mode 1
|
||||
- WBW: Preliminary support for S100 Computers Z180
|
||||
- WBW: Preliminary support for Dan Werner's ESP32 MBC Module
|
||||
- WBW: Early support for Duodyne base system (CPU/UART/ROM/RAM/RTC/SPK)
|
||||
- M?C: Fixed XM to allow specifying HBIOS port for send operations
|
||||
- WBW: Fix S100 Z180 LED operation (credit to Jay Cotton for finding this issue)
|
||||
- WBW: QPM system image is now combined with current CBIOS during build
|
||||
- WBW: Added framework for Heath platform
|
||||
- WBW: Support for USB Disks via CH375/CH376
|
||||
- D?J: Support for Raspberry Pi build process
|
||||
|
||||
Version 3.2.1
|
||||
-------------
|
||||
- M?P: Fixed Zeta 2 FDD and CPUSPD config settings
|
||||
- WBW: Fixed SURVEY.COM (again)
|
||||
- DDW: Updates to DOS/65 binaries in disk images
|
||||
- PMS: Updates to VGMPLAY including support for YM2151
|
||||
- WBW: Fix for quark delay adjustment being trashed
|
||||
|
||||
Version 3.2
|
||||
-----------
|
||||
- WBW: Version bump for release
|
||||
|
||||
Version 3.1.1
|
||||
-------------
|
||||
- WBW: Version bumped due to pervasive changes
|
||||
@@ -9,7 +116,7 @@ Version 3.1.1
|
||||
- HCS: ZRC memory manager support
|
||||
- S?K: Support for Tiny Z80 by Sergey
|
||||
- E?B: Support for v6 YM/AY sound card
|
||||
- C?M: Support for RC2014 bus PropIO V2
|
||||
- C?M: Support for RCBus bus PropIO V2
|
||||
- W?S: Updated FLASH software to v1.3.4
|
||||
- PMS: Preliminary support for writing to FLASH ROMs
|
||||
- PMS: Creation of process to update ROM system area w/o updating ROM disk contents
|
||||
@@ -60,13 +167,22 @@ Version 3.1.1
|
||||
- D?T: Substantial update to TastyBasic incuding a .COM executable
|
||||
- PMS: Added VGM audio file player
|
||||
- WBW: ZPMLDR and ZPM3 fixes, credit to Lars Nelson for finding ZPM3 source!
|
||||
- DDW: Add support for MBC sound card
|
||||
- WBW: Add support for "romless" booting
|
||||
- L?N: Fixes for ZCPR-D&J (buffer overflow, default drive/user)
|
||||
- J?P: Add support for DS1501 RTC
|
||||
- LLS: Added a user defined mode for SD Card interfaces (not complete)
|
||||
- L?N: Updated ZDE to v1.8 including time stamp preservation fixes
|
||||
- D?M: Minor update to CP/NET client files, fix to CPNBOOT
|
||||
- WBW: Added p-System IV.0 Z80 implementation
|
||||
- WBW: Hacked SURVEY to work around bank switching crash
|
||||
|
||||
Version 3.1
|
||||
-----------
|
||||
- WBW: Refactored ROM Loader
|
||||
- WBW: INTRTC periodic timer based clock
|
||||
- WBW: FDISK80 updated to allow reserving up to 256 slices
|
||||
- WBW: Added support dual 16C550 UART on RC2014 platform
|
||||
- WBW: Added support dual 16C550 UART on RCBus platform
|
||||
- WBW: Made .com images smaller (contain only Z-System now)
|
||||
- WBW: Support automatic clock hardware detection and fallback
|
||||
- WBW: Support use of CTC for SIO baud rate divisors
|
||||
@@ -104,8 +220,8 @@ Version 2.9.2
|
||||
- WBW: Support two SIO modules w/ auto-detection
|
||||
- PMS: Support ECB USB-FIFO board
|
||||
- WBW: Fixed ASSIGN issue with incorrect DPB selection
|
||||
- WBW: Add RC2014 Z180 AY sound support to TUNE app
|
||||
- WBW: Add RC2014 AY sound support to AY driver
|
||||
- WBW: Add RCBus Z180 AY sound support to TUNE app
|
||||
- WBW: Add RCBus AY sound support to AY driver
|
||||
- WBW: Add SC126 platform
|
||||
- WBW: Config files cleanup
|
||||
- WBW: Add interrupt support to ASCI driver
|
||||
@@ -124,7 +240,7 @@ Version 2.9.2
|
||||
- PMS: Add sound support to NASCOM BASIC
|
||||
- WBW: Updated FAT to add MD and FORMAT commands
|
||||
- WBW: Add CP/M 3 (experimental)
|
||||
- M?T: Support Shift register SPI WIZNET for RC2014
|
||||
- M?T: Support Shift register SPI WIZNET for RCBus
|
||||
- PLS: Added seconds register in HBIOS
|
||||
- WBW: More flexible table-driven config in TUNE.COM
|
||||
- PMS: Added timer support for Zilog Peripherals ECB Board
|
||||
@@ -152,7 +268,7 @@ Version 2.9.2
|
||||
|
||||
Version 2.9.1
|
||||
-------------
|
||||
- E?B: Added support for RC2014 RTC
|
||||
- E?B: Added support for RCBus RTC
|
||||
- WBW: Converted PTXPLAY to TUNE (now plays PT2/PT3/MYM sounds files)
|
||||
- WBW: Updated Win32DiskImager to v1.0
|
||||
- WBW: Implemented character attributes on Propeller based consoles
|
||||
@@ -162,7 +278,7 @@ Version 2.9.1
|
||||
- WBW: Update default IOBYTE so that LST:=LPT: by default
|
||||
- WBW: Fixed missing drive/head setup for writes in PPIDE
|
||||
- WBW: Fixed XModem HBIOS console driver for file send operations
|
||||
- WBW: Preliminary support for RC180 platform (Z180 module in RC2014)
|
||||
- WBW: Preliminary support for RC180 platform (Z180 module in RCBus)
|
||||
- WBW: Added NZCOM distribution files to third slice of hard disk image
|
||||
- WBW: Fixed getnum32 bug in MODE command (found by Phil Summers)
|
||||
- PMS: Added serial support for Zilog Peripherals Baord
|
||||
@@ -180,26 +296,26 @@ Version 2.9.1
|
||||
- WBW: Added timer interrupt support for CTC under Zeta 2 and Easy Z80
|
||||
- WBW: Support LBA style access in floppy driver
|
||||
- WBW: Added beta version of FAT filesystem utility (copy, dir, del, ren)
|
||||
- SCC: Added support for native memory addressing on Z180-based RC2014
|
||||
- SCC: Added support for native memory addressing on Z180-based RCBus
|
||||
- PMS: Dynamically discover and display processor type at boot
|
||||
- J?L: Added German keyboard support to PPK and KBD drivers
|
||||
|
||||
Version 2.9.0
|
||||
-------------
|
||||
- WBW: Implemented multi-sector I/O in all disk drivers
|
||||
- WBW: Added support for RC2014 SMB Floppy controller modules (SMC and WDC)
|
||||
- WBW: Added support for RCBus SMB Floppy controller modules (SMC and WDC)
|
||||
- WBW: New function dispatching for character/disk/video drivers
|
||||
- WBW: Updated FDU app to support RC2014 floppy controllers
|
||||
- WBW: Updated FDU app to support RCBus floppy controllers
|
||||
- WBW: Added TIMER app to display system timer value
|
||||
- WBW: Refactored interrupt management code
|
||||
- WBW: Added PTXPLAY application and sample tunes
|
||||
|
||||
Version 2.8.6
|
||||
-------------
|
||||
- WBW: Added support for RC2014 (SIO and ACIA drivers primarily)
|
||||
- WBW: Added support for RCBus (SIO and ACIA drivers primarily)
|
||||
- WBW: Automatically detect and run PROFILE.SUB on boot drive if it exists
|
||||
- WBW: Fixed Dual SD Board detection
|
||||
- WBW: Added console support to XModem (for RC2014 primarily)
|
||||
- WBW: Added console support to XModem (for RCBus primarily)
|
||||
- E?B: Fixed IDE/PPIDE when used with non-CF drives
|
||||
- WBW: Patched SUBMIT.COM so that it always puts temp file on A: for immediate execution
|
||||
- WBW: Accommodate spin up time for true IDE hard disks (IDE or PPIDE)
|
||||
|
||||
BIN
Doc/Contrib/AY-3-8910 Registers.xlsx
Normal file
BIN
Doc/Contrib/AY-3-8910 Registers.xlsx
Normal file
Binary file not shown.
@@ -4,7 +4,7 @@ ZSDOS Adaptation Notes for RomWBW
|
||||
Wayne Warthen
|
||||
wwarthen@gmail.com
|
||||
|
||||
This file is a log of the work done to adapt the ZSDOS distribution to the N8VEM platforms under RomWBW. I strongly recommend reviewing the zsdos.pdf file in the Doc directory.
|
||||
This file is a log of the work done to adapt the ZSDOS distribution to the N8VEM platforms under RomWBW. I strongly recommend reviewing the zsdos.pdf file in the Doc/CPM directory.
|
||||
|
||||
The starting point was the general public release of ZSDOS that is generally available. The first line of the README file is "ZSDOS-GP. General Public Release of the ZSDOS 1.x Operating System."
|
||||
|
||||
@@ -52,4 +52,4 @@ Usage Notes
|
||||
|
||||
6. After using PUTDS to initialize a directory for ZDS date stamping, I am finding that it is necessary to run RELOG before the stamping routines will actually start working.
|
||||
|
||||
7. Generic CP/M PIP and ZSDOS path searching do not play well together if you use PIP to copy to or from a directory in the ZSDOS search path. Best to use COPY from the ZSDOS distribution.
|
||||
7. Generic CP/M PIP and ZSDOS path searching do not play well together if you use PIP to copy to or from a directory in the ZSDOS search path. Best to use COPY from the ZSDOS distribution.
|
||||
|
||||
BIN
Doc/Language/Aztec_C_1.06_User_Manual_Mar84.pdf
Normal file
BIN
Doc/Language/Aztec_C_1.06_User_Manual_Mar84.pdf
Normal file
Binary file not shown.
BIN
Doc/Language/Cowgol Language.pdf
Normal file
BIN
Doc/Language/Cowgol Language.pdf
Normal file
Binary file not shown.
11351
Doc/Language/HI-TECH Z80 C Compiler Manual.txt
Normal file
11351
Doc/Language/HI-TECH Z80 C Compiler Manual.txt
Normal file
File diff suppressed because it is too large
Load Diff
4090
Doc/Language/Microsoft_FORTRAN-80_Users_Manual_1977.pdf
Normal file
4090
Doc/Language/Microsoft_FORTRAN-80_Users_Manual_1977.pdf
Normal file
File diff suppressed because one or more lines are too long
62
Doc/Language/ReadMe.txt
Normal file
62
Doc/Language/ReadMe.txt
Normal file
@@ -0,0 +1,62 @@
|
||||
***********************************************************************
|
||||
*** ***
|
||||
*** R o m W B W ***
|
||||
*** ***
|
||||
*** Z80/Z180 System Software ***
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Doc/Language") is part of the RomWBW System Software
|
||||
distribution archive. It contains documentation for Programming
|
||||
Languages provided with the system.
|
||||
|
||||
|
||||
Aztec C Compiler User Manual (Aztec_C_1.06_User_Manual_Mar84.pdf)
|
||||
-----------------------------------------------------------------
|
||||
|
||||
Official user manual for the Aztec C Compiler included in the aztecc disk image.
|
||||
|
||||
|
||||
Borland TurboPascal User Manual (Turbo_Pascal_Version_3.0_Reference_Manual_1986.pdf)
|
||||
------------------------------------------------------------------------------------
|
||||
|
||||
Official user manual Borland TurboPascal included in the pascal disk image.
|
||||
|
||||
|
||||
Cowgol Lanaguage (Cowgol Language.pdf)
|
||||
--------------------------------------
|
||||
|
||||
Documentation for Cowgol Language included in the cowgol disk image
|
||||
|
||||
|
||||
HI-TECH C Compiler User Manual (HI-TECH Z80 C Compiler Manual.txt)
|
||||
------------------------------------------------------------------
|
||||
|
||||
Official user manual for the HI-TECH C Compiler included in the
|
||||
hitechc disk image.
|
||||
|
||||
|
||||
Microsoft Basic-80 Reference Manual v5.0 (Microsoft Basic-80 Reference Manual v5.0.pdf)
|
||||
---------------------------------------------------------------------------------------
|
||||
|
||||
Official manual for Microsoft BASIC as included in RomWBW.
|
||||
|
||||
|
||||
Microsoft FORTRAN-80 User Manual (Microsoft_FORTRAN-80_Users_Manual_1977.pdf)
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Official user manual for Microsoft's FORTRAN-80 compiler included in the fortran
|
||||
disk image.
|
||||
|
||||
|
||||
Z80 Assembler User Manual (z80asm (SLR Systems).pdf)
|
||||
----------------------------------------------------
|
||||
|
||||
Official user manual for the Z80 Macro Assembler by SLR Systems
|
||||
included in the z80asm disk image.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
49495
Doc/Language/Turbo_Pascal_Version_3.0_Reference_Manual_1986.pdf
Normal file
49495
Doc/Language/Turbo_Pascal_Version_3.0_Reference_Manual_1986.pdf
Normal file
File diff suppressed because one or more lines are too long
BIN
Doc/Language/z80asm (SLR Systems).pdf
Normal file
BIN
Doc/Language/z80asm (SLR Systems).pdf
Normal file
Binary file not shown.
Binary file not shown.
@@ -6,28 +6,41 @@
|
||||
*** ***
|
||||
***********************************************************************
|
||||
|
||||
This directory ("Doc") is part of the RomWBW System Software
|
||||
distribution archive. It contains documentation for components of
|
||||
This directory ("Doc") is part of the RomWBW System Software
|
||||
distribution archive. It contains documentation for components of
|
||||
the system.
|
||||
|
||||
CPM (Directory)
|
||||
---------------
|
||||
|
||||
CPM Manual ("CPM Manual.pdf")
|
||||
-----------------------------
|
||||
|
||||
The original DRI CP/M 2.x Operating System Manual. This should be
|
||||
considered the primary reference for system operation. The section
|
||||
on CP/M 2 Alteration can be ignored since this work has already been
|
||||
completed as part of the RomWBW distribution.
|
||||
Documentation specific to CP/M, including all versions and derivatives.
|
||||
|
||||
|
||||
CPM3 Command Summary ("CPM3 Command Summary.pdf")
|
||||
CPM3 Programmer's Guide ("CPM3 Programmers Guide.pdf")
|
||||
CPM3 System Guide ("CPM3 System Guide.pdf")
|
||||
CPM3 User's Guide ("CPM3 Users Guide.pdf")
|
||||
------------------------------------------------------
|
||||
Language (Directory)
|
||||
--------------------
|
||||
|
||||
The original DRI CP/M 3.0 Operating System Documentation Set. This
|
||||
should be considered the primary reference for CP/M 3 system operation.
|
||||
Documentation specific to programming languages, provided with the system
|
||||
|
||||
|
||||
ChangeLog.txt
|
||||
-------------
|
||||
|
||||
Log of changes in RomWBW by version.
|
||||
|
||||
|
||||
RomWBW User Guide ("RomWBW User Guide.pdf")
|
||||
RomWBW System Guide ("RomWBW System Guide.pdf")
|
||||
RomWBW Applications ("RomWBW Applications.pdf")
|
||||
RomWBW ROM Applications ("RomWBW ROM Applications.pdf")
|
||||
RomWBW Disk Catalog ("RomWBW Disk Catalog.pdf")
|
||||
RomWBW Errata ("RomWBW Errata.pdf")
|
||||
-------------------------------------------------------
|
||||
|
||||
Documentation set for RomWBW. The primary document is the
|
||||
User Guide. The System Guide explains internal system operation
|
||||
and has a reference for the HBIOS API. Use of included tools
|
||||
and utilities are detailed in the Applications and
|
||||
ROM Applications documents.
|
||||
|
||||
|
||||
DDTZ Manual ("DDTZ.doc")
|
||||
@@ -39,39 +52,21 @@ Manual for the DDTZ v2.7 debug tool included on the ROM drive.
|
||||
FDisk Manual ("FDisk Manual.pdf")
|
||||
---------------------------------
|
||||
|
||||
The operational manual for John Coffman's hard disk partitioning
|
||||
The operational manual for John Coffman's hard disk partitioning
|
||||
program. This program is included in RomWBW as FDISK80.
|
||||
|
||||
|
||||
Floppy Disk Utility Documentation ("FDU.tst")
|
||||
---------------------------------------------
|
||||
|
||||
Operational documentation for the RomWBW FDU application.
|
||||
|
||||
|
||||
Hard Disk Anatomy ("Hard Disk Anatomy.pdf")
|
||||
-------------------------------------------
|
||||
|
||||
Diagram of a CP/M & MS-DOS (FAT) hybrid hard disk layout.
|
||||
|
||||
|
||||
NZCOM User's Manual ("NZCOM Users Manual.pdf")
|
||||
----------------------------------------------
|
||||
SIO+CTC Baud Rate Options (SIO+CTC Baud Rate Options.pdf)
|
||||
---------------------------------------------------------
|
||||
|
||||
NZCOM operating system operation manual.
|
||||
|
||||
|
||||
RomWBW Architecture ("RomWBW Architecture.pdf")
|
||||
-----------------------------------------------
|
||||
|
||||
Document describing the architecture of the RomWBW HBIOS. It
|
||||
includes reference information for the HBIOS calls.
|
||||
|
||||
ROM Applications ("ROM Applications.pdf")
|
||||
-----------------------------------------
|
||||
|
||||
Breif instructions for the ROM based applications included in
|
||||
in the boot ROM.
|
||||
Documents possible baud rates available based on different baud
|
||||
clock rates for Zilog SIO using CTC for baud rate clock generation.
|
||||
|
||||
|
||||
Z180 ASCI Baud Rate Options ("Z180 ASCI Baud Rate Options.pdf")
|
||||
@@ -83,19 +78,10 @@ clock rate. This document provides a list of the possible
|
||||
baud rates for typical CPU clock rates.
|
||||
|
||||
|
||||
ZCPR Manual ("ZCPR Manual.pdf")
|
||||
-------------------------------
|
||||
UCSD p-System Users Manual ("UCSD p-System Users Manual.pdf")
|
||||
-------------------------------------------------------------
|
||||
|
||||
ZCPR is the command proccessor portion of Z-System. This is the
|
||||
manual for ZCPR 1.x as included in RomWBW. The installation
|
||||
instructions can be ignored since that work has already been
|
||||
completed as part of the RomWBW distribution.
|
||||
Official user manual for p-System operating system included with
|
||||
RomWBW.
|
||||
|
||||
|
||||
ZSDOS Manual ("ZSDOS Manual.pdf")
|
||||
---------------------------------
|
||||
|
||||
ZSDOS is the DOS portion of Z-System. This is the manual fo ZSDOS
|
||||
1.x as included in RomWBW. The installation instructions can be
|
||||
ignored since that work has already been completed as part of the
|
||||
RomWBW distribution.
|
||||
--WBW 5:18 PM 6/14/2023
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Doc/RomWBW Errata.pdf
Normal file
BIN
Doc/RomWBW Errata.pdf
Normal file
Binary file not shown.
Binary file not shown.
BIN
Doc/RomWBW ROM Applications.pdf
Normal file
BIN
Doc/RomWBW ROM Applications.pdf
Normal file
Binary file not shown.
BIN
Doc/RomWBW System Guide.pdf
Normal file
BIN
Doc/RomWBW System Guide.pdf
Normal file
Binary file not shown.
BIN
Doc/RomWBW User Guide.pdf
Normal file
BIN
Doc/RomWBW User Guide.pdf
Normal file
Binary file not shown.
Binary file not shown.
@@ -23,7 +23,7 @@ Zeta 2 (X)
|
||||
- Test FD driver
|
||||
- Test FDU app
|
||||
|
||||
RC2014 (X)
|
||||
RCBus (X)
|
||||
------
|
||||
- Test SIO driver (Serial Module)
|
||||
- Test ACIA driver (Dual Serial Module)
|
||||
@@ -40,7 +40,7 @@ N8-2312 (X)
|
||||
- Test FDU app
|
||||
- Test TMS driver (video & kbd)
|
||||
|
||||
N8-2511 ( )
|
||||
N8-2511 (X)
|
||||
-------
|
||||
- Test ASCI driver
|
||||
- Test SD driver (Juha mode)
|
||||
@@ -139,27 +139,6 @@ GENERAL (X)
|
||||
- ASSIGN app
|
||||
- MODE app
|
||||
- SYSCOPY app
|
||||
- OSLDR app
|
||||
- FDU app
|
||||
- FDISK80 app
|
||||
- TUNE app
|
||||
|
||||
RESULTS
|
||||
-------
|
||||
- Missing HBIOS startup banner (X)
|
||||
- PANIC while printing Serial device inventory (X)
|
||||
- Unexpected interrupt signals not handled well (X)
|
||||
- Fix IT_??? usage (X)
|
||||
- Fix HB_DI/HB_EI in PEEK/POKE/BNKCPY (X)
|
||||
- Fix SIMH timer interrupt setup (X)
|
||||
- Move DI/EI in PEEK/POKE/BNKCPY to API layer? (X)
|
||||
- RETI vs. JP in page zero when INTMODE = 0 (X)
|
||||
- Check interrupt stack space (X)
|
||||
- If an early INT fires, we return with INTs enabled (not good) (X)
|
||||
- PPPCON init should display ANSI 80x25 or similar (X)
|
||||
- Add INT MODE X message to early boot messages (X)
|
||||
- OSLDR fails when LDDS is loaded (X)
|
||||
- Add "!!!" to force assembly error as needed ( )
|
||||
- TIMER app should check for HBIOS active (X)
|
||||
- Halt system after bad interrupt??? ( )
|
||||
- Adapt and bundle PLAYER.COM (X)
|
||||
|
||||
BIN
Doc/UCSD p-System Users Manual.pdf
Normal file
BIN
Doc/UCSD p-System Users Manual.pdf
Normal file
Binary file not shown.
Binary file not shown.
661
LICENSE
Normal file
661
LICENSE
Normal file
@@ -0,0 +1,661 @@
|
||||
GNU AFFERO GENERAL PUBLIC LICENSE
|
||||
Version 3, 19 November 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU Affero General Public License is a free, copyleft license for
|
||||
software and other kinds of works, specifically designed to ensure
|
||||
cooperation with the community in the case of network server software.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
our General Public Licenses are intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
Developers that use our General Public Licenses protect your rights
|
||||
with two steps: (1) assert copyright on the software, and (2) offer
|
||||
you this License which gives you legal permission to copy, distribute
|
||||
and/or modify the software.
|
||||
|
||||
A secondary benefit of defending all users' freedom is that
|
||||
improvements made in alternate versions of the program, if they
|
||||
receive widespread use, become available for other developers to
|
||||
incorporate. Many developers of free software are heartened and
|
||||
encouraged by the resulting cooperation. However, in the case of
|
||||
software used on network servers, this result may fail to come about.
|
||||
The GNU General Public License permits making a modified version and
|
||||
letting the public access it on a server without ever releasing its
|
||||
source code to the public.
|
||||
|
||||
The GNU Affero General Public License is designed specifically to
|
||||
ensure that, in such cases, the modified source code becomes available
|
||||
to the community. It requires the operator of a network server to
|
||||
provide the source code of the modified version running there to the
|
||||
users of that server. Therefore, public use of a modified version, on
|
||||
a publicly accessible server, gives the public access to the source
|
||||
code of the modified version.
|
||||
|
||||
An older license, called the Affero General Public License and
|
||||
published by Affero, was designed to accomplish similar goals. This is
|
||||
a different license, not a version of the Affero GPL, but Affero has
|
||||
released a new version of the Affero GPL which permits relicensing under
|
||||
this license.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU Affero General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Remote Network Interaction; Use with the GNU General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, if you modify the
|
||||
Program, your modified version must prominently offer all users
|
||||
interacting with it remotely through a computer network (if your version
|
||||
supports such interaction) an opportunity to receive the Corresponding
|
||||
Source of your version by providing access to the Corresponding Source
|
||||
from a network server at no charge, through some standard or customary
|
||||
means of facilitating copying of software. This Corresponding Source
|
||||
shall include the Corresponding Source for any work covered by version 3
|
||||
of the GNU General Public License that is incorporated pursuant to the
|
||||
following paragraph.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the work with which it is combined will remain governed by version
|
||||
3 of the GNU General Public License.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU Affero General Public License from time to time. Such new versions
|
||||
will be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU Affero General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU Affero General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU Affero General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as published
|
||||
by the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If your software can interact with users remotely through a computer
|
||||
network, you should also make sure that it provides a way for users to
|
||||
get its source. For example, if your program is a web application, its
|
||||
interface could display a "Source" link that leads users to an archive
|
||||
of the code. There are many ways you could offer source, and different
|
||||
solutions will be better for different programs; see section 13 for the
|
||||
specific requirements.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU AGPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
27
Makefile
27
Makefile
@@ -1,20 +1,31 @@
|
||||
all:
|
||||
$(MAKE) --directory Tools/unix
|
||||
.PHONY: tools source clean clobber diff dist
|
||||
|
||||
.ONESHELL:
|
||||
.SHELLFLAGS = -cex
|
||||
|
||||
all: tools source
|
||||
|
||||
tools:
|
||||
$(MAKE) --directory Tools
|
||||
|
||||
source:
|
||||
$(MAKE) --directory Source
|
||||
|
||||
clean:
|
||||
$(MAKE) --directory Tools/unix clean
|
||||
$(MAKE) --directory Tools clean
|
||||
$(MAKE) --directory Source clean
|
||||
$(MAKE) --directory Binary clean
|
||||
rm -f make.log
|
||||
|
||||
clobber:
|
||||
$(MAKE) --directory Tools/unix clobber
|
||||
$(MAKE) --directory Source clobber
|
||||
$(MAKE) --directory Binary clobber
|
||||
rm -f typescript
|
||||
clobber: clean
|
||||
|
||||
diff:
|
||||
$(MAKE) --directory Source diff
|
||||
|
||||
dist:
|
||||
$(MAKE) ROM_PLATFORM=dist
|
||||
$(MAKE) --directory Tools clean
|
||||
$(MAKE) --directory Source clean
|
||||
|
||||
distlog:
|
||||
$(MAKE) dist 2>&1 | tee make.log
|
||||
|
||||
1484
ReadMe.txt
1484
ReadMe.txt
File diff suppressed because it is too large
Load Diff
23
Source/Apps/BBCBASIC/Build.cmd
Normal file
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
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
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
1010
Source/Apps/BBCBASIC/asmb.z80
Normal file
File diff suppressed because it is too large
Load Diff
455
Source/Apps/BBCBASIC/bbcbasic.txt
Normal file
455
Source/Apps/BBCBASIC/bbcbasic.txt
Normal file
@@ -0,0 +1,455 @@
|
||||
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
|
||||
|
||||
(C) Copyright R.T.Russell 1982-1999
|
||||
|
||||
1. INTRODUCTION
|
||||
|
||||
BBC BASIC (Z80) has been designed to be as compatible as possible with
|
||||
Version 4 of the 6502 BBC BASIC resident in the BBC Micro Master series.
|
||||
The language syntax is not always identical to that of the 6502 version,
|
||||
but in most cases the Z80 version is more tolerant.
|
||||
|
||||
BBC BASIC (Z80) is as machine independent as possible and, as supplied,
|
||||
it will run on any CP/M 2.2 (or later) system using a Z80 processor
|
||||
(checks are carried out to ensure that the processor is a Z80 and that
|
||||
the version of CP/M is at least 2.2). It is minimally configured for an
|
||||
ADM3a-compatible VDU.
|
||||
|
||||
Few CP/M systems offer colour graphics of the quality provided as
|
||||
standard on the BBC Microcomputer, and no software can provide colour
|
||||
high-resolution graphics from a monochrome character-orientated computer.
|
||||
However, many CP/M system users are interested in the advanced program
|
||||
structures available from BBC BASIC and, within the limitations of the
|
||||
host computer, BBC BASIC (Z80) provides the programming structures and
|
||||
the non-graphic commands and functions specified for BBC BASIC.
|
||||
|
||||
In order to make full use of the facilities available in BBC BASIC (Z80)
|
||||
it is necessary to install a small patch to adapt it to the capabilities
|
||||
of the host computer. The source code of the patch present in the
|
||||
distribution version is supplied as BBCDIST.MAC.
|
||||
|
||||
This documentation should be read in conjunction with a standard BBC
|
||||
BASIC manual. Only those features which differ from the standard Acorn
|
||||
versions are documented here.
|
||||
|
||||
|
||||
2. MEMORY UTILISATION
|
||||
|
||||
BBC BASIC (Z80) requires about 16 Kbytes of code space, resulting in a
|
||||
value of PAGE of about &3E00. The remainder of the user memory is
|
||||
available for BASIC programs, variables (heap) and stack. Depending on
|
||||
the system configuration, HIMEM can have a value up to &FE00.
|
||||
|
||||
|
||||
3. COMMANDS, STATEMENTS AND FUNCTIONS
|
||||
|
||||
The syntax of BASIC commands, statements and functions is in most cases
|
||||
identical to that of the BBC Micro version (BASIC 4). The few
|
||||
differences are documented here:
|
||||
|
||||
ADVAL
|
||||
This function is not implemented.
|
||||
|
||||
CALL
|
||||
CALL sets up a table in RAM containing details of the parameters; the
|
||||
processor's IX register is set to the address of this parameter table.
|
||||
The other processor registers are initialised as follows:
|
||||
|
||||
A is initialised to the least significant byte of A%
|
||||
B is initialised to the least significant byte of B%
|
||||
C is initialised to the least significant byte of C%
|
||||
D is initialised to the least significant byte of D%
|
||||
E is initialised to the least significant byte of E%
|
||||
F is initialised to the least significant byte of F%
|
||||
H is initialised to the least significant byte of H%
|
||||
L is initialised to the least significant byte of L%
|
||||
|
||||
The parameter types are:
|
||||
|
||||
Code No. Parameter Type Example
|
||||
0 Byte (8 bits) ?A%
|
||||
4 Word (32 bits) !A% or A%
|
||||
5 Real (40 bits) A
|
||||
128 Fixed string $A%
|
||||
129 Movable string A$
|
||||
|
||||
On entry to the subroutine the parameter table contains the following
|
||||
values:
|
||||
|
||||
Number of parameters 1 byte (at IX)
|
||||
|
||||
Parameter type 1 byte (at IX+1)
|
||||
Parameter address 2 bytes (at IX+2, IX+3, LSB first)
|
||||
|
||||
Parameter type ) repeated as often as necessary
|
||||
Parameter address )
|
||||
|
||||
Except in the case of a movable string (normal string variable), the
|
||||
parameter address given is the absolute address at which the item is
|
||||
stored. In the case of movable strings (type 129) it is the address of a
|
||||
4-byte parameter block containing the current length, the maximum length
|
||||
and the start address of the string (LSB first) in that order.
|
||||
|
||||
Integer variables are stored in twos complement form with their least
|
||||
significant byte first.
|
||||
|
||||
Fixed strings are stored as the characters of the string followed by a
|
||||
carriage return (&0D).
|
||||
|
||||
Floating point variables are stored in binary floating point format with
|
||||
their least significant byte first; the fifth byte is the exponent. The
|
||||
mantissa is stored as a binary fraction in sign and magnitude format.
|
||||
Bit 7 of the most significant byte is the sign bit and, for the purposes
|
||||
of calculating the magnitude of the number, this bit is assumed to be set
|
||||
to one. The exponent is stored as an integer in excess 127 format (to
|
||||
find the exponent subtract 127 from the value in the fifth byte).
|
||||
|
||||
If the exponent byte of a floating point number is zero, the number is an
|
||||
integer stored in integer format in the mantissa bytes. Thus an integer
|
||||
can be represented in two different ways in a real variable. For example
|
||||
the value +5 can be stored as:
|
||||
|
||||
05 00 00 00 00 Integer 5
|
||||
00 00 00 20 82 (0.5 + 0.125) * 2^3
|
||||
|
||||
COLOUR (COLOR)
|
||||
This statement is not implemented.
|
||||
|
||||
DRAW
|
||||
This statement is not implemented.
|
||||
|
||||
EDIT
|
||||
A command to edit or concatenate and edit the specified program line(s).
|
||||
The specified lines (including their line numbers) are listed as a single
|
||||
line. By changing only the line number you can use EDIT to duplicate a
|
||||
line.
|
||||
|
||||
EDIT 230
|
||||
EDIT 200,230
|
||||
|
||||
The following control functions are active both in the EDIT mode and in
|
||||
the immediate entry mode (i.e. at the BASIC prompt):
|
||||
|
||||
Move the cursor one character position to the left
|
||||
Move the cursor one character position to the right
|
||||
Move the cursor to the start of the line
|
||||
Move the cursor to the end of the line
|
||||
Insert a space at the current cursor position
|
||||
Delete the character at the current cursor position
|
||||
Backspace and delete the character to the left of the cursor
|
||||
Delete all characters to the left of the cursor
|
||||
Delete all characters from the cursor to the end of the line
|
||||
|
||||
The choice of which keys activate these functions is made when BBC BASIC
|
||||
is configured for a particular system. The distribution version uses ^H,
|
||||
^I, ^K, ^J, ^A, ^E, DEL (&7F), ^L and ^X.
|
||||
|
||||
To exit EDIT mode and replace the edited line, type RETURN (ENTER).
|
||||
|
||||
To abort the edit and leave the line unchanged, type ESCape.
|
||||
|
||||
ENVELOPE
|
||||
This statement is not implemented.
|
||||
|
||||
GET
|
||||
This function waits for a character to be typed at the keyboard, and
|
||||
returns the ASCII code.
|
||||
|
||||
GET can also be used to read data from a processor I/O port; full 16-bit
|
||||
port addressing is available:
|
||||
|
||||
N% = GET(X%) : REM input from port X%
|
||||
|
||||
INKEY
|
||||
This function waits for a specified maximum number of centiseconds for a
|
||||
character to be typed at the keyboard. If no character is typed in that
|
||||
time, the value -1 is returned. In the distribution version the delay is
|
||||
determined by a simple software timing loop, and may be very inaccurate.
|
||||
The customisation patch allows this to be adjusted to suit the system in
|
||||
use.
|
||||
|
||||
INPUT#
|
||||
The format of data files is different from that used by the BBC Micro, in
|
||||
part to improve compatibility with standard CP/M files. Numeric values
|
||||
are stored as five bytes in the format documented under CALL; if the
|
||||
fifth byte is zero the value is an integer. Strings are stored as the
|
||||
characters of the string (in the correct order!) followed by a carriage
|
||||
return (&0D).
|
||||
|
||||
MODE
|
||||
This statement is not implemented.
|
||||
|
||||
MOVE
|
||||
This statement is not implemented.
|
||||
|
||||
PLOT
|
||||
This statement is not implemented.
|
||||
|
||||
POINT
|
||||
This function is not implemented.
|
||||
|
||||
PRINT#
|
||||
The format of data files is different from that used by the BBC Micro, in
|
||||
part to improve compatibility with standard CP/M files. Numeric values
|
||||
are stored as five bytes in the format documented under CALL; if the
|
||||
fifth byte is zero the value is an integer. Strings are stored as the
|
||||
characters of the string (in the correct order!) followed by a carriage
|
||||
return (&0D).
|
||||
|
||||
PUT
|
||||
A statement to output data to a processor port. Full 16-bit addressing
|
||||
is available.
|
||||
|
||||
PUT A%,N% : REM Output N% to port A%
|
||||
|
||||
SOUND
|
||||
This statement is not implemented.
|
||||
|
||||
TIME
|
||||
This pseudo-variable is not implemented in the distribution version, but
|
||||
can be supported by means of the customisation patch. See BBCDIST.MAC.
|
||||
|
||||
USR
|
||||
As with CALL, the processor's registers are initialised as follows:
|
||||
|
||||
A is initialised to the least significant byte of A%
|
||||
B is initialised to the least significant byte of B%
|
||||
C is initialised to the least significant byte of C%
|
||||
D is initialised to the least significant byte of D%
|
||||
E is initialised to the least significant byte of E%
|
||||
F is initialised to the least significant byte of F%
|
||||
H is initialised to the least significant byte of H%
|
||||
L is initialised to the least significant byte of L%
|
||||
|
||||
USR returns a 32-bit integer result composed of the processor's H, L, H'
|
||||
and L' registers, with H being the most significant.
|
||||
|
||||
|
||||
4. RESIDENT Z80 ASSEMBLER
|
||||
|
||||
The in-line assembler is accessed in exactly the same way as the 6502
|
||||
assembler in the BBC Micro version of BBC BASIC. That is, '[' enters
|
||||
assembler mode and ']' exits assembler mode.
|
||||
|
||||
All standard Zilog mnemonics are accepted: ADD, ADC and SBC must be
|
||||
followed by A or HL. For example, ADD A,C is accepted but ADD C is not.
|
||||
However, the brackets around the port number in IN and OUT are optional.
|
||||
Thus both OUT (5),A and OUT 5,A are accepted. The instruction IN F,(C)
|
||||
is not accepted, but the equivalent code is produced from IN (HL),C
|
||||
|
||||
The pseudo-ops DEFB, DEFW and DEFM are included. DEFM works like EQUS in
|
||||
the 6502 version.
|
||||
|
||||
|
||||
5. OPERATING SYSTEM INTERFACE
|
||||
|
||||
The following resident Operating System ("star") commands are
|
||||
implemented. They may be accessed directly (e.g. *BYE) or via the OSCLI
|
||||
statement (OSCLI "BYE").
|
||||
|
||||
Control characters, lower-case characters, DEL and quotation marks may be
|
||||
incorporated in filenames by using the 'escape' character '|'. However,
|
||||
there is no equivalent to the BBC Microcomputer's '|!' to set bit 7.
|
||||
|
||||
*BYE
|
||||
Returns control to the operating system (CP/M).
|
||||
|
||||
*CPM
|
||||
Same as *BYE.
|
||||
|
||||
*. [filespec]
|
||||
*DIR [filespec]
|
||||
List the files which match the (optional) ambiguous filespec. If the
|
||||
filespec is omitted, all .BBC files are listed:
|
||||
*DIR List all .BBC files on the disk
|
||||
*DIR B:*.* List all files on disk B:
|
||||
*.*.* List all files on the current disk
|
||||
|
||||
*DRIVE d:
|
||||
Select drive d as the default drive for subsequent disk operations.
|
||||
|
||||
*ERA filespec
|
||||
Erase (delete) the specified disk file or files. The extension defaults
|
||||
to .BBC if omitted.
|
||||
|
||||
*ESC [ON|OFF]
|
||||
*ESC OFF disables the abort action of the ESCape key; after *ESC OFF the
|
||||
ESCape key simply returns the ASCII code ESC (27). *ESC ON, or *ESC,
|
||||
restores the normal action of the ESCape key.
|
||||
|
||||
*EXEC filespec
|
||||
Accept console input from the specified file instead of from the
|
||||
keyboard. If the extension is omitted, .BBC is assumed.
|
||||
|
||||
*LOAD filespec aaaa
|
||||
Loads the specified file into memory at address aaaa. The load address
|
||||
must be specified. If the extension is omitted, .BBC is assumed.
|
||||
|
||||
*OPT [n]
|
||||
Select the destination for console output characters. The value n is in
|
||||
the range 0 to 2, as follows:
|
||||
|
||||
0 Send characters to the console output
|
||||
1 Send characters to the auxiliary output
|
||||
2 Send characters to the printer (list) output
|
||||
|
||||
*REN newfile=oldfile
|
||||
*RENAME newfile=oldfile
|
||||
Renames 'oldfile' as 'newfile'. If the extension is omitted, .BBC is
|
||||
assumed.
|
||||
|
||||
*RESET
|
||||
Rest the disk system (CP/M function 13). This command does not close any
|
||||
files nor does it perform any other housekeeping function. You should
|
||||
use *RESET after you have changed a disk.
|
||||
|
||||
*SAVE filespec aaaa bbbb
|
||||
*SAVE filespec aaaa +llll
|
||||
This command saves a specified range of memory to disk. The address range
|
||||
is specified either as start (aaaa) and end+1 (bbbb) or as start (aaaa)
|
||||
and length (llll). If the extension is omitted, .BBC is assumed.
|
||||
|
||||
*SPOOL [filespec]
|
||||
Copy all subsequent console output to the specified file. If the filename
|
||||
is omitted, any current spool file is closed and spooling is terminated.
|
||||
If the extension is omitted, .BBC is assumed.
|
||||
|
||||
*TYPE filespec
|
||||
Type the specified file to the screen. If the extension is omitted, .BBC
|
||||
is assumed.
|
||||
|
||||
*| comment
|
||||
This is a comment line. Anything following the | is ignored.
|
||||
|
||||
|
||||
6. ERROR MESSAGES AND CODES
|
||||
|
||||
Untrappable:
|
||||
|
||||
No room RENUMBER space
|
||||
Silly LINE space
|
||||
Sorry Bad program
|
||||
|
||||
Trappable - BASIC:
|
||||
|
||||
1 Out of range 24 Exp range
|
||||
2 25
|
||||
3 26 No such variable
|
||||
4 Mistake 27 Missing )
|
||||
5 Missing , 28 Bad HEX
|
||||
6 Type mismatch 29 No such FN/PROC
|
||||
7 No FN 30 Bad call
|
||||
8 31 Arguments
|
||||
9 Missing " 32 No FOR
|
||||
10 Bad DIM 33 Can't match FOR
|
||||
11 DIM space 34 FOR variable
|
||||
12 Not LOCAL 35
|
||||
13 No PROC 36 No TO
|
||||
14 Array 37
|
||||
15 Subscript 38 No GOSUB
|
||||
16 Syntax error 39 ON syntax
|
||||
17 Escape 40 ON range
|
||||
18 Division by zero 41 No such line
|
||||
19 String too long 42 Out of DATA
|
||||
20 Too big 43 No REPEAT
|
||||
21 -ve root 44
|
||||
22 Log range 45 Missing #
|
||||
23 Accuracy lost
|
||||
|
||||
Trappable - OS:
|
||||
|
||||
190 Directory full 214 File not found
|
||||
192 Too many open files 222 Channel
|
||||
196 File exists 253 Bad string
|
||||
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
1494
Source/Apps/BBCBASIC/cmos.z80
Normal file
File diff suppressed because it is too large
Load Diff
69
Source/Apps/BBCBASIC/data.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
|
||||
241
Source/Apps/BBCBASIC/dist.z80
Normal file
241
Source/Apps/BBCBASIC/dist.z80
Normal file
@@ -0,0 +1,241 @@
|
||||
TITLE BBCDIST.Z80 (C) R.T.RUSSELL 1982-2024
|
||||
NAME ('DIST3')
|
||||
;
|
||||
;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
|
||||
;PARTICULAR CHARACTERISTICS OF HIS SYSTEM HARDWARE ETC.
|
||||
;
|
||||
;THE PROGRAM RESIDES AT 100H FOR EASE OF LOADING.
|
||||
;*** IT MUST NOT EXCEED 256 BYTES IN TOTAL LENGTH ***
|
||||
;
|
||||
;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, 12-05-2024
|
||||
;
|
||||
CPM EQU 5
|
||||
COLD EQU 200H
|
||||
;
|
||||
CR EQU 0DH
|
||||
LF EQU 0AH
|
||||
ESC EQU 1BH
|
||||
;
|
||||
GLOBAL CLRSCN
|
||||
GLOBAL PUTCSR
|
||||
GLOBAL GETCSR
|
||||
GLOBAL PUTIME
|
||||
GLOBAL GETIME
|
||||
GLOBAL GETKEY
|
||||
GLOBAL BYE
|
||||
GLOBAL BEGIN
|
||||
; GLOBAL BDOS
|
||||
;
|
||||
; EXTRN PRTDEC16
|
||||
;
|
||||
;ASEG
|
||||
;ORG 100H
|
||||
;
|
||||
;JUMP TABLE - BASIC makes calls to hardware-dependent
|
||||
;features via this table:
|
||||
;
|
||||
BEGIN: JP INIT
|
||||
CLRSCN: JP CLS ;CLEAR SCREEN
|
||||
PUTCSR: JP PCSR ;SET CURSOR POSN.
|
||||
GETCSR: JP GCSR ;READ CURSOR POSN.
|
||||
PUTIME: JP PTIME ;SET ELAPSED TIME
|
||||
GETIME: JP GTIME ;READ ELAPSED TIME
|
||||
GETKEY: JP INKEY ;READ KEY (TIME LIMIT)
|
||||
BYE: JP REBOOT ;RETURN TO CP/M
|
||||
;
|
||||
;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
|
||||
;
|
||||
;INIT - Perform hardware initialisation (if any).
|
||||
;
|
||||
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
|
||||
;
|
||||
NOTHB: DEFB 'CP/M w/ HBIOS required$'
|
||||
;
|
||||
;REBOOT - Switch off interrupts and return to CP/M
|
||||
;
|
||||
REBOOT: RST 0
|
||||
;
|
||||
;GTIME - Read elapsed-time clock.
|
||||
; Outputs: DEHL = elapsed time (centiseconds)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
GTIME: JR TICKS
|
||||
;
|
||||
;PTIME - Load elapsed-time clock.
|
||||
; Inputs: DEHL = time to load (centiseconds)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
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
|
||||
;
|
||||
;INKEY - Sample keyboard with specified wait.
|
||||
; Inputs: HL = Time to wait (centiseconds)
|
||||
; Outputs: Carry reset indicates time-out.
|
||||
; If carry set, A = character typed.
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
INKEY: PUSH BC
|
||||
PUSH HL
|
||||
CALL TICKS
|
||||
POP DE
|
||||
ADD HL,DE
|
||||
WAIT: PUSH HL
|
||||
LD C,6
|
||||
LD E,0FFH
|
||||
CALL BDOS
|
||||
POP HL
|
||||
OR A
|
||||
SCF
|
||||
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)
|
||||
; 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,9 ; output string command
|
||||
LD DE,CURS ; start of string
|
||||
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
|
||||
CONVLP: INC A ; now B times increment AL in decimal
|
||||
CP '9'+1 ; low byte overflow?
|
||||
JR NZ,CONT ; no, continue incrementing
|
||||
LD A,'0' ; reset low byte
|
||||
INC L ; and increment high byte
|
||||
CONT: DJNZ CONVLP ; B times
|
||||
LD H,A ; put low byte into right place
|
||||
RET
|
||||
;
|
||||
;GCSR - Return cursor coordinates.
|
||||
; Outputs: DE = X coordinate (POS)
|
||||
; HL = Y coordinate (VPOS)
|
||||
; Destroys: A,D,E,H,L,F
|
||||
;
|
||||
GCSR: LD DE,0
|
||||
LD HL,0
|
||||
RET
|
||||
;
|
||||
;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 1F0H
|
||||
DEFS 0F0H - ($ - BEGIN)
|
||||
;
|
||||
OFFLO: DEFW 0 ;TIME OFFSET LO
|
||||
OFFHI: DEFW 0 ;TIME OFFSET HI
|
||||
DEFB 80 ;WIDTH
|
||||
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
2587
Source/Apps/BBCBASIC/eval.z80
Normal file
File diff suppressed because it is too large
Load Diff
3274
Source/Apps/BBCBASIC/exec.z80
Normal file
3274
Source/Apps/BBCBASIC/exec.z80
Normal file
File diff suppressed because it is too large
Load Diff
64
Source/Apps/BBCBASIC/hook.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
2237
Source/Apps/BBCBASIC/main.z80
Normal file
File diff suppressed because it is too large
Load Diff
2267
Source/Apps/BBCBASIC/math.z80
Normal file
2267
Source/Apps/BBCBASIC/math.z80
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,16 +1,11 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../Tools
|
||||
set TOOLS=..\..\Tools
|
||||
set APPBIN=..\..\Binary\Apps
|
||||
|
||||
set PATH=%TOOLS%\tasm32;%TOOLS%\zx;%PATH%
|
||||
|
||||
set PATH=%TOOLS%\tasm32;%TOOLS%\zxcc;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
set ZXBINDIR=%TOOLS%/cpm/bin/
|
||||
set ZXLIBDIR=%TOOLS%/cpm/lib/
|
||||
set ZXINCDIR=%TOOLS%/cpm/include/
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
call :asm syscopy || exit /b
|
||||
call :asm assign || exit /b
|
||||
@@ -21,10 +16,7 @@ call :asm rtc || exit /b
|
||||
call :asm timer || exit /b
|
||||
call :asm rtchb || exit /b
|
||||
|
||||
zx Z80ASM -SYSGEN/F || exit /b
|
||||
|
||||
zx MAC SURVEY.ASM -$PO || exit /b
|
||||
zx MLOAD25 -SURVEY.COM=SURVEY.HEX || exit /b
|
||||
zxcc Z80ASM -SYSGEN/F || exit /b
|
||||
|
||||
pushd XM && call Build || exit /b & popd
|
||||
pushd FDU && call Build || exit /b & popd
|
||||
@@ -36,6 +28,9 @@ 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 Survey && call Build || exit /b & popd
|
||||
pushd HTalk && call Build || exit /b & popd
|
||||
pushd BBCBASIC && call Build || exit /b & popd
|
||||
|
||||
copy *.com %APPBIN%\ || exit /b
|
||||
|
||||
|
||||
@@ -17,3 +17,6 @@ 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 Survey && call Clean || exit /b 1 & popd
|
||||
pushd HTalk && call Clean || exit /b 1 & popd
|
||||
pushd BBCBASIC && call Clean || exit /b 1 & popd
|
||||
|
||||
158
Source/Apps/FAT/ReadMe.md
Normal file
158
Source/Apps/FAT/ReadMe.md
Normal file
@@ -0,0 +1,158 @@
|
||||
# RomWBW HBIOS CP/M FAT Utility ("FAT.COM")
|
||||
|
||||
Author: Wayne Warthen \
|
||||
Updated: 6-May-2024
|
||||
|
||||
This application allows copying files between CP/M filesystems and FAT
|
||||
filesystems (DOS, Windows, Mac, Linux, etc.). The application runs on
|
||||
RomWBW hosted CP/M (and compatible) operating systems. The application
|
||||
also has limited file management capabilities on FAT filesystems
|
||||
including directory listing, renaming, deleting, and sub-directory
|
||||
creation.
|
||||
|
||||
### Usage:
|
||||
|
||||
```
|
||||
FAT DIR <path>
|
||||
FAT COPY <src> <dst>
|
||||
FAT REN <from> <to>
|
||||
FAT DEL <path>[<file>|<dir>]
|
||||
FAT MD <path>
|
||||
FAT FORMAT <drv>
|
||||
```
|
||||
|
||||
CP/M filespec: \<d\>:FILENAME.EXT (\<d\> is CP/M drive letter A-P) \
|
||||
FAT filespec: \<u\>:/DIR/FILENAME.EXT (\<u\> is disk unit #)
|
||||
|
||||
### Notes:
|
||||
|
||||
- Partitioned or non-partitioned media is handled automatically.
|
||||
A floppy drive is a good example of a non-partitioned FAT
|
||||
filesystem and will be recognized. Larger media will typically
|
||||
have a partition table which will be recognized by the
|
||||
application to find the FAT filesystem.
|
||||
|
||||
- Although RomWBW-style CP/M media does not know anything about
|
||||
partition tables, it is entirely possible to have media that
|
||||
has both CP/M and FAT file systems on it. This is accomplished
|
||||
by creating a FAT filesystem on the media that starts on a track
|
||||
beyond the last track used by CP/M. Each CP/M slice can occupy
|
||||
up to 8MB. So, make sure to start your FAT partition beyond
|
||||
(slice count) * 9MB.
|
||||
|
||||
- The application infers whether you are attempting to reference
|
||||
a FAT or CP/M filesystem via the drive specifier (char before ':').
|
||||
A numeric drive character specifies the HBIOS disk unit number
|
||||
for FAT access. An alpha (A-P) character indicates a CP/M
|
||||
file system access targeting the specified drive letter. If there
|
||||
is no drive character specified, the current CP/M filesystem and
|
||||
current CP/M drive is assumed. For example:
|
||||
|
||||
`2:README.TXT` refers to FAT file README.TXT on disk unit #2 \
|
||||
`C:README.TXT` refers to CP/M file README.TXT on CP/M drive C: \
|
||||
`README.TXT` refers to CP/M file README.TXT on current CP/M drive
|
||||
|
||||
- FAT files with SYS, HIDDEN, or R/O attributes are not given
|
||||
any special treatment. Such files are found and processed
|
||||
like any other file. However, any attempt to write to a
|
||||
read-only file will fail and the application will abort.
|
||||
|
||||
- It is not currently possible to reference CP/M user areas other
|
||||
than the current user. To copy files to alternate user areas,
|
||||
you must switch to the desired user number first or use an
|
||||
additional step to copy the file to the desired user area.
|
||||
|
||||
- Accessing FAT filesystems on a floppy requires the use of
|
||||
RomWBW HBIOS v2.9.1-pre.13 or greater.
|
||||
|
||||
- Only the first 8 RomWBW disk units (0-7) can be referenced.
|
||||
|
||||
- Files written are not verified.
|
||||
|
||||
- Wildcard matching in FAT filesystems is a bit unusual as
|
||||
implemented by FatFs. See FatFs documentation.
|
||||
|
||||
- The `FAT FORMAT` command will not perform a physical format on
|
||||
floppy disks. You must use FDU to do this prior to using
|
||||
`FAT FORMAT`.
|
||||
|
||||
- Formatting (`FAT FORMAT`) of floppies does not work well. The
|
||||
underlying FatFs library uses some non-standard fields. The
|
||||
resulting floppy may or may not be useable on other systems. It is
|
||||
best to format a FAT floppy on a Windows or DOS system. You should
|
||||
have no problems copying files to/from such a floppy using `FAT`.
|
||||
|
||||
### Known Issues
|
||||
|
||||
- CP/M (and workalike) OSes have significant restrictions on filename
|
||||
characters. The FAT application will block any attempt to create a
|
||||
file on the CP/M filesystem containing any of these prohibited
|
||||
characters:
|
||||
|
||||
| `< > . , ; : ? * [ ] |/ \`
|
||||
|
||||
The operation will be aborted with "`Error: Invalid Path Name`" if such
|
||||
a filename character is encountered.
|
||||
|
||||
Since MS-DOS does allow some of these characters, you can have
|
||||
issues when copying files from MS-DOS to CP/M if the MS-DOS filenames
|
||||
use these characters. Unfortunately, FAT is not yet smart enough to
|
||||
substitute illegal characters with legal ones. So, you will need to
|
||||
clean the filenames before trying to copy them to CP/M.
|
||||
|
||||
- The FAT application does try to detect the scenario where you are
|
||||
copying a file to itself. However, this detection is not perfect and
|
||||
can corrupt a file if it occurs. Be careful to avoid this.
|
||||
|
||||
### License:
|
||||
|
||||
GNU GPLv3 (see file LICENSE.txt)
|
||||
|
||||
### Build Notes:
|
||||
|
||||
- Source is maintained on GitHub at <https://github.com/wwarthen/FAT>.
|
||||
|
||||
- Application is based on FatFs. FatFs source is included. See
|
||||
<http://elm-chan.org/fsw/ff/>.
|
||||
|
||||
- SDCC compiler v4.3 or greater is required to build. New calling
|
||||
conventions introduced in v4.3 are assumed.
|
||||
|
||||
- See Build.cmd for sample build script under Windows. References
|
||||
to SDCC must be updated for your environment.
|
||||
|
||||
- Note that ff.c (core FatFs code) generates quite a few compiler
|
||||
warnings (all appear to be benign).
|
||||
|
||||
### To Do:
|
||||
|
||||
- Allow ^C to abort any operation in progress.
|
||||
|
||||
- Allow referencing more than the first 8 RomWBW disk units.
|
||||
|
||||
- Handle wildcards in destination, e.g.:
|
||||
|
||||
`FAT REN 2:/*.TXT 2:/*.BAK`
|
||||
|
||||
- Do something intelligent with R/O and SYS file attributes
|
||||
|
||||
- Support UNA
|
||||
|
||||
### History:
|
||||
|
||||
| Date | Version | Notes |
|
||||
|------------:|-------- |-------------------------------------------------------------|
|
||||
| 2-May-2019 | v0.9 | (beta) initial release |
|
||||
| 7-May-2019 | v0.9.1 | (beta) added REN and DEL |
|
||||
| 8-May-2019 | v0.9.2 | (beta) handle file collisions w/ user prompt |
|
||||
| 8-Oct-2019 | v0.9.3 | (beta) fixed incorrect filename buffer size (MAX_FN) |
|
||||
| 10-Oct-2019 | v0.9.4 | (beta) upgraded to FatFs R0.13c |
|
||||
| 10-Oct-2019 | v0.9.5 | (beta) added MD (make directory) |
|
||||
| 10-Oct-2019 | v0.9.6 | (beta) added FORMAT |
|
||||
| 11-Oct-2019 | v0.9.7 | (beta) fix FORMAT to use existing partition table entries |
|
||||
| | | add attributes to directory listing |
|
||||
| 12-Apr-2021 | v0.9.8 | (beta) support CP/NET drives |
|
||||
| 12-Oct-2023 | v0.9.9 | (beta) handle updated HBIOS Disk Device call |
|
||||
| 6-Jan-2024 | v1.0.0 | updated to latest FsFat (v0.15) |
|
||||
| | | updated to latest SDCC (v4.3) |
|
||||
| 6-May-2024 | v1.1.0 | improve floppy format boot record |
|
||||
@@ -1,104 +0,0 @@
|
||||
RomWBW HBIOS CP/M FAT Utility ("FAT.COM")
|
||||
|
||||
Author: Wayne Warthen
|
||||
Updated: 12-Apr-2021
|
||||
|
||||
Application to manipulate and exchange files with a FAT (DOS)
|
||||
filesystem. Runs on any HBIOS hosted CP/M implementation.
|
||||
|
||||
USAGE:
|
||||
FAT DIR <path>
|
||||
FAT COPY <src> <dst>
|
||||
FAT REN <from> <to>
|
||||
FAT DEL <path>[<file>|<dir>]
|
||||
FAT MD <path>
|
||||
FAT FORMAT <drv>
|
||||
|
||||
CP/M filespec: <d>:FILENAME.EXT (<d> is CP/M drive letter A-P)
|
||||
FAT filespec: <u>:/DIR/FILENAME.EXT (<u> is disk unit #)
|
||||
|
||||
LICENSE:
|
||||
GNU GPLv3 (see file LICENSE.txt)
|
||||
|
||||
NOTES:
|
||||
- Partitioned or non-partitioned media is handled automatically.
|
||||
A floppy drive is a good example of a non-partitioned FAT
|
||||
filesystem and will be recognized. Larger media will typically
|
||||
have a partition table which will be recognized by the
|
||||
application to find the FAT filesystem.
|
||||
|
||||
- Although RomWBW-style CP/M media does not know anything about
|
||||
partition tables, it is entirely possible to have media that
|
||||
has both CP/M and FAT file systems on it. This is accomplished
|
||||
by creating a FAT filesystem on the media that starts on a track
|
||||
beyond the last track used by CP/M. Each CP/M slice on a
|
||||
media will occupy a little over 8MB. So, make sure to start
|
||||
your FAT partition beyond (slice count) * 8MB.
|
||||
|
||||
- The application infers whether you are attempting to reference
|
||||
a FAT or CP/M filesystem via the drive specifier (char before ':').
|
||||
A numeric drive character specifies the HBIOS disk unit number
|
||||
for FAT access. An alpha (A-P) character indicates a CP/M
|
||||
file system access targeting the specified drive letter. If there
|
||||
is no drive character specified, the current CP/M filesystem and
|
||||
current CP/M drive is assumed. For example:
|
||||
|
||||
"2:README.TXT" refers to FAT file README.TXT on disk unit #2
|
||||
"C:README.TXT" refers to CP/M file README.TXT on CP/M drive C
|
||||
"README.TXT" refers to CP/M file README.TXT on current CP/M drive
|
||||
|
||||
- FAT files with SYS, HIDDEN, or R/O only attributes are not given
|
||||
any special treatment. Such files are found and processed
|
||||
like any other file. However, any attempt to write to a
|
||||
read-only file will fail and the application will abort.
|
||||
|
||||
- It is not currently possible to reference CP/M user areas other
|
||||
than the current user. To copy files to alternate user areas,
|
||||
you must switch to the desired user number first or use an
|
||||
additional step to copy the file to the desired user area.
|
||||
|
||||
- Accessing FAT filesystems on a floppy requires the use of
|
||||
RomWBW HBIOS v2.9.1-pre.13 or greater.
|
||||
|
||||
- Files written are not verified.
|
||||
|
||||
- Wildcard matching in FAT filesystems is a bit unusual as
|
||||
implemented by FatFs. See FatFs documentation.
|
||||
|
||||
BUILD NOTES:
|
||||
- Source is maintained on GitHub at https://github.com/wwarthen/FAT
|
||||
|
||||
- Application is based on FatFs. FatFs source is included.
|
||||
|
||||
- SDCC compiler is required to build (v4.0.0 known working).
|
||||
|
||||
- ZX CP/M emulator is required to build (from RomWBW distribution).
|
||||
|
||||
- See Build.cmd for sample build script under Windows. References
|
||||
to SDCC and ZX must be updated for your environment.
|
||||
|
||||
- Note that ff.c (core FatFs code) generates quite a few compiler
|
||||
warnings (all appear to be benign).
|
||||
|
||||
TO DO:
|
||||
- Allow ^C to abort any operation in progress.
|
||||
|
||||
- Handle wildcards in destination, e.g.:
|
||||
"FAT REN 2:/*.TXT 2:/*.BAK"
|
||||
|
||||
- Do something intelligent with R/O and SYS files on FAT
|
||||
|
||||
- Support UNA
|
||||
|
||||
HISTORY:
|
||||
2-May-2019: v0.9 (beta) initial release
|
||||
7-May-2019: v0.9.1 (beta) added REN and DEL
|
||||
8-May-2019: v0.9.2 (beta) handle file collisions w/ user prompt
|
||||
8-Oct-2019: v0.9.3 (beta) fixed incorrect filename buffer size (MAX_FN)
|
||||
10-Oct-2019: v0.9.4 (beta) upgraded to FatFs R0.13c
|
||||
10-Oct-2019: v0.9.5 (beta) added MD (make directory)
|
||||
10-Oct-2019: v0.9.6 (beta) added FORMAT
|
||||
11-Oct-2019: v0.9.7 (beta) fix FORMAT to use existing partition table entries
|
||||
add attributes to directory listing
|
||||
12-Apr-2021: v0.9.8 (beta) support CP/NET drives
|
||||
|
||||
Binary file not shown.
@@ -38,7 +38,7 @@
|
||||
; DYNAMIC FDC SELECTION AT STARTUP
|
||||
; DYNAMIC CPU SPEED ADJUSTMENT
|
||||
; 2017-12-16: V5.1 IMPROVED POLLING READ/WRITE PERFORMANCE
|
||||
; 2018-01-08: V5.2 ADDED RC2014 SUPPORT FOR:
|
||||
; 2018-01-08: V5.2 ADDED RCBUS SUPPORT FOR:
|
||||
; - SCOTT BAKER (SMB) SMC 9266 FDC
|
||||
; - SCOTT BAKER (SMB) WDC 37C65 FDC
|
||||
; 2018-09-05: v5.3 ADDED SUPPORT FOR SMALLZ80
|
||||
@@ -48,7 +48,8 @@
|
||||
; 2020-04-29: v5.5 ADDED SUPPORT FOR ETCHED PIXELS FDC
|
||||
; 2020-12-12: v5.6 UPDATED SMALLZ80 TO NEW I/O ADDRESSES
|
||||
; 2021-03-24: v5.7 ADDED SOME SINGLE-SIDED FORMATS
|
||||
; 2021-07-26: v5.8 ADDED SUPPORT MBC FDC
|
||||
; 2021-07-26: v5.8 ADDED SUPPORT FOR NHYODYNE (MBC) FDC
|
||||
; 2023-12-10: v5.9 ADDED SUPPORT FOR DUODYNE (DUO) FDC
|
||||
;
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
@@ -85,13 +86,14 @@ FDC_SMZ80 .EQU 8
|
||||
FDC_DYNO .EQU 9
|
||||
FDC_EPFDC .EQU 10
|
||||
FDC_MBC .EQU 11
|
||||
FDC_DUO .EQU 12
|
||||
;
|
||||
; FDC MODE
|
||||
;
|
||||
_DIO .EQU $01 ; CUSTOM FOR DIO BOARD
|
||||
_DIO3 .EQU $02 ; CUSTOM FOR DIO3 BOARD
|
||||
_ZETA .EQU $04 ; CUSTOM FOR ZETA
|
||||
_RCSMC .EQU $08 ; CUSTOM FOR RC2014 SMB SMC MODULE
|
||||
_RCSMC .EQU $08 ; CUSTOM FOR RCBUS SMB SMC MODULE
|
||||
_PCAT .EQU $10 ; PC/AT MODE IN NEWER CONTROLLERS
|
||||
;
|
||||
;===============================================================================
|
||||
@@ -219,8 +221,8 @@ INIT5:
|
||||
XOR A
|
||||
RET
|
||||
|
||||
STR_BANNER .DB "Floppy Disk Utility (FDU) v5.8, 26-Jul-2021$"
|
||||
STR_BANNER2 .DB "Copyright (C) 2021, Wayne Warthen, GNU GPL v3","$"
|
||||
STR_BANNER .DB "Floppy Disk Utility (FDU) v5.9, 10-Dec-2023$"
|
||||
STR_BANNER2 .DB "Copyright (C) 2023, Wayne Warthen, GNU GPL v3","$"
|
||||
STR_HBIOS .DB " [HBIOS]$"
|
||||
STR_UBIOS .DB " [UBIOS]$"
|
||||
;
|
||||
@@ -292,6 +294,7 @@ FDCTBL: ; LABEL CONFIG DATA
|
||||
.DW STR_DYNO, CFG_DYNO
|
||||
.DW STR_EPFDC, CFG_EPFDC
|
||||
.DW STR_MBC, CFG_MBC
|
||||
.DW STR_DUO, CFG_DUO
|
||||
FDCCNT .EQU ($-FDCTBL)/4 ; FD CONTROLLER COUNT
|
||||
;
|
||||
; FDC LABEL STRINGS
|
||||
@@ -307,7 +310,8 @@ STR_RCWDC .TEXT "RC-WDC$"
|
||||
STR_SMZ80 .TEXT "SMZ80$"
|
||||
STR_DYNO .TEXT "DYNO$"
|
||||
STR_EPFDC .TEXT "EPFDC$"
|
||||
STR_MBC .TEXT "MBC$"
|
||||
STR_MBC .TEXT "NHYODYNE$"
|
||||
STR_DUO .TEXT "DUODYNE$"
|
||||
;
|
||||
; FDC CONFIGURATION BLOCKS
|
||||
;
|
||||
@@ -448,7 +452,18 @@ CFG_MBC:
|
||||
.DB 035H ; CONFIGURATION CONTROL REGISTER
|
||||
.DB 036H ; DACK (WHEN READ)
|
||||
.DB 037H ; TERMINAL COUNT (W/ DACK)
|
||||
.DB 0FFH ; NOT USED BY ZETA SBC V2
|
||||
.DB 0FFH ; NOT USED
|
||||
.DB _PCAT ; MODE=
|
||||
;
|
||||
CFG_DUO:
|
||||
.DB 080H ; FDC MAIN STATUS REGISTER
|
||||
.DB 081H ; FDC DATA PORT
|
||||
.DB 0FFH ; DATA INPUT REGISTER
|
||||
.DB 086H ; DIGITAL OUTPUT REGISTER (WHEN WRITTEN)
|
||||
.DB 085H ; CONFIGURATION CONTROL REGISTER
|
||||
.DB 086H ; DACK (WHEN READ)
|
||||
.DB 087H ; TERMINAL COUNT (W/ DACK)
|
||||
.DB 0FFH ; NOT USED
|
||||
.DB _PCAT ; MODE=
|
||||
;
|
||||
FDCID .DB 0 ; FDC IDENTIFIER (0 INDEXED)
|
||||
@@ -465,12 +480,13 @@ FSS_MENU:
|
||||
.TEXT " (D) Zeta 2 SBC Onboard FDC\r\n"
|
||||
.TEXT " (E) Dual IDE ECB Board\r\n"
|
||||
.TEXT " (F) N8 Onboard FDC\r\n"
|
||||
.TEXT " (G) RC2014 SMC (SMB)\r\n"
|
||||
.TEXT " (H) RC2014 WDC (SMB)\r\n"
|
||||
.TEXT " (G) RCBus SMC (SMB)\r\n"
|
||||
.TEXT " (H) RCBus WDC (SMB)\r\n"
|
||||
.TEXT " (I) SmallZ80 Expansion\r\n"
|
||||
.TEXT " (J) Dyno-Card FDC, D1030\r\n"
|
||||
.TEXT " (K) RC2014 EPFDC\r\n"
|
||||
.TEXT " (L) Multi-Board Computer FDC\r\n"
|
||||
.TEXT " (K) RCBus EPFDC\r\n"
|
||||
.TEXT " (L) Nhyodyne FDC\r\n"
|
||||
.TEXT " (M) Duodyne FDC\r\n"
|
||||
.TEXT " (X) Exit\r\n"
|
||||
.TEXT "=== OPTION ===> $\r\n"
|
||||
;
|
||||
@@ -1561,6 +1577,7 @@ MD_MAP:
|
||||
.DB %00000001 ; DYNO POLL
|
||||
.DB %00000001 ; EPFDC POLL
|
||||
.DB %00000001 ; MBC POLL
|
||||
.DB %00000001 ; DUO POLL
|
||||
;
|
||||
; MEDIA DESCRIPTION BLOCK
|
||||
;
|
||||
@@ -2021,7 +2038,7 @@ FM_DRAW0B: ; ZETA, DIO3
|
||||
LD A,(FST_DOR)
|
||||
AND 00000010B
|
||||
JR FM_DRAW1
|
||||
FM_DRAW0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
FM_DRAW0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
LD A,(FST_DOR)
|
||||
AND 11110000B
|
||||
JR FM_DRAW1
|
||||
@@ -2174,7 +2191,7 @@ FM_MOTOR0B: ; ZETA, DIO3
|
||||
LD A,(FST_DOR)
|
||||
AND 00000010B
|
||||
JR FM_MOTOR1
|
||||
FM_MOTOR0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
FM_MOTOR0C: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
LD A,(FST_DOR)
|
||||
AND 11110000B
|
||||
JR FM_MOTOR1
|
||||
@@ -2913,7 +2930,7 @@ FC_INIT1: ; DIO
|
||||
FC_INIT2: ; ZETA, DIO3
|
||||
LD A,(FCD_DORB)
|
||||
JR FC_INIT5
|
||||
FC_INIT3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
FC_INIT3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
LD A,(FCD_DORC)
|
||||
JR FC_INIT5
|
||||
FC_INIT4: ; WDSMC
|
||||
@@ -2957,7 +2974,7 @@ FC_RESETFDC1: ; ZETA, DIO3, RCSMC
|
||||
POP AF
|
||||
OUT (C),A
|
||||
JR FC_RESETFDC3
|
||||
FC_RESETFDC2: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
FC_RESETFDC2: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
LD A,0
|
||||
OUT (C),A
|
||||
LD A,(FST_DOR)
|
||||
@@ -2984,7 +3001,7 @@ FC_PULSETC:
|
||||
;RES 0,A
|
||||
;OUT (C),A
|
||||
;JR FC_PULSETC2
|
||||
;FC_PULSETC1: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
;FC_PULSETC1: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
;LD C,(IY+CFG_TC)
|
||||
;IN A,(C)
|
||||
;JR FC_PULSETC2
|
||||
@@ -3016,7 +3033,7 @@ FC_MOTORON2: ; ZETA, DIO3
|
||||
LD HL,FST_DOR ; POINT TO FDC_DOR
|
||||
SET 1,(HL)
|
||||
JR FC_MOTORON5
|
||||
FC_MOTORON3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
FC_MOTORON3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
LD HL,FST_DOR ; POINT TO FDC_DOR
|
||||
LD A,(HL) ; START WITH CURRENT DOR
|
||||
AND 11111100B ; GET RID OF ANY ACTIVE DS BITS
|
||||
@@ -3080,7 +3097,7 @@ FC_MOTOROFF2: ; ZETA, DIO3
|
||||
LD HL,FST_DOR ; POINT TO FDC_DOR
|
||||
RES 1,(HL)
|
||||
JR FC_MOTOROFF5
|
||||
FC_MOTOROFF3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC
|
||||
FC_MOTOROFF3: ; DIDE, N8, ZETA2, RCWDC, SMZ80, DYNO, EPFDC, MBC, DUO
|
||||
LD HL,FST_DOR ; POINT TO FDC_DOR
|
||||
LD A,DORC_INIT
|
||||
LD (HL),A
|
||||
@@ -3950,7 +3967,7 @@ DORB_BR500 .EQU 10100000B ; 500KBPS
|
||||
;
|
||||
DORB_INIT .EQU DORB_BR250
|
||||
;
|
||||
; *** DIDE/N8/ZETA2/RCWDC/SMZ80/DYNO/EPFDC/MBC ***
|
||||
; *** DIDE/N8/ZETA2/RCWDC/SMZ80/DYNO/EPFDC/MBC/DUO ***
|
||||
;
|
||||
DORC_INIT .EQU 00001100B ; SOFT RESET INACTIVE, DMA ENABLED
|
||||
;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
================================================================
|
||||
Floppy Disk Utility (FDU) v5.3 for RetroBrew Computers
|
||||
Disk IO / Zeta / Dual-IDE / N8 / RC2014 / SmallZ80 / Dyno
|
||||
Floppy Disk Utility (FDU) v5.9 for RetroBrew Computers
|
||||
Disk IO / Zeta / Dual-IDE / N8 / RCBus / SmallZ80 / Dyno / Nhyodyne / Duodyne
|
||||
================================================================
|
||||
|
||||
Updated January 5, 2020
|
||||
Updated December 12, 2023
|
||||
by Wayne Warthen (wwarthen@gmail.com)
|
||||
|
||||
Application to test the hardware functionality of the Floppy
|
||||
Disk Controller (FDC) on the ECB DISK I/O, DISK I/O V3, ZETA
|
||||
SBC, Dual IDE w/ Floppy, or N8 board.
|
||||
SBC, Dual IDE w/ Floppy, N8, RCBus, SmallZ80, Dyno, Nhyodyne,
|
||||
Duodyne systems.
|
||||
|
||||
The intent is to provide a testbed that allows direct testing
|
||||
of all possible media types and modes of access. The
|
||||
@@ -33,7 +34,7 @@ like to acknowledge that much was derived from the previous
|
||||
work of Andrew Lynch and Dan Werner. I also want to credit
|
||||
Sergio Gimenez with testing the 5.25" drive support and Jim
|
||||
Harre with testing the 8" drive support. Support for Zeta 2
|
||||
comes from Segey Kiselev. Thanks!
|
||||
comes from Sergey Kiselev. Thanks!
|
||||
|
||||
General Usage
|
||||
-------------
|
||||
@@ -74,12 +75,13 @@ supported:
|
||||
- Zeta 2
|
||||
- N8
|
||||
- Mark IV
|
||||
- RC2014
|
||||
- RCBus
|
||||
- SmallZ80
|
||||
- Dyno
|
||||
- MBC
|
||||
- Nhyodyne (MBC)
|
||||
- Duodyne (DUO)
|
||||
|
||||
You must be using either a RomWBW or UBA based OS version.
|
||||
You must be using either a RomWBW or UNA based OS version.
|
||||
|
||||
You must have one of the following floppy disk controllers:
|
||||
|
||||
@@ -89,17 +91,18 @@ You must have one of the following floppy disk controllers:
|
||||
- Zeta SBC onboard FDC
|
||||
- Zeta 2 SBC onboard FDC
|
||||
- N8 SBC onboard FDC
|
||||
- RC2014 Scott Baker SMC-based Floppy Module
|
||||
- RC2014 Scott Baker WDC-based Floppy Module
|
||||
- RCBus Scott Baker SMC-based Floppy Module
|
||||
- RCBus Scott Baker WDC-based Floppy Module
|
||||
- SmallZ80 FDC
|
||||
- Dyno FDC
|
||||
- MBC FDC
|
||||
- Nhyodyne (MBC) FDC
|
||||
- Duodyne (DUO) FDC
|
||||
|
||||
Finally, you will need a floppy drive connected via an
|
||||
appropriate cable:
|
||||
|
||||
Disk IO - no twist in cable, drive unit 0/1 must be selected by jumper on drive
|
||||
DISK IO 3, Zeta, Zeta 2, RC2014, Dyno - cable with twist, unit 0 after twist, unit 1 before twist
|
||||
DISK IO 3, Zeta, Zeta 2, RCBus, Dyno - cable with twist, unit 0 after twist, unit 1 before twist
|
||||
DIDE, N8, Mark IV, SmallZ80 - cable with twist, unit 0 before twist, unit 1 after twist
|
||||
|
||||
Note that FDU does not utilize your systems ROM or OS to
|
||||
@@ -147,15 +150,16 @@ P5 (bd ID): 1-2, 3-4 (for $20-$3F port range)
|
||||
There are no specific N8 jumper settings, but the default
|
||||
I/O range starting at $80 is assumed in the published code.
|
||||
|
||||
The RC2014 Scott Baker SMC-based floppy module should be jumpered
|
||||
The RCBus Scott Baker SMC-based floppy module should be jumpered
|
||||
for I/O base address 0x50 (SV1: 11-12), JP1 (TS) shorted,
|
||||
JP2 (/FAULT) shorted, JP3 (MINI): 2-3, JP4 (/DC/RDY): 2-3.
|
||||
|
||||
The RC2014 Scott Baker WDC-based floppy module should be jumpered
|
||||
The RCBus Scott Baker WDC-based floppy module should be jumpered
|
||||
for I/O base address 0x50 (SV1: 11-12), JP1 (/DACK): 1-2,
|
||||
JP2 (TC): 2-3.
|
||||
JP2 (TC): 2-3. Note that pin 1 of JPX jumpers is toward the bottom
|
||||
of the board.
|
||||
|
||||
The RC2014 FDC by Alan Cox (Etched Pixels) needs to be strapped
|
||||
The RCBus FDC by Alan Cox (Etched Pixels) needs to be strapped
|
||||
for base I/O address 0x48.
|
||||
|
||||
SmallZ80 does not have any relevant jumper settings. The
|
||||
@@ -164,8 +168,11 @@ hardwired I/O ranges are assumed in the code.
|
||||
Dyno does not have any relevant jumper settings. The
|
||||
hardwired I/O ranges are assumed in the code.
|
||||
|
||||
The MBC FDC is expected to be strapped to use neither INT nor NMI. It
|
||||
is also not expected to use DMA.
|
||||
The Nhyodyne (MBC) FDC is expected to be strapped to use neither INT
|
||||
nor NMI. It is also not expected to use DMA.
|
||||
|
||||
The Duodyne (DUO) FDC is expected to be strapped to use neither INT
|
||||
nor NMI. It is also not expected to use DMA.
|
||||
|
||||
Modes of Operation
|
||||
------------------
|
||||
@@ -506,7 +513,7 @@ Improved polling version of read/write to fix occasional overrun errors.
|
||||
|
||||
WW 1/8/2018: v5.2
|
||||
|
||||
Added support for RC2014 hardware:
|
||||
Added support for RCBus hardware:
|
||||
- Scott Baker SMC 9266 FDC module
|
||||
- Scott Baker WDC 37C65 FDC module
|
||||
|
||||
@@ -532,4 +539,7 @@ WW 3/24/2021: v5.7
|
||||
- Added support for a few single-sided formats
|
||||
|
||||
WW 7/26/2021: v5.8
|
||||
- Added support for MBC FDC
|
||||
- Added support for Nhyodyne (MBC) FDC
|
||||
|
||||
WW 12/10/2023: v5.9
|
||||
- Added support for Duodyne (DUO) FDC
|
||||
|
||||
14
Source/Apps/HTalk/Build.cmd
Normal file
14
Source/Apps/HTalk/Build.cmd
Normal file
@@ -0,0 +1,14 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=../../../Tools
|
||||
set PATH=%TOOLS%\tasm32;%PATH%
|
||||
set TASMTABS=%TOOLS%\tasm32
|
||||
|
||||
echo Building HTalk...
|
||||
tasm -t80 -g3 -fFF htalk.asm htalk.com %htalk.lst || exit /b
|
||||
|
||||
copy /Y htalk.com ..\..\..\Binary\Apps\ || exit /b
|
||||
rem copy /Y *.ovr ..\..\..\Binary\Apps\ || exit /b
|
||||
rem copy /Y *.hlp ..\..\..\Binary\Apps\ || exit /b
|
||||
rem copy /Y *.doc ..\..\..\Binary\Apps\ || exit /b
|
||||
5
Source/Apps/HTalk/Clean.cmd
Normal file
5
Source/Apps/HTalk/Clean.cmd
Normal file
@@ -0,0 +1,5 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
10
Source/Apps/HTalk/Makefile
Normal file
10
Source/Apps/HTalk/Makefile
Normal file
@@ -0,0 +1,10 @@
|
||||
OBJECTS = htalk.com
|
||||
#DOCS = htalk.txt
|
||||
DEST = ../../../Binary/Apps
|
||||
DOCDEST = ../../../Binary/Apps
|
||||
TOOLS = ../../../Tools
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
%.com: USETASM=1
|
||||
|
||||
|
||||
725
Source/Apps/HTalk/htalk.asm
Normal file
725
Source/Apps/HTalk/htalk.asm
Normal file
@@ -0,0 +1,725 @@
|
||||
;===============================================================================
|
||||
;HTALK - BARE MINIMUM TERMINAL INTERFACE
|
||||
;
|
||||
; CONSOLE TALKS TO ARBITRARY CHARACTER DEVICE.
|
||||
;===============================================================================
|
||||
;
|
||||
; AUTHOR: TOM PLANO (TOMPLANO@PROTON.ME)
|
||||
;
|
||||
; USAGE:
|
||||
; HTALK $<CHAR_DEVICE_NUM>
|
||||
;
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
; CHANGE LOG:
|
||||
; I'VE NOTATED SECTIONS OF CODE THAT ARNT REQUIRED IF THIS APP IS
|
||||
; INCORPORATED INTO DBGMOD WITH A <OPT> TAG
|
||||
;
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
; TODO:
|
||||
; SEE ENUM_DEV1 TODO
|
||||
;
|
||||
;
|
||||
;_______________________________________________________________________________
|
||||
;
|
||||
;===============================================================================
|
||||
; DEFINITIONS
|
||||
;===============================================================================
|
||||
;
|
||||
STKSIZ .EQU $FF
|
||||
;
|
||||
; HBIOS SYSTEM CALLS AND ID STRING ADDRESS
|
||||
;
|
||||
ROMWBW_ID .EQU $FFFE ; ROMWBW ID STRING ADDRESS
|
||||
HBIOS_SYS .EQU $FFF0 ; HBIOS SYSCALL ADDRESS
|
||||
|
||||
H_SYSGET .EQU $F8 ; GET SYSTEM INFO
|
||||
H_CIOCNT .EQU $00 ; GET CHAR DEV COUNT SUBFUNCTION
|
||||
|
||||
BF_CIOIN .EQU $00 ; HBIOS CHAR INPUT
|
||||
BF_CIOOUT .EQU $01 ; HBIOS CHAR OUTPUT
|
||||
BF_CIOIST .EQU $02 ; HBIOS CHAR INPUT STATUS
|
||||
BF_CIOOST .EQU $03 ; HBIOS CHAR OUTPUT STATUS
|
||||
BF_CIOINIT .EQU $04 ; HBIOS CHAR I/O INIT
|
||||
BF_CIOQUERY .EQU $05 ; HBIOS CHAR I/O QUERY
|
||||
BF_CIODEVICE .EQU $06 ; HBIOS CHAR I/O DEVICE
|
||||
;
|
||||
; SUPPORTED HBIOS CIO DEVICE TYPES
|
||||
;
|
||||
CIODEV_UART .EQU $00 ; 16C550 FAMILY SERIAL INTERFACE UART.ASM
|
||||
CIODEV_ASCI .EQU $10 ; Z180 BUILT-IN SERIAL PORTS ASCI.ASM
|
||||
CIODEV_TERM .EQU $20 ; TERMINAL ANSI.ASM
|
||||
CIODEV_PRPCON .EQU $30 ; PROPIO SERIAL CONSOLE INTERFACE PRP.ASM
|
||||
CIODEV_PPPCON .EQU $40 ; PARPORTPROP SERIAL CONSOLE INTERFACE PPP.ASM
|
||||
CIODEV_SIO .EQU $50 ; ZILOG SERIAL PORT INTERFACE SIO.ASM
|
||||
CIODEV_ACIA .EQU $60 ; MC68B50 ASYNCHRONOUS INTERFACE ACIA.ASM
|
||||
CIODEV_PIO .EQU $70 ; ZILOG PARALLEL INTERFACE CONTROLLER PIO.ASM
|
||||
CIODEV_UF .EQU $80 ; FT232H-BASED ECB USB FIFO UF.ASM
|
||||
CIODEV_DUART .EQU $90 ; SCC2681 FAMILY DUAL UART DUART.ASM
|
||||
CIODEV_Z2U .EQU $A0 ; ZILOG Z280 BUILT-IN SERIAL PORTS Z2U.ASM
|
||||
CIODEV_LPT .EQU $B0 ; PARALLEL I/O CONTROLLER LPT.ASM
|
||||
|
||||
; HBIOS CURRENT CONSOLE NUMBER
|
||||
CIO_CONSOLE .EQU $80
|
||||
|
||||
; SPECIAL CHARS
|
||||
CTRLC .EQU $03
|
||||
CHR_BEL .EQU $07
|
||||
CHR_CR .EQU $0D
|
||||
CHR_LF .EQU $0A
|
||||
CHR_BS .EQU $08
|
||||
CHR_ESC .EQU $1B
|
||||
CHR_DEL .EQU $7F
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; BEGIN MAIN PROGRAM
|
||||
;===============================================================================
|
||||
;
|
||||
.ORG $0100
|
||||
;
|
||||
; SETUP STACK (SAVE OLD VALUE)
|
||||
; <OPT> HANDLED BY DBGMON
|
||||
LD (STKSAV),SP
|
||||
LD SP,STACK
|
||||
|
||||
|
||||
;
|
||||
; INITIALIZATION + STARTUP MESSAGE + HBIOS DETECT
|
||||
; <OPT> HANDLED BY DBGMON
|
||||
CALL INIT_PROG
|
||||
JP NZ,EXIT
|
||||
;
|
||||
; LIST HBIOS DEV OPTIONS FOR REFERENCE
|
||||
; ALSO GETS MAX CONN
|
||||
;
|
||||
; <OPT> THIS IS OPTIONAL BECAUSE IF A CHAR DEVICE DOESNT EXIST, WE NEVER READ OR
|
||||
; WRITE TO IT, WE SIMPLY CALL CIOIST AND CIOOST OVER AND OVER ON IT, WITHOUT
|
||||
; EVER PUSHING DATA TO IT
|
||||
CALL ENUM_DEV
|
||||
JP NZ,EXIT
|
||||
;
|
||||
; PARSE COMMAND LINE
|
||||
;
|
||||
CALL PARSE
|
||||
JP NZ,EXIT
|
||||
;
|
||||
; RUN CONVERSTION WITH CHAR DEVICE
|
||||
;
|
||||
CALL TALK
|
||||
;
|
||||
; DONE
|
||||
JP EXIT
|
||||
|
||||
|
||||
;
|
||||
; CLEAN UP AND RETURN TO CALLING PROCESS
|
||||
;
|
||||
EXIT:
|
||||
CALL NEWLINE ; ...
|
||||
LD HL,STR_EXITMSG ; LOAD EXIT STRING
|
||||
CALL PRTSTR ; PRINT IT
|
||||
CALL NEWLINE ; ...
|
||||
LD SP,(STKSAV) ; RESET STACK
|
||||
RET ; RETURN TO CALLER
|
||||
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; END MAIN PROGRAM
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; BEGIN MAIN PROGRAM SUBROUTINES
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
INIT_PROG:
|
||||
LD HL, STR_BANNER ; LOAD WELCOME BANNER
|
||||
CALL PRTSTR ; PRINT IT
|
||||
CALL NEWLINE ; ...
|
||||
LD HL,(ROMWBW_ID) ; GET FIRST BYTE OF ROMWBW MARKER
|
||||
LD A,(HL) ; ... THROUGH HL
|
||||
CP 'W' ; MATCH?
|
||||
JP NZ,NOTHBIOS ; ABORT WITH INVALID CONFIG BLOCK
|
||||
INC HL ; NEXT BYTE (MARKER BYTE 2)
|
||||
LD A,(HL) ; LOAD IT
|
||||
CP ~'W' ; MATCH?
|
||||
JP NZ,NOTHBIOS ; ABORT WITH INVALID CONFIG BLOCK
|
||||
LD HL,STR_HBIOS ; POINT TO HBIOS STR
|
||||
CALL PRTSTR ; PRINT IT
|
||||
CALL NEWLINE ; ...
|
||||
RET
|
||||
;
|
||||
; HBOIS NOT DETECTED, BAIL OUT W/ ERROR
|
||||
;
|
||||
NOTHBIOS:
|
||||
LD HL,STR_BIOERR ; LOAD HBIOS NOT FOUND STR
|
||||
CALL PRTSTR ; PRINT IT
|
||||
CALL NEWLINE ; ...
|
||||
AND $FF ; SET FLAGS
|
||||
RET
|
||||
|
||||
ENUM_DEV:
|
||||
;
|
||||
; CHAR COUNT HEADER
|
||||
;
|
||||
LD HL,STR_DEVS_FOUND
|
||||
CALL PRTSTR
|
||||
;
|
||||
;GET COUNT OF CHAR UNITS
|
||||
;
|
||||
LD B,H_SYSGET ; LOAD SYSGET HBIOS FUNCTION
|
||||
LD C,H_CIOCNT ; LOAD SYSGET CHAR DEV COUNT SUBFUNCTION
|
||||
CALL HBIOS_SYS ; JUMP TO HBIOS
|
||||
OR A ; SET FLAGS
|
||||
JP NZ, EXIT ; JUMP TO EXIT ON FAILED
|
||||
LD A,E ; NUM CHAR DEVICES NOW IN A
|
||||
|
||||
DEC A ; DEC NUM DEVICES TO BE 0 INDEXED
|
||||
LD (CIODEV_CNT), A ; STORE BEFORE PRINT
|
||||
LD (CIODEV_MAX), A ; STORE BEFORE PRINT
|
||||
INC A ; RESTORE NUM DEVICES VALUE
|
||||
|
||||
CALL PRTHEX ; PRINT NUMBER OF UNITS FOUND
|
||||
CALL NEWLINE ; ...
|
||||
|
||||
ENUM_DEV1:
|
||||
|
||||
LD IX, TGT_DEV
|
||||
; TODO: H AND L DONT ALWAYS GET SET BY THE DRIVERS. FIND SOME WAY TO MASK
|
||||
; THEM OUT IF THEY ARE THE SAME BEFORE AND AFTER THE CALL?
|
||||
LD B, BF_CIODEVICE ; LOAD HBIOS FUNCTION TO QUERRY DEVICE INFO
|
||||
LD HL, CIODEV_CNT ; REQUEST A CHAR DEVICE
|
||||
LD C, (HL) ; ...
|
||||
LD (IX), C ; REMEMBER WHAT DEVICE WE ASKED FOR BEFORE BE
|
||||
CALL HBIOS_SYS ; EXECUTE HBIOS SUBROUTINE
|
||||
OR A ; SET FLAGS
|
||||
RET NZ ; RETURN FAILED
|
||||
;
|
||||
; STORE RESULTS OF HBOIS DEVICE QUERRY
|
||||
;
|
||||
LD A,C ; MOVE C TO A
|
||||
LD (IX+1), A ; STORE A DEVICE ATTRIBUTES, SKIP FIRST ENTRY
|
||||
LD A,D
|
||||
LD (IX+2), A
|
||||
LD A,E
|
||||
LD (IX+3), A
|
||||
LD A,H
|
||||
LD (IX+4), A
|
||||
LD A,L
|
||||
LD (IX+5), A
|
||||
;
|
||||
; PRINT FORMATED DATA LOOP
|
||||
;
|
||||
LD B, $06 ; PRINT THE 5 ELEMENTS OF DEV_STR_TBL
|
||||
LD HL,DEV_STR_TBL ; TABLE BASE PTR
|
||||
|
||||
PLOOP_BASE:
|
||||
CALL PRTSTR ; PTRSTR INCREMENTS HL FOR US
|
||||
LD A, (IX)
|
||||
CALL PRTHEX
|
||||
LD A, '|'
|
||||
CALL COUT
|
||||
INC IX
|
||||
DJNZ PLOOP_BASE
|
||||
|
||||
CALL NEWLINE
|
||||
|
||||
LD A, (CIODEV_CNT)
|
||||
DEC A
|
||||
LD (CIODEV_CNT), A
|
||||
JP P, ENUM_DEV1 ; JUMP WHILE CIODEV_CNT >=0
|
||||
AND $00
|
||||
RET
|
||||
|
||||
|
||||
;
|
||||
; RUN CONVERSTION WITH CHAR DEVICE
|
||||
;
|
||||
TALK:
|
||||
;
|
||||
; INIT PING PONG DEVICE POINTERS
|
||||
;
|
||||
LD IX, USER_CON ; LOAD VALUE AT ADDR USER_CON
|
||||
LD A, (IX) ; LOAD VALUE AT ADDR USER_CON
|
||||
LD (RF_DEV), A ; STORE TO ADDR RF_DEV
|
||||
LD A, (IX+1) ; LOAD VALUE AT ADDR TARGET_CON
|
||||
LD (WT_DEV), A ; STORE TO ADDR WT_DEV
|
||||
;
|
||||
; READ FROM RF_DEV -> WRITE TO WT_DEV
|
||||
;
|
||||
TALK_LOOP:
|
||||
;
|
||||
; CHECK FOR DATA ON RF_DEV
|
||||
;
|
||||
LD B,BF_CIOIST ; SET HBIOS FUNCTION TO RUN
|
||||
LD HL, RF_DEV
|
||||
LD C,(HL)
|
||||
CALL HBIOS_SYS ; CHECK FOR CHAR PENDING ON INPUT BUFFER USING HBIOS
|
||||
OR A ; SET FLAGS
|
||||
JP Z,TALK_NEXT ; JUMP NO CHARACTERS READY
|
||||
JP M,TALK_NEXT ; JUMP ERROR ON READ
|
||||
;
|
||||
; EXEC READ FROM RF_DEV
|
||||
;
|
||||
LD B,BF_CIOIN ; SET FUNCTION TO RUN
|
||||
LD HL, RF_DEV
|
||||
LD C,(HL) ; RETRIEVE CON_DEV_NUM TO READ/WRITE FROM ACTIVE CONSOLE
|
||||
CALL HBIOS_SYS ; CHECK FOR CHAR PENDING USING HBIOS
|
||||
LD A,E ; MOVE RESULT TO A
|
||||
CP CTRLC ; CHECK FOR EXIT REQUEST (CTRL+C)
|
||||
RET Z ; IF SO, BAIL OUT
|
||||
PUSH AF ; SAVE THE CHAR WE READ
|
||||
;
|
||||
; CHECK FOR SPACE ON WT_DEV
|
||||
;
|
||||
LD B,BF_CIOOST ; SET HBIOS FUNCTION TO RUN
|
||||
LD HL, WT_DEV
|
||||
LD C,(HL)
|
||||
CALL HBIOS_SYS ; CHECK FOR SPACE IN OUTPUT BUFFER USING HBIOS
|
||||
|
||||
OR A ; 0 OR 1 IS A VALID RETURN
|
||||
JP Z,TALK_NEXT ; JUMP NO SPACE
|
||||
JP M,TALK_NEXT ; JUMP ERROR ON WRITE
|
||||
;
|
||||
; EXEC WRITE TO WT_DEV
|
||||
;
|
||||
LD B,BF_CIOOUT ; SET HBIOS FUNCTION TO RUN
|
||||
LD HL, WT_DEV
|
||||
LD C,(HL) ; RETRIEVE TGT_DEV_NUM TO READ/WRITE FROM TARGET CHAR DEVICE
|
||||
;
|
||||
POP AF ; RECOVER THE CHARACTER
|
||||
LD E,A ; MOVE CHARACTER TO E
|
||||
CALL HBIOS_SYS ; WRITE CHAR USING HBIOS
|
||||
|
||||
TALK_NEXT:
|
||||
;
|
||||
; SWAP RF_DEV AND WT_DEV
|
||||
;
|
||||
LD IX, RF_DEV ; LOAD VALUE AT ADDR USER_CON
|
||||
LD A, (IX) ; LOAD VALUE AT ADDR RF_DEV
|
||||
LD B, (IX+1) ; LOAD VALUE AT ADDR WT_DEV
|
||||
LD (IX+1), A ; STORE TO OLD RF_DEV TO ADDR WT_DEV
|
||||
LD A, B ; MOVE OLD WT_DEV TO A
|
||||
LD (IX), A ; STORE TO OLD WT_DEF TO ADDR RF_DEV
|
||||
JP TALK_LOOP ; LOOP
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; END MAIN PROGRAM SUBROUTINES
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; BEGIN ROUTINES THAT ARE NOT COMPATIBLE WITH DBGMON
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
|
||||
PARSE:
|
||||
;
|
||||
LD HL,$81 ; POINT TO START OF COMMAND TAIL (AFTER LENGTH BYTE)
|
||||
CALL NONBLANK ; SKIP LEADING BLANKS,
|
||||
CALL HEXBYTE
|
||||
JP C,ERRHEXRD ; IF NOT, ERR
|
||||
LD (TARGET_CON),A ; REQUESTED TARGET CONN
|
||||
|
||||
LD B,A ; MOVE TO B
|
||||
|
||||
LD HL,CIODEV_MAX ; GRAB MAX VALUE OF TARGETCON
|
||||
LD A,(HL)
|
||||
|
||||
CP B ; CHECK IF B<=A
|
||||
JP M, ERROOR ; IF B>A, and both are less then 80 then S SET, ERR
|
||||
JP C, ERROOR ; IF B> 80 carry set instead (signed numbers problem)
|
||||
; swap A and B
|
||||
|
||||
JP PE, ERROOR ; IF B>A, C SET, ERR
|
||||
|
||||
LD HL, MSGTALKING ; PRINT TARGET DEVICE
|
||||
CALL PRTSTR
|
||||
LD A, B ; RETRIEVE TARGET CON
|
||||
CALL PRTHEX
|
||||
CALL NEWLINE
|
||||
|
||||
AND $00
|
||||
RET
|
||||
|
||||
|
||||
|
||||
;
|
||||
;NOT COMPATIBLE WITH THE DBGMON FUNCTION OF THE SAME NAME
|
||||
;
|
||||
NONBLANK:
|
||||
LD A,(HL) ; 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 HL ; IF BLANK, INCREMENT CHARACTER POINTER
|
||||
JR NONBLANK ; AND LOOP
|
||||
|
||||
;
|
||||
;
|
||||
;===============================================================================
|
||||
; END ROUTINES THAT ARE NOT COMPATIBLE WITH DBGMON
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; BEGIN ROUTINES THAT ARE LIFTED FROM DBGMON
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
|
||||
;
|
||||
; PRINT THE VALUE IN A IN HEX WITHOUT DESTROYING ANY REGISTERS
|
||||
;
|
||||
PRTHEX:
|
||||
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 COUT ; PRINT IT
|
||||
LD A,E ; GET THE LOW ORDER HEX CHAR
|
||||
CALL COUT ; PRINT IT
|
||||
POP DE ; RESTORE DE
|
||||
RET ; DONE
|
||||
|
||||
;
|
||||
; 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
|
||||
;
|
||||
|
||||
|
||||
;
|
||||
; ADD THE VALUE IN A TO HL (HL := HL + A)
|
||||
;
|
||||
ADDHL:
|
||||
ADD A,L ; A := A + L
|
||||
LD L,A ; PUT RESULT BACK IN L
|
||||
RET NC ; IF NO CARRY, WE ARE DONE
|
||||
INC H ; IF CARRY, INCREMENT H
|
||||
RET ; AND RETURN
|
||||
|
||||
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; UTILITY PROCS TO PRINT SINGLE CHARACTERS WITHOUT TRASHING ANY REGISTERS
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
PC_SPACE:
|
||||
PUSH AF
|
||||
LD A,' '
|
||||
JR PC_PRTCHR
|
||||
PC_COLON:
|
||||
PUSH AF
|
||||
LD A,':'
|
||||
JR PC_PRTCHR
|
||||
PC_CR:
|
||||
PUSH AF
|
||||
LD A,CHR_CR
|
||||
JR PC_PRTCHR
|
||||
|
||||
PC_LF:
|
||||
PUSH AF
|
||||
LD A,CHR_LF
|
||||
JR PC_PRTCHR
|
||||
|
||||
PC_PRTCHR:
|
||||
CALL COUT
|
||||
POP AF
|
||||
RET
|
||||
|
||||
NEWLINE2:
|
||||
CALL NEWLINE
|
||||
NEWLINE:
|
||||
CALL PC_CR
|
||||
CALL PC_LF
|
||||
RET
|
||||
|
||||
PRTSTR:
|
||||
LD A,(HL)
|
||||
INC HL
|
||||
CP '$'
|
||||
RET Z
|
||||
CALL COUT
|
||||
JR PRTSTR
|
||||
|
||||
;
|
||||
;__COUT_______________________________________________________________________
|
||||
;
|
||||
; OUTPUT CHARACTER FROM A
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
COUT:
|
||||
; SAVE ALL INCOMING REGISTERS
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
;
|
||||
; OUTPUT CHARACTER TO CONSOLE VIA HBIOS
|
||||
LD E,A ; OUTPUT CHAR TO E
|
||||
LD C,CIO_CONSOLE ; CONSOLE UNIT TO C
|
||||
LD B,BF_CIOOUT ; HBIOS FUNC: OUTPUT CHAR
|
||||
CALL HBIOS_SYS ; HBIOS OUTPUTS CHARACTER
|
||||
;
|
||||
; RESTORE ALL REGISTERS
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;__CIN________________________________________________________________________
|
||||
;
|
||||
; INPUT CHARACTER TO A
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
CIN:
|
||||
; SAVE INCOMING REGISTERS (AF IS OUTPUT)
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
;
|
||||
; INPUT CHARACTER FROM CONSOLE VIA HBIOS
|
||||
LD C,CIO_CONSOLE ; CONSOLE UNIT TO C
|
||||
LD B,BF_CIOIN ; HBIOS FUNC: INPUT CHAR
|
||||
CALL HBIOS_SYS ; HBIOS READS CHARACTER
|
||||
LD A,E ; MOVE CHARACTER TO A FOR RETURN
|
||||
;
|
||||
; RESTORE REGISTERS (AF IS OUTPUT)
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
;__CST________________________________________________________________________
|
||||
;
|
||||
; RETURN INPUT STATUS IN A (0 = NO CHAR, !=0 CHAR WAITING)
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
CST:
|
||||
; SAVE INCOMING REGISTERS (AF IS OUTPUT)
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
;
|
||||
; GET CONSOLE INPUT STATUS VIA HBIOS
|
||||
LD C,CIO_CONSOLE ; CONSOLE UNIT TO C
|
||||
LD B,BF_CIOIST ; HBIOS FUNC: INPUT STATUS
|
||||
CALL HBIOS_SYS ; HBIOS RETURNS STATUS IN A
|
||||
;
|
||||
; RESTORE REGISTERS (AF IS OUTPUT)
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
;
|
||||
|
||||
|
||||
;
|
||||
;__ISHEX______________________________________________________________________
|
||||
;
|
||||
; CHECK BYTE AT (HL) FOR HEX CHAR, RET Z IF SO, ELSE NZ
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
ISHEX:
|
||||
LD A,(HL) ; CHAR TO AS
|
||||
CP '0' ; < '0'?
|
||||
JR C,ISHEX1 ; YES, NOT 0-9, CHECK A-F
|
||||
CP '9' + 1 ; > '9'
|
||||
JR NC,ISHEX1 ; YES, NOT 0-9, CHECK A-F
|
||||
XOR A ; MUST BE 0-9, SET ZF
|
||||
RET ; AND DONE
|
||||
ISHEX1:
|
||||
CP 'A' ; < 'A'?
|
||||
JR C,ISHEX2 ; YES, NOT A-F, FAIL
|
||||
CP 'F' + 1 ; > 'F'
|
||||
JR NC,ISHEX2 ; YES, NOT A-F, FAIL
|
||||
XOR A ; MUST BE A-F, SET ZF
|
||||
RET ; AND DONE
|
||||
ISHEX2:
|
||||
OR $FF ; CLEAR ZF
|
||||
RET ; AND DONE
|
||||
;
|
||||
;__HEXBYTE____________________________________________________________________
|
||||
;
|
||||
; GET ONE BYTE OF HEX DATA FROM BUFFER IN HL, RETURN IN A
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
HEXBYTE:
|
||||
LD C,0 ; INIT WORKING VALUE
|
||||
HEXBYTE1:
|
||||
CALL ISHEX ; DO WE HAVE A HEX CHAR?
|
||||
JR NZ,HEXBYTE3 ; IF NOT, WE ARE DONE
|
||||
LD B,4 ; SHIFT WORKING VALUE (C := C * 16)
|
||||
HEXBYTE2:
|
||||
SLA C ; SHIFT ONE BIT
|
||||
RET C ; RETURN W/ CF SET INDICATING OVERFLOW ERROR
|
||||
DJNZ HEXBYTE2 ; LOOP FOR 4 BITS
|
||||
CALL NIBL ; CONVERT HEX CHAR TO BINARY VALUE IN A & INC HL
|
||||
OR C ; COMBINE WITH WORKING VALUE
|
||||
LD C,A ; AND PUT BACK IN WORKING VALUE
|
||||
JR HEXBYTE1 ; DO ANOTHER CHARACTER
|
||||
HEXBYTE3:
|
||||
LD A,C ; WORKING VALUE TO A
|
||||
OR A ; CLEAR CARRY
|
||||
RET
|
||||
|
||||
;
|
||||
;__NIBL_______________________________________________________________________
|
||||
;
|
||||
; GET ONE BYTE OF HEX DATA FROM BUFFER IN HL, RETURN IN A
|
||||
;_____________________________________________________________________________
|
||||
;
|
||||
NIBL:
|
||||
LD A,(HL) ; GET K B. DATA
|
||||
INC HL ; INC KB POINTER
|
||||
CP 40H ; TEST FOR ALPHA
|
||||
JR NC,ALPH
|
||||
AND 0FH ; GET THE BITS
|
||||
RET
|
||||
ALPH:
|
||||
AND 0FH ; GET THE BITS
|
||||
ADD A,09H ; MAKE IT HEX A-F
|
||||
RET
|
||||
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; END ROUTINES THAT ARE LIFTED FROM DBGMON
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
;===============================================================================
|
||||
; ERROR RESPONCES
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
ERROOR: ; REQUESTED DEV OUT OF RANGE (SYNTAX)
|
||||
CALL NEWLINE
|
||||
LD A, 'R'
|
||||
CALL COUT
|
||||
LD HL,TARGET_CON
|
||||
LD A,(HL)
|
||||
CALL PRTHEX
|
||||
|
||||
|
||||
LD A, ':'
|
||||
CALL COUT
|
||||
LD A, 'M'
|
||||
CALL COUT
|
||||
LD HL,CIODEV_MAX
|
||||
LD A,(HL)
|
||||
CALL PRTHEX
|
||||
|
||||
LD HL,MSGOOR
|
||||
JR ERROR
|
||||
ERRHEXRD: ; COMMAND HEX READ ERROR (SYNTAX)
|
||||
LD HL,MSGHEXRD
|
||||
JR ERROR
|
||||
ERRUSE: ; COMMAND USAGE ERROR (SYNTAX)
|
||||
LD HL,MSGUSE
|
||||
JR ERROR
|
||||
ERRPRM: ; COMMAND PARAMETER ERROR (SYNTAX)
|
||||
LD HL,MSGPRM
|
||||
JR ERROR
|
||||
ERROR: ; PRINT ERROR STRING AND RETURN ERROR SIGNAL
|
||||
CALL NEWLINE ; PRINT NEWLINE
|
||||
CALL PRTSTR ; PRINT ERROR STRING
|
||||
OR $FF ; SIGNAL ERROR
|
||||
RET ; DONE
|
||||
|
||||
;===============================================================================
|
||||
; STORAGE SECTION
|
||||
;===============================================================================
|
||||
;
|
||||
|
||||
; CHAR DEV COUNT
|
||||
CIODEV_CNT .DB $0
|
||||
CIODEV_MAX .DB $0
|
||||
|
||||
;TALK LOOP DATA, DEFAULT TO LOOPBACK
|
||||
USER_CON .DB $80
|
||||
TARGET_CON .DB $80
|
||||
|
||||
; PING PONG POINTERS
|
||||
RF_DEV .DB 0
|
||||
WT_DEV .DB 0
|
||||
|
||||
; TARGET CHARACTER DEVICE DATA
|
||||
TGT_DEV:
|
||||
.DB 0 ; HBIOS CHAR NUM
|
||||
.DB 0 ; C: DEVICE ATTRIBUTES
|
||||
.DB 0 ; D: DEVICE TYPE
|
||||
.DB 0 ; E: DEVICE NUMBER
|
||||
.DB 0 ; H: DEVICE MODE
|
||||
.DB 0 ; L: DEVICE I/O BASE ADDRESS
|
||||
|
||||
; STRING LITERALS
|
||||
MSGUSE .TEXT "USAGE: HTALK <CIO_DEV_ID>$"
|
||||
MSGPRM .TEXT "PARAMETER ERROR$"
|
||||
MSGOOR .TEXT "CIO VAL TOO LARGE$"
|
||||
MSGHEXRD .TEXT "HEX READ ERR$"
|
||||
MSGTALKING .TEXT "CONNECTING TO CHAR:$"
|
||||
|
||||
|
||||
DEV_STR_TBL:
|
||||
.TEXT "CHAR:$"
|
||||
.TEXT "ATTR:$"
|
||||
.TEXT "TYPE:$"
|
||||
.TEXT "NUMB:$"
|
||||
.TEXT "MODE:$"
|
||||
.TEXT "ADDR:$"
|
||||
|
||||
STR_DEVS_FOUND .TEXT "NUM CHAR DEVICES FOUND - $"
|
||||
STR_EXITMSG .TEXT "HTALK DONE$"
|
||||
STR_BANNER .TEXT "HTALK V1.0 (CTRL-C TO EXIT)$"
|
||||
STR_HBIOS .TEXT "HBIOS DETECTED$"
|
||||
STR_BIOERR .TEXT "*** UNKNOWN BIOS - BAILING OUT ***$"
|
||||
|
||||
STKSAV .DW 0 ; STACK POINTER SAVED AT START
|
||||
.FILL STKSIZ,0 ; STACK
|
||||
STACK .EQU $ ; STACK TOP
|
||||
;
|
||||
.END
|
||||
@@ -1,13 +1,9 @@
|
||||
OBJECTS = sysgen.com survey.com \
|
||||
syscopy.com assign.com format.com talk.com mode.com rtc.com \
|
||||
timer.com rtchb.com
|
||||
SUBDIRS = XM FDU FAT Tune Test ZMP ZMD Dev VGM cpuspd
|
||||
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 BBCBASIC
|
||||
DEST = ../../Binary/Apps
|
||||
TOOLS =../../Tools
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
|
||||
USETASM = 1
|
||||
|
||||
survey.com: USETASM = 0
|
||||
|
||||
|
||||
16
Source/Apps/Survey/Build.cmd
Normal file
16
Source/Apps/Survey/Build.cmd
Normal file
@@ -0,0 +1,16 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=..\..\..\Tools
|
||||
|
||||
set PATH=%TOOLS%\zxcc;%PATH%
|
||||
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
:: zxcc MAC survey.asm -$PO || exit /b
|
||||
:: zxcc MLOAD25 survey || exit /b
|
||||
|
||||
zxcc M80 -,=survey/L/R
|
||||
zxcc L80 -survey,survey/N/E
|
||||
|
||||
copy /Y survey.com ..\..\..\Binary\Apps\ || exit /b
|
||||
8
Source/Apps/Survey/Clean.cmd
Normal file
8
Source/Apps/Survey/Clean.cmd
Normal file
@@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.hex del *.hex
|
||||
if exist *.rel del *.rel
|
||||
if exist *.prn del *.prn
|
||||
if exist *.lst del *.lst
|
||||
if exist *.com del *.com
|
||||
6
Source/Apps/Survey/Makefile
Normal file
6
Source/Apps/Survey/Makefile
Normal file
@@ -0,0 +1,6 @@
|
||||
OBJECTS = survey.com
|
||||
DEST = ../../../Binary/Apps
|
||||
TOOLS = ../../../Tools
|
||||
OTHERS = *.hex
|
||||
|
||||
include $(TOOLS)/Makefile.inc
|
||||
@@ -15,6 +15,17 @@
|
||||
;
|
||||
;VERSION LIST - Most recent version first.
|
||||
;
|
||||
;21/Mar/23 - Previous hack was worthless because it broke
|
||||
; the memory survey. Rehacked to use HBIOS to
|
||||
; detect if N8VEM SBC MPCL memory management is
|
||||
; in use and bypass MPCL ports if so. HBIOS check
|
||||
; should allow use in non-RomWBW systems again.
|
||||
; Wayne Warthen
|
||||
;
|
||||
;10/Feb/23 - Total hack to avoid crash on ECB SBC
|
||||
; RomWBW now required by this version
|
||||
; Wayne Warthen
|
||||
;
|
||||
;16/Dec/17 - Handle 16-bit port addressing using
|
||||
; Z80 IN A,(C) instruction. Wayne Warthen
|
||||
;
|
||||
@@ -234,7 +245,7 @@ TABS EQU 9 ; Tab columns
|
||||
; MAIN PROGRAM ;
|
||||
;***********************;
|
||||
;
|
||||
ORG 100H
|
||||
;ORG 100H
|
||||
;
|
||||
START:
|
||||
LXI H,0 ; Save stack pointer
|
||||
@@ -242,9 +253,39 @@ START:
|
||||
SHLD OLDSP
|
||||
LXI SP,FINIS+64
|
||||
CALL TYPE ; Type initial CRLF
|
||||
DB TAB,TAB,'*** System Survey (December 17) ***'
|
||||
DW CRLF,CRLF
|
||||
DB TAB,'*** RomWBW System Survey (Mar 2023) ***'
|
||||
DW CRLF,CRLFE
|
||||
;
|
||||
; Are we running an N8VEM SBC w/ MPCL on RomWBW???
|
||||
;
|
||||
.Z80
|
||||
XOR A ; assume not
|
||||
LD (ISMPCL),A ; save it
|
||||
|
||||
; Check for RomWBW (HBIOS)
|
||||
LD HL,(0FFFEH) ; HL := HBIOS ident location
|
||||
LD A,'W' ; First byte of ident
|
||||
CP (HL) ; Compare
|
||||
JR NZ,NOTMPCL ; Not HBIOS
|
||||
INC HL ; Next byte of ident
|
||||
LD A,NOT 'W' ; Second byte of ident
|
||||
CP (HL) ; Compare
|
||||
JR NZ,NOTMPCL ; Not HBIOS
|
||||
;
|
||||
LD B,0F1H ; HBIOS: VER function
|
||||
LD C,0 ; required reserved value
|
||||
RST 08 ; DE := version, L := platform id
|
||||
LD A,L ; Platform ID
|
||||
CP 01H ; SBC?
|
||||
JR NZ,NOTMPCL ; Not SBC
|
||||
LD A,0FFH ; Flag
|
||||
LD (ISMPCL),A ; Set flag
|
||||
;
|
||||
.8080
|
||||
;
|
||||
NOTMPCL:
|
||||
;
|
||||
;DISK SURVEY
|
||||
LXI H,8 ; Init drive counter
|
||||
MVI C,24 ; Get login vector
|
||||
@@ -426,20 +467,19 @@ MSURV:
|
||||
ENDM
|
||||
DB '|'
|
||||
DW CRLF
|
||||
db ' ' ; dmb 31-May-82
|
||||
DB 'T'+EOL
|
||||
DB 'TT','T'+EOL
|
||||
LXI H,RAM
|
||||
MVI M,LOW 1023 ; Init RAM counter
|
||||
MVI M,LOW 2047 ; Init RAM counter
|
||||
INX H
|
||||
MVI M,HIGH 1023
|
||||
MVI M,HIGH 2047
|
||||
MVI B,4 ; Clear ROM, EMP
|
||||
CLREG:
|
||||
INX H
|
||||
MVI M,0
|
||||
DCR B
|
||||
JNZ CLREG
|
||||
LXI H,1024 ; Init memory pointer
|
||||
MVI C,63 ; K to be checked
|
||||
LXI H,2048 ; Init memory pointer
|
||||
MVI C,62 ; K to be checked
|
||||
|
||||
;Start of analysis loop
|
||||
BEGANA:
|
||||
@@ -473,7 +513,7 @@ NOTEM:
|
||||
INXI ROM
|
||||
NEXT:
|
||||
INX H ; Index next byte
|
||||
DCX D ; Decrement K counter
|
||||
DCX D ; DEC DE; Decrement K counter
|
||||
XRA A
|
||||
ORA D
|
||||
ORA E
|
||||
@@ -526,8 +566,19 @@ NEXTK:
|
||||
; contents of first page
|
||||
call type
|
||||
db 'BIOS at',' '+eol
|
||||
hexout bios+2
|
||||
hexout bios+1
|
||||
;hexout bios+2
|
||||
;hexout bios+1
|
||||
.z80
|
||||
ld hl,(bios+1)
|
||||
ld de,-3
|
||||
add hl,de
|
||||
push hl
|
||||
ld a,h
|
||||
call hexprn
|
||||
pop hl
|
||||
ld a,l
|
||||
call hexprn
|
||||
.8080
|
||||
call type
|
||||
db tab,'iobyte',' '+eol
|
||||
hexout bios+3
|
||||
@@ -536,8 +587,19 @@ NEXTK:
|
||||
hexout bios+4
|
||||
call type
|
||||
db tab,'BDOS at',' '+eol
|
||||
hexout bdos+2
|
||||
hexout bdos+1
|
||||
;hexout bdos+2
|
||||
;hexout bdos+1
|
||||
.z80
|
||||
ld hl,(bdos+1)
|
||||
ld de,-6
|
||||
add hl,de
|
||||
push hl
|
||||
ld a,h
|
||||
call hexprn
|
||||
pop hl
|
||||
ld a,l
|
||||
call hexprn
|
||||
.8080
|
||||
call type
|
||||
dw crlf,crlfe
|
||||
;
|
||||
@@ -553,6 +615,8 @@ NEXTK:
|
||||
CALL TYPE
|
||||
DB ' Bytes ROM',TAB,TAB+EOL
|
||||
LHLD BDOS+1
|
||||
LXI D,-6
|
||||
DAD D
|
||||
CALL BINDEC
|
||||
CALL TYPE
|
||||
DB ' Bytes in TPA'
|
||||
@@ -586,6 +650,21 @@ PDLY:
|
||||
MOV A,H ; ON CONSOLE STATUS PORT
|
||||
ORA L
|
||||
JNZ PDLY
|
||||
;
|
||||
.Z80
|
||||
; Check for Z180 CPU
|
||||
xor a ; assume Z80
|
||||
ld (IS180),a ; save it
|
||||
ld de,0506H ; 5 x 6
|
||||
db 0EDH,05CH ; MLT DE: de = 30 if z180
|
||||
ld a,e ; result to A
|
||||
cp 30 ; check if multiply happened
|
||||
jr nz,z80 ; if invalid, then Z80
|
||||
or 0ffH ; flag value for Z180
|
||||
ld (IS180),a ; save it
|
||||
z80:
|
||||
.8080
|
||||
;
|
||||
LXI H,0 ; Init active port counter
|
||||
mvi d,0 ; Init port counter
|
||||
mvi e,0ffh ; init port group variable
|
||||
@@ -596,17 +675,83 @@ PORTLP:
|
||||
CPI SKIPORT
|
||||
JZ ISPORT ; Print mask port
|
||||
ENDIF
|
||||
;
|
||||
.Z80
|
||||
;
|
||||
ld a,(ISMPCL) ; MPCL?
|
||||
or a ; set flags
|
||||
jr z,PCONT ; if not, skip ahead
|
||||
ld a,d ; get port to test
|
||||
and 0F8H ; range of 8 ports
|
||||
cp 078H ; starting at 78H
|
||||
jr z,ISPORT ; if in range, assume real port
|
||||
;
|
||||
PCONT:
|
||||
|
||||
mov c,a ; port number to reg c
|
||||
mvi b,0 ; for 16 bit port addressing
|
||||
db 0edh,078h ; z80: in a,(c)
|
||||
; inactive port could return 0xFF or 0x78 or the port address
|
||||
cmp c
|
||||
jz nextpt
|
||||
cpi 0FFh
|
||||
jz nextpt
|
||||
cpi 078h
|
||||
jz nextpt
|
||||
di ; interrupts off
|
||||
ld a,(IS180) ; Z180?
|
||||
or a
|
||||
jr nz,rd180
|
||||
;
|
||||
; Z80 port read
|
||||
; Read port using IN A,(C), push result
|
||||
ld a,d
|
||||
ld c,a
|
||||
ld (pnum0a),a ; dynamic update
|
||||
ld (pnum0b),a ; dynamic update
|
||||
ld b,0
|
||||
in a,(c)
|
||||
push af
|
||||
; Read port using IN A,(port), push result
|
||||
in a,(0ffh) ; IN0
|
||||
pnum0a equ $-1
|
||||
push af
|
||||
; Read port using IN A,(port), push result
|
||||
in a,(0ffh) ; IN0
|
||||
pnum0b equ $-1
|
||||
push af
|
||||
jr rdz
|
||||
;
|
||||
rd180:
|
||||
; Z180 port read
|
||||
; Read port using IN A,(C), push result
|
||||
ld a,d
|
||||
ld c,a
|
||||
ld (pnum1a),a ; dynamic update
|
||||
ld (pnum1b),a ; dynamic update
|
||||
ld b,0
|
||||
in a,(c)
|
||||
push af
|
||||
; Read port using IN0 A,(port), push result
|
||||
db 0EDH,038H,0FFH ; IN0
|
||||
pnum1a equ $-1
|
||||
push af
|
||||
; Read port using IN0 A,(port), push result
|
||||
db 0EDH,038H,0FFH ; IN0
|
||||
pnum1b equ $-1
|
||||
push af
|
||||
;
|
||||
rdz:
|
||||
;
|
||||
ei ; interrupts back on now
|
||||
;
|
||||
; port is considered inactive if values read from different port
|
||||
; read mechanisms differ or if the value $FF is read consistently,
|
||||
; or if the value read is equal to the port number itself
|
||||
;
|
||||
pop bc ; second IN0 (port) value
|
||||
pop af ; first IN0 (port) valule
|
||||
cp b ; same?
|
||||
pop bc ; IN (C) value
|
||||
jr nz,ISPORT ; if no, active running ctr port
|
||||
cp b ; same?
|
||||
jr nz,NEXTPT ; if not, inactive port
|
||||
cp 0FFh ; pullup value???
|
||||
jr z,NEXTPT ; if so, consider not active
|
||||
cp d ; value same as port num???
|
||||
jr z,NEXTPT ; if so, consider not active
|
||||
;
|
||||
.8080
|
||||
ISPORT:
|
||||
mov a,d ; got a live one, probably
|
||||
ani 0f0h ; is port in same group as last ?
|
||||
@@ -708,7 +853,6 @@ BITSHF:
|
||||
JNZ BITSHF
|
||||
RET
|
||||
|
||||
|
||||
;***********************;
|
||||
; DATA STORAGE ;
|
||||
;***********************;
|
||||
@@ -722,6 +866,9 @@ RAMF: DS 1 ; RAM good flag
|
||||
EMPF: DS 1 ; Empty so far flag
|
||||
BLKSHF: DS 1 ; block shift factor
|
||||
MAXALL: DS 2 ; maximum block number
|
||||
IS180: DS 1 ; non-zero for Z180 CPU
|
||||
ISMPCL: DS 1 ; non-zero for N8VEM SBC MPCL
|
||||
FINIS EQU $ ; End of program
|
||||
;
|
||||
END
|
||||
|
||||
567
Source/Apps/Test/2piotst/2piotst.mac
Normal file
567
Source/Apps/Test/2piotst/2piotst.mac
Normal file
@@ -0,0 +1,567 @@
|
||||
; 24.9.2018 PMS (b1ackmai1er)
|
||||
; Modified version for ECB-ZILOG PERIPHERALS BOARD - TEST 2 PIO's
|
||||
; 01.11.2011 WKA
|
||||
; Assembler M80
|
||||
; ECB-4PIO
|
||||
; Testprogramm f<>r die I/O-Karte ECB-4PIO in Z80-Mnemonics
|
||||
|
||||
PAGE 72
|
||||
.Z80
|
||||
ASEG
|
||||
ORG 100H
|
||||
;
|
||||
;CP/M-ADDRESSES
|
||||
;* * * * * * *
|
||||
;
|
||||
BOOT EQU 0 ;WARMBOOT CP/M
|
||||
BDOS EQU 5 ;ENTRY BDOS
|
||||
NMI EQU 66H ;Error-ROUTINE
|
||||
;
|
||||
;CONSOLE-CODES
|
||||
;* * * * * * *
|
||||
;
|
||||
EOT EQU 4 ;END OF TEXT
|
||||
BS EQU 8 ;BACKSPACE
|
||||
TAB EQU 9 ;TABULATOR
|
||||
LF EQU 0AH ;LINE-FEED
|
||||
CR EQU 0DH ;CARRIAGE-RETURN
|
||||
FF EQU 0CH ;FORM-FEED
|
||||
ESC EQU 1BH ;ESCAPE
|
||||
CTRLC EQU 'C'-40H ;CONTROL-C
|
||||
CTRLW EQU 'W'-40H ;CONTROL-W
|
||||
CTRLX EQU 'X'-40H ;CONTROL-X
|
||||
CTRLY EQU 'Y'-40H ;CONTROL-Y
|
||||
CTRLZ EQU 'Z'-40H ;CONTROL-Z
|
||||
;
|
||||
BASE EQU 0B8H ; 4 DIL-SCHALTER
|
||||
;
|
||||
PIO0AD EQU BASE+0 ; PIO 0 A DATEN
|
||||
PIO0AC EQU BASE+2 ; PIO 0 A CONTROL
|
||||
PIO0BD EQU BASE+1 ; PIO 0 B DATEN
|
||||
PIO0BC EQU BASE+3 ; PIO 0 B CONTROL
|
||||
;
|
||||
PIO1AD EQU BASE+4 ; PIO 1 A DATEN
|
||||
PIO1AC EQU BASE+6 ; PIO 1 A CONTROL
|
||||
PIO1BD EQU BASE+5 ; PIO 1 B DATEN
|
||||
PIO1BC EQU BASE+7 ; PIO 1 B CONTROL
|
||||
;
|
||||
MAIN: LD DE,PIO_SRTMSG
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,INI_MSG
|
||||
CALL PSTRIN
|
||||
CALL INIT
|
||||
;
|
||||
LD DE,PIO0ADW ;PIO0 A
|
||||
CALL PSTRIN
|
||||
LD A,55H
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO0AD),A
|
||||
IN A,(PIO0AD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO0ADR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO0ADW
|
||||
CALL PSTRIN
|
||||
LD A,0AAH
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO0AD),A
|
||||
IN A,(PIO0AD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO0ADR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO0BDW ;PIO0 B
|
||||
CALL PSTRIN
|
||||
LD A,55H
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO0BD),A
|
||||
IN A,(PIO0BD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO0BDR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO0BDW
|
||||
CALL PSTRIN
|
||||
LD A,0AAH
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO0BD),A
|
||||
IN A,(PIO0BD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO0BDR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO1ADW ;PIO1 A
|
||||
CALL PSTRIN
|
||||
LD A,55H
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO1AD),A
|
||||
IN A,(PIO1AD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO1ADR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO1ADW
|
||||
CALL PSTRIN
|
||||
LD A,0AAH
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO1AD),A
|
||||
IN A,(PIO1AD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO1ADR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO1BDW ;PIO1 B
|
||||
CALL PSTRIN
|
||||
LD A,55H
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO1BD),A
|
||||
IN A,(PIO1BD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO1BDR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO1BDW
|
||||
CALL PSTRIN
|
||||
LD A,0AAH
|
||||
PUSH AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
OUT (PIO1BD),A
|
||||
IN A,(PIO1BD)
|
||||
PUSH AF
|
||||
;
|
||||
LD DE,PIO1BDR
|
||||
CALL PSTRIN
|
||||
POP AF
|
||||
CALL OUTB
|
||||
LD DE,LINE_E
|
||||
CALL PSTRIN
|
||||
;
|
||||
LD DE,PIO_ENDMSG
|
||||
CALL PSTRIN
|
||||
JP BOOT
|
||||
;
|
||||
;==========================================================================
|
||||
INIT: LD HL,PIO0T ; PIO0 INITITALISIEREN
|
||||
CALL INITX
|
||||
LD HL,PIO1T ; PIO1 INITITALISIEREN
|
||||
CALL INITX
|
||||
RET
|
||||
;
|
||||
INITX: LD A,(HL) ; BYTE-ANZAHL
|
||||
OR A
|
||||
RET Z
|
||||
LD B,A ; Port-Adresse nach C
|
||||
INC HL
|
||||
LD C,(HL)
|
||||
INC HL
|
||||
OTIR
|
||||
JR INITX
|
||||
;
|
||||
PIO0T: DEFB 05 ; 5 BYTE ZUM PIO 0 A CONTROL
|
||||
DEFB PIO0AC
|
||||
DEFB 00000011B ; DIS-INT
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
|
||||
DEFB 00000000B ; ALLES AUSG.
|
||||
DEFB 01 ; 1 BYTE ZUM PIO 0 A DATEN
|
||||
DEFB PIO0AD
|
||||
DEFB 00000000B ; DATEN "LOW"
|
||||
;
|
||||
DEFB 05 ; 5 BYTE ZUM PIO 0 B CONTROL
|
||||
DEFB PIO0BC
|
||||
DEFB 00000011B ; DIS-INT
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
|
||||
DEFB 00000000B ; ALLES AUSG.
|
||||
DEFB 01 ; 1 BYTE ZUM PIO 0 B DATEN
|
||||
DEFB PIO0BD
|
||||
DEFB 00000000B ; DATEN "LOW"
|
||||
DEFB 0 ; ENDE PIO 0 B -TABELLE
|
||||
;
|
||||
PIO1T: DEFB 05 ; 5 BYTE ZUM PIO 1 A CONTROL
|
||||
DEFB PIO1AC
|
||||
DEFB 00000011B ; DIS-INT
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
|
||||
DEFB 00000000B ; ALLES AUSG.
|
||||
DEFB 01 ; 1 BYTE ZUM PIO 1 A DATEN
|
||||
DEFB PIO1AD
|
||||
DEFB 00000000B ; DATEN "LOW"
|
||||
;
|
||||
DEFB 05 ; 5 BYTE ZUM PIO 1 B CONTROL
|
||||
DEFB PIO1BC
|
||||
DEFB 00000011B ; DIS-INT
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 01001111B ; BETR.ART BYTE EINGABE
|
||||
DEFB 11001111B ; BETR.ART BIT EIN/AUSG.
|
||||
DEFB 00000000B ; ALLES AUSG.
|
||||
DEFB 01 ; 1 BYTE ZUM PIO 1 B DATEN
|
||||
DEFB PIO1BD
|
||||
DEFB 00000000B ; DATEN "LOW"
|
||||
DEFB 0 ; ENDE PIO 1 B -TABELLE
|
||||
;
|
||||
;==========================================================================
|
||||
;
|
||||
;Output on Screen
|
||||
;****************
|
||||
;
|
||||
PRBS: LD E,BS
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;Output CR+LF on Screen
|
||||
;**********************
|
||||
;
|
||||
CRLF: LD E,CR
|
||||
CALL PCHAR
|
||||
LD E,LF
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;Output ASCII-Character
|
||||
;**********************
|
||||
;
|
||||
PRINP: PUSH AF
|
||||
LD E,A
|
||||
CALL PCHAR
|
||||
POP AF
|
||||
RET;
|
||||
;
|
||||
;CALL BDOS with Register Save
|
||||
;****************************
|
||||
;
|
||||
INCHA: LD C,1 ;INPUT CHARACTER TO A
|
||||
JR BDO
|
||||
PCHAR: LD C,2 ;PRINT CHARACTER IN E
|
||||
JR BDO
|
||||
PSTRIN: LD C,9 ;PRINT STRING
|
||||
JR BDO
|
||||
INBUFF: LD C,10 ;READ CONSOLE-BUFFER
|
||||
JR BDO
|
||||
CSTS: LD C,11 ;CONSOLE-STATUS
|
||||
JR BDO
|
||||
OPEN: LD C,15 ;OPEN FILE
|
||||
JR BDO
|
||||
CLOSE: LD C,16 ;CLOSE FILE
|
||||
JR BDO
|
||||
DELETE: LD C,19 ;DELETE FILE
|
||||
JR BDO
|
||||
READS: LD C,20 ;READ SEEK
|
||||
JR BDO
|
||||
WRITES: LD C,21 ;WRITE SEEK
|
||||
JR BDO
|
||||
MAKE: LD C,22 ;MAKE FILE
|
||||
JR BDO
|
||||
SETDMA: LD C,26 ;SET DMA-ADDRESS
|
||||
BDO: PUSH HL
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH IX
|
||||
PUSH IY
|
||||
CALL BDOS
|
||||
POP IY
|
||||
POP IX
|
||||
POP BC
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
;DIRECT CONSOLE INPUT
|
||||
;********************
|
||||
;
|
||||
INDCON: CALL INDCOX
|
||||
CP 0
|
||||
JR Z,INDCON
|
||||
RET
|
||||
;
|
||||
INDCOX: LD C,6 ;Code for Direct Console Input
|
||||
LD E,0FFH ;Code for Input
|
||||
PUSH HL
|
||||
PUSH DE
|
||||
PUSH BC
|
||||
PUSH IX
|
||||
PUSH IY
|
||||
CALL BDOS
|
||||
POP IY
|
||||
POP IX
|
||||
POP BC
|
||||
POP DE
|
||||
POP HL
|
||||
RET
|
||||
;
|
||||
;
|
||||
;Output WORD
|
||||
;***********
|
||||
;
|
||||
;PARAMETER: Entry WORD IN HL
|
||||
;*********
|
||||
;
|
||||
OUTW: LD A,H
|
||||
CALL OUTB
|
||||
LD A,L
|
||||
CALL OUTB
|
||||
RET
|
||||
;
|
||||
;Output BYTE
|
||||
;***********
|
||||
;
|
||||
;PARAMETER: Entry BYTE IN A
|
||||
;*********
|
||||
;
|
||||
OUTB: PUSH AF
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
RRCA
|
||||
AND 0FH
|
||||
CALL HBTHE ;Change Half-BYTE
|
||||
POP AF
|
||||
AND 0FH
|
||||
CALL HBTHE
|
||||
RET
|
||||
;
|
||||
;Output HALF-BYTE
|
||||
;****************
|
||||
;
|
||||
;PARAMETER: Entry Half-BYTE IN A (BIT 0 - 3)
|
||||
;*********
|
||||
;
|
||||
HBTHE: CP 0AH
|
||||
JR C,HBTHE1
|
||||
ADD A,7 ;Character to Letter
|
||||
HBTHE1: ADD A,30H
|
||||
LD E,A
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;Input ADDRESS
|
||||
;*************
|
||||
;
|
||||
;PARAMETER: Exit with ADDRESS IN HL
|
||||
;*********
|
||||
;
|
||||
INADR: LD HL,0
|
||||
INADR1: CALL INCHAR ;Input TETRADE
|
||||
LD D,A
|
||||
CALL INBYT1 ;IN HEXA
|
||||
RET C ;END OF Input
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
ADD HL,HL
|
||||
OR L
|
||||
LD L,A
|
||||
JR INADR1 ;New Key
|
||||
;
|
||||
;
|
||||
;Input BYTE
|
||||
;**********
|
||||
;
|
||||
;PARAMTER: Exit with BYTE IN A
|
||||
;********
|
||||
;
|
||||
INBYT: CALL INADR
|
||||
LD A,L
|
||||
RET
|
||||
;
|
||||
;Input of one TETRADE to A (BIT 0-3)
|
||||
;************************************
|
||||
;
|
||||
INBYT1: SUB '0'
|
||||
RET C
|
||||
CP 'G'-30H
|
||||
JR NC,INBYT3 ;Error
|
||||
CP ':'-30H
|
||||
JR C,INBYT2
|
||||
CP 'A'-30H
|
||||
JR C,INBYT3 ;Error
|
||||
SUB 7
|
||||
INBYT2: OR A
|
||||
RET
|
||||
;
|
||||
INBYT3: SCF
|
||||
RET
|
||||
;
|
||||
;Input ASCII-Character to A
|
||||
;**************************
|
||||
;
|
||||
INCON: CALL INDCON ;Input ASCII-Character to A
|
||||
CP CTRLC ;TEST CONTROL-C
|
||||
JP Z,QUIT
|
||||
CP CTRLX ;TEST CONTROL-X
|
||||
JR Z,INCHA1
|
||||
CP CTRLW ;TEST CONTROL-W
|
||||
JR Z,INCHA3
|
||||
CP CTRLY ;TEST CONTROL-Y
|
||||
JR Z,INCHA2
|
||||
CP BS
|
||||
RET Z
|
||||
CP CR
|
||||
RET Z
|
||||
CP ' '
|
||||
JR C,INCON
|
||||
JR INCH1
|
||||
;
|
||||
INCHAR: CALL INCHA ;Input ASCII-Character to A
|
||||
CP CTRLC ;TEST CONTROL-C
|
||||
JR Z,QUIT
|
||||
CP CTRLX ;TEST CONTROL-X
|
||||
JR Z,INCHA1
|
||||
CP CTRLW ;TEST CONTROL-W
|
||||
JR Z,INCHA3
|
||||
CP CTRLY ;TEST CONTROL-Y
|
||||
JR Z,INCHA2
|
||||
CP BS
|
||||
RET Z
|
||||
CP CR
|
||||
RET Z
|
||||
CP ' '
|
||||
JR C,INCHAR ;Input invalied
|
||||
;
|
||||
INCH1: CP 'A'
|
||||
RET C ;Character ok
|
||||
;
|
||||
RES 5,A ;lower case -> upper case
|
||||
RET
|
||||
INCHA1: POP HL
|
||||
LD E,FF
|
||||
CALL PCHAR ;Clear screen
|
||||
JP GOON
|
||||
INCHA2: POP HL
|
||||
LD E,FF
|
||||
CALL PCHAR ;Clear screen
|
||||
JP GOON
|
||||
INCHA3: LD E,FF
|
||||
CALL PCHAR
|
||||
RET
|
||||
;
|
||||
;ABBRUCH DER BEARBEITUNG
|
||||
;***********************
|
||||
;
|
||||
COMPLT: LD DE,TCOMP
|
||||
CALL PSTRIN
|
||||
JP GOON
|
||||
QUIT: CALL CRLF
|
||||
LD DE,TQUIT
|
||||
JR FINIS
|
||||
INTTIM: POP DE ;STACK OK
|
||||
; CALL DESAK
|
||||
LD DE,TNMIAB
|
||||
CALL PSTRIN
|
||||
LD DE,MAIN ;NEW ADDRESS
|
||||
PUSH DE
|
||||
RETN
|
||||
FINIS: CALL PSTRIN ;AT BDOS-ERROR
|
||||
GOON:
|
||||
JP BOOT
|
||||
;
|
||||
;
|
||||
;TEXT-Messages
|
||||
;*************
|
||||
;
|
||||
TCOMP: DEFB ESC,21,0,14H,ESC,23,0
|
||||
DEFM 'Function complete !!$'
|
||||
TQUIT: DEFB ESC,23,0,14H,7
|
||||
DEFM 'End Run RAMFTEST$'
|
||||
TNMIAB: DEFB ESC,23,0,14H
|
||||
DEFM 'Time Out !!$'
|
||||
;
|
||||
;
|
||||
INI_MSG:DEFM 'ECB-4PIO Init all PIO Bit-Mode ',CR,LF,'$'
|
||||
PIO0ADW:DEFM 'ECB-4PIO Write to PIO0AD ','$'
|
||||
PIO0ADR:DEFM 'ECB-4PIO Read from PIO0AD ','$'
|
||||
PIO0BDW:DEFM 'ECB-4PIO Write to PIO0BD ','$'
|
||||
PIO0BDR:DEFM 'ECB-4PIO Read from PIO0BD ','$'
|
||||
PIO1ADW:DEFM 'ECB-4PIO Write to PIO1AD ','$'
|
||||
PIO1ADR:DEFM 'ECB-4PIO Read from PIO1AD ','$'
|
||||
PIO1BDW:DEFM 'ECB-4PIO Write to PIO1BD ','$'
|
||||
PIO1BDR:DEFM 'ECB-4PIO Read from PIO1BD ','$'
|
||||
|
||||
PIO_SRTMSG:
|
||||
DEFM 'ECB-ZILOG PERIPHERALS start test 1.0',CR,LF,'$'
|
||||
PIO_ENDMSG:
|
||||
DEFM 'ECB-ZILOG PERIPHERALS end test 1.0',CR,LF,'$'
|
||||
LINE_E: DEFM 'H',CR,LF,'$'
|
||||
;
|
||||
IF1
|
||||
.PRINTX 'Pass 1 complete'
|
||||
ENDIF
|
||||
;
|
||||
IF2
|
||||
.PRINTX 'Pass 2 complete'
|
||||
.PRINTX 'Assembly complete'
|
||||
ENDIF
|
||||
;
|
||||
END
|
||||
|
||||
13
Source/Apps/Test/2piotst/Build.cmd
Normal file
13
Source/Apps/Test/2piotst/Build.cmd
Normal file
@@ -0,0 +1,13 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
set TOOLS=..\..\..\..\Tools
|
||||
|
||||
set PATH=%TOOLS%\zxcc;%PATH%
|
||||
|
||||
set CPMDIR80=%TOOLS%/cpm/
|
||||
|
||||
zxcc M80 -=2piotst/l || exit /b
|
||||
zxcc L80 -2piotst,2piotst.com/n/e || exit /b
|
||||
|
||||
copy /Y 2piotst.com ..\..\..\..\Binary\Apps\Test\ || exit /b
|
||||
8
Source/Apps/Test/2piotst/Clean.cmd
Normal file
8
Source/Apps/Test/2piotst/Clean.cmd
Normal file
@@ -0,0 +1,8 @@
|
||||
@echo off
|
||||
setlocal
|
||||
|
||||
if exist *.com del *.com
|
||||
if exist *.lst del *.lst
|
||||
if exist *.bin del *.bin
|
||||
if exist *.rel del *.rel
|
||||
if exist *.prn del *.prn
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user