FUZIX.git
6 years agoprocess: when debugging it's nice to know why something exited
Alan Cox [Fri, 3 Nov 2017 23:37:42 +0000 (23:37 +0000)]
process: when debugging it's nice to know why something exited

6 years agoz80pack: turn on MMU feature
Alan Cox [Fri, 3 Nov 2017 23:37:30 +0000 (23:37 +0000)]
z80pack: turn on MMU feature

6 years agoz80pack: add an extreme example of the mmu hooks
Alan Cox [Fri, 3 Nov 2017 23:36:59 +0000 (23:36 +0000)]
z80pack: add an extreme example of the mmu hooks

6 years agolowlevel-z80: add hooking points for Z80 systems with memory protect bits
Alan Cox [Fri, 3 Nov 2017 23:36:35 +0000 (23:36 +0000)]
lowlevel-z80: add hooking points for Z80 systems with memory protect bits

6 years agoz80pack: we added a tty
Alan Cox [Fri, 3 Nov 2017 23:36:01 +0000 (23:36 +0000)]
z80pack: we added a tty

6 years agoz80pack: drop stuff we don't need
Alan Cox [Fri, 3 Nov 2017 23:35:20 +0000 (23:35 +0000)]
z80pack: drop stuff we don't need

6 years agoibmpc: note older 80x86 errata
Alan Cox [Fri, 3 Nov 2017 23:34:54 +0000 (23:34 +0000)]
ibmpc: note older 80x86 errata

6 years agoz80pack: add the outgoing port as another tty
Alan Cox [Fri, 3 Nov 2017 23:32:48 +0000 (23:32 +0000)]
z80pack: add the outgoing port as another tty

6 years agoz80: fix the banked code FIXME about syscalls.
Alan Cox [Fri, 3 Nov 2017 23:31:58 +0000 (23:31 +0000)]
z80: fix the banked code FIXME about syscalls.

Note the call is also safe as the entry point is not banked

6 years agoz80pack: Fix the printer driver
Alan Cox [Fri, 3 Nov 2017 23:31:37 +0000 (23:31 +0000)]
z80pack: Fix the printer driver

6 years agodu: switch version
Alan Cox [Fri, 3 Nov 2017 12:23:32 +0000 (12:23 +0000)]
du: switch version

Use the tidied up MWC one. It's nicer, smaller and calculates stuff like
indirect block cost.

6 years agoas: bracket or square...
Alan Cox [Thu, 2 Nov 2017 18:18:09 +0000 (18:18 +0000)]
as: bracket or square...

Z80 and 6502 use () to indicate a layer of indirection, so the assembler uses
[] for expressions

6809 uses [] for indirect, so we need to use () for expressions

6 years agoas: incomplete 6809 code
Alan Cox [Thu, 2 Nov 2017 18:17:11 +0000 (18:17 +0000)]
as: incomplete 6809 code

Doesn't build yet but I figure we might as well make all of our platforms
able to use the same object file format, linker, library tools for self hosting
work.

6 years agoas: Fix more bugs, add < and > for lo/hi relocations
Alan Cox [Tue, 31 Oct 2017 21:40:35 +0000 (21:40 +0000)]
as: Fix more bugs, add < and > for lo/hi relocations

Still plenty of bugs I am sure.

6 years agoas further work
Alan Cox [Tue, 31 Oct 2017 20:48:32 +0000 (20:48 +0000)]
as further work

- Initial core support for word addressed machines
- Sketch out a compilable DG Nova PoC for this
- PC relative addressing

6 years agold: first cut at big endian logic, pcrel, overflow suppression and high8
Alan Cox [Tue, 31 Oct 2017 20:47:03 +0000 (20:47 +0000)]
ld: first cut at big endian logic, pcrel, overflow suppression and high8

6 years agoobj: add proper PCREL definitions for relocation entries
Alan Cox [Tue, 31 Oct 2017 13:44:28 +0000 (13:44 +0000)]
obj: add proper PCREL definitions for relocation entries

We can generate them but not yet link them

6 years agoas4: add relative byte output
Alan Cox [Tue, 31 Oct 2017 12:28:05 +0000 (12:28 +0000)]
as4: add relative byte output

6 years agoasz80: improve handling of segment type clashes
Alan Cox [Tue, 31 Oct 2017 12:27:45 +0000 (12:27 +0000)]
asz80: improve handling of segment type clashes

6 years agold: teach new tags, and make it reject them also tidy segment constraints
Alan Cox [Tue, 31 Oct 2017 12:26:54 +0000 (12:26 +0000)]
ld: teach new tags, and make it reject them also tidy segment constraints

