FUZIX.git
5 years agoyaz180: ppide changes
Alan Cox [Sun, 24 Feb 2019 21:43:02 +0000 (21:43 +0000)]
yaz180: ppide changes

In theory this gets us a kernel that will work on a Yaz180.

5 years agov65c816:fix config
Alan Cox [Sat, 23 Feb 2019 15:47:41 +0000 (15:47 +0000)]
v65c816:fix config

5 years agozxdiv48: Initial code for 48K ZX Spectrum with DivIDE plus or ZXCF
Alan Cox [Wed, 20 Feb 2019 23:05:38 +0000 (23:05 +0000)]
zxdiv48: Initial code for 48K ZX Spectrum with DivIDE plus or ZXCF

Queueing this up for weekend testing.

It seemed a shame that the classic squishy key machines were being left out
so there was only one thing left to do - fix it.

It's a curious combination of the 128K/DivIDE model and the single process
in memory model. The kernel is banked four ways in the low 16K using memory
from the DivIDE Plus or ZXCF card. The area between the screen and 0x8000 just
about fits enough data for a minimal system providing the disk buffers are
banked. From 0x800-0xFBFF is then used for the application space with FC00-FFFF
holding the stacks, udata and a 256 byte space we may yet need.

The rest of the 512/1024K of RAM on the interface is then used as swap.

Task switching is slow (two x 32K ldir) but that is no worse than the disk
load/save used by other single process in memory platforms.

The biggest problem is the limited amount of unbanked kernel RAM. With the
screen at 0x4000-0x5AFF we only have a shade over 8K for all our common,
our data, constants and bank switching stubs. To get it to fit we end up
limiting our user space to 31K (versus 31.5K on most other 32K switched bank
platforms).

5 years agovisualize: allow visualisation of banked kernels
Alan Cox [Wed, 20 Feb 2019 22:34:18 +0000 (22:34 +0000)]
visualize: allow visualisation of banked kernels

5 years agobinmunge: support more banks, and fix hardcoded bank counts
Alan Cox [Wed, 20 Feb 2019 22:33:56 +0000 (22:33 +0000)]
binmunge: support more banks, and fix hardcoded bank counts

5 years agoz80: single process banked kernel
Alan Cox [Wed, 20 Feb 2019 22:33:14 +0000 (22:33 +0000)]
z80: single process banked kernel

5 years agoz80single: remove comment for work done
Alan Cox [Wed, 20 Feb 2019 22:32:59 +0000 (22:32 +0000)]
z80single: remove comment for work done

5 years agoz80: add out16 for out's to a 16bit port, and in16 likewise
Alan Cox [Wed, 20 Feb 2019 22:32:09 +0000 (22:32 +0000)]
z80: add out16 for out's to a 16bit port, and in16 likewise

We need these for some of the systems that do I/O decoding on the cheap (like
the ZX spectrum). Not yet tested.

5 years agoswap: allow offet 0 to be used for swap
Alan Cox [Wed, 20 Feb 2019 22:30:48 +0000 (22:30 +0000)]
swap: allow offet 0 to be used for swap

Don't make it the default because some platforms use swap slot 0 for other things

5 years agokernel remove dead old z80 def file
Alan Cox [Wed, 20 Feb 2019 01:14:04 +0000 (01:14 +0000)]
kernel remove dead old z80 def file

5 years agov68: kill stale dead experimeting trees
Alan Cox [Wed, 20 Feb 2019 01:13:42 +0000 (01:13 +0000)]
v68: kill stale dead experimeting trees

5 years agospx302: Initial code sketch for the SPX302/MPU302 conversion
Alan Cox [Wed, 20 Feb 2019 01:06:16 +0000 (01:06 +0000)]
spx302: Initial code sketch for the SPX302/MPU302 conversion

See https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:spx-mpu
for more information about this system.

This is just an initial set of buildable code. It needs a loader and debugging
before we can get further

5 years agomake: fix make clean rules
Alan Cox [Wed, 20 Feb 2019 01:03:03 +0000 (01:03 +0000)]
make: fix make clean rules

5 years agov85: update for the latest v85 to allow reboot
Alan Cox [Wed, 20 Feb 2019 00:30:40 +0000 (00:30 +0000)]
v85: update for the latest v85 to allow reboot

5 years agoz80/rabbit: The big rearrange of U_DATA to _udata offsets
Alan Cox [Wed, 20 Feb 2019 00:29:12 +0000 (00:29 +0000)]
z80/rabbit: The big rearrange of U_DATA to _udata offsets

