Alan Cox [Thu, 21 May 2015 22:07:52 +0000 (23:07 +0100)]
error: fixed up low space version
Alan Cox [Thu, 21 May 2015 22:05:57 +0000 (23:05 +0100)]
execv: pedantic corrections to prototypes
Alan Cox [Thu, 21 May 2015 22:04:56 +0000 (23:04 +0100)]
libc: add a tool to make the new liberror.txt
Alan Cox [Thu, 21 May 2015 22:03:52 +0000 (23:03 +0100)]
util: remove escaped file
Alan Cox [Thu, 21 May 2015 22:03:05 +0000 (23:03 +0100)]
tty: implement system 5 style process groups
This completes (I think) the sketched out implementation in the code.
Alan Cox [Thu, 21 May 2015 21:56:51 +0000 (22:56 +0100)]
trs80,devtty: make clearer
Alan Cox [Thu, 21 May 2015 21:56:35 +0000 (22:56 +0100)]
pcw8256,devfd: Fix typo
Alan Cox [Thu, 21 May 2015 21:56:01 +0000 (22:56 +0100)]
trs80: update README
Alan Cox [Thu, 21 May 2015 08:33:30 +0000 (09:33 +0100)]
swap: introduce swapping onto IDE, add the needed ZX128 bits
The concept is:
swap_map(x) turns x into an address that will hold the data to be
written out.
swap_page holds the "page" which is a cookie passed from the bank
manager to the swapper and on to the drivers.
map_for_swap takes the cookie and puts the page in the required space
map_kernel_{restore} then goes back to kernel mappings
The bank manager is responsible for not queuing a single I/O that spans two
"pages"
This then allows for swapping support, including banked memory from bank16k and
the like to use a generic shared driver without platform specifics leaking into
the driver layer code.
Alan Cox [Wed, 20 May 2015 22:37:18 +0000 (23:37 +0100)]
xitoa: use our own int helper
For stdio and perror using apps it costs us a small amount of memory. For stdio
using apps in general it's free, and for non stdio apps using itoa and not
sucking in the 32bit maths helpers its a big saving.
Alan Cox [Wed, 20 May 2015 22:36:56 +0000 (23:36 +0100)]
strerror: should live in string.h according to the standards
Alan Cox [Wed, 20 May 2015 22:36:31 +0000 (23:36 +0100)]
ssh: take it down from 12K to 9K
Alan Cox [Wed, 20 May 2015 22:30:47 +0000 (23:30 +0100)]
rm: downsize, fix buffers
Alan Cox [Wed, 20 May 2015 22:30:23 +0000 (23:30 +0100)]
mv: Fix buffer checking, remove stdio, downsize
Alan Cox [Wed, 20 May 2015 22:29:54 +0000 (23:29 +0100)]
ln: fix buffer checks, remove stdio, shrink
Lots more memory saved
Alan Cox [Wed, 20 May 2015 22:29:26 +0000 (23:29 +0100)]
cp: strip stdio usage, fix memory leak, size down
Saves about 2K
Alan Cox [Wed, 20 May 2015 21:32:23 +0000 (22:32 +0100)]
head: replace the Minix head with a custom one
This takes it down from over 9500 bytes to a bit of 3500
Alan Cox [Wed, 20 May 2015 21:04:34 +0000 (22:04 +0100)]
Applications/util: generate a list of sizes
Alan Cox [Wed, 20 May 2015 21:04:00 +0000 (22:04 +0100)]
ucp-mini-script: trim further - we want this to fit a 180-200K disc
Alan Cox [Wed, 20 May 2015 21:03:21 +0000 (22:03 +0100)]
pcw8256: sort out the floppy driver
Reading at least now works with these fixes and bodges. Lots more debug to
do.
Alan Cox [Wed, 20 May 2015 21:02:52 +0000 (22:02 +0100)]
lowlevel-z80-banked: delete duplicate globl here too
Alan Cox [Wed, 20 May 2015 21:02:17 +0000 (22:02 +0100)]
lowlevel-z80: remove dead symbol
Alan Cox [Wed, 20 May 2015 13:11:41 +0000 (14:11 +0100)]
libc: remove 3 clause BSD code and replace from dLibs 1.20
Alan Cox [Wed, 20 May 2015 13:10:37 +0000 (14:10 +0100)]
error.c: better strerror for size
Remove all the funky parsing and use a binary error list for strerror. That
saves us about 500 bytes in many applications.
Alan Cox [Tue, 19 May 2015 22:51:14 +0000 (23:51 +0100)]
pcw8256: build fix
Alan Cox [Tue, 19 May 2015 22:25:03 +0000 (23:25 +0100)]
syscalls.h: add uadmin defines
Alan Cox [Tue, 19 May 2015 22:19:38 +0000 (23:19 +0100)]
ucp-script: add reboot
Alan Cox [Tue, 19 May 2015 22:18:59 +0000 (23:18 +0100)]
reboot; add command
Alan Cox [Tue, 19 May 2015 22:18:34 +0000 (23:18 +0100)]
syscall_other: correct uadmin permission check
Alan Cox [Tue, 19 May 2015 22:18:06 +0000 (23:18 +0100)]
cpu-68000: provide a way to spot 32bit pointers
SDCC can't hack # if sizeof()
Alan Cox [Tue, 19 May 2015 21:27:43 +0000 (22:27 +0100)]
PORTING; update some of the out of date bits
Alan Cox [Tue, 19 May 2015 21:20:42 +0000 (22:20 +0100)]
process: update comments on reviewed FIXME
Alan Cox [Tue, 19 May 2015 21:18:27 +0000 (22:18 +0100)]
tty: note some items to review
Alan Cox [Tue, 19 May 2015 17:54:09 +0000 (18:54 +0100)]
mtx: fix function key switcher
Alan Cox [Tue, 19 May 2015 17:53:52 +0000 (18:53 +0100)]
kernel:clarify syscall fields
Alan Cox [Tue, 19 May 2015 17:28:58 +0000 (18:28 +0100)]
kernel.h: kill dead field
Alan Cox [Mon, 18 May 2015 22:18:03 +0000 (23:18 +0100)]
sgrpsig: correct sign
This was inherited from code that used negatives to indicate process groups
but is called by methods that pass the pgrp.
Alan Cox [Mon, 18 May 2015 22:12:13 +0000 (23:12 +0100)]
proc: allow kill to accept all 32 signals
Alan Cox [Mon, 18 May 2015 22:11:50 +0000 (23:11 +0100)]
process: don't wake zombies, it ends badly even if you have a shotgun
Tormod Volden [Sun, 17 May 2015 23:19:17 +0000 (01:19 +0200)]
dragon-nx32: Implement swapping in of processes
Also fix up swap parameters in config.h
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Tormod Volden [Sun, 17 May 2015 16:38:34 +0000 (18:38 +0200)]
lowlevel-6809: Do not clobber CC on syscall SWI exit
In particular the interrupt masks were overwritten and in some
cases interrupts were disabled after returning from a syscall.
Rewrite the SWI interface to only report error through D and X.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Alan Cox [Sun, 17 May 2015 22:35:00 +0000 (23:35 +0100)]
6809test: get it building again just for some size measurements
Alan Cox [Sun, 17 May 2015 22:11:05 +0000 (23:11 +0100)]
bank16: fix another swap issue
Alan Cox [Sun, 17 May 2015 22:03:36 +0000 (23:03 +0100)]
trs80: fix typo
Alan Cox [Sun, 17 May 2015 16:44:48 +0000 (17:44 +0100)]
README: update
Tormod Volden [Sun, 17 May 2015 08:55:24 +0000 (10:55 +0200)]
dragon-nx32: Swap out over DriveWire
However, swapping in again still needs some work...
Note that config.h sets DriveWire disk 1 for swap,
change at will.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Tormod Volden [Sun, 17 May 2015 08:55:22 +0000 (10:55 +0200)]
dragon: Set up SAM vector for kernel too
Otherwise SAM_SAVE will read a bogus value when on the kernel
page and SAM_RESTORE will fail to return to it.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Alan Cox [Sun, 17 May 2015 15:23:52 +0000 (16:23 +0100)]
libc: use the SDCC setjmp not one we inherited from somewhere
The SDCC one saves the bits SDCC needs and so actually works with SDCC. It's
also way smaller, cleaner and only uses legal instructions
Alan Cox [Sun, 17 May 2015 15:21:51 +0000 (16:21 +0100)]
sh: alignment
V7 happens to word pack binaries so that the low bit of the first address
beyond the end of the program is clear. We don't. This causes sh to get
a bit upset 50% of the time you fiddle with it. Instead check the sbrk
value when we start up and sbrk ourselves a byte if needed.
The sh allocator providing it is started on an even address will stay even.
Alan Cox [Sat, 16 May 2015 20:39:04 +0000 (21:39 +0100)]
sh: correct end and use sbrk() rather than v7 linkages
With this change the v7 Bourne shell now runs, even on 32K userspace boxes.
Later she added quite a few things (see
http://heirloom.cvs.sourceforge.net/heirloom/heirloom-sh/) however most of
those are memory expensive.
Probably we should add the use of '#' as a comment character as this is
nowdays considered normal.
Of the other features - an external test suits our memory size better,
while the later builtins aren't that useful and again have size issues. Only
unset cannot be external and might be useful.
Of the late features it might be nice to get 8bit clean
-
Alan Cox [Sat, 16 May 2015 19:10:23 +0000 (20:10 +0100)]
setbrk: but don't wipe shrinks of the stack!
Alan Cox [Sat, 16 May 2015 19:09:04 +0000 (20:09 +0100)]
setbrk: possible paranoia for the moment
ensure our new sbrk space is clean
Alan Cox [Sat, 16 May 2015 19:08:03 +0000 (20:08 +0100)]
sh: sdcc miscompiles (foo = bar)->x = 1 so avoid
It's a strange syntax anyway !
With this applied internal commands sort of work but executing external
commands fails and "set" likewise shows there is some kind of variable space
corruption problem to pin down first
Alan Cox [Sat, 16 May 2015 15:46:18 +0000 (16:46 +0100)]
getfsys: propogate EFAULT errors
Alan Cox [Sat, 16 May 2015 15:46:00 +0000 (16:46 +0100)]
stat: propogate EFAULT errors
Alan Cox [Sat, 16 May 2015 15:45:31 +0000 (16:45 +0100)]
trs80: don't leave PROFIL experimental bits on
Alan Cox [Sat, 16 May 2015 15:44:26 +0000 (16:44 +0100)]
df: fix multiple bugs
- sizeof(number) is not number but 1 or 2
- check strtok return rather than trying to play with NULL
Not clear with is the root cause of the trs80 df crash but at least it works
now
Alan Cox [Sat, 16 May 2015 11:01:04 +0000 (12:01 +0100)]
read/write: A zero byte read or write is a no-op not an error
Tormod Volden [Fri, 15 May 2015 19:47:36 +0000 (21:47 +0200)]
dragon-nx32: Update status in README
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Alan Cox [Sat, 16 May 2015 00:32:22 +0000 (01:32 +0100)]
TODO: R/O mounts was dealt with differently
Alan Cox [Sat, 16 May 2015 00:30:51 +0000 (01:30 +0100)]
trs80: fix swapping - bug in devhd handling of cylinder boundaries
Alan Cox [Fri, 15 May 2015 23:47:58 +0000 (00:47 +0100)]
devio: Fix the long standing buffer flushing FIXME
We now drop buffers on the final close of a device. This makes mounting
different floppy disks work reliably.
Alan Cox [Fri, 15 May 2015 23:33:52 +0000 (00:33 +0100)]
trs80: swap hd and fd over
Somewhere along the line convention appears to have ended up that the block
generics are device 0 (in effect hd and sd devices). Make trs80 follow the
pattern. Conveniently this also means hitting return boots off hd which is
nice.
Alan Cox [Fri, 15 May 2015 23:32:24 +0000 (00:32 +0100)]
trs80: fix hard disk problems
- Sector offset was wrong so it didn't interoperate
- User mode fetched only half the sectors so execve broke on hd
- Tools replicated hd offset bug
With these fixed you can partition and run FUZIX on the hard disk device even
if set up directly or under another OS.
Swap still blows up but this doesn't appear to be an hd bug at this point
Alan Cox [Fri, 15 May 2015 23:31:38 +0000 (00:31 +0100)]
devio: d_flush of a flush incapable device is not an error
Fixes mount, mkdir and other odd failures
Alan Cox [Fri, 15 May 2015 21:39:04 +0000 (22:39 +0100)]
sh: lower fds used for internal processing
Otherwise we exceed the number allocated on many ports. This gets us to a
shell prompt but things then go downhill
Alan Cox [Fri, 15 May 2015 21:38:30 +0000 (22:38 +0100)]
sh: tidy ups for main.c
Alan Cox [Fri, 15 May 2015 21:38:08 +0000 (22:38 +0100)]
sh: removed dup header so remove the Makefile dependancy
Alan Cox [Fri, 15 May 2015 21:37:11 +0000 (22:37 +0100)]
sbrk: A negative sbrk is permissible, in fact /bin/sh uses it
Alan Cox [Fri, 15 May 2015 21:35:17 +0000 (22:35 +0100)]
trs80: fix crash on boot when we zap the stack
Alan Cox [Fri, 15 May 2015 00:15:18 +0000 (01:15 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
EtchedPixels [Fri, 15 May 2015 00:14:58 +0000 (01:14 +0100)]
Merge pull request #178 from willsowerbutts/binman
n8vem-mark4, p112, zeta-v2: Update to new binman packing
Will Sowerbutts [Thu, 14 May 2015 23:23:42 +0000 (00:23 +0100)]
n8vem-mark4, p112, zeta-v2: Update to new binman packing
Alan Cox [Thu, 14 May 2015 22:53:30 +0000 (23:53 +0100)]
strsignal: correct types in signal.h
Alan Cox [Thu, 14 May 2015 22:51:04 +0000 (23:51 +0100)]
strsignal: signal name conversion
Alan Cox [Thu, 14 May 2015 20:26:27 +0000 (21:26 +0100)]
nc100: turn on direct I/O and remove legacy EXEC
This speeds things up a ton by removing excess copies. As our I/O subsystem is
PCMCIA SRAM the disk speed is basically CPU speed so the excess caching is not
at all helpful!
Alan
Alan Cox [Thu, 14 May 2015 20:22:25 +0000 (21:22 +0100)]
socz80: update to new binman packing
Alan Cox [Thu, 14 May 2015 20:22:07 +0000 (21:22 +0100)]
z80pack,plus3: update to new binman packing
Alan Cox [Thu, 14 May 2015 20:21:40 +0000 (21:21 +0100)]
mtx, pcw8256: update to new binman
Alan Cox [Thu, 14 May 2015 20:21:20 +0000 (21:21 +0100)]
msx: update to new binman
Alan Cox [Thu, 14 May 2015 20:13:05 +0000 (21:13 +0100)]
binman: Change the boot and packing (*THIS WILL AFFECT MOST PORTS*)
We now copy intializer to initialized and then pack common, fonts, discard etc
over data. That has two impacts
- your crt0.s needs to copy from s__DATA now
- your crt0.s ordering needs to put DATA last in the main block
It also saves us about 8K and neatly avoids any issues with overlapping memory
areas. That makes it worth the pain.
Alan Cox [Thu, 14 May 2015 20:12:41 +0000 (21:12 +0100)]
nc100: rework ram disc logic so we can get rid of legacy stuff
Alan Cox [Thu, 14 May 2015 19:49:12 +0000 (20:49 +0100)]
nc100: Fix packing order
We need to put initializer after initialized and before data, otherwise we end
up packing 8K of zeroes. We really can't afford to be doing that!
Tormod Volden [Thu, 14 May 2015 09:05:17 +0000 (11:05 +0200)]
dragon-nx32: Enable CONFIG_LARGE_IO_DIRECT and drop CONFIG_LEGACY_EXEC
Now that both floppy and drivewire support raw i/o.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Tormod Volden [Thu, 14 May 2015 09:05:16 +0000 (11:05 +0200)]
dragon-nx32: Make build instructions copy-pasteable
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Tormod Volden [Thu, 14 May 2015 09:05:15 +0000 (11:05 +0200)]
sh: Missing object in Makefile.6809 clean target
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Alan Cox [Wed, 13 May 2015 23:26:35 +0000 (00:26 +0100)]
dragon-nx32: initial patch for floppy support of user/kernel
Tormod Volden [Tue, 12 May 2015 21:09:39 +0000 (23:09 +0200)]
dragon-nx32: Raw support on DriveWire (limited to blocks)
CONFIG_LEGACY_EXEC is still left in place until floppy
driver also gets raw support.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Tormod Volden [Tue, 12 May 2015 21:09:38 +0000 (23:09 +0200)]
dragon ports: Proper return values from _uput* and _uget*
Thanks to Brett Gordon who found that the bogus
_uget return value was causing lseek() to fail.
Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
Alan Cox [Tue, 12 May 2015 23:04:44 +0000 (00:04 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
EtchedPixels [Tue, 12 May 2015 22:50:40 +0000 (23:50 +0100)]
Merge pull request #177 from willsowerbutts/zetaboot
zeta-v2: Fix boot from kernel in ROM
Will Sowerbutts [Sun, 10 May 2015 14:07:02 +0000 (15:07 +0100)]
zeta-v2: Fix boot from kernel in ROM. Do not change tty1 UART parameters unless booting from ROM.
Alan Cox [Mon, 11 May 2015 21:36:24 +0000 (22:36 +0100)]
sh: remove stale v7ism
Alan Cox [Mon, 11 May 2015 21:31:35 +0000 (22:31 +0100)]
sh: start trying to sort out signals
Alan Cox [Mon, 11 May 2015 21:31:21 +0000 (22:31 +0100)]
sh: remove a FIXME
Alan Cox [Mon, 11 May 2015 21:31:04 +0000 (22:31 +0100)]
sh: prt uses clock_t for time
Alan Cox [Mon, 11 May 2015 21:24:01 +0000 (22:24 +0100)]
expand: use FUZIX low level readdir functionality
Alan Cox [Mon, 11 May 2015 21:18:43 +0000 (22:18 +0100)]
sh: times syscall nowadays takes a struct, update accordingly
Alan Cox [Mon, 11 May 2015 20:35:34 +0000 (21:35 +0100)]
tmpfile: return NULL not randomness on error
Alan Cox [Mon, 11 May 2015 20:32:26 +0000 (21:32 +0100)]
sh: finish ansifying and fix up for other compilers
There are still a fair number of FIXMEs to address and probably
it would be worth looking at later versions of sh (2.11BSD etc)
for any fixes there.
Running size (not that it's exactly runnable yet) is about 28K on
Z80 and 6809, and a bit more (33K or so) on 6502.