6 years agoobj: update with endian and word tags and some oddments
Alan Cox [Tue, 31 Oct 2017 12:26:34 +0000 (12:26 +0000)]
obj: update with endian and word tags and some oddments

6 years agoas: lots of stuff here
Alan Cox [Mon, 30 Oct 2017 23:44:05 +0000 (23:44 +0000)]
as: lots of stuff here

- Rework types for cpu / flags
- Add 6502 types
- Teach ld that there can be a ZP segment
- Restructure the assembler to put arch specific code in less files
- Fix various minor bugs (segment checking etc)
- Fix a bug where a_sym was not reliably set to NULL for constants
- Add initial test 6502 support to prove can re-target easily

6 years agoasz80: Z180 initial support, fix range checking, correct IX disp non abs
Alan Cox [Mon, 30 Oct 2017 17:42:47 +0000 (17:42 +0000)]
asz80: Z180 initial support, fix range checking, correct IX disp non abs

In particular

out (300),a  errors
ld (ix+300),a errors

ld (ix+FOO),a generates a relocation entry for FOO

That means you can

FOO .equ 21

ld (ix+FOO),a

or even define FOO as an external

6 years agold: don't break if the symbol unused bytes are nn zero
Alan Cox [Mon, 30 Oct 2017 17:42:25 +0000 (17:42 +0000)]
ld: don't break if the symbol unused bytes are nn zero

6 years agold: add the hash function
Alan Cox [Mon, 30 Oct 2017 17:40:58 +0000 (17:40 +0000)]
ld: add the hash function

6 years agoobj: make Z80 an 8080 variant as this makes more sense
Alan Cox [Mon, 30 Oct 2017 17:40:38 +0000 (17:40 +0000)]
obj: make Z80 an 8080 variant as this makes more sense

6 years agoSmallC: Fix initialization of static/global pointers
Alan Cox [Sun, 29 Oct 2017 18:28:23 +0000 (18:28 +0000)]
SmallC: Fix initialization of static/global pointers

It's trivial to add the code generation for this and it's an annoying lack in
the compiler.

6 years agosmallc: tidy up a bit, align Z80 with assembler and fix bogus pop bc bug
Alan Cox [Sun, 29 Oct 2017 18:07:14 +0000 (18:07 +0000)]
smallc: tidy up a bit, align Z80 with assembler and fix bogus pop bc bug

6 years agold: tidy up pass
Alan Cox [Sun, 29 Oct 2017 17:36:50 +0000 (17:36 +0000)]
ld: tidy up pass

6 years agold: furthr polishing
Alan Cox [Sun, 29 Oct 2017 17:31:18 +0000 (17:31 +0000)]
ld: furthr polishing

At this point it appears to be functioal