The linker is good enough to work this out (except for the one z180.s case) so
move to letting the linker do the work. This eliminates a configuration item
for people to get wrong, and also will be needed to generate a relocatable
Fuzix kernel.

5 years agopentagon: fix I/O ports on sketch of loader code
Alan Cox [Tue, 19 Feb 2019 14:46:13 +0000 (14:46 +0000)]
pentagon: fix I/O ports on sketch of loader code

It doesn't work yet at all, but since I noticed this in the first sketches I
wanted to fix it before I forget

5 years agoconfigs: add direct I/O to various platforms that can use it just fine
Alan Cox [Tue, 19 Feb 2019 14:45:12 +0000 (14:45 +0000)]
configs: add direct I/O to various platforms that can use it just fine

5 years agoamstradnc: use generic 16 banking code
Alan Cox [Tue, 19 Feb 2019 14:43:14 +0000 (14:43 +0000)]
amstradnc: use generic 16 banking code

5 years agoz80: unified z80 4 x 16 bank tricks code
Alan Cox [Tue, 19 Feb 2019 14:42:29 +0000 (14:42 +0000)]
z80: unified z80 4 x 16 bank tricks code

And apply it to rc2014 and zeta2

5 years agonc100: fix weird crash caused by _HOME segment
Alan Cox [Tue, 19 Feb 2019 14:35:14 +0000 (14:35 +0000)]
nc100: fix weird crash caused by _HOME segment

divulong was added by the compiler in _HOME. As we didn't list _HOME in crt0
it ended up being recycled

5 years agon8vem: fix missing newline
Alan Cox [Tue, 19 Feb 2019 00:23:24 +0000 (00:23 +0000)]
n8vem: fix missing newline

5 years agoconfig: update so everyone has BOOTDEVICENAMES
Alan Cox [Tue, 19 Feb 2019 00:22:58 +0000 (00:22 +0000)]
config: update so everyone has BOOTDEVICENAMES

5 years agofilesys: not an optimization to look into
Alan Cox [Tue, 19 Feb 2019 00:20:05 +0000 (00:20 +0000)]
filesys: not an optimization to look into

5 years ago8080: small uzero optimization
Alan Cox [Mon, 18 Feb 2019 00:06:06 +0000 (00:06 +0000)]
8080: small uzero optimization

5 years agov85: switch to vectored interrupts and use some 8085 optimizations
Alan Cox [Mon, 18 Feb 2019 00:04:20 +0000 (00:04 +0000)]
v85: switch to vectored interrupts and use some 8085 optimizations

5 years ago8080: add framework for 8085 vectored interrupts and 8214 interrupts
Alan Cox [Sun, 17 Feb 2019 23:56:11 +0000 (23:56 +0000)]
8080: add framework for 8085 vectored interrupts and 8214 interrupts

5 years agov85: intial merge of the port
Alan Cox [Sat, 16 Feb 2019 22:12:09 +0000 (22:12 +0000)]
v85: intial merge of the port

5 years agostart: move memory printing
Alan Cox [Sat, 16 Feb 2019 22:07:39 +0000 (22:07 +0000)]
start: move memory printing

Some platforms benefit from sizing memory later (or even stealing memory during
boot dynamically) so move the reporting.

5 years agotc2068: remove work done from README
Alan Cox [Sat, 16 Feb 2019 19:47:25 +0000 (19:47 +0000)]
tc2068: remove work done from README

5 years agoREADME.md: update
Alan Cox [Sat, 16 Feb 2019 12:40:54 +0000 (12:40 +0000)]
README.md: update

5 years agov8080: remove rst.s and update documentation
Alan Cox [Sat, 16 Feb 2019 12:40:15 +0000 (12:40 +0000)]
v8080: remove rst.s and update documentation

The current rst.s is now a match for the compiler one and we need no differences
so just use the provided one.

5 years agocpuinfo: add 8080 support
Alan Cox [Sat, 16 Feb 2019 11:47:16 +0000 (11:47 +0000)]
cpuinfo: add 8080 support

5 years ago8080: fix a bug in the cpu detection code
Alan Cox [Sat, 16 Feb 2019 11:46:37 +0000 (11:46 +0000)]
8080: fix a bug in the cpu detection code

Still needs more checking

5 years agov8080: align with upstream rsts
Alan Cox [Sat, 16 Feb 2019 02:46:02 +0000 (02:46 +0000)]
v8080: align with upstream rsts

