FUZIX.git
9 years agoinitgroups: remove duplicated config file
Alan Cox [Thu, 21 May 2015 22:08:14 +0000 (23:08 +0100)]
initgroups: remove duplicated config file

9 years agoerror: fixed up low space version
Alan Cox [Thu, 21 May 2015 22:07:52 +0000 (23:07 +0100)]
error: fixed up low space version

9 years agoexecv: pedantic corrections to prototypes
Alan Cox [Thu, 21 May 2015 22:05:57 +0000 (23:05 +0100)]
execv: pedantic corrections to prototypes

9 years agolibc: add a tool to make the new liberror.txt
Alan Cox [Thu, 21 May 2015 22:04:56 +0000 (23:04 +0100)]
libc: add a tool to make the new liberror.txt

9 years agoutil: remove escaped file
Alan Cox [Thu, 21 May 2015 22:03:52 +0000 (23:03 +0100)]
util: remove escaped file

9 years agotty: implement system 5 style process groups
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.

9 years agotrs80,devtty: make clearer
Alan Cox [Thu, 21 May 2015 21:56:51 +0000 (22:56 +0100)]
trs80,devtty: make clearer

9 years agopcw8256,devfd: Fix typo
Alan Cox [Thu, 21 May 2015 21:56:35 +0000 (22:56 +0100)]
pcw8256,devfd: Fix typo

9 years agotrs80: update README
Alan Cox [Thu, 21 May 2015 21:56:01 +0000 (22:56 +0100)]
trs80: update README

9 years agoswap: introduce swapping onto IDE, add the needed ZX128 bits
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.

9 years agoxitoa: use our own int helper
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.

9 years agostrerror: should live in string.h according to the standards
Alan Cox [Wed, 20 May 2015 22:36:56 +0000 (23:36 +0100)]
strerror: should live in string.h according to the standards

9 years agossh: take it down from 12K to 9K
Alan Cox [Wed, 20 May 2015 22:36:31 +0000 (23:36 +0100)]
ssh: take it down from 12K to 9K

9 years agorm: downsize, fix buffers
Alan Cox [Wed, 20 May 2015 22:30:47 +0000 (23:30 +0100)]
rm: downsize, fix buffers

9 years agomv: Fix buffer checking, remove stdio, downsize
Alan Cox [Wed, 20 May 2015 22:30:23 +0000 (23:30 +0100)]
mv: Fix buffer checking, remove stdio, downsize

9 years agoln: fix buffer checks, remove stdio, shrink
Alan Cox [Wed, 20 May 2015 22:29:54 +0000 (23:29 +0100)]
ln: fix buffer checks, remove stdio, shrink

Lots more memory saved

9 years agocp: strip stdio usage, fix memory leak, size down
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

9 years agohead: replace the Minix head with a custom one
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

9 years agoApplications/util: generate a list of sizes
Alan Cox [Wed, 20 May 2015 21:04:34 +0000 (22:04 +0100)]
Applications/util: generate a list of sizes

9 years agoucp-mini-script: trim further - we want this to fit a 180-200K disc
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

9 years agopcw8256: sort out the floppy driver
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.

9 years agolowlevel-z80-banked: delete duplicate globl here too
Alan Cox [Wed, 20 May 2015 21:02:52 +0000 (22:02 +0100)]
lowlevel-z80-banked: delete duplicate globl here too

9 years agolowlevel-z80: remove dead symbol
Alan Cox [Wed, 20 May 2015 21:02:17 +0000 (22:02 +0100)]
lowlevel-z80: remove dead symbol

9 years agolibc: remove 3 clause BSD code and replace from dLibs 1.20
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

9 years agoerror.c: better strerror for size
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.

9 years agopcw8256: build fix
Alan Cox [Tue, 19 May 2015 22:51:14 +0000 (23:51 +0100)]
pcw8256: build fix

9 years agosyscalls.h: add uadmin defines
Alan Cox [Tue, 19 May 2015 22:25:03 +0000 (23:25 +0100)]
syscalls.h: add uadmin defines

9 years agoucp-script: add reboot
Alan Cox [Tue, 19 May 2015 22:19:38 +0000 (23:19 +0100)]
ucp-script: add reboot

9 years agoreboot; add command
Alan Cox [Tue, 19 May 2015 22:18:59 +0000 (23:18 +0100)]
reboot; add command

9 years agosyscall_other: correct uadmin permission check
Alan Cox [Tue, 19 May 2015 22:18:34 +0000 (23:18 +0100)]
syscall_other: correct uadmin permission check