6 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Sun, 29 Oct 2017 16:37:08 +0000 (16:37 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

6 years agold: Save current status
Alan Cox [Sun, 29 Oct 2017 16:36:27 +0000 (16:36 +0000)]
ld: Save current status

Libraries work
Still doing some final debug on symbol resolutions
Unbreak handling of internal symbols

6 years agoobj.h: add 'ANY' segment definition
Alan Cox [Sun, 29 Oct 2017 16:35:51 +0000 (16:35 +0000)]
obj.h: add 'ANY' segment definition

6 years agonm: understand the fact a U symbol may be segment constrained
Alan Cox [Sun, 29 Oct 2017 16:35:38 +0000 (16:35 +0000)]
nm: understand the fact a U symbol may be segment constrained

6 years agoas: fix handling of unknown symbols in subtraction
Alan Cox [Sun, 29 Oct 2017 16:34:19 +0000 (16:34 +0000)]
as: fix handling of unknown symbols in subtraction

Propogate segment requirements to object module for linker to fault

6 years agoas: fix blkb/defs
Alan Cox [Sun, 29 Oct 2017 16:33:43 +0000 (16:33 +0000)]
as: fix blkb/defs

We make it twice the size and get very confused as a result

6 years agoMerge pull request #540 from beretta42/mem
EtchedPixels [Sun, 29 Oct 2017 13:41:52 +0000 (13:41 +0000)]
Merge pull request #540 from beretta42/mem

bank16k: report correct memory used

6 years agobank16k: report correct memory used
Brett Gordon [Sun, 29 Oct 2017 08:24:56 +0000 (04:24 -0400)]
bank16k: report correct memory used

pfptr goes down as memory is allocated. return it's compliement instead.

6 years agold: closer but not yet entirely correct
Alan Cox [Sat, 28 Oct 2017 23:17:34 +0000 (00:17 +0100)]
ld: closer but not yet entirely correct

6 years agold: further updates
Alan Cox [Sat, 28 Oct 2017 22:25:13 +0000 (23:25 +0100)]
ld: further updates

At this point we can do some minimal linking and write out correctly looking
objects.

6 years agoasz80: fixes to output format logic
Alan Cox [Sat, 28 Oct 2017 22:24:59 +0000 (23:24 +0100)]
asz80: fixes to output format logic

6 years agoobj: format tweaking
Alan Cox [Sat, 28 Oct 2017 22:24:46 +0000 (23:24 +0100)]
obj: format tweaking

6 years agoREADME: updates
Alan Cox [Sat, 28 Oct 2017 18:13:10 +0000 (19:13 +0100)]
README: updates

- We now have a useful gcc 8086, in fact at many things it rocks.
- SDCC is ever improving

6 years agold: Fix some stuff by inspection and fold in basic logic for library modules
Alan Cox [Sat, 28 Oct 2017 18:03:42 +0000 (19:03 +0100)]
ld: Fix some stuff by inspection and fold in basic logic for library modules

6 years agold: first parts of a linker
Alan Cox [Sat, 28 Oct 2017 17:41:50 +0000 (18:41 +0100)]
ld: first parts of a linker

Far from complete!

6 years agoz80as: change object file format to fixed sized symbol records
Alan Cox [Sat, 28 Oct 2017 17:41:19 +0000 (18:41 +0100)]
z80as: change object file format to fixed sized symbol records

This makes life a lot easier for the other tools

6 years agoasz80: always write the debug symbol base
Alan Cox [Sat, 28 Oct 2017 16:30:41 +0000 (17:30 +0100)]
asz80: always write the debug symbol base

It avoids special cases and means the linker can size the table itself.

6 years agoasz80: finish conversion
Alan Cox [Sat, 28 Oct 2017 15:57:35 +0000 (16:57 +0100)]
asz80: finish conversion

This now behaves rather more like we need. It lacks includes and some other
nice to have bits but is also small enough to run on a Z80 box sanely. Trimming
out stdio and soem other slack could be done if needed but is a fair bit of
work.

Also add an nm mostly at this point to check the output is valid.

Now all we need is to tweak the smallc output syntax to match, and a linker...

6 years agoasz80: write symbols out
Alan Cox [Fri, 27 Oct 2017 21:50:14 +0000 (22:50 +0100)]
asz80: write symbols out

Also fix the .export handling and some oddments related to it.

We now should be writing out correct relocations and symbol tables. The one
thing we have yet to do is to properly number the external symbols so that
we can output them in that order and tie it nicely to the relocations so that
ld doesn't have to work overtime.

6 years agoasz80: some quick changes over tea
Alan Cox [Thu, 26 Oct 2017 20:04:17 +0000 (21:04 +0100)]
asz80: some quick changes over tea

We now write out parts of something resembling a relocatable object file. We
don't yet write out the symbols nor do we write out the longer relocations
for symbol references rather than segment offsets.

6 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Thu, 26 Oct 2017 20:02:49 +0000 (21:02 +0100)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

6 years agoMerge pull request #536 from beretta42/make2
EtchedPixels [Thu, 26 Oct 2017 20:02:36 +0000 (21:02 +0100)]
Merge pull request #536 from beretta42/make2

fsck: fix some more bugs

6 years agoMerge pull request #537 from beretta42/up
EtchedPixels [Thu, 26 Oct 2017 20:01:12 +0000 (21:01 +0100)]
Merge pull request #537 from beretta42/up

Tidy 'make'

6 years agoMerge pull request #538 from beretta42/halt
EtchedPixels [Thu, 26 Oct 2017 20:00:43 +0000 (21:00 +0100)]
Merge pull request #538 from beretta42/halt

util: link 'halt' to 'reboot' on fs

6 years agoutil: link 'halt' to 'reboot' on fs
Brett Gordon [Thu, 26 Oct 2017 18:17:00 +0000 (14:17 -0400)]
util: link 'halt' to 'reboot' on fs

6 years agofsck: fix another wrap bug, and continuing is not an error.
Brett Gordon [Thu, 26 Oct 2017 17:33:27 +0000 (13:33 -0400)]
fsck: fix another wrap bug, and continuing is not an error.

6 years agostandalone fsck: fix always returns 1; parenths to fix wrapping issue
Brett Gordon [Thu, 26 Oct 2017 17:06:35 +0000 (13:06 -0400)]
standalone fsck: fix always returns 1; parenths to fix wrapping issue

6 years agoMWC: add 'make' to filesystem maker script
Brett Gordon [Thu, 26 Oct 2017 16:23:53 +0000 (12:23 -0400)]
MWC: add 'make' to filesystem maker script

6 years agomake: fix compiler complaint
Brett Gordon [Thu, 26 Oct 2017 16:03:41 +0000 (12:03 -0400)]
make: fix compiler complaint

6 years agofsck: minor fixes
Alan Cox [Thu, 26 Oct 2017 15:21:23 +0000 (16:21 +0100)]
fsck: minor fixes

6 years agoMakefile: hook in z80 assembler
Alan Cox [Wed, 25 Oct 2017 19:50:59 +0000 (20:50 +0100)]
Makefile: hook in z80 assembler

6 years agomake: make
Alan Cox [Wed, 25 Oct 2017 19:04:57 +0000 (20:04 +0100)]
make: make

Add the older MwC make as it fits a small machine nicely

6 years agoas: Z80 assembler from Coherent
Alan Cox [Wed, 25 Oct 2017 19:02:51 +0000 (20:02 +0100)]
as: Z80 assembler from Coherent

This one doesn't do relocations or external symbol resolution so will need a
bit of tweaking to generate object files not binaries. It is however very
tidy and extremely small.

6 years agocron: add cron
Alan Cox [Wed, 25 Oct 2017 14:57:17 +0000 (15:57 +0100)]
cron: add cron

6 years agostart: tiny optimization
Alan Cox [Tue, 24 Oct 2017 23:38:02 +0000 (00:38 +0100)]
start: tiny optimization

6 years agofsck: Fix the wrap bug on standalone fsck
Alan Cox [Tue, 24 Oct 2017 23:37:31 +0000 (00:37 +0100)]
fsck: Fix the wrap bug on standalone fsck

6 years agotty: Fix ^D echo bug
Alan Cox [Tue, 24 Oct 2017 23:37:21 +0000 (00:37 +0100)]
tty: Fix ^D echo bug

6 years agofsck: fix wrap on full sized fs
Alan Cox [Tue, 24 Oct 2017 23:36:46 +0000 (00:36 +0100)]
fsck: fix wrap on full sized fs

Noticed by Brett

6 years agogames add hangman and quiz
Alan Cox [Tue, 24 Oct 2017 23:36:16 +0000 (00:36 +0100)]
games add hangman and quiz

6 years agov7yacc: Add the V7 yacc as a cross building tool
Alan Cox [Tue, 24 Oct 2017 23:03:23 +0000 (00:03 +0100)]
v7yacc: Add the V7 yacc as a cross building tool

6 years agobogomips: because ...
Alan Cox [Tue, 24 Oct 2017 18:26:46 +0000 (19:26 +0100)]
bogomips: because ...

Z80 4MHz 0.2 bogomips
FPGA Z80 128MHz 10.55 bogomips - beats an Intel 386 ;)

