Alan Cox [Wed, 3 Jan 2018 21:45:32 +0000 (21:45 +0000)]
v65c816-big: DMA protection
Alan Cox [Wed, 3 Jan 2018 21:45:09 +0000 (21:45 +0000)]
v65c816: DMA protection for disk DMA
Alan Cox [Tue, 2 Jan 2018 21:03:23 +0000 (21:03 +0000)]
65c816: Fixes for non bank 0
With this fixed the large mode seems to work (not heavily tested) and
an 8MB boot works to a shell prompt and some test commands at least.
Alan Cox [Tue, 2 Jan 2018 19:22:32 +0000 (19:22 +0000)]
v65c816: update notes
Alan Cox [Tue, 2 Jan 2018 19:22:13 +0000 (19:22 +0000)]
v65c816-big: update notes
Alan Cox [Tue, 2 Jan 2018 19:21:52 +0000 (19:21 +0000)]
v65c816-big: callax replacement for big memory
Alan Cox [Tue, 2 Jan 2018 19:20:45 +0000 (19:20 +0000)]
65c816: use brk helper
Alan Cox [Tue, 2 Jan 2018 19:20:28 +0000 (19:20 +0000)]
65c816: fix wrap on DP computation, and add brk handling
Alan Cox [Tue, 2 Jan 2018 19:20:08 +0000 (19:20 +0000)]
65c816: fix bank 0 error
Alan Cox [Mon, 1 Jan 2018 23:59:16 +0000 (23:59 +0000)]
v65c816: Fix usermem
With this fixed we can start init but we blow up on syscalls.
Be warned - this port tends to eat the disk as well so keep a copy!
Alan Cox [Mon, 1 Jan 2018 23:59:02 +0000 (23:59 +0000)]
v65c816-big: formatting
Alan Cox [Mon, 1 Jan 2018 23:57:56 +0000 (23:57 +0000)]
v65c816-big: allow more stack
Alan Cox [Mon, 1 Jan 2018 23:16:44 +0000 (23:16 +0000)]
v65c816: make platform code split I/D safe
Alan Cox [Mon, 1 Jan 2018 23:16:24 +0000 (23:16 +0000)]
v65c816: update memory map from C, set pages right
Alan Cox [Mon, 1 Jan 2018 23:15:51 +0000 (23:15 +0000)]
v65c816-big: adapt devhd to use peek/poke for the I/O bank
Alan Cox [Mon, 1 Jan 2018 23:15:16 +0000 (23:15 +0000)]
v65c816-big: fix bug in devtty introduced in peek conversion
Alan Cox [Mon, 1 Jan 2018 23:14:42 +0000 (23:14 +0000)]
v65c816-big: Update loading code and add trampolines for exceptions/ints
Alan Cox [Mon, 1 Jan 2018 23:14:20 +0000 (23:14 +0000)]
v65c816-big: sort out the memory mapping and file build
Alan Cox [Mon, 1 Jan 2018 23:13:47 +0000 (23:13 +0000)]
65c816: add new def for split I/D capable code
Alan Cox [Mon, 1 Jan 2018 23:12:51 +0000 (23:12 +0000)]
65c816: make the usermem code any bank and split I/D safe
It's not tested at this point so expect a bug or two
Alan Cox [Mon, 1 Jan 2018 23:12:18 +0000 (23:12 +0000)]
65c816: make the task switch code safe for any bank and split I/D
Alan Cox [Mon, 1 Jan 2018 20:00:38 +0000 (20:00 +0000)]
v65c816-big: Further fixups
This is enough to get os to taking an interrupt at which point it all goes
down the pan.
- Added a hack for the cc65 jmpvec problem
- Corrected data segment packing (was 512 bytes out)
- Fixed stack locations (I think)
Alan Cox [Mon, 1 Jan 2018 19:03:24 +0000 (19:03 +0000)]
README.md: update for 65C816
Alan Cox [Mon, 1 Jan 2018 18:13:43 +0000 (18:13 +0000)]
README: update
Alan Cox [Mon, 1 Jan 2018 17:58:18 +0000 (17:58 +0000)]
v65c816-big: get to the point it starts up
With these changes the image is loaded and appears to get put in the right
places. We enter the discard code hit start, hit d_open and then the compiler
generates self modifying code
store to jmpvec+1/+2
jmp jmpvec
So it looks like little bit of compiler hacking will be needed next, or
possibly a dirty hack of putting jmpvec in stubs in bank 1 and bank 2 so
that it writes the address into bank 2 and jumps to a bank 1 stub that can
then fix up the mess.
(Even better of course would be if someone was nuts enough to port the ANSI
pcc compiler to 65C816)
Alan Cox [Mon, 1 Jan 2018 16:32:29 +0000 (16:32 +0000)]
v65c816-big: propogate changes from v65c816
Alan Cox [Mon, 1 Jan 2018 16:29:41 +0000 (16:29 +0000)]
v65c816: use the new DMA mappings for fast disk I/O
Needs the latest version of v65C816
Alan Cox [Sun, 31 Dec 2017 23:09:58 +0000 (23:09 +0000)]
65c816: support multiple disk devices
Alan Cox [Sun, 31 Dec 2017 23:02:18 +0000 (23:02 +0000)]
Makefile.6502: Fix minor buglet
Alan Cox [Sun, 31 Dec 2017 23:01:28 +0000 (23:01 +0000)]
utils: update remount to handle mtab etc
Add a -n option for boot time
Alan Cox [Sun, 31 Dec 2017 23:01:13 +0000 (23:01 +0000)]
utils: remove umount unused define and old comment
Alan Cox [Sun, 31 Dec 2017 23:00:30 +0000 (23:00 +0000)]
df; use mntent
Alan Cox [Sun, 31 Dec 2017 22:24:33 +0000 (22:24 +0000)]
remount: use mntent files
This isn't sufficient for a proper remount but is a straight port of the
current usage model.
Alan Cox [Sun, 31 Dec 2017 22:24:18 +0000 (22:24 +0000)]
util: update fsck to use mntent facilities
Alan Cox [Sun, 31 Dec 2017 22:22:57 +0000 (22:22 +0000)]
utils: Make mount/umount do all the right things
Now uses mntent, does proper locking and correctly allows mount and umount -a
Alan Cox [Sun, 31 Dec 2017 22:21:47 +0000 (22:21 +0000)]
mntent: Continue work
- Fix bugs in draft code
- Introduce getmntent_r
With these we have the calls needed to do the right thing.
Alan Cox [Sun, 31 Dec 2017 15:32:43 +0000 (15:32 +0000)]
65c816: update TODO
Alan Cox [Sun, 31 Dec 2017 15:31:58 +0000 (15:31 +0000)]
filesys: fix typo
Alan Cox [Thu, 21 Dec 2017 14:12:50 +0000 (14:12 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Thu, 21 Dec 2017 14:12:32 +0000 (14:12 +0000)]
mntent: add to build rules
Alan Cox [Thu, 21 Dec 2017 14:11:38 +0000 (14:11 +0000)]
mntent: Library methods for managing mtab and fstab
We don't use these or hook them in yet but add them ready
EtchedPixels [Tue, 19 Dec 2017 19:55:36 +0000 (19:55 +0000)]
Merge pull request #575 from beretta42/vtmode
coco3: take cmd line for default video mode
EtchedPixels [Tue, 19 Dec 2017 19:55:12 +0000 (19:55 +0000)]
Merge pull request #576 from beretta42/signal
signals: fix precedence to report correct signal no.
Brett Gordon [Tue, 19 Dec 2017 05:06:18 +0000 (00:06 -0500)]
signals: fix precedence to report correct signal no.
Brett Gordon [Mon, 18 Dec 2017 13:58:47 +0000 (08:58 -0500)]
coco3: take cmd line for default video mode
Alan Cox [Fri, 15 Dec 2017 13:05:31 +0000 (13:05 +0000)]
65c816-big: We can't build it all -Oi, but we can do the core code
Alan Cox [Fri, 15 Dec 2017 00:09:49 +0000 (00:09 +0000)]
v65c816-big: A development configuration for a 65C816 with loads of RAM
8MB RAM testing work.
Lots to do here (plus some of the core code like the scheduler doesn't really
scale to 128 processes!)
Alan Cox [Fri, 15 Dec 2017 00:09:21 +0000 (00:09 +0000)]
level2: fix build errors from previous changes
Alan Cox [Fri, 15 Dec 2017 00:08:50 +0000 (00:08 +0000)]
v65c816: README
Signals (from kernel side at least) are done
Alan Cox [Fri, 15 Dec 2017 00:08:36 +0000 (00:08 +0000)]
65c816: fix bank != 0 case
Alan Cox [Fri, 15 Dec 2017 00:08:19 +0000 (00:08 +0000)]
65c816: fix lib code when bank != 0
Alan Cox [Thu, 14 Dec 2017 21:55:30 +0000 (21:55 +0000)]
inode: another SDCC size-ism fixup
Alan Cox [Thu, 14 Dec 2017 21:38:31 +0000 (21:38 +0000)]
kernel: another pipe 16bit fix
Alan Cox [Thu, 14 Dec 2017 21:31:10 +0000 (21:31 +0000)]
inode: do some more pipe maths in 16bit
Alan Cox [Thu, 14 Dec 2017 21:25:23 +0000 (21:25 +0000)]
65c816: documentation update
Alan Cox [Thu, 14 Dec 2017 17:10:51 +0000 (17:10 +0000)]
v65c816: turn on more features, fix memory map bugs
Turn on networking core support
Correct the definitions so we are not 0x200 bytes off on the stacks
Move the IRQ DP into $FFxx as it can share with the vectors
Move discard into the upper bits of the stacks where it can be reclaimed
Alan Cox [Thu, 14 Dec 2017 15:22:58 +0000 (15:22 +0000)]
65c816: add hints for process.c and also fix up the waitpid loop
Without this fix we can end up stalling in weird corner cases
Alan Cox [Thu, 14 Dec 2017 15:22:43 +0000 (15:22 +0000)]
65c816: add register hints
Alan Cox [Thu, 14 Dec 2017 15:21:34 +0000 (15:21 +0000)]
65c816: use register ops here and there
We need this to get better performance out of cc65.
We may be able to justify -Oi but the code grows a lot so it may become a
size problem if we did.
Alan Cox [Thu, 14 Dec 2017 14:20:26 +0000 (14:20 +0000)]
lseek: Fix signed/unsigned complaint from cc65
Alan Cox [Thu, 14 Dec 2017 13:54:59 +0000 (13:54 +0000)]
fcntl: Fix F_GETFL bug
Alan Cox [Thu, 14 Dec 2017 13:45:29 +0000 (13:45 +0000)]
kernel: fix typo in process change
Alan Cox [Thu, 14 Dec 2017 13:43:52 +0000 (13:43 +0000)]
6502/65c816: introduce a regptr hint
We need this because cc65 writes *far* better code if you tell it to mark
key structure pointers as register so it can then use zp based offset addressing
on them
Alan Cox [Thu, 14 Dec 2017 13:43:12 +0000 (13:43 +0000)]
z80pack: map is always 8bit.. so use an 8bit value
Alan Cox [Thu, 14 Dec 2017 13:42:49 +0000 (13:42 +0000)]
process: re-arrange code for clarity
Alan Cox [Thu, 14 Dec 2017 13:42:16 +0000 (13:42 +0000)]
kernel: introduce a u_done counter set to 0 in rwsetup
We then use this to clean up psleep_flags_io and some other code. This also
saves us a few bytes
Alan Cox [Thu, 14 Dec 2017 12:58:24 +0000 (12:58 +0000)]
signals: correct SIGCONT, optimize code slightly
Alan Cox [Thu, 14 Dec 2017 12:20:00 +0000 (12:20 +0000)]
filesys: use the getmode helper in i_deref instead
Cleans up a bit, uses 8bit compares and saves us another 26 bytes
Alan Cox [Thu, 14 Dec 2017 12:13:39 +0000 (12:13 +0000)]
i_deref: remove repeated evaluations
Cleans up the code and saves us another 26 bytes as a side effect
Alan Cox [Thu, 14 Dec 2017 12:04:54 +0000 (12:04 +0000)]
kernel: remove a single use variable
Tidying up - and shorter cc65 code. Bizarrely sdcc also can't figure out that
this could just be a temporary so it also saves 12 bytes
Alan Cox [Thu, 14 Dec 2017 11:56:11 +0000 (11:56 +0000)]
syscall_fs: diet lseek another 80 bytes or so
Alan Cox [Thu, 14 Dec 2017 11:48:30 +0000 (11:48 +0000)]
kernel: avoid switch in lseek
Not all our compilers do the smart thing with this, and we get better code using
if statements on those that don't.
Alan Cox [Thu, 14 Dec 2017 11:32:35 +0000 (11:32 +0000)]
process: Fix mask size in ssig
We don't need a 32bit value any more, and using 16bits saves us 100 bytes
(That's how expensive SDCC longs are!)
Alan Cox [Thu, 14 Dec 2017 00:45:14 +0000 (00:45 +0000)]
inodeL small optimization
Pipes always wrap at 18 * 512 bytes so we don't need to do a 32bit comparison
here
Alan Cox [Wed, 13 Dec 2017 23:32:25 +0000 (23:32 +0000)]
kernel: Make signal handling 16bit clean
SDCC makes a complete hash of 32bit maths and the other compilers don't handle
it that well either so rework the signals as 16bit chunks. This saves us a
whopping 350 bytes as well as speeding stuff up.
Also copy over the held bits - something we forgot to do before.
Alan Cox [Wed, 13 Dec 2017 21:31:19 +0000 (21:31 +0000)]
fsck: some cleaning and tuning
Alan Cox [Wed, 13 Dec 2017 20:57:25 +0000 (20:57 +0000)]
65c816: remove some debug
Alan Cox [Wed, 13 Dec 2017 20:36:30 +0000 (20:36 +0000)]
65c816: signal fixes
With this we seem to have working signals
Alan Cox [Wed, 13 Dec 2017 20:18:32 +0000 (20:18 +0000)]
65c816: signal improvements
We now correctly call the vector for the signal and process it. We return to the
correct recovery code, and then fail to recover correctly.
Alan Cox [Wed, 13 Dec 2017 19:16:14 +0000 (19:16 +0000)]
size: add 6502
Alan Cox [Wed, 13 Dec 2017 19:14:50 +0000 (19:14 +0000)]
65c816: handle interrupt race
Handle the 1 instruction window where we interrupt just as we do the RTL to go
back to user space. Without this additional check we see user space as the mode
and instead of executing the RTL after the CLI we end up executing something in
the user bank at that address.
Alan Cox [Wed, 13 Dec 2017 19:13:00 +0000 (19:13 +0000)]
6502: Fix longmp
This is ugly. For the 6502/6509/65C02 and friends we need to just deal with the
8bit S register. For the 65C816 we have to change the low 8bits of S only, while
keeping interrupts off as we might otherwise get swapped out and change S mid
calculation.
Not always my favourite processor for multi-tasking..
Alan Cox [Wed, 13 Dec 2017 14:13:42 +0000 (14:13 +0000)]
z80: crt0 - let binman fill in the header properly
Alan Cox [Wed, 13 Dec 2017 14:12:58 +0000 (14:12 +0000)]
binman: set up sizes correctly
Alan Cox [Mon, 11 Dec 2017 16:02:14 +0000 (16:02 +0000)]
65c816: document tweaks
(Yes this should probably get turned into markdown as well)
Alan Cox [Mon, 11 Dec 2017 15:46:05 +0000 (15:46 +0000)]
65c816: draft porting guide for this architecture
Alan Cox [Mon, 11 Dec 2017 15:45:44 +0000 (15:45 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Mon, 11 Dec 2017 15:45:24 +0000 (15:45 +0000)]
killall: don't kill empty ptab slots!
EtchedPixels [Sun, 10 Dec 2017 14:38:52 +0000 (14:38 +0000)]
Merge pull request #572 from davidgiven/nc200
NC200 floppy boot support
David Given [Sun, 10 Dec 2017 11:16:50 +0000 (12:16 +0100)]
Add README.
David Given [Sun, 10 Dec 2017 11:10:14 +0000 (12:10 +0100)]
Bodge together a floppy-bootable nc200 platform.
David Given [Sun, 10 Dec 2017 10:47:34 +0000 (11:47 +0100)]
Convert bootblock.s to sdasz80 syntax, and add Makefile rules to compile it.
David Given [Sun, 10 Dec 2017 10:27:54 +0000 (11:27 +0100)]
Rename the boot skeleton file to avoid confusing with the kernel bootblock.
David Given [Sat, 9 Dec 2017 23:21:23 +0000 (00:21 +0100)]
Increase the boot partition size to allow three 16kB banks, not just two.
David Given [Sat, 9 Dec 2017 22:50:17 +0000 (23:50 +0100)]
The boot loader now works (probably).
David Given [Sat, 9 Dec 2017 16:02:36 +0000 (17:02 +0100)]
Add a more-or-less working NC200 bootable file system image and auto.prg.
EtchedPixels [Sat, 9 Dec 2017 13:23:48 +0000 (13:23 +0000)]
Merge pull request #571 from beretta42/netd2
netd: let Fuzix choose local port
EtchedPixels [Sat, 9 Dec 2017 13:23:20 +0000 (13:23 +0000)]
Merge pull request #570 from beretta42/killall
utils: add 'killall' to install script
Brett Gordon [Thu, 7 Dec 2017 19:36:34 +0000 (14:36 -0500)]
netd: let fuzix do the local port binding
Brett Gordon [Sun, 19 Nov 2017 03:19:08 +0000 (22:19 -0500)]
netd: unneccessary packet type check.