5 years agosh: add string.h for strsignal()
Alan Cox [Sat, 16 Feb 2019 02:30:54 +0000 (02:30 +0000)]
sh: add string.h for strsignal()

5 years agodf: update to match changes in includes and speed up
Alan Cox [Sat, 16 Feb 2019 00:12:27 +0000 (00:12 +0000)]
df: update to match changes in includes and speed up

Whilst we are it we can treat mtab as official so we don't do lots of pointless
lookups for the generic case of 'df'.

5 years agov8080: update README
Alan Cox [Fri, 15 Feb 2019 23:04:19 +0000 (23:04 +0000)]
v8080: update README

5 years agorabbit: htons/htonl
Alan Cox [Fri, 15 Feb 2019 23:03:44 +0000 (23:03 +0000)]
rabbit: htons/htonl

5 years ago8080: fix low level signal delivery logic
Alan Cox [Fri, 15 Feb 2019 23:02:17 +0000 (23:02 +0000)]
8080: fix low level signal delivery logic

5 years ago8080: commit the crt0 files I forgot
Alan Cox [Fri, 15 Feb 2019 23:01:52 +0000 (23:01 +0000)]
8080: commit the crt0 files I forgot

5 years ago8080: turn on interrupt support and pre-emption
Alan Cox [Fri, 15 Feb 2019 21:57:41 +0000 (21:57 +0000)]
8080: turn on interrupt support and pre-emption

Fix one small bug in the process

5 years agov8080: update README
Alan Cox [Fri, 15 Feb 2019 21:42:17 +0000 (21:42 +0000)]
v8080: update README

5 years agov8080: use the 8080 checker we added
Alan Cox [Fri, 15 Feb 2019 21:41:21 +0000 (21:41 +0000)]
v8080: use the 8080 checker we added

We don't want long signed divide/multiply or floats sneaking into the kernel

5 years agocheck8080: warn if we accidentally suck in stuff we don't save when switching
Alan Cox [Fri, 15 Feb 2019 21:40:59 +0000 (21:40 +0000)]
check8080: warn if we accidentally suck in stuff we don't save when switching

5 years ago8080: fix strerror/perror - 8080 is little endian
Alan Cox [Fri, 15 Feb 2019 21:40:28 +0000 (21:40 +0000)]
8080: fix strerror/perror - 8080 is little endian

5 years agosysconf: pagesize could be 64K
Alan Cox [Fri, 15 Feb 2019 21:40:13 +0000 (21:40 +0000)]
sysconf: pagesize could be 64K

5 years agolibc: correct for small change to mount struct
Alan Cox [Fri, 15 Feb 2019 21:39:45 +0000 (21:39 +0000)]
libc: correct for small change to mount struct

We need to revisit the syscall as well.

5 years agotail: use static buffer to keep cc65 happy
Alan Cox [Fri, 15 Feb 2019 21:39:11 +0000 (21:39 +0000)]
tail: use static buffer to keep cc65 happy

5 years agopagesize: use long types
Alan Cox [Fri, 15 Feb 2019 21:38:53 +0000 (21:38 +0000)]
pagesize: use long types

5 years agoman: keep stack usage down to keep cc65 happy
Alan Cox [Fri, 15 Feb 2019 21:38:36 +0000 (21:38 +0000)]
man: keep stack usage down to keep cc65 happy

5 years agosh: msg array is surplus now the shell uses the libc table
Alan Cox [Fri, 15 Feb 2019 21:37:47 +0000 (21:37 +0000)]
sh: msg array is surplus now the shell uses the libc table

5 years agosh: use proper signal names from the library
Alan Cox [Fri, 15 Feb 2019 13:08:48 +0000 (13:08 +0000)]
sh: use proper signal names from the library

5 years ago8080: fix uget return
Alan Cox [Fri, 15 Feb 2019 01:04:57 +0000 (01:04 +0000)]
8080: fix uget return

This fixes the lseek bug and possibly others too

5 years agov8080: update for the rst changes
Alan Cox [Fri, 15 Feb 2019 00:32:56 +0000 (00:32 +0000)]
v8080: update for the rst changes

- Save BC
- Only install the vectors for kernel
- Use the rst routines from todays kernel

5 years agov8080: update README
Alan Cox [Fri, 15 Feb 2019 00:32:42 +0000 (00:32 +0000)]
v8080: update README

5 years ago8080: sketch out the irq saves needed
Alan Cox [Fri, 15 Feb 2019 00:32:17 +0000 (00:32 +0000)]
8080: sketch out the irq saves needed