6 years agoclock: fix scaling error
Alan Cox [Tue, 24 Oct 2017 18:26:23 +0000 (19:26 +0100)]
clock: fix scaling error

6 years agofree: add a Linux like "free" command to see swap and memory usage
Alan Cox [Mon, 23 Oct 2017 14:50:01 +0000 (15:50 +0100)]
free: add a Linux like "free" command to see swap and memory usage

6 years agoinit: bug fixes and fussier about leaving files open
Alan Cox [Mon, 23 Oct 2017 14:49:45 +0000 (15:49 +0100)]
init: bug fixes and fussier about leaving files open

6 years agoMerge pull request #533 from beretta42/fix
EtchedPixels [Mon, 23 Oct 2017 14:26:34 +0000 (15:26 +0100)]
Merge pull request #533 from beretta42/fix

kernel: syscall_16: put header in userspace too.

6 years agokernel: syscall_16: put header in userspace too.
Brett Gordon [Mon, 23 Oct 2017 14:05:29 +0000 (10:05 -0400)]
kernel: syscall_16: put header in userspace too.

6 years agomount/umount: Fixups for the other cases I missed
Alan Cox [Mon, 23 Oct 2017 00:02:14 +0000 (01:02 +0100)]
mount/umount: Fixups for the other cases I missed

With this I seem to get the right behaviour