9 years agocpu-68000: provide a way to spot 32bit pointers
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()

9 years agoPORTING; update some of the out of date bits
Alan Cox [Tue, 19 May 2015 21:27:43 +0000 (22:27 +0100)]
PORTING; update some of the out of date bits

9 years agoprocess: update comments on reviewed FIXME
Alan Cox [Tue, 19 May 2015 21:20:42 +0000 (22:20 +0100)]
process: update comments on reviewed FIXME

9 years agotty: note some items to review
Alan Cox [Tue, 19 May 2015 21:18:27 +0000 (22:18 +0100)]
tty: note some items to review

9 years agomtx: fix function key switcher
Alan Cox [Tue, 19 May 2015 17:54:09 +0000 (18:54 +0100)]
mtx: fix function key switcher

9 years agokernel:clarify syscall fields
Alan Cox [Tue, 19 May 2015 17:53:52 +0000 (18:53 +0100)]
kernel:clarify syscall fields

9 years agokernel.h: kill dead field
Alan Cox [Tue, 19 May 2015 17:28:58 +0000 (18:28 +0100)]
kernel.h: kill dead field

9 years agosgrpsig: correct sign
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.

9 years agoproc: allow kill to accept all 32 signals
Alan Cox [Mon, 18 May 2015 22:12:13 +0000 (23:12 +0100)]
proc: allow kill to accept all 32 signals

9 years agoprocess: don't wake zombies, it ends badly even if you have a shotgun
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

9 years agodragon-nx32: Implement swapping in of processes
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>
9 years agolowlevel-6809: Do not clobber CC on syscall SWI exit
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>
9 years ago6809test: get it building again just for some size measurements
Alan Cox [Sun, 17 May 2015 22:35:00 +0000 (23:35 +0100)]
6809test: get it building again just for some size measurements

9 years agobank16: fix another swap issue
Alan Cox [Sun, 17 May 2015 22:11:05 +0000 (23:11 +0100)]
bank16: fix another swap issue

9 years agotrs80: fix typo
Alan Cox [Sun, 17 May 2015 22:03:36 +0000 (23:03 +0100)]
trs80: fix typo

9 years agoREADME: update
Alan Cox [Sun, 17 May 2015 16:44:48 +0000 (17:44 +0100)]
README: update

9 years agodragon-nx32: Swap out over DriveWire
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>
9 years agodragon: Set up SAM vector for kernel too
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>
9 years agolibc: use the SDCC setjmp not one we inherited from somewhere
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

9 years agosh: alignment
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.

9 years agosh: correct end and use sbrk() rather than v7 linkages
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

-

9 years agosetbrk: but don't wipe shrinks of the stack!
Alan Cox [Sat, 16 May 2015 19:10:23 +0000 (20:10 +0100)]
setbrk: but don't wipe shrinks of the stack!

9 years agosetbrk: possible paranoia for the moment
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

9 years agosh: sdcc miscompiles (foo = bar)->x = 1 so avoid
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

9 years agogetfsys: propogate EFAULT errors
Alan Cox [Sat, 16 May 2015 15:46:18 +0000 (16:46 +0100)]
getfsys: propogate EFAULT errors

9 years agostat: propogate EFAULT errors
Alan Cox [Sat, 16 May 2015 15:46:00 +0000 (16:46 +0100)]
stat: propogate EFAULT errors

9 years agotrs80: don't leave PROFIL experimental bits on
Alan Cox [Sat, 16 May 2015 15:45:31 +0000 (16:45 +0100)]
trs80: don't leave PROFIL experimental bits on

9 years agodf: fix multiple bugs
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

9 years agoread/write: A zero byte read or write is a no-op not an error
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

9 years agodragon-nx32: Update status in README
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>
9 years agoTODO: R/O mounts was dealt with differently
Alan Cox [Sat, 16 May 2015 00:32:22 +0000 (01:32 +0100)]
TODO: R/O mounts was dealt with differently

9 years agotrs80: fix swapping - bug in devhd handling of cylinder boundaries
Alan Cox [Sat, 16 May 2015 00:30:51 +0000 (01:30 +0100)]
trs80: fix swapping - bug in devhd handling of cylinder boundaries

9 years agodevio: Fix the long standing buffer flushing FIXME
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.

9 years agotrs80: swap hd and fd over
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.

9 years agotrs80: fix hard disk problems
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

