Alan Cox [Sun, 25 Jan 2015 17:37:03 +0000 (17:37 +0000)]
kernel.h: inode lengths are unsigned, tell the compiler this
Alan Cox [Sun, 25 Jan 2015 17:36:51 +0000 (17:36 +0000)]
tgl6502: fix old comment
Alan Cox [Sun, 25 Jan 2015 16:09:04 +0000 (16:09 +0000)]
syscall_exec: start cleaning up
Throw out the magic CP/M support - this can be better done by attaching helper code
to the CP/M binary that does an alloca and loads the emulator into the space then
runs it to move the first bytes back right, set up CP/M and go.
Alan Cox [Sun, 25 Jan 2015 16:08:01 +0000 (16:08 +0000)]
lowlevel-z80: fix asm error: missing #
Alan Cox [Sun, 25 Jan 2015 16:07:10 +0000 (16:07 +0000)]
fixedbank: don't import unused and undefined symbols
The newer linker errors this
Alan Cox [Sun, 25 Jan 2015 15:57:44 +0000 (15:57 +0000)]
z80/6502: final (hopefully) alternate magic bytes for relocatables
Alan Cox [Sun, 25 Jan 2015 15:54:08 +0000 (15:54 +0000)]
z80: define PROGLOAD in the asm side of things, also tidy PROG_BASE to match C PROGBASE
This gives us the foundation to do relocation handling by passing the start of user
code its address in IY
Alan Cox [Sun, 25 Jan 2015 15:46:56 +0000 (15:46 +0000)]
SIG_DFL: note must be zero, ready for execve tidy
Alan Cox [Sun, 25 Jan 2015 15:45:38 +0000 (15:45 +0000)]
tgl6502: set up ready to allow relocatable binaries.
Alan Cox [Sun, 25 Jan 2015 00:24:06 +0000 (00:24 +0000)]
execve: use direct user mappings
If your disk devices don't support this then you'll need to enable the
CONFIG_LEGACY_EXEC option and fix the target. (This probably will get renamed
because if we get to stuff like 68000 it may be we have a cache big enough to
make execve via it useful)
This makes execve much faster, way faster on slow memory devices. The remaining
performance killer is the lack of vfork.
Alan Cox [Sun, 25 Jan 2015 00:23:50 +0000 (00:23 +0000)]
tgl6502: enable raw I/O on the rom driver
Alan Cox [Sun, 25 Jan 2015 00:05:09 +0000 (00:05 +0000)]
bank16k_low: remove debug
Alan Cox [Sat, 24 Jan 2015 23:40:34 +0000 (23:40 +0000)]
socz80: definitely a "don't spin" platform
Alan Cox [Sat, 24 Jan 2015 23:39:03 +0000 (23:39 +0000)]
tty: allow -1 return from waitready to indicate the driver knows sleeping is good
Alan Cox [Sat, 24 Jan 2015 23:34:26 +0000 (23:34 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
EtchedPixels [Sat, 24 Jan 2015 23:34:15 +0000 (23:34 +0000)]
Merge pull request #84 from willsowerbutts/fixdf
Fix strerror, df
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
Will Sowerbutts [Sat, 24 Jan 2015 23:03:08 +0000 (23:03 +0000)]
filesystem: Add /usr/lib/liberror.txt expected by strerror()
Will Sowerbutts [Sat, 24 Jan 2015 23:04:30 +0000 (23:04 +0000)]
Applications: Make df work
Alan Cox [Sat, 24 Jan 2015 21:23:18 +0000 (21:23 +0000)]
bank16k_low: Introduce 16K low common banking logic and use it
We need a different algorithm because we must keep the low page safe not the high
one. The standard bank16k grows by inserting pages before the existing repeating
top map so that common is preserved in high space. The 6502 has common in low
space so we must instead preserve the first page mapping.
Alan Cox [Sat, 24 Jan 2015 21:22:19 +0000 (21:22 +0000)]
exec: introduce MAPBASE as distinguished from PROGBASE
PROGBASE is where the code starts
MAPBASE is where the memory mapping begins
This is needed for systems with a low mapped common
Alan Cox [Sat, 24 Jan 2015 21:21:42 +0000 (21:21 +0000)]
chmem: allow for 6502 and Z80
Alan Cox [Sat, 24 Jan 2015 16:03:33 +0000 (16:03 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Sat, 24 Jan 2015 16:03:05 +0000 (16:03 +0000)]
tgl6502: kill stray space
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.
Alan Cox [Sat, 24 Jan 2015 16:01:26 +0000 (16:01 +0000)]
devlpr: use need_resched
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.
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
Will Sowerbutts [Sat, 24 Jan 2015 00:23:49 +0000 (00:23 +0000)]
Add missing /tmp to root filesystem. /etc/mtab removed by init.
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.
Alan Cox [Sat, 24 Jan 2015 00:21:35 +0000 (00:21 +0000)]
libc: forgot to add these
Will Sowerbutts [Sat, 24 Jan 2015 00:08:03 +0000 (00:08 +0000)]
Library: Synchronise termios with kernel. Fix stty util.
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
EtchedPixels [Fri, 23 Jan 2015 23:38:09 +0000 (23:38 +0000)]
Merge pull request #79 from willsowerbutts/fixvfprintf
Library: Bug fix for vfprintf()
EtchedPixels [Fri, 23 Jan 2015 23:37:58 +0000 (23:37 +0000)]
Merge pull request #78 from willsowerbutts/readme
Update README.md file
Will Sowerbutts [Fri, 23 Jan 2015 23:26:41 +0000 (23:26 +0000)]
Kernel: Bug fix: _mknod() always failed
Will Sowerbutts [Fri, 23 Jan 2015 20:40:42 +0000 (20:40 +0000)]
Library: Bug fix for vfprintf()
Will Sowerbutts [Fri, 23 Jan 2015 19:18:45 +0000 (19:18 +0000)]
Update README.md file
Alan Cox [Fri, 23 Jan 2015 00:24:03 +0000 (00:24 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
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
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
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.
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
Will Sowerbutts [Wed, 21 Jan 2015 22:10:05 +0000 (22:10 +0000)]
Kernel: p112 README changes
Will Sowerbutts [Wed, 21 Jan 2015 22:09:45 +0000 (22:09 +0000)]
Kernel: n8vem-mark4 UNA BIOS boot sector and instructions
Will Sowerbutts [Wed, 21 Jan 2015 20:58:09 +0000 (20:58 +0000)]
Kernel: devide: Fix false-positive detection of drives
Alan Cox [Wed, 21 Jan 2015 20:27:42 +0000 (20:27 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
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.
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.
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.
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
Alan Cox [Wed, 21 Jan 2015 14:30:54 +0000 (14:30 +0000)]
tricks.s: remove stray debug
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).
Alan Cox [Mon, 19 Jan 2015 00:50:50 +0000 (00:50 +0000)]
README: Update 6502 README
Alan Cox [Sun, 18 Jan 2015 23:37:36 +0000 (23:37 +0000)]
6502: C library workaround for cc65 bug
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
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
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!
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
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
Alan Cox [Sat, 17 Jan 2015 20:50:21 +0000 (20:50 +0000)]
tgl6502: remove more debug
Alan Cox [Sat, 17 Jan 2015 20:49:36 +0000 (20:49 +0000)]
lowlevel-6502: fix outstring etc
Alan Cox [Sat, 17 Jan 2015 15:36:59 +0000 (15:36 +0000)]
tgl6502: turn off some of our debugging bits
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
Alan Cox [Sat, 17 Jan 2015 15:32:59 +0000 (15:32 +0000)]
syscall_name: open is varargs
Alan Cox [Sat, 17 Jan 2015 14:46:30 +0000 (14:46 +0000)]
6502: syscalls with no argument require nothing pushing
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.
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.
Alan Cox [Sat, 17 Jan 2015 02:17:31 +0000 (02:17 +0000)]
tricks.s: tgl6502 fork fix - copy 7 banks not 8
Alan Cox [Sat, 17 Jan 2015 02:16:15 +0000 (02:16 +0000)]
tgl6502: more debugging but we can now execute fork() ok
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.
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
Alan Cox [Fri, 16 Jan 2015 23:04:31 +0000 (23:04 +0000)]
usermem: clean up 6502 debug on ugets
Alan Cox [Fri, 16 Jan 2015 23:02:22 +0000 (23:02 +0000)]
tgl6502: Get the romdisc fixed and as far as entering userspace
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
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
Alan Cox [Fri, 16 Jan 2015 22:57:42 +0000 (22:57 +0000)]
ld65.cfg: define stubs for crt0.s to use
Alan Cox [Fri, 16 Jan 2015 22:57:20 +0000 (22:57 +0000)]
crt0.: we need to copy STUBS as well as COMMONMEM
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
Alan Cox [Fri, 16 Jan 2015 22:56:39 +0000 (22:56 +0000)]
6502: kernel.def was out of date - fix it
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
Alan Cox [Fri, 16 Jan 2015 20:47:39 +0000 (20:47 +0000)]
tgl6502: correct comment in crt0
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
Alan Cox [Fri, 16 Jan 2015 20:45:32 +0000 (20:45 +0000)]
filesys: correct invalid ptr check
Alan Cox [Fri, 16 Jan 2015 20:45:15 +0000 (20:45 +0000)]
6502: add warning about ordering of stash_zp
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
Alan Cox [Fri, 16 Jan 2015 17:37:34 +0000 (17:37 +0000)]
init: build ok with cc65
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
Alan Cox [Fri, 16 Jan 2015 16:05:52 +0000 (16:05 +0000)]
syscall_6502: don't add exit to the Makefile twice
Alan Cox [Fri, 16 Jan 2015 16:04:57 +0000 (16:04 +0000)]
crt0_6502: clean up exit symbols
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
Alan Cox [Fri, 16 Jan 2015 16:03:16 +0000 (16:03 +0000)]
crt0_6502: exit via return implies exit() not _exit()
Alan Cox [Fri, 16 Jan 2015 16:02:44 +0000 (16:02 +0000)]
crt0_6502: exit is handled differently to the classic cc65 runtime
Alan Cox [Fri, 16 Jan 2015 15:51:59 +0000 (15:51 +0000)]
6502: syscall return helper so we can set up errno correctly
Alan Cox [Fri, 16 Jan 2015 15:43:21 +0000 (15:43 +0000)]
crt0_6502: update to reflect proposed ABI
Alan Cox [Fri, 16 Jan 2015 15:42:59 +0000 (15:42 +0000)]
Makefile.6502: build the library with tools and syscalls
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)
Alan Cox [Fri, 16 Jan 2015 15:40:29 +0000 (15:40 +0000)]
tgl6502: first cut at a sane syscall ABI
Alan Cox [Fri, 16 Jan 2015 15:40:03 +0000 (15:40 +0000)]
kernel: correct syscall_name header
Alan Cox [Fri, 16 Jan 2015 14:30:38 +0000 (14:30 +0000)]
TODO: remove fcc things already done