6 years agomount: add support for fsck
Alan Cox [Sun, 22 Oct 2017 22:31:26 +0000 (23:31 +0100)]
mount: add support for fsck

- Dirty/clean status handling
- Write back superblocks when we go clean but not if we are clean (or bad)
- Add full checks so remount ro works for all cases

This allows you to fsck -a `prtroot` in /etc/rc to recover the system if
needed. Before rebooting you need to remount filesystems r/o or unmount them.

This last bit wants wiring into reboot so it does a runlevel change to init
unless -f is used. We can then umount everything nicely (by adding umount -a)
and remount the rootfs r/o as well as doing a killall etc when we shutdown.

6 years agosyscall_exec16: fix crash with small binaries, reduce code footprint
Alan Cox [Sun, 22 Oct 2017 22:31:13 +0000 (23:31 +0100)]
syscall_exec16: fix crash with small binaries, reduce code footprint

6 years agoStandalone: move to the new fsck behaviour
Alan Cox [Sun, 22 Oct 2017 22:30:44 +0000 (23:30 +0100)]
Standalone: move to the new fsck behaviour

6 years agofsck: get the fsck tool working
Alan Cox [Sun, 22 Oct 2017 22:28:31 +0000 (23:28 +0100)]
fsck: get the fsck tool working

This (with the needed kernel changes) seems to give us the correct behaviour
including handling recovering the live root file system.

If you boot with 'r' as an option or a dirty rootfs you'll now get a r/o
mount and you can fsck /dev/whatever to check it. If it's bad you'll then
get to fix it and it'll reboot.

6 years agoreboot: add user side support for reboot -f
Alan Cox [Sun, 22 Oct 2017 21:06:44 +0000 (22:06 +0100)]
reboot: add user side support for reboot -f

6 years agokernel: we don't use the void *'s back from the blkbuf ops so lose them
Alan Cox [Sun, 22 Oct 2017 18:55:26 +0000 (19:55 +0100)]
kernel: we don't use the void *'s back from the blkbuf ops so lose them

6 years agoExternalBuffers: document how the model works
Alan Cox [Sun, 22 Oct 2017 18:55:07 +0000 (19:55 +0100)]
ExternalBuffers: document how the model works

6 years agotest: fix silly error when copying fixes over
Alan Cox [Sun, 22 Oct 2017 18:45:33 +0000 (19:45 +0100)]
test: fix silly error when copying fixes over

6 years agofuzix-util: add remount to package list
Alan Cox [Sun, 22 Oct 2017 18:44:13 +0000 (19:44 +0100)]
fuzix-util: add remount to package list

6 years agoumount/remount: tidy up umount and add a remount
Alan Cox [Sun, 22 Oct 2017 18:40:23 +0000 (19:40 +0100)]
umount/remount: tidy up umount and add a remount

6 years agoumount: fix includes
Alan Cox [Sun, 22 Oct 2017 18:33:46 +0000 (19:33 +0100)]
umount: fix includes

This worked by luck before. Now add the correct include file

6 years agofsck: Rework standalone fsck to use as native fsck
Alan Cox [Sun, 22 Oct 2017 18:32:41 +0000 (19:32 +0100)]
fsck: Rework standalone fsck to use as native fsck

- Use bitmaps not bytemaps
- Support yes() properly

Not heavily tested yet!

6 years agomm: tidy up some odds and ends with the buffer changes
Alan Cox [Sun, 22 Oct 2017 17:27:18 +0000 (18:27 +0100)]
mm: tidy up some odds and ends with the buffer changes

We actually need something different to what was guessed at, so change the
prototypes and define the functions differently

6 years agodevsys: error rather than 0 on failed uput in devsys
Alan Cox [Sun, 22 Oct 2017 17:26:46 +0000 (18:26 +0100)]
devsys: error rather than 0 on failed uput in devsys

6 years agoMerge pull request #530 from beretta42/fix2
EtchedPixels [Sun, 22 Oct 2017 17:20:40 +0000 (18:20 +0100)]
Merge pull request #530 from beretta42/fix2

devsys: read should return no. of bytes

6 years ago/dev/proc: return number of bytes read.
Brett Gordon [Sun, 22 Oct 2017 15:44:19 +0000 (11:44 -0400)]
/dev/proc: return number of bytes read.

uput only returns -1 on validation fail, or 0 ok.  this made 'ps' sad.
/dev/kmem reading might be broken too...

6 years agoKernel: quick pointer fix.
Brett Gordon [Sun, 22 Oct 2017 15:06:49 +0000 (11:06 -0400)]
Kernel: quick pointer fix.