9 years agodevio: d_flush of a flush incapable device is not an error
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

9 years agosh: lower fds used for internal processing
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

9 years agosh: tidy ups for main.c
Alan Cox [Fri, 15 May 2015 21:38:30 +0000 (22:38 +0100)]
sh: tidy ups for main.c

9 years agosh: removed dup header so remove the Makefile dependancy
Alan Cox [Fri, 15 May 2015 21:38:08 +0000 (22:38 +0100)]
sh: removed dup header so remove the Makefile dependancy

9 years agosbrk: A negative sbrk is permissible, in fact /bin/sh uses it
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

9 years agotrs80: fix crash on boot when we zap the stack
Alan Cox [Fri, 15 May 2015 21:35:17 +0000 (22:35 +0100)]
trs80: fix crash on boot when we zap the stack

9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Fri, 15 May 2015 00:15:18 +0000 (01:15 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agoMerge pull request #178 from willsowerbutts/binman
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

9 years agon8vem-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

9 years agostrsignal: correct types in signal.h
Alan Cox [Thu, 14 May 2015 22:53:30 +0000 (23:53 +0100)]
strsignal: correct types in signal.h

9 years agostrsignal: signal name conversion
Alan Cox [Thu, 14 May 2015 22:51:04 +0000 (23:51 +0100)]
strsignal: signal name conversion

9 years agonc100: turn on direct I/O and remove legacy EXEC
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

9 years agosocz80: update to new binman packing
Alan Cox [Thu, 14 May 2015 20:22:25 +0000 (21:22 +0100)]
socz80: update to new binman packing

9 years agoz80pack,plus3: 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

9 years agomtx, pcw8256: update to new binman
Alan Cox [Thu, 14 May 2015 20:21:40 +0000 (21:21 +0100)]
mtx, pcw8256: update to new binman

9 years agomsx: update to new binman
Alan Cox [Thu, 14 May 2015 20:21:20 +0000 (21:21 +0100)]
msx: update to new binman

9 years agobinman: Change the boot and packing (*THIS WILL AFFECT MOST PORTS*)
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.

9 years agonc100: rework ram disc logic so we can get rid of legacy stuff
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

9 years agonc100: Fix packing order
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!

9 years agodragon-nx32: Enable CONFIG_LARGE_IO_DIRECT and drop CONFIG_LEGACY_EXEC
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>
9 years agodragon-nx32: Make build instructions copy-pasteable
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>
9 years agosh: Missing object in Makefile.6809 clean target
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>
9 years agodragon-nx32: initial patch for floppy support of user/kernel
Alan Cox [Wed, 13 May 2015 23:26:35 +0000 (00:26 +0100)]
dragon-nx32: initial patch for floppy support of user/kernel

9 years agodragon-nx32: Raw support on DriveWire (limited to blocks)
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>
9 years agodragon ports: Proper return values from _uput* and _uget*
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>
9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Tue, 12 May 2015 23:04:44 +0000 (00:04 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agoMerge pull request #177 from willsowerbutts/zetaboot
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

9 years agozeta-v2: Fix boot from kernel in ROM. Do not change tty1 UART parameters unless booti...
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.

9 years agosh: remove stale v7ism
Alan Cox [Mon, 11 May 2015 21:36:24 +0000 (22:36 +0100)]
sh: remove stale v7ism

9 years agosh: start trying to sort out signals
Alan Cox [Mon, 11 May 2015 21:31:35 +0000 (22:31 +0100)]
sh: start trying to sort out signals

9 years agosh: remove a FIXME
Alan Cox [Mon, 11 May 2015 21:31:21 +0000 (22:31 +0100)]
sh: remove a FIXME

9 years agosh: prt uses clock_t for time
Alan Cox [Mon, 11 May 2015 21:31:04 +0000 (22:31 +0100)]
sh: prt uses clock_t for time

9 years agoexpand: use FUZIX low level readdir functionality
Alan Cox [Mon, 11 May 2015 21:24:01 +0000 (22:24 +0100)]
expand: use FUZIX low level readdir functionality

9 years agosh: times syscall nowadays takes a struct, update accordingly
Alan Cox [Mon, 11 May 2015 21:18:43 +0000 (22:18 +0100)]
sh: times syscall nowadays takes a struct, update accordingly

9 years agotmpfile: return NULL not randomness on error
Alan Cox [Mon, 11 May 2015 20:35:34 +0000 (21:35 +0100)]
tmpfile: return NULL not randomness on error