5 years ago8080fixedbank: note some areas to look at for switching
Alan Cox [Fri, 15 Feb 2019 00:32:03 +0000 (00:32 +0000)]
8080fixedbank: note some areas to look at for switching

5 years ago8080fixedbank: fix switching bugs
Alan Cox [Tue, 12 Feb 2019 21:02:11 +0000 (21:02 +0000)]
8080fixedbank: fix switching bugs

5 years agolibrary: add some build rules
Alan Cox [Mon, 11 Feb 2019 23:32:07 +0000 (23:32 +0000)]
library: add some build rules

5 years ago8080: 'fast' fork copier: 24 clocks/byte
Alan Cox [Mon, 11 Feb 2019 23:31:10 +0000 (23:31 +0000)]
8080: 'fast' fork copier: 24 clocks/byte

Don't read this code after a large lunch

5 years agov8080: update README
Alan Cox [Mon, 11 Feb 2019 23:30:51 +0000 (23:30 +0000)]
v8080: update README

5 years ago8080: cpu type detection
Alan Cox [Mon, 11 Feb 2019 23:30:27 +0000 (23:30 +0000)]
8080: cpu type detection

5 years ago8080fixedbank: remove some debug
Alan Cox [Mon, 11 Feb 2019 23:30:13 +0000 (23:30 +0000)]
8080fixedbank: remove some debug

5 years agotools: Update tools and add library tool so we can do FZL1 files
Alan Cox [Mon, 11 Feb 2019 18:53:07 +0000 (18:53 +0000)]
tools: Update tools and add library tool so we can do FZL1 files

5 years agoack2kernel: print the right numbers
Alan Cox [Mon, 11 Feb 2019 01:50:59 +0000 (01:50 +0000)]
ack2kernel: print the right numbers

5 years ago8080: further fixes for the banking code
Alan Cox [Mon, 11 Feb 2019 01:50:39 +0000 (01:50 +0000)]
8080: further fixes for the banking code

5 years agolibrary: build the new tools
Alan Cox [Mon, 11 Feb 2019 01:49:40 +0000 (01:49 +0000)]
library: build the new tools

5 years ago8080: fix syscalls and move to new abi
Alan Cox [Mon, 11 Feb 2019 01:49:28 +0000 (01:49 +0000)]
8080: fix syscalls and move to new abi

5 years agoack2fuzix: tool for building user binaries
Alan Cox [Mon, 11 Feb 2019 01:48:49 +0000 (01:48 +0000)]
ack2fuzix: tool for building user binaries

5 years agosetjmp: correct prototype for 8080
Alan Cox [Mon, 11 Feb 2019 01:48:26 +0000 (01:48 +0000)]
setjmp: correct prototype for 8080

5 years ago8080: more usermem fixes
Alan Cox [Mon, 11 Feb 2019 01:48:14 +0000 (01:48 +0000)]
8080: more usermem fixes

5 years ago8080: switch to new ABI
Alan Cox [Mon, 11 Feb 2019 01:47:51 +0000 (01:47 +0000)]
8080: switch to new ABI

5 years agov8080: remove some debug and add a dependency
Alan Cox [Mon, 11 Feb 2019 01:47:26 +0000 (01:47 +0000)]
v8080: remove some debug and add a dependency

5 years agov8080: fix up the fork copier
Alan Cox [Sun, 10 Feb 2019 16:02:28 +0000 (16:02 +0000)]
v8080: fix up the fork copier

Leave some debug in for now.

With this in place we get a shell prompt - then task switch and die

fork() is really slow. For 8080 we definitely need some smarter logic here
to only copy 0->brk and sp->top and clean up as needed in brk().

5 years ago8080: fix up bugs in the fork and copiers
Alan Cox [Sun, 10 Feb 2019 16:01:50 +0000 (16:01 +0000)]
8080: fix up bugs in the fork and copiers

Task switching is still busted somewhere

5 years agov8080: core changes to get to the point we can start init properly
Alan Cox [Sun, 10 Feb 2019 15:39:20 +0000 (15:39 +0000)]
v8080: core changes to get to the point we can start init properly

5 years agostart: it's 2019
Alan Cox [Sun, 10 Feb 2019 15:39:00 +0000 (15:39 +0000)]
start: it's 2019

5 years ago8080: more work on usermem
Alan Cox [Sun, 10 Feb 2019 02:04:24 +0000 (02:04 +0000)]
8080: more work on usermem

5 years agov8080: install interrupt handler
Alan Cox [Sun, 10 Feb 2019 01:44:03 +0000 (01:44 +0000)]
v8080: install interrupt handler

