FUZIX.git
9 years agoMerge pull request #84 from willsowerbutts/fixdf
EtchedPixels [Sat, 24 Jan 2015 23:34:15 +0000 (23:34 +0000)]
Merge pull request #84 from willsowerbutts/fixdf

Fix strerror, df

9 years agombr: Fix stray > at end of output with four primary partitions, no extended partitions
Will Sowerbutts [Sat, 24 Jan 2015 23:13:10 +0000 (23:13 +0000)]
mbr: Fix stray > at end of output with four primary partitions, no extended partitions

9 years agofilesystem: Add /usr/lib/liberror.txt expected by strerror()
Will Sowerbutts [Sat, 24 Jan 2015 23:03:08 +0000 (23:03 +0000)]
filesystem: Add /usr/lib/liberror.txt expected by strerror()

9 years agoApplications: Make df work
Will Sowerbutts [Sat, 24 Jan 2015 23:04:30 +0000 (23:04 +0000)]
Applications: Make df work

9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Sat, 24 Jan 2015 16:03:33 +0000 (16:03 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agotgl6502: kill stray space
Alan Cox [Sat, 24 Jan 2015 16:03:05 +0000 (16:03 +0000)]
tgl6502: kill stray space

9 years agotgl6502: switch to 16K banking
Alan Cox [Sat, 24 Jan 2015 16:01:44 +0000 (16:01 +0000)]
tgl6502: switch to 16K banking

No swapping yet (and swap for 16K bank needs some core tweaks). Tested with shell
and login paths but not heavily.

9 years agodevlpr: use need_resched
Alan Cox [Sat, 24 Jan 2015 16:01:26 +0000 (16:01 +0000)]
devlpr: use need_resched

9 years agoMerge pull request #82 from willsowerbutts/rootfs
EtchedPixels [Sat, 24 Jan 2015 13:18:27 +0000 (13:18 +0000)]
Merge pull request #82 from willsowerbutts/rootfs

Add missing /tmp to root filesystem. /etc/mtab removed by init.

9 years agoproc: Add need_resched()
Alan Cox [Sat, 24 Jan 2015 13:07:10 +0000 (13:07 +0000)]
proc: Add need_resched()

Use this to make the tty code behave better

9 years agoAdd missing /tmp to root filesystem. /etc/mtab removed by init.
Will Sowerbutts [Sat, 24 Jan 2015 00:23:49 +0000 (00:23 +0000)]
Add missing /tmp to root filesystem. /etc/mtab removed by init.

9 years agoMerge pull request #81 from willsowerbutts/fixstty
EtchedPixels [Sat, 24 Jan 2015 00:22:41 +0000 (00:22 +0000)]
Merge pull request #81 from willsowerbutts/fixstty

Library: Synchronise termios.h with kernel. Fix stty util.

9 years agolibc: forgot to add these
Alan Cox [Sat, 24 Jan 2015 00:21:35 +0000 (00:21 +0000)]
libc: forgot to add these

9 years agoLibrary: Synchronise termios with kernel. Fix stty util.
Will Sowerbutts [Sat, 24 Jan 2015 00:08:03 +0000 (00:08 +0000)]
Library: Synchronise termios with kernel. Fix stty util.

9 years agoMerge pull request #80 from willsowerbutts/fixmknod
EtchedPixels [Fri, 23 Jan 2015 23:48:26 +0000 (23:48 +0000)]
Merge pull request #80 from willsowerbutts/fixmknod

Kernel: Bug fix: _mknod() always failed

9 years agoMerge pull request #79 from willsowerbutts/fixvfprintf
EtchedPixels [Fri, 23 Jan 2015 23:38:09 +0000 (23:38 +0000)]
Merge pull request #79 from willsowerbutts/fixvfprintf

Library: Bug fix for vfprintf()

9 years agoMerge pull request #78 from willsowerbutts/readme
EtchedPixels [Fri, 23 Jan 2015 23:37:58 +0000 (23:37 +0000)]
Merge pull request #78 from willsowerbutts/readme

Update README.md file

9 years agoKernel: Bug fix: _mknod() always failed
Will Sowerbutts [Fri, 23 Jan 2015 23:26:41 +0000 (23:26 +0000)]
Kernel: Bug fix: _mknod() always failed

9 years agoLibrary: Bug fix for vfprintf()
Will Sowerbutts [Fri, 23 Jan 2015 20:40:42 +0000 (20:40 +0000)]
Library: Bug fix for vfprintf()

9 years agoUpdate README.md file
Will Sowerbutts [Fri, 23 Jan 2015 19:18:45 +0000 (19:18 +0000)]
Update README.md file

9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Fri, 23 Jan 2015 00:24:03 +0000 (00:24 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agotime_t: Fix up all the time_t stuff in libc for 32bit afflicted platforms
Alan Cox [Fri, 23 Jan 2015 00:23:06 +0000 (00:23 +0000)]
time_t: Fix up all the time_t stuff in libc for 32bit afflicted platforms

Trying to get the 6502 to do 64bit time_t would be the alterntative for some
crazy cc65 hacker

9 years ago6502: first cut at signal handler logic
Alan Cox [Fri, 23 Jan 2015 00:03:11 +0000 (00:03 +0000)]
6502: first cut at signal handler logic

This is quite ugly because the C stack may not be consistent during an IRQ
event. Punt most of the mess to the C app and require 6502 apps all have
a signal handling stub vectored at base + 20

9 years agoMerge pull request #75 from willsowerbutts/n8vem-boot
EtchedPixels [Thu, 22 Jan 2015 11:45:06 +0000 (11:45 +0000)]
Merge pull request #75 from willsowerbutts/n8vem-boot

n8vem-mark4 UNA BIOS boot sector, update README files for p112 and n8vem-mark4.

9 years agoMerge pull request #74 from willsowerbutts/idefix
EtchedPixels [Thu, 22 Jan 2015 11:42:27 +0000 (11:42 +0000)]
Merge pull request #74 from willsowerbutts/idefix

Kernel: devide: Fix false-positive detection of drives

9 years agoKernel: p112 README changes
Will Sowerbutts [Wed, 21 Jan 2015 22:10:05 +0000 (22:10 +0000)]
Kernel: p112 README changes

9 years agoKernel: n8vem-mark4 UNA BIOS boot sector and instructions
Will Sowerbutts [Wed, 21 Jan 2015 22:09:45 +0000 (22:09 +0000)]
Kernel: n8vem-mark4 UNA BIOS boot sector and instructions

9 years agoKernel: devide: Fix false-positive detection of drives
Will Sowerbutts [Wed, 21 Jan 2015 20:58:09 +0000 (20:58 +0000)]
Kernel: devide: Fix false-positive detection of drives

9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Wed, 21 Jan 2015 20:27:42 +0000 (20:27 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agoMerge pull request #73 from willsowerbutts/fstool
EtchedPixels [Wed, 21 Jan 2015 20:27:20 +0000 (20:27 +0000)]
Merge pull request #73 from willsowerbutts/fstool

Simple script to build a root filesystem, plus tiny patch to ucp.

9 years agoatexit: clean up all the atexit code and fix the improper casts
Alan Cox [Wed, 21 Jan 2015 20:24:27 +0000 (20:24 +0000)]
atexit: clean up all the atexit code and fix the improper casts

Turns out atexit isn't a cc65 bug rather an interesting property of the
compiler.

cc65 requires the called function to unstack the arguments so that it can
fold together the argument popping and local recovery. This means that
calling a function declared as foo(void) cast as foo(int) doesn't work and
trashes your local variables.

A new to me and excitingly novel way of shooting yourself in the boot, but
perfectly valid compiler behaviour.

9 years agoSimple script to build a root filesystem, plus tiny patch to ucp.
Will Sowerbutts [Wed, 21 Jan 2015 19:47:39 +0000 (19:47 +0000)]
Simple script to build a root filesystem, plus tiny patch to ucp.

9 years agoMerge pull request #72 from willsowerbutts/p112floppy
EtchedPixels [Wed, 21 Jan 2015 14:33:37 +0000 (14:33 +0000)]
Merge pull request #72 from willsowerbutts/p112floppy

Kernel: p112 floppy disk driver and floppy disk boot support

9 years agotricks.s: remove stray debug
Alan Cox [Wed, 21 Jan 2015 14:30:54 +0000 (14:30 +0000)]
tricks.s: remove stray debug

9 years agoKernel: p112 floppy disk driver and floppy disk boot support
Will Sowerbutts [Wed, 21 Jan 2015 13:31:49 +0000 (13:31 +0000)]
Kernel: p112 floppy disk driver and floppy disk boot support

The driver for the SMC floppy disk controller is a straight port of the
driver from UZI-180. It uses neither DMA nor interrupts.

The p112 platform can now be booted from floppy disk. The current boot
sector is somewhat rudimentary and requires the floppy disk to be
dedicated to the kernel (it cannot also hold a Fuzix filesystem).

9 years agoREADME: Update 6502 README
Alan Cox [Mon, 19 Jan 2015 00:50:50 +0000 (00:50 +0000)]
README: Update 6502 README

9 years ago6502: C library workaround for cc65 bug
Alan Cox [Sun, 18 Jan 2015 23:37:36 +0000 (23:37 +0000)]
6502: C library workaround for cc65 bug

9 years ago6502: now we have the runtime in common space, remove the extra copies
Alan Cox [Sun, 18 Jan 2015 16:41:31 +0000 (16:41 +0000)]
6502: now we have the runtime in common space, remove the extra copies

9 years agoMakefile: introduce CODE3
Alan Cox [Sun, 18 Jan 2015 16:37:28 +0000 (16:37 +0000)]
Makefile: introduce CODE3

We don't use CODE3 separately for anything but 6502 yet

9 years ago6502: Move the C runtime into common
Alan Cox [Sun, 18 Jan 2015 16:30:21 +0000 (16:30 +0000)]
6502: Move the C runtime into common

As its threaded code we really don't want to be bankswitching calls into the
runtime!

9 years agoMakefile.6502: use our atoi() and set the target
Alan Cox [Sat, 17 Jan 2015 20:51:53 +0000 (20:51 +0000)]
Makefile.6502: use our atoi() and set the target

If we don't set the target we end up with petscii paths not ascii ones in the
C library and that doesn't end well

9 years agotricks,6502: fix bugs in fork/switchin
Alan Cox [Sat, 17 Jan 2015 20:50:36 +0000 (20:50 +0000)]
tricks,6502: fix bugs in fork/switchin

We can now fork and switch between both processes happily. Some problems seem
to be left with exiting but unclear if those are kernel or init

9 years agotgl6502: remove more debug
Alan Cox [Sat, 17 Jan 2015 20:50:21 +0000 (20:50 +0000)]
tgl6502: remove more debug

9 years agolowlevel-6502: fix outstring etc
Alan Cox [Sat, 17 Jan 2015 20:49:36 +0000 (20:49 +0000)]
lowlevel-6502: fix outstring etc

9 years agotgl6502: turn off some of our debugging bits
Alan Cox [Sat, 17 Jan 2015 15:36:59 +0000 (15:36 +0000)]
tgl6502: turn off some of our debugging bits

9 years agosyscall_6502: generate correct varargs stubs
Alan Cox [Sat, 17 Jan 2015 15:33:17 +0000 (15:33 +0000)]
syscall_6502: generate correct varargs stubs

Syscalls are now working. Init gets as far as the login prompt then switches
back to the parent and traps into the monitor

9 years agosyscall_name: open is varargs
Alan Cox [Sat, 17 Jan 2015 15:32:59 +0000 (15:32 +0000)]
syscall_name: open is varargs

9 years ago6502: syscalls with no argument require nothing pushing
Alan Cox [Sat, 17 Jan 2015 14:46:30 +0000 (14:46 +0000)]
6502: syscalls with no argument require nothing pushing

9 years agoMerge pull request #71 from willsowerbutts/z80monitor
EtchedPixels [Sat, 17 Jan 2015 14:41:44 +0000 (14:41 +0000)]
Merge pull request #71 from willsowerbutts/z80monitor

Kernel: Simple monitor program for Z80 and Z180, useful for inspecting machine state.

9 years agoKernel: Simple monitor program for Z80 and Z180, useful for inspecting
Will Sowerbutts [Sat, 17 Jan 2015 12:15:24 +0000 (12:15 +0000)]
Kernel: Simple monitor program for Z80 and Z180, useful for inspecting
machine state.

Platform must provide an "inchar" routine which waits for a character on
the console and returns it in A.

This patch also implements the monitor on the p112 and n8vem-mark4
platforms.

9 years agotricks.s: tgl6502 fork fix - copy 7 banks not 8
Alan Cox [Sat, 17 Jan 2015 02:17:31 +0000 (02:17 +0000)]
tricks.s: tgl6502 fork fix - copy 7 banks not 8

9 years agotgl6502: more debugging but we can now execute fork() ok
Alan Cox [Sat, 17 Jan 2015 02:16:15 +0000 (02:16 +0000)]
tgl6502: more debugging but we can now execute fork() ok

9 years agotgl6502: snapshot of syscall work
Alan Cox [Sat, 17 Jan 2015 01:13:43 +0000 (01:13 +0000)]
tgl6502: snapshot of syscall work

We make syscalls now, but the arguments are mashed.

9 years agotgl6502/devrd: Remember to round the block offset off
Alan Cox [Sat, 17 Jan 2015 00:50:06 +0000 (00:50 +0000)]
tgl6502/devrd: Remember to round the block offset off

Otherwise end end up copying crap around. With this applied /init is loaded
into memory correctly

9 years agousermem: clean up 6502 debug on ugets
Alan Cox [Fri, 16 Jan 2015 23:04:31 +0000 (23:04 +0000)]
usermem: clean up 6502 debug on ugets

9 years agotgl6502: Get the romdisc fixed and as far as entering userspace
Alan Cox [Fri, 16 Jan 2015 23:02:22 +0000 (23:02 +0000)]
tgl6502: Get the romdisc fixed and as far as entering userspace

9 years agostart: the top of user memory we fake up depends on program base
Alan Cox [Fri, 16 Jan 2015 23:00:00 +0000 (23:00 +0000)]
start: the top of user memory we fake up depends on program base

9 years agousermem: Get the 6502 usermem working
Alan Cox [Fri, 16 Jan 2015 22:58:14 +0000 (22:58 +0000)]
usermem: Get the 6502 usermem working

Some hacks left over that want cleaning up, and it's also very slow the way
it is done, but this is a generic 'reference' approach so will do for now

9 years agold65.cfg: define stubs for crt0.s to use
Alan Cox [Fri, 16 Jan 2015 22:57:42 +0000 (22:57 +0000)]
ld65.cfg: define stubs for crt0.s to use

9 years agocrt0.: we need to copy STUBS as well as COMMONMEM
Alan Cox [Fri, 16 Jan 2015 22:57:20 +0000 (22:57 +0000)]
crt0.: we need to copy STUBS as well as COMMONMEM

9 years ago6502: sei after we switched memory banks and set our flags up
Alan Cox [Fri, 16 Jan 2015 22:56:58 +0000 (22:56 +0000)]
6502: sei after we switched memory banks and set our flags up

9 years ago6502: kernel.def was out of date - fix it
Alan Cox [Fri, 16 Jan 2015 22:56:39 +0000 (22:56 +0000)]
6502: kernel.def was out of date - fix it

9 years agousermem-6502: use tmp2,ptr2 and document that ptr1/tmp1 are for the mappers
Alan Cox [Fri, 16 Jan 2015 20:48:10 +0000 (20:48 +0000)]
usermem-6502: use tmp2,ptr2 and document that ptr1/tmp1 are for the mappers

Still all disabled while we debug

9 years agotgl6502: correct comment in crt0
Alan Cox [Fri, 16 Jan 2015 20:47:39 +0000 (20:47 +0000)]
tgl6502: correct comment in crt0

9 years agotgl6502: Store the reference commonmem ROM copy right at the top of memory
Alan Cox [Fri, 16 Jan 2015 20:46:06 +0000 (20:46 +0000)]
tgl6502: Store the reference commonmem ROM copy right at the top of memory

This plus discard etc can live anywhere really so stick them right up the top
so it's easier to see what our memory usage looks like

9 years agofilesys: correct invalid ptr check
Alan Cox [Fri, 16 Jan 2015 20:45:32 +0000 (20:45 +0000)]
filesys: correct invalid ptr check

9 years ago6502: add warning about ordering of stash_zp
Alan Cox [Fri, 16 Jan 2015 20:45:15 +0000 (20:45 +0000)]
6502: add warning about ordering of stash_zp

9 years agousermem_6502: add uzero, uputc and uputw
Alan Cox [Fri, 16 Jan 2015 17:54:17 +0000 (17:54 +0000)]
usermem_6502: add uzero, uputc and uputw

Still need to do uget, uput and ugets

9 years agoinit: build ok with cc65
Alan Cox [Fri, 16 Jan 2015 17:37:34 +0000 (17:37 +0000)]
init: build ok with cc65

9 years ago6502 lib: Small changes to get us to the point we can link init
Alan Cox [Fri, 16 Jan 2015 17:36:53 +0000 (17:36 +0000)]
6502 lib: Small changes to get us to the point we can link init

Mostly we need strtol as the cc65 runtime one tries to use the wrong isfoo()
functions

9 years agosyscall_6502: don't add exit to the Makefile twice
Alan Cox [Fri, 16 Jan 2015 16:05:52 +0000 (16:05 +0000)]
syscall_6502: don't add exit to the Makefile twice

9 years agocrt0_6502: clean up exit symbols
Alan Cox [Fri, 16 Jan 2015 16:04:57 +0000 (16:04 +0000)]
crt0_6502: clean up exit symbols

9 years agotools/syscall_6502: generate correct fastcall stacking also don't delete syscall...
Alan Cox [Fri, 16 Jan 2015 16:03:36 +0000 (16:03 +0000)]
tools/syscall_6502: generate correct fastcall stacking also don't delete syscall.s on clean

9 years agocrt0_6502: exit via return implies exit() not _exit()
Alan Cox [Fri, 16 Jan 2015 16:03:16 +0000 (16:03 +0000)]
crt0_6502: exit via return implies exit() not _exit()

9 years agocrt0_6502: exit is handled differently to the classic cc65 runtime
Alan Cox [Fri, 16 Jan 2015 16:02:44 +0000 (16:02 +0000)]
crt0_6502: exit is handled differently to the classic cc65 runtime

9 years ago6502: syscall return helper so we can set up errno correctly
Alan Cox [Fri, 16 Jan 2015 15:51:59 +0000 (15:51 +0000)]
6502: syscall return helper so we can set up errno correctly

9 years agocrt0_6502: update to reflect proposed ABI
Alan Cox [Fri, 16 Jan 2015 15:43:21 +0000 (15:43 +0000)]
crt0_6502: update to reflect proposed ABI

9 years agoMakefile.6502: build the library with tools and syscalls
Alan Cox [Fri, 16 Jan 2015 15:42:59 +0000 (15:42 +0000)]
Makefile.6502: build the library with tools and syscalls

9 years agotools/syscall6502: corrections
Alan Cox [Fri, 16 Jan 2015 15:41:24 +0000 (15:41 +0000)]
tools/syscall6502: corrections

This now generates some vaguely plausible looking code 8)

9 years agotgl6502: first cut at a sane syscall ABI
Alan Cox [Fri, 16 Jan 2015 15:40:29 +0000 (15:40 +0000)]
tgl6502: first cut at a sane syscall ABI

9 years agokernel: correct syscall_name header
Alan Cox [Fri, 16 Jan 2015 15:40:03 +0000 (15:40 +0000)]
kernel: correct syscall_name header

9 years agoTODO: remove fcc things already done
Alan Cox [Fri, 16 Jan 2015 14:30:38 +0000 (14:30 +0000)]
TODO: remove fcc things already done

9 years agosyscall_exec: handle R2L and L2R stacking compilers
Alan Cox [Fri, 16 Jan 2015 13:36:58 +0000 (13:36 +0000)]
syscall_exec: handle R2L and L2R stacking compilers

9 years ago6502: Usermode execution start up code
Alan Cox [Fri, 16 Jan 2015 13:36:30 +0000 (13:36 +0000)]
6502: Usermode execution start up code

9 years agotgl6502: tool can now automatically merge a monitor
Alan Cox [Fri, 16 Jan 2015 13:18:19 +0000 (13:18 +0000)]
tgl6502: tool can now automatically merge a monitor

9 years agotgl6502: Work on execve, also jump to monitor on crashes
Alan Cox [Fri, 16 Jan 2015 13:12:40 +0000 (13:12 +0000)]
tgl6502: Work on execve, also jump to monitor on crashes

9 years agolibc: includes for changes
Alan Cox [Fri, 16 Jan 2015 01:19:43 +0000 (01:19 +0000)]
libc: includes for changes

9 years agolibc: some more C locale only wrapping and glue
Alan Cox [Fri, 16 Jan 2015 00:57:55 +0000 (00:57 +0000)]
libc: some more C locale only wrapping and glue

Just so we can build intl apps without hassle

9 years agolibc: various minimalist locale stuff (C locale wrappers basically)
Alan Cox [Fri, 16 Jan 2015 00:32:04 +0000 (00:32 +0000)]
libc: various minimalist locale stuff (C locale wrappers basically)

9 years agoioctl: note where tty ioctls live
Alan Cox [Thu, 15 Jan 2015 23:46:51 +0000 (23:46 +0000)]
ioctl: note where tty ioctls live

9 years agosched_yield: A syscall a day 8)
Alan Cox [Thu, 15 Jan 2015 23:42:52 +0000 (23:42 +0000)]
sched_yield: A syscall a day 8)

