-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathLOG-pre-2.0
312 lines (186 loc) · 9.32 KB
/
LOG-pre-2.0
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
303
304
305
306
307
308
309
310
311
Now the transition from 1.3.x to 1.4.0 takes place
1) 1.3.90: make new directory structure, and use segments:
- include directory overhauled. 20mar1997
- kernel now assembles standalone (with xa >= 2.1.3)
- fsdev now assembles standalone (with xa >= 2.1.3)
- C64 is working now (w/o fsiec)
- removed many global variables (mostly from kernel)
- made fsiec assemble, checked C64 serial and parallel (fixed a bug
in the serial code)
- now all architectures (c64, csa65, gecko) are converted,
although only c64 is tested now.
- all apps are converted, although not tested
2) 1.3.91: cleanup more archtecture dependend stuff
- moved hardware stuff from oa1si.a65 to arch/*/devices/kinit.a65
C64 works again
- put Gecko fsiec back to mainstream fsiec. added getif and freif
to fsiec device interface
- divided console code into hardware independent (devices/console.a65)
and hardware dependent (arch/*/devices/con_*.a65) code.
C64 should work (does on VICE), csa also, but this is not tested.
C64 cannot give the F1 switch key with shift+ctrl (bug!)
- CS/A architecture (with ROMTEST) works, except for the console
- CS/A console works, when not interruptable.
3) 1.3.92: dynamic memory management / relocatable loader
- added memory management from slip to stdlib. It is initialized
from the kernel on startup. New GETPID system call added to allow
owner identification for memory blocks
- new zeropage memory management in stdlib. Added o65 loader from xa
to stdlib
- made loader work. loads o65 files now, but no undefined symbols
(like KERNEL and STDIOADDR) are relocated.
4) 1.3.93: started kernel rewrite...
- removed: memory management, signals
- added error state byte for streams (untested)
- rewrote env handling to allow threads etc. Use different tables
removed send/(x)receive, setirq, getenv, freenv, setblk, wterm, getinfo,
treset, read/write and signal from kernel in this process.
- reimplemented send/receive/xreceive.
- implemented signals
- reimplemented STACKCOPY option.
- started working on CS/A65 MMU architecture
- implemented SLOCK and RENICE kernel calls
- cleaned up kernel init routines, added zerotest.a65 and ramtest.a65
- worked on SEND/RECEIVE for MMU.
- real memory handling for MMU
- cleanup device handling code (with and w/o MMU)
but: in CS/A65, non-ROM-started devices don't work!
- fixed a bug in setnam (device handling kernel code).
- moved [load|save][thread|task] all to setthread, which is
now completely in kenv
- runs on the Gecko now.
- made all calls to memtask from JSR to JMP (for NOMMU, keep a
dummy for CS/A). return from interrupt needs special care, though.
- The debugging speed when running on the xcsa emulator is impressing,
compared to the time to find an error on the real machine.....
CSA debugging done (multitasking works, video device too, so works
send/receive)
5) 1.3.94: support code and glue fixes
- console and serial devices support SCE_PUSH (console only) and
SCE_BRK bits. fsdev and fsiec support the error code bits SCE_?ERRM.
- shortened CS/A65 part a bit to get more kernel space
- sbrk for CS/A65, GETINFO (short version...)
- SHORTRAMTEST - only check one value besides MEMINIVAL, probably
MEMINIVAL ^ $ff, to still allow mirrorcheck in CS/A
- fixed nasty bug in CS/A65 setthread.
- removes stream read/write counter handling from FORK and from
ROM init. Introduced new ROM file format.
Introduced "init" process to start ROM processes with command line
FORK now copies the PCBUF to the started process, which has to releas
the SENDBUF semaphore after reading the command line
- removed stdlib calls from most sysapps (fs*, mon)
Also put "sh" from "apps" to "sysapps" and renamed it to "mon".
So far there is still a link from "apps/sh" to "sysapps/mon",
as long as there is no new shell.
- included fileformat.html (for o65 files) and lib6502.html for the
new stdlib in the doc directory.
moved the "stdlib" directory to "oldlib"
- moved libsave to THREADSAVE, TASKSAVE and ENVSAVE
all are now cleared on respective allocation
- removed bogus kernel calls. updated kernel docs (kernel.html).
improved GETINFO call and adapted the Shell code for it.
- fixed small bugs in fork and kill. (revealed by GETINFO...)
- SLOCK (scheduler lock) is optional now.
- reordered error codes
- made some more stuff for the proto directory
- when a process terminates and the parent waits for sigchld,
TT_NTHREADS is set to -1 and sigchld is sent. If parent is killed
or checkchld is called from parent, then task is freed.
checkchld returns the process ID of the terminated child
- init process now has restart ability - a ROM task can be restarted
when the task has terminated.
- fixed a bug in the console code that didn't check for E_NUL
in any case...
- also fixed a little bug in asetxy...
- kernel seems to work on real CS/A65 too now...
(fixed a little bug in BRK handling of csa65/devices/oa1sd.a65)
6) 1.3.95: stdlib handling
- SUSPEND kernel call renamed to YIELD
- realloc added to lib6502
- implemented file handling, signal handling, semaphores
according to lib6502 specs
- changed command line parameter format for ROM
- fixed a bug in arch/c64/kernal/kenv.a65 for stack address overflow
with more than 4 threads.
- stdlib handling
When task is killed (from other task, or BRK), how to clear all
lib resources? Call signal exit handler on _any_ exit, and lib
clears then?
- implemented almost all (except network and environment) feasible
lib6502 calls.
- moved the lib6502 to version 0.5
- init now boots (i.e. loads and starts) o65 file from lib6502 :-))
- exec now passes command line parameter to program
- dup works with stdio
- added cwd to lib6502 definition
- changed names from "oa1*" to more descriptive names
- lsh parses command line and redirects stdio
- lsh now executes builtin commands as well as external commands :-))
- streams are now 64 instead of 128 byte long (gives double the number
of streams on a C64)
- FSIEC opens files now without ",P"
- lsh can now combine stdout and stderr with ">!" or "!>! redirectors.
replacing ">" with ">>" does an append.
- giving the shell a filename should make it read from the file and
put it into quiet mode (untested)
- shell now receives sigchld from started tasks
- added sigchld to signal definition in lib6502
- added yield to lib6502 definition
- shell understands "&" and ";"
- added some simple file utilities (rmdir, mkdir, rm, format, chkdsk)
but more info has to be put here.
- added simple "ls" command
- added "cat" command
- changed return values for fread/fwrite
- added "mv" command (only to same device)
- forkto now copies the cwd to the child process, which makes it
run programs from relative path.
6) 1.3.96: inet handling
- mon and slipd can now also be run from lsh
- slipd now works as before. It now takes its IP address from the first
packet received.
- implemented traceroute protocol: ICMP port unreachable for udp
- some TCP bugfixes: does not eat up tcbs anymore when errorneous packets
arrive while listening. Detected some weird end of connection bug
triggered by high traffic...
- seem to have fixed the all end-of-connection problems.
- added one more virtual terminal to C64 console device
- slipd seems to be fixed...?
slipd can now redirect its stderr (away from stdout and to a file given
on the command line) -> rom startable.
- wwwsrv prefixes a file with the content-type header, depending on file
extension.
- fixed a nasty old bug in ackxmit (slipd)
- added flib2osa_[rw] calls to stdlib to map from lib6502 fileno to
OS/A65 stream.
- rsh working
- simple tlogin
- fixed bugs in lib6502 exec and bcleanpida code
- tlogin now sends the telnet WILL ECHO and WON'T ECHO options to
hide password
6) 1.3.97: lib6502 inet handling
- fixed a bug in lib6502 fopendir
- made fstcp working again
- console is in no-echo mode by default. mon now switches console to
fullscreen mode with TC_ECHO
- telnet works
- getenv/putenv work
- shell now has "echo" and "set" builtins, including variable substitution
- added "getos" lib6502 call and "uname" shell builtin.
- listen works
- rewrote fcntl to use checkfd_* - makes it shorter and works with STDIO
- fixed a really nasty bug that decreased system stack when receiving
a message that is already prepared.
- implemented lib6502 httpd, and lib6502 accept/listen works
- fixed a bug in slipd that killed it when no memory available. Now a
random connection is closed to get more memory.
- mon now recognizes STDOUT E_NUL as break condition, which makes
it stop much faster when it is in an endless loop... :-)
- loader does now align, and relocates LIB6502 and OSA2KERNEL, and calls
"main" to start
- overhauled docs
6) 2.0.0-pre*: ports and bugfixes
- added CBM8x96 support
- added support for PET with 32k RAM
TODO:
- tons of bugfixes