forked from EtchedPixels/FUZIX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE-NOTES
302 lines (245 loc) · 9.58 KB
/
RELEASE-NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
Fuzix 0.3 Release Notes
Fuzix 0.3 is the third major release of the Fuzix OS. This release has mostly
been focussed upon kernel improvements and supporting more platforms,
particularly ZX Spectrum derived ones. The 68000 code base is now usable
but not entirely debugged and optimized. 8080 and 8085 support has been added.
Documentation
There is now a documentation directory and rules to build it
into something. It's still very incomplete and badly formatted
Warning
Fuzix 0.4 will break ABI compatibility big time. There are a pile of bad
and historic design decisions and behaviours that need to be dealt with.
User Space Changes:
New Commands: tty, vile, sok, fweeplet (Zork engine), fsh (sh with editing)
Main Improved commands:
cp,mv,ln now taken from Heirloom so full Unix style commands
dd can use stdin/stdout
fweep now generally available
sh now correctly handles out of memory
ucp now behaves correctly if you ls a file.
sort is now based on a different smaller codebase.
fsck check on a clean file system is much faster.
Behavioural Changes:
- Some systems had fd first not hd first. This has been unified so on
platforms where 0 was fd0, it's now 256 and hda is 0. If you use the fd
or hd names at boot prompts then it's not visible
Systems Added
Amstrad PCW 8256 with CF adapter (minimal early port)
Bill Shen
SBC64/MBC64
Simple80 (in test)
Tiny68K (for 68K development - very glitchy still)
Cromemco with 16FDC and 8" disks
Easy-Z80
Grant Searle Z80 CP/M design with small modifications
Linc80 with extra 16K RAM card
Pentagon 1024 with NemoIDE
RC2014 with 6502 Processor (emulation only board debug in process)
RC2014 with 8085 Processor
Sam Coupe (minimal port only at this point), Atomlite IDE
Small Computer Central
SC108 Z80 128K RAM, CF
SC111 Z180, 512K RAM, CF
SC114 Z80 128K RAM, CF
SBC2G (Grant Searle style system with banked memory)
Scorpion with NemoIDE
Scrumpel (Z180)
SmallZ80
Timex TC2068/TS2068 with DivIDE and Fuzix on a cartridge
Tom's SBC (with small mods)
Video Genie with EG64B banker (and in theory TRS80 + Lubomir soft banker)
Z80-MBC2
Z80 Membership card
ZX Spectrum 128K with DivIDE or DivMMC
ZX Spectrum +3 with ZXMMC or similar
Existing Supported Systems
Amstrad NC100 with 1MB SRAM card
Amstrad NC200 with 1MB SRAM card and floppy disk drive
Dragon 32/64 with Spinx or MOOH cartridge
DX Designs P112 with 1MB RAM and G-IDE
EACA Video Genie (with suitable banked memory)
LNW Research LNW80 with suitable banked memory (TRS80 Model 1 compatible bits)
Memotech MTX512 with SDX disk (no Rememorizer or Rememotech support)
Microbee 256TC or Premium with 128K+ RAM and ideally hard disk
Multicomp09 with at least 128K RAM
RBC(*) Mark IV with optional PropIO V2
RBC(*) SBC v2 with optional PPIDE and/or PropIO V2
RC2014 SBC with 512K ROM/RAM, CF, SIO and RTC
RC2014 SBC with banked ROM, 64K RAM, CF, SIO and RTC
SOCZ80 (128MHz FPGA Z80 platform)
Tandy COCO2 with Cloud 9 IDE, or COCOSDC card and Fuzix partly in cartridge
Tandy COCO3 with suitable disk interface
TRS80 Model I/III with a hard disk and a supported banked RAM expansion
TRS80 Model 4/4D/4P 128K RAM
Zeta
Zeta V2
(*) Formerly N8VEM now RBC (RetroBrewComputers)
Incomplete Ports
Apple IIc - initial investigations
Atari ST - in progress
EZRetro - minimal development port for ez80
Gemini - early design
Lucas Nascom - early design
MSX1 - works in very limited configuration only
Pentagon - needs the 0.4 ABI changes to be possible
ZX Uno - for now run the 128K ZX Spectrum version as this also
knows about some Uno features
Z80BIOS - experiment to see if things like S100 can be supported
by having a Z80 BIOS akin to the CP/M BIOS etc.
Z280RC/ZZ80RC - early sketches
New Virtual Platforms (Emulation Platforms For Fun or Development)
v8080 - 8080 development environment
v85 - 8085 development environment
Existing Virtual Platforms
V65C816 - 65C816 emulation work
V68 - 68000 development work
Z80Pack - Very flexible Z80 banked system emulator
Obsolete
MSX2 - needs a major rework and clean up
Major Changes To Existing Platforms
Dragon-MOOH - now it's own port with full MOOH paging support.
MTX - support for CFX-I CFX-II, some rememorize support,
base MTXPlus support, extra keys on PC adapter. Lots
of bug fixes.
The Library/Application support has been built for
6502 no FP
65C816 no FP, using 6502 modes
6809 FP needs debug
68000 FP needs debug
68HC11 test only
8086 test only
MSP430X
NS32k test only
PDP11 test only
Rabbit2000 test only
Z80
Z180
eZ80 needs a very recent SDCC
Core Changes
- New memory banking model for 16K banks with a fixed common
- Timer handling optimized massively.
- Correct handling of platforms with an optional RTC when it is not present
(previously clock would drift or not run)
- Correct problems if the console had carrier detect and could be hung up
- Fix races in carrier and hangup logic
- Clear error bits correctly on Z80 SIO
- Printer ioctls added
- 6502 platform support now complete including signal handling
- eZ80 support
- Z80 memory model support for machines with no usable common RAM
- Z80 switch to a software interrupt disable tracker rather than doing the
expensive NMOS Z80 workaround
- Z80 memory model support for 32K/32K split
- 8080/85 platform support complete
- 68000 flat memory model
- /dev/sys ioctl framework for platform / cpu specific ioctls
- Unified lots of drivewire code
- Support for "swapon"
- Single process in memory systems not run parent first after fork. That
usually means that we hit waitpid() and avoids an extra set of swaps.
- Base support for Z180 CPU dropped into a Z80 environment
- Clock set from root fs superblock timestamp on start up. This avoids clocks
going backwards and usually means the date is right when you boot and get
asked.
- Use uint_fast8_t for platforms where uint8_t is slow, or the compiler sucks
at handling them.
- Move repeated swap helper into partition code.
- udata offsets are now properly offsets of a symbol so it isn't repeated
in kernel.def and can't end up wrong.
- Support byte-swapped IDE
- Termios masking in the core code to make termios handling in drivers easier
Bug Fixes
- Z80 handling of NULL trap no longer crashes the system
- Fix crash case where we could swap out a zombie process
- Fixed some confusion around di and int_disabled state when making calls
to banking code. A more general fixup will happen in 0.4
- Microbeee totally mishandled memory banking but happened to sort of work.
The bank rules are now corrected.
- A failed fork corrupted memory.
- Correct various problems with '..' transition introduced in older changes
- Lots of platforms mishandled buffer reclaim of spare memory. Correct this
and extract the code where possible.
- Fix a tty and pre-emption deadlock
- corrected bugs in valaddr() range checking
- Fixed termios handling bugs in init
- Fixed 5bit wide character default bug in boot up
- cpuinfo no longer faults on Z180
Library Fixes
- isatty is much cleaner and simpler
- ttyname is usually much faster
- device name finding routines sped up a lot for the usual case
- 6809 double is 4 bytes not 8.
- curses handling of ROWS/COLS fixed also of wgetch(). ERR is now -1 so
control-A is not confused.
- New mini readline library
---------
Fuzix 0.2 Release Notes
Fuzix 0.2 is the second major release of the Fuzix OS. The primary focus has
been completing the core C library functionality. Applications have also been
updated and the kernel has a considerable number of bugs fixed and new
platforms.
Supported Hardware
Amstrad NC100 with 1MB SRAM card
Amstrad NC200 with 1MB SRAM card and floppy disk drive
Dragon 32/64 with Spinx or MOOH cartridge
DX Designs P112 with 1MB RAM and G-IDE
EACA Video Genie (with suitable banked memory)
LNW Research LNW80 with suitable banked memory (TRS80 Model 1 compatible bits)
Memotech MTX512 with SDX disk (no Rememorizer or Rememotech support)
Microbee 256TC or Premium with 128K+ RAM and ideally hard disk
MSX2 + MegaFlashROM with SD
Multicomp09 with at least 128K RAM
RBC(*) Mark IV with optional PropIO V2
RBC(*) SBC v2 with optional PPIDE and/or PropIO V2
RC2014 SBC with 512K ROM/RAM, CF, SIO and RTC
RC2014 SBC with banked ROM, 64K RAM, CF, SIO and RTC
SOCZ80 (128MHz FPGA Z80 platform)
Tandy COCO2 with Cloud 9 IDE, or COCOSDC card and Fuzix partly in cartridge
Tandy COCO3 with suitable disk interface
TRS80 Model I/III with a hard disk and a supported banked RAM expansion
TRS80 Model 4/4D/4P 128K RAM
Zeta
Zeta V2
(*) Formerly N8VEM now RBC (RetroBrewComputers)
Virtual Platforms (Emulation Platforms For Fun or Development)
V65C816 - 65C816 emulation work
V68 - 68000 development work
Z80Pack - Very flexible Z80 banked system emulator
Obsolete/Dropped Platforms
MSP430FR5969 - bitrotted
MSX1 with MegaMem - bitrotted
TGL6502 - project died
ZX128 (Spectrum 128K etc) - too difficult to make work well
Incomplete Ports
-Amstrad PCW8256/8512/9256/9512/10
-Apple IIc
-Cromemco
-Dragon 32/64 MOOH (full MOOH support, use the Spinx/Mooh port for now)
-Gemini
-Lucas Nascom
-Sam Coupe
-SC108 (port complete for proposed hardware)
-V65 (Virtual 6502 development platform)
-Video Genie with EG64
-Z280RC
The Library/Application support has been built for
6502 no FP
65C816 no FP, using 6502 modes
6809 FP needs debug
68000 FP needs debug
68HC11 test only
8086 test only
MSP430X
PDP11 test only
Rabbit2000 test only
Z80
Z180
Changes From 0.2 to 0.2.1
o Fixed a bug where zombies got swapped in error. Fixes the TRS80
hang at the date prompt
o Fixed a warning about banking fixups on the Model1
o Better debugging in swap.c
o Better debugging in binmunge
o Remembered to add the release notes!
Changes from 0.2.1 to 0.2.2
o Spell MOOH correctly