5 years agov8080: try and get bss end
Alan Cox [Sun, 10 Feb 2019 01:37:58 +0000 (01:37 +0000)]
v8080: try and get bss end

Doesn't work ??

5 years agov8080: sort out where we set stuff up
Alan Cox [Sun, 10 Feb 2019 01:37:37 +0000 (01:37 +0000)]
v8080: sort out where we set stuff up

5 years agov8080: simulator tty doesn't have output blocking
Alan Cox [Sun, 10 Feb 2019 01:36:04 +0000 (01:36 +0000)]
v8080: simulator tty doesn't have output blocking

5 years ago8080: Fix and workarounds to get crt0 up and working
Alan Cox [Sun, 10 Feb 2019 01:34:57 +0000 (01:34 +0000)]
8080: Fix and workarounds to get crt0 up and working

5 years agov8080: Fix bootblock and building of it
Alan Cox [Sun, 10 Feb 2019 01:34:40 +0000 (01:34 +0000)]
v8080: Fix bootblock and building of it

5 years agov8080: add the compiler helper restarts
Alan Cox [Sat, 9 Feb 2019 23:17:15 +0000 (23:17 +0000)]
v8080: add the compiler helper restarts

5 years ago8080: update README
Alan Cox [Sat, 9 Feb 2019 21:57:11 +0000 (21:57 +0000)]
8080: update README

5 years agov8080: Various pieces of work to bring us closer to testing
Alan Cox [Sat, 9 Feb 2019 21:55:02 +0000 (21:55 +0000)]
v8080: Various pieces of work to bring us closer to testing

We now have a disk driver and a serial driver.

5 years ago8080: fill out the rest of usermem
Alan Cox [Sat, 9 Feb 2019 21:53:45 +0000 (21:53 +0000)]
8080: fill out the rest of usermem

5 years ago8080: kernel.def
Alan Cox [Sat, 9 Feb 2019 21:52:32 +0000 (21:52 +0000)]
8080: kernel.def

The main thing here is the section stuff. The ACK toolchain just numbers sections
and if you name them differently or in a different order in a file it just doesn't
care. Nasty.... so define our order here at the start of each asm file hopefully

5 years ago8080: ABI fixes (DE return not HL)
Alan Cox [Sat, 9 Feb 2019 21:51:57 +0000 (21:51 +0000)]
8080: ABI fixes (DE return not HL)

5 years ago8080fixedbank: fast(er) copier
Alan Cox [Sat, 9 Feb 2019 21:51:19 +0000 (21:51 +0000)]
8080fixedbank: fast(er) copier

5 years ago8080: preserve BC on switches as required by the compiler ABI
Alan Cox [Sat, 9 Feb 2019 21:50:47 +0000 (21:50 +0000)]
8080: preserve BC on switches as required by the compiler ABI

5 years ago8080: build the new tools
Alan Cox [Sat, 9 Feb 2019 21:50:32 +0000 (21:50 +0000)]
8080: build the new tools

5 years agotools: ack 8080 helpers to write a usable map file and kernel image
Alan Cox [Sat, 9 Feb 2019 21:49:53 +0000 (21:49 +0000)]
tools: ack 8080 helpers to write a usable map file and kernel image

5 years agov8080: first cut at a boot block
Alan Cox [Sat, 9 Feb 2019 20:44:46 +0000 (20:44 +0000)]
v8080: first cut at a boot block

5 years agoApplications: unify 8080 build rules using $FUZIX_ROOT and force -mfuzix
Alan Cox [Sat, 9 Feb 2019 18:15:19 +0000 (18:15 +0000)]
Applications: unify 8080 build rules using $FUZIX_ROOT and force -mfuzix

5 years agotar: hack for 8080 ack compiler
Alan Cox [Sat, 9 Feb 2019 18:15:05 +0000 (18:15 +0000)]
tar: hack for 8080 ack compiler

5 years ago8080: Fix library 8080 build assumptions and bugs
Alan Cox [Sat, 9 Feb 2019 18:14:31 +0000 (18:14 +0000)]
8080: Fix library 8080 build assumptions and bugs

5 years agov8080: find the ACK tools automatically
Alan Cox [Sat, 9 Feb 2019 18:13:00 +0000 (18:13 +0000)]
v8080: find the ACK tools automatically

5 years agoMakefile: add a FUZIX_ROOT
Alan Cox [Sat, 9 Feb 2019 18:12:39 +0000 (18:12 +0000)]
Makefile: add a FUZIX_ROOT