9 years ago6502: Further libc tidying
Alan Cox [Thu, 15 Jan 2015 23:42:00 +0000 (23:42 +0000)]
6502: Further libc tidying

9 years agosyscalls: add getpgrp (forgot it before!) and also enable flock
Alan Cox [Wed, 14 Jan 2015 00:38:23 +0000 (00:38 +0000)]
syscalls: add getpgrp (forgot it before!) and also enable flock

9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Tue, 13 Jan 2015 22:03:19 +0000 (22:03 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agoREADME: notes on things for the tgl6502
Alan Cox [Tue, 13 Jan 2015 22:02:46 +0000 (22:02 +0000)]
README: notes on things for the tgl6502

9 years agocpu: make brk address rules CPU specific
Alan Cox [Tue, 13 Jan 2015 22:01:23 +0000 (22:01 +0000)]
cpu: make brk address rules CPU specific

The 6502 port has different stack policies to other processors.

Also while we are at it add uaddr_t so we can support different address
space sizes, ready for a future target or two.

9 years agoMakefile: use -O not -Or, we don't use register variables as it needs
Alan Cox [Tue, 13 Jan 2015 22:00:44 +0000 (22:00 +0000)]
Makefile: use -O not -Or, we don't use register variables as it needs

9 years agolibc: Make the libc code with cc65. Clean all the header bugs it found
Alan Cox [Tue, 13 Jan 2015 21:57:49 +0000 (21:57 +0000)]
libc: Make the libc code with cc65. Clean all the header bugs it found

cc65 is quite pedantic about consts, sdcc is rather slack. Clean up all the
errors cc65 found. That should also make it rather easier to do the gcc
builds.

This isn't yet a complete cc65 libc. It doesn't handle some of the calls due
to arg ordering funnies and it doesn't have a syscalls lib. A pure runtime
library for a cc65 'fuzix' target and crt0.s are also needed.

9 years agoMerge pull request #67 from willsowerbutts/z180int
EtchedPixels [Tue, 13 Jan 2015 21:55:03 +0000 (21:55 +0000)]
Merge pull request #67 from willsowerbutts/z180int

Interrupt fixes ("I'm in ur interrupt handler, enabling ur interrupts")

9 years agoKernel: getproc() should not enable interrupts if it is called from
Will Sowerbutts [Tue, 13 Jan 2015 20:28:19 +0000 (20:28 +0000)]
Kernel: getproc() should not enable interrupts if it is called from
within an interrupt handler because we cannot handle any interrupts that
arrive as a result. Enable interrupts only when no process is ready,
which is obviously never the case when we're preempting a process from
within a timer interrupt. The kernel will also panic if we're about to
enable interrupts in getproc() when we're already handling one.