6 years agoumount: add new syscall wrapper for umount
Alan Cox [Sun, 22 Oct 2017 14:14:23 +0000 (15:14 +0100)]
umount: add new syscall wrapper for umount

6 years agoremount: add new syscall interface
Alan Cox [Sun, 22 Oct 2017 14:13:13 +0000 (15:13 +0100)]
remount: add new syscall interface

6 years agokernel: rework buffer handling and superblocks
Alan Cox [Sat, 21 Oct 2017 23:04:02 +0000 (00:04 +0100)]
kernel: rework buffer handling and superblocks

Be scared.. be very scared

Back up your disks before testing this changeset

The basic idea of this set of patches is to put in most of the framework for
keeping the buffer cache outside of the main kernel mapping. Instead we
introduce some functions to copy between kernel/buffer and user/buffer. As
most traffic goes directly between user/buffer this doesn't hurt us. These
patches don't implement the bits needed for an external buffer cache but they
do implement the framework required to add it.

To minimize impact on some bits like directory scanning we also introduce a
routine that with separate buffer cache address space wil make a temporary copy
of a small area, but on machines with the buffer cache in the normal place
resolves as essentially the same assembler as before (6502 suffers a tiny bit
I suspect).

In order to do this we also have to rework the mount handling. Superblocks are
now copied to/from buffers on mount and sync rather than pinning a buffer. The
superblock buffers mean that for a small system you probably want to drop the
buffer cache size by one block (the one previously pinned for the superblock)
in favour of the superblock table entries you'll now get (which are about 256
bytes each).

Execve is also tided up. We had a set of custom fastpath code for loading a
binary. Only it turns out that if we use readi the existing O_DIRECT fastpath
will do the work for us, which means execve itself can become oblivious to
where the buffer cache hides. This will need work for 8086 when split I/D hits
but it's quite manageable.

While I was at it I also realised that the problem with trying to add remount
support to mount is that remounting despite what the name implies is actually
a variant of umount. You do the same lookups to find the same existing
superblock, iterate the inode list but then swizzle some flags instead of
checking it is non-busy and firing it into hyperspace.

This patch changes umount(x) into _umount(x, flags) where flags include
MS_REMOUNT, MS_RDONLY and MS_NOSUID (not yet properly supported). This provides
enough functionality that you can now probably safely boot read only, fsck the
root fs (except I need to port the native fsck over and squash memory usage)
and the mount it r/w. You *cannot* fix the root fs and remount it without a
reboot. That involves jumping through far too many hoops. I think this is
sufficient as it'll allow the default initscripts to fsck, check and either
reboot or go read/write so we have proper fs recovery (whoopeee)

Programs using umount (all one if it) will need recompiling.

Why do all this

1. It lets you push several KB out of kernel space, which is valuable space
you can then turn into code, inodes (much needed) or processes.
2. Some platforms need the buffers themselves aligned and on boundaries. The
existing model doesn't handle this. For example the PC needs them so one does
not cross a DMA boundary.

At the moment we have systems with 512K+ of RAM that simply can't run with an
appropriate amount of buffering and inodes. Once 8086 is included we get into
situations where we might have 4MB of expanded memory and at that point we
can't hope to get the buffers needed into the 64K of data space, while we
can shove it elsewhere, and with expanded memory into a 64K expanded memory
bank along with some other oddments.

Once this support is finished we can shove both the tty buffers and the disk
buffers out of the way. On a 'big' configuration like a 286 PC we need something
like 30K for process/inode/file/buffer head/superblock data structures to match
the values 2BSD tuned to. That's without buffers ! The big hogs in the kernel
are then the inode structures and the process table entries. We might be able
to move a few bits of the process into its udata but neither it nor pushing
inodes out are easy problems to attack.

6 years agoLibrary: Fix Z80 breakage from 6809 fixes
Alan Cox [Sat, 21 Oct 2017 23:01:59 +0000 (00:01 +0100)]
Library: Fix Z80 breakage from 6809 fixes

ifeq in Makefiles is subtle and quick to anger....

Also check z80 not sdcc.

6 years agoemm: Add some notes
Alan Cox [Sat, 21 Oct 2017 12:50:59 +0000 (13:50 +0100)]
emm: Add some notes

6 years agoz80fixedbank: note a possible optimization
Alan Cox [Sat, 21 Oct 2017 12:50:28 +0000 (13:50 +0100)]
z80fixedbank: note a possible optimization