Will Sowerbutts [Sun, 22 Jan 2017 22:47:19 +0000 (22:47 +0000)]
Kernel: n8vem-mark4, p112, zeta-v2: Move platform_param() to DISCARD
Will Sowerbutts [Sun, 22 Jan 2017 22:46:29 +0000 (22:46 +0000)]
Kernel: zeta-v2: Faster, smaller map_process_2
EtchedPixels [Tue, 17 Jan 2017 17:05:12 +0000 (17:05 +0000)]
Merge pull request #478 from beretta42/dig
Dig: beef it up.
Brett Gordon [Tue, 17 Jan 2017 16:18:29 +0000 (11:18 -0500)]
dig: allow cmdline to spec dns server, default question of root "."
Brett Gordon [Tue, 17 Jan 2017 15:50:19 +0000 (10:50 -0500)]
dig: parse and use /etc/resolv.conf
EtchedPixels [Mon, 16 Jan 2017 14:11:33 +0000 (14:11 +0000)]
Merge pull request #476 from beretta42/dw_mf
coco3: drivewire: maintain faster polling for short while after a putc.
EtchedPixels [Mon, 16 Jan 2017 14:11:10 +0000 (14:11 +0000)]
Merge pull request #477 from beretta42/flashrom
App: flashrom: only install if actually built.
Brett Gordon [Sun, 15 Jan 2017 20:37:34 +0000 (15:37 -0500)]
App: flashrom: only install if actually built.
Brett Gordon [Thu, 12 Jan 2017 15:52:29 +0000 (10:52 -0500)]
coco3: dw: maintain faster polling for short while after a putc.
From Michael Furman: improves interactivity on clients.
EtchedPixels [Mon, 9 Jan 2017 20:14:21 +0000 (20:14 +0000)]
Merge pull request #475 from willsowerbutts/features2
New features (second try)
Will Sowerbutts [Mon, 9 Jan 2017 02:13:06 +0000 (02:13 +0000)]
flashrom: Bugfix for off-by-one error with --partial
Will Sowerbutts [Mon, 9 Jan 2017 01:51:18 +0000 (01:51 +0000)]
zeta-v2: Tidy up devrd
Will Sowerbutts [Sun, 8 Jan 2017 23:04:17 +0000 (23:04 +0000)]
Applications: New "flashrom" utility for in-system Flash ROM programming
This utility can reprogram a number of common flash ROM types using
the new /dev/mem driver.
Tested on zeta-v2 and n8vem-mark4 platforms with SST39SF040
512KB flash ROM parts.
This is based on my Flash4 and Flash030 utilities.
Will Sowerbutts [Fri, 6 Jan 2017 19:25:36 +0000 (19:25 +0000)]
Kernel: devide: Improve drive detection and timeout code.
Will Sowerbutts [Fri, 6 Jan 2017 19:23:43 +0000 (19:23 +0000)]
Kernel: Make "bootdev:" prompt friendlier.
This change runs the device drivers to initialise and report the
available device names to the user (where probing is possible) before
the user is asked to choose a boot device. We now also ask the user
to choose again if the selected device cannot be booted.
Will Sowerbutts [Fri, 6 Jan 2017 19:22:50 +0000 (19:22 +0000)]
Kernel: fmount: Return failure instead of panicking when a device cannot
be opened.
Will Sowerbutts [Fri, 6 Jan 2017 19:14:31 +0000 (19:14 +0000)]
Kernel: Add "fuzix-loader" boot mechansim
This provides a way to build a Fuzix application that loads and boots a
different Fuzix kernel version. This is very useful for testing new
kernels -- just load the file onto a running Fuzix system and run it. It
will sync the disks, steal control from the running kernel, and set the
new kernel booting.
This mechanism requires the kernel to support booting from arbitrary
locations in memory.
This is analagous to the existing "cpm-loader" mechanism and re-uses the
same tools.
Tested and confirmed working on p112, n8vem-mark4 and zeta-v2.
Will Sowerbutts [Fri, 6 Jan 2017 19:36:11 +0000 (19:36 +0000)]
Kernel: zeta-v2: Correct KERNTOP
Will Sowerbutts [Fri, 6 Jan 2017 19:07:04 +0000 (19:07 +0000)]
Kernel: zeta-v2: Simplify and improve boot code.
The kernel image is unlikely to grow larger than 48KB so we can
simplyify the process for relocating the kernel to the correct memory
banks when booting.
Now that we have ROM disk support we can drop copying the RAM disk
contents on boot (userspace could do this by reading from /dev/physmem
or /dev/rd1 if it were still desirable).
We now stop the floppy drive motors on boot so they don't spin forever
where we have booted from floppy disk.
Will Sowerbutts [Fri, 6 Jan 2017 19:04:28 +0000 (19:04 +0000)]
Kernel: zeta-v2: Correct TICKSPERSEC
Will Sowerbutts [Fri, 6 Jan 2017 19:02:52 +0000 (19:02 +0000)]
Kernel: zeta-v2: Change to dynamic bufpool
Will Sowerbutts [Fri, 6 Jan 2017 19:02:15 +0000 (19:02 +0000)]
Kernel: n8vem-mark4: Change to dynamic bufpool
Will Sowerbutts [Fri, 6 Jan 2017 18:53:44 +0000 (18:53 +0000)]
Kernel: p112: Change to dynamic bufpool
Will Sowerbutts [Sun, 8 Jan 2017 23:00:43 +0000 (23:00 +0000)]
Kernel: zeta-v2: Implement /dev/rd and new /dev/mem
This implements the new /dev/mem and /dev/rd drivers for the zeta-v2
platform.
Will Sowerbutts [Sun, 8 Jan 2017 22:47:58 +0000 (22:47 +0000)]
Kernel: p112, n8vem-mark4: Implement /dev/rd and new /dev/mem
This implements the new /dev/mem and /dev/rd drivers for the Z180
based platforms.
p112: Note that the ROM disk is not useful on P112 as the ROM is limited
to 32KB in size and is unmapped from the CPU address space.
Will Sowerbutts [Sun, 8 Jan 2017 22:44:34 +0000 (22:44 +0000)]
Kernel: New /dev/mem driver
The old /dev/mem provided access to kernel memory only and is renamed to
/dev/kmem (minor number remains 1).
The new /dev/mem (minor number 4) is a character device which allows
userspace applications to access any address in the CPU physical memory
map using lseek(), read() and write(). Platforms need to define
CONFIG_DEV_MEM in config.h and provide the functions devmem_read() and
devmem_write().
Will Sowerbutts [Sun, 8 Jan 2017 22:27:59 +0000 (22:27 +0000)]
Kernel: New devrd driver: block device backed by CPU-addressed memory.
New driver supports two devices:
Block device /dev/rd0 (minor 0) -- a ROM disk
Block device /dev/rd1 (minor 1) -- a RAM disk
Minors 2+ may be used for other RAM disks in the future
Platforms need to provide DEV_RD_ROM_START, DEV_RD_ROM_SIZE,
DEV_RD_RAM_START and DEV_RD_RAM_SIZE which specify the start address (in
physical memory) and length (in bytes) of each device.
Platforms also need to provide a rd_platform_copy() function.
Will Sowerbutts [Sun, 8 Jan 2017 22:15:01 +0000 (22:15 +0000)]
Kernel: Fix kernel.def U_DATA offsets
EtchedPixels [Sun, 8 Jan 2017 12:22:08 +0000 (12:22 +0000)]
Merge pull request #473 from willsowerbutts/bugfix
Kernel: bread() should mark blocks as free on read failure
Will Sowerbutts [Thu, 5 Jan 2017 21:06:30 +0000 (21:06 +0000)]
Kernel: bread() should mark blocks as free on read failure
EtchedPixels [Wed, 4 Jan 2017 15:35:55 +0000 (15:35 +0000)]
Merge pull request #472 from willsowerbutts/levee
Applications: levee: Build versions for ansi, vt52 and termcap
Will Sowerbutts [Wed, 4 Jan 2017 14:54:01 +0000 (14:54 +0000)]
Applications: levee: Build versions for ansi, vt52 and termcap
EtchedPixels [Wed, 4 Jan 2017 12:55:25 +0000 (12:55 +0000)]
Merge pull request #471 from willsowerbutts/zetav2fixes
Fixes for zeta-v2 platform
EtchedPixels [Wed, 4 Jan 2017 12:54:54 +0000 (12:54 +0000)]
Merge pull request #470 from willsowerbutts/buildfixes
Minor build fixes
Will Sowerbutts [Wed, 28 Dec 2016 22:08:40 +0000 (22:08 +0000)]
Applications/util/tget: Link with termcap library
Will Sowerbutts [Wed, 28 Dec 2016 17:23:08 +0000 (17:23 +0000)]
zeta-v2: Remove fuzix.com, fuzix.rom when cleaning
Will Sowerbutts [Wed, 28 Dec 2016 17:24:50 +0000 (17:24 +0000)]
zeta-v2: Save a few bytes
Will Sowerbutts [Wed, 28 Dec 2016 17:30:14 +0000 (17:30 +0000)]
zeta-v2: Call program_vectors for kernel on boot.
This fixes a bug which was preventing zeta-v2 from booting.
Will Sowerbutts [Wed, 28 Dec 2016 17:21:05 +0000 (17:21 +0000)]
Applications/util/termcap.c: Update function declarations to modern C
syntax as required by recent versions of sdcc.
Will Sowerbutts [Wed, 28 Dec 2016 17:25:22 +0000 (17:25 +0000)]
Applications/util: Add missing make targets that package declares
Will Sowerbutts [Wed, 28 Dec 2016 17:26:06 +0000 (17:26 +0000)]
Kernel binman: fix off-by-one error, allowing COMMONMEM to use the last
byte of RAM (at address 0xFFFF).
EtchedPixels [Mon, 19 Dec 2016 20:47:14 +0000 (20:47 +0000)]
Merge pull request #469 from beretta42/cksum
Cksum
Alan Cox [Mon, 19 Dec 2016 20:46:16 +0000 (20:46 +0000)]
coco2cart: Initial patches from Brett Gordon for cocosdc
Brett Gordon [Mon, 19 Dec 2016 14:49:28 +0000 (09:49 -0500)]
cksum.c: further match gnu cksum algo, crc with file length.
Brett Gordon [Mon, 19 Dec 2016 14:13:42 +0000 (09:13 -0500)]
cksum.c: replace CRC LUT with Posix poly
Alan Cox [Mon, 12 Dec 2016 17:51:18 +0000 (17:51 +0000)]
coco2cart: update ACIA support to match nx32
Add speed setting etc to the Dragon64 UART
Alan Cox [Mon, 12 Dec 2016 17:51:02 +0000 (17:51 +0000)]
coco2cart: remove obsolete comment
Alan Cox [Mon, 12 Dec 2016 17:45:34 +0000 (17:45 +0000)]
mini_ide: fix a prototype
Alan Cox [Sat, 10 Dec 2016 14:30:29 +0000 (14:30 +0000)]
coco3: fix a comment
Alan Cox [Tue, 6 Dec 2016 19:17:15 +0000 (19:17 +0000)]
coco2cart: remove dead code
Alan Cox [Tue, 6 Dec 2016 19:05:30 +0000 (19:05 +0000)]
bank: propogate some changes
Alan Cox [Tue, 6 Dec 2016 19:05:17 +0000 (19:05 +0000)]
Makefile: add bank8k
Alan Cox [Tue, 6 Dec 2016 18:24:31 +0000 (18:24 +0000)]
bank8k: ho hum...
Alan Cox [Tue, 6 Dec 2016 00:20:51 +0000 (00:20 +0000)]
bank8k: add prototypes
Alan Cox [Tue, 6 Dec 2016 00:18:02 +0000 (00:18 +0000)]
bank8k: first cut at an 8K banking module
This needs to handle the tables differently as they don't fit in the page
pointers but that also lets us address Brett's wish for video mapping which
with 8K banking actually sort of makes sense on the COCO3.
Alan Cox [Sun, 4 Dec 2016 14:41:44 +0000 (14:41 +0000)]
coco2cart: document disk layout
Alan Cox [Sun, 4 Dec 2016 14:31:54 +0000 (14:31 +0000)]
execve: fix deadlock/crash
If a process sets files to be closed with O_CLOEXEC and those files are ones
that sleep during the close (eg a socket), and at the same time as it is
sleeping then on a little box with not many buffers you can easily deadlock
or run out of buffers.
Only allow one execve process at a time. As the disk I/O on a little 8bit
micro takes the full CPU time, and the only blocking case is the obscure
O_CLOEXEC one the performance impact of this change is pretty close to nil,
but it does mean we need to be careful not to let anything block for long
while closing.
For networking this will need a little bit of care and it also introduces
a bizarre corner case deadlock if you are using the userspace networking
daemon. You must ensure the daemon does not itself try to do an execve
while a socket might be waiting to close. As the network daemon can already
tie itself in knots if it attempts to use sockets, and is very special this
seems acceptable.
Alan Cox [Sun, 4 Dec 2016 14:31:30 +0000 (14:31 +0000)]
coco2cart: reclaim buffers
Tidy up the oddments that need deleting, and update the README
Alan Cox [Sun, 4 Dec 2016 13:46:42 +0000 (13:46 +0000)]
coco2cart: introduce swap enabled single process model
With the small core changes the 6809 banked ports can now swap while the
interrupts are enabled. This relies upon the fact the vectors are always
mapped so while not too hard on 6809 and 6502 the Z80 ports where the low
256 bytes are both IRQ vectors and part of the user map will probably need
a bit more work.
Alan Cox [Sun, 4 Dec 2016 13:46:01 +0000 (13:46 +0000)]
coco2cart: buffer pool into asm
This moves the buffer pool into its own section so that we can make sure
it lies next to discard
Alan Cox [Sun, 4 Dec 2016 13:45:24 +0000 (13:45 +0000)]
coco2cart: prepare for discard recovery
Align everything so that we can reclaim the discard memory space
Alan Cox [Sun, 4 Dec 2016 13:37:54 +0000 (13:37 +0000)]
process: changes for IRQ when swapping
Don't scribble on the udata when it is unsafe
Don't charge time to processes when swapping them
Alan Cox [Sun, 4 Dec 2016 13:37:08 +0000 (13:37 +0000)]
kernel: allow platforms to override the default task switch rate
This is useful on pure swap systems for example.
Alan Cox [Sun, 4 Dec 2016 13:36:36 +0000 (13:36 +0000)]
kdata: In preparation for IRQ enabled swap introduce an inswap status byte
Alan Cox [Sun, 4 Dec 2016 13:21:27 +0000 (13:21 +0000)]
coco2cart: update the README file
Alan Cox [Sat, 3 Dec 2016 21:44:10 +0000 (21:44 +0000)]
coco2cart: add link file
Alan Cox [Sat, 3 Dec 2016 21:43:29 +0000 (21:43 +0000)]
coco2cart: fix swapping logic
Alan Cox [Sat, 3 Dec 2016 21:03:38 +0000 (21:03 +0000)]
bcpl: tidy up problems with Z80 from changes, add split int/linker
Need to merge the split one and the paging logic
Alan Cox [Sat, 3 Dec 2016 20:19:41 +0000 (20:19 +0000)]
bcpl: remove a stdio usage and a pointless indirection
Faster faster..
Alan Cox [Wed, 30 Nov 2016 18:50:59 +0000 (18:50 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Wed, 30 Nov 2016 18:44:37 +0000 (18:44 +0000)]
scc: turn arguments the right way round
Small C has an irritating design feature that means it stacks arguments left
to right not right to left. Rather than working around this use a spool file
so we can put the code fragments in right to left order.
This totally changes the ABI, which is fine because we aren't using it for
anything and the old ABI is a PITA. With this done we can actually write sane
syscall stubs.
Would benefit from optimisations to also use the internal buffer as a stack
not just flush to the spool file as we stack code fragments.
Needless to say all the old varargs gunge is now a) broken and b) not needed
EtchedPixels [Sun, 27 Nov 2016 17:16:26 +0000 (17:16 +0000)]
Merge pull request #467 from beretta42/netdb
netd: fix gethostbyname: only add dns answers that are inet addrs.
Brett Gordon [Sun, 27 Nov 2016 14:46:32 +0000 (09:46 -0500)]
netd: fix gethostbyname: only add answsers that are inet addrs.
EtchedPixels [Thu, 24 Nov 2016 16:10:16 +0000 (16:10 +0000)]
Merge pull request #466 from nealcrook/v7-man-pages
V7 man pages (all platforms)
nealcrook [Thu, 24 Nov 2016 08:15:25 +0000 (08:15 +0000)]
V7 man pages (all platforms)
Add man pages (origin: nordier distribution, like the source code) for all
V7 stuff where they exist.
In all cases man pages are in a separate package within the same package
file; this allows a space-limited system to disable the man packages.
EtchedPixels [Wed, 23 Nov 2016 13:26:32 +0000 (13:26 +0000)]
Merge pull request #465 from nealcrook/BCPL
Application BCPL updates for all platforms.
nealcrook [Wed, 23 Nov 2016 11:45:51 +0000 (11:45 +0000)]
Add simple example programs
nealcrook [Wed, 23 Nov 2016 11:45:11 +0000 (11:45 +0000)]
Add files from BCPL kit.
nealcrook [Wed, 23 Nov 2016 11:41:40 +0000 (11:41 +0000)]
Merge branch 'BCPL' of https://github.com/nealcrook/FUZIX into BCPL
Conflicts:
Applications/BCPL/README
nealcrook [Wed, 23 Nov 2016 09:47:42 +0000 (09:47 +0000)]
remove duplicated "#ifdef PAGEDMEM"
nealcrook [Tue, 22 Nov 2016 22:25:29 +0000 (22:25 +0000)]
implement least-recently-used page replacement scheme in place of the
fixed scheme used during debug. Removed per-page access count which I
formerly considered using as part of the replacement algo.
nealcrook [Tue, 22 Nov 2016 22:09:38 +0000 (22:09 +0000)]
Do proper status checking on all the file operations.
EtchedPixels [Tue, 22 Nov 2016 22:06:09 +0000 (22:06 +0000)]
Merge pull request #462 from nealcrook/sh
Modifications to sh, all platforms: support for comments, add man-page, fix some build warnings, tweak package files
nealcrook [Tue, 22 Nov 2016 21:42:19 +0000 (21:42 +0000)]
bcpl is a script to automate the build process. The first FUZIX shell
script!! Expand README to describe its use and caveats.
nealcrook [Tue, 22 Nov 2016 21:15:23 +0000 (21:15 +0000)]
Add opensolaris license that applies to some parts of this set of
files, in particular stuff originating from the heirloom project.
EtchedPixels [Tue, 22 Nov 2016 19:28:45 +0000 (19:28 +0000)]
Merge pull request #463 from beretta42/dwinit
coco3: better/conditional initialization of drivewire
EtchedPixels [Tue, 22 Nov 2016 19:28:27 +0000 (19:28 +0000)]
Merge pull request #464 from beretta42/netd
coco3: make netd device module talk proper lwwire
Brett Gordon [Tue, 22 Nov 2016 18:28:33 +0000 (13:28 -0500)]
coco3: better/conditional initialization of drivewire
nealcrook [Tue, 22 Nov 2016 17:15:33 +0000 (17:15 +0000)]
BCPL package file.
nealcrook [Tue, 22 Nov 2016 17:13:59 +0000 (17:13 +0000)]
Dual-build. Working but need to add checks for return status after
file operation.
nealcrook [Tue, 22 Nov 2016 17:13:23 +0000 (17:13 +0000)]
Build infrastructure
Brett Gordon [Thu, 17 Nov 2016 22:42:56 +0000 (17:42 -0500)]
coco3: make netd device module talk proper lwwire
nealcrook [Tue, 22 Nov 2016 15:30:53 +0000 (15:30 +0000)]
abstract read and write into macros. Code almost identical.. one place
that it differs is the byte write in blibc which used to use a pointer
and which is now a plainer access.
nealcrook [Tue, 22 Nov 2016 14:33:03 +0000 (14:33 +0000)]
seoarate physical from virtual address space. Set up defines for
host and target systems.
nealcrook [Tue, 22 Nov 2016 09:51:20 +0000 (09:51 +0000)]
Mistakenly made a branch from my BCPL work instead of from Unwind the bcpl stuff from here.
Revert "expand the instructions for using the original bcpl kit files. Add"
This reverts commit
8934c001c5f9a270c08a6516e3da2e2a3b4f3d9e.
nealcrook [Tue, 22 Nov 2016 09:50:22 +0000 (09:50 +0000)]
Mistakenly made a branch from my BCPL work instead of from Unwind
the bcpl stuff from here.
Revert "Refernece cgtest.b"
This reverts commit
e327d0297d52d098441fda7cdc7c2e4866323577.
nealcrook [Tue, 22 Nov 2016 09:47:14 +0000 (09:47 +0000)]
Revert "Add files from BCPL kit and some simple example programs."
This reverts commit
7eec99c7ec337818e34a3c782c093f3f1e1b0e8a.
nealcrook [Tue, 22 Nov 2016 09:39:30 +0000 (09:39 +0000)]
Add sh.1 manpage to fuzix-sh package.
Add hard link of /usr/bin/[ to /usr/bin/test in fuzix-cmd package.
nealcrook [Tue, 22 Nov 2016 09:32:40 +0000 (09:32 +0000)]
remove unsupported nroff at the start, document #-delimited comments.
nealcrook [Tue, 22 Nov 2016 09:26:45 +0000 (09:26 +0000)]
sh.1 manpage retrieved from archival V7 distribution.