FUZIX.git
9 years agoUpdate Makefile
Erkin Alp Güney [Tue, 10 Mar 2015 09:26:03 +0000 (11:26 +0200)]
Update Makefile

9 years agodragon: Optimize put/get functions slightly
Tormod Volden [Mon, 9 Mar 2015 23:47:40 +0000 (00:47 +0100)]
dragon: Optimize put/get functions slightly

leax and leay modify the zero bit (leau and leas don't).

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agodragon: Fix put/get copy index post-increment
Tormod Volden [Mon, 9 Mar 2015 23:47:39 +0000 (00:47 +0100)]
dragon: Fix put/get copy index post-increment

Because 6809 assembly is not a C dialect or something :p

Alternatively we could do it in steps of 2 by using D instead
of A but then we must change the check for zero Y.

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agodragon: Fix stack offsets in usermem get/put functions
Tormod Volden [Mon, 9 Mar 2015 23:47:38 +0000 (00:47 +0100)]
dragon: Fix stack offsets in usermem get/put functions

In commit 9b442847 the CC register was added to the stack, but the
new offsets to the passed values were not correctly modified.
The CC register takes only one byte on the stack.

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agodragon: Clear out .bss sections in crt0.s
Tormod Volden [Mon, 9 Mar 2015 23:47:37 +0000 (00:47 +0100)]
dragon: Clear out .bss sections in crt0.s

There is still some memory cleaning in setup.s but this
is where it belongs.

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agolibs: Add enter.s for __enter and __enter_s for the modified sdcc
Alan Cox [Mon, 9 Mar 2015 21:39:45 +0000 (21:39 +0000)]
libs: Add enter.s for __enter and __enter_s for the modified sdcc

9 years agozx128: set the vectors right
Alan Cox [Mon, 9 Mar 2015 21:39:24 +0000 (21:39 +0000)]
zx128: set the vectors right

9 years agodevmdv: fix load to user
Alan Cox [Mon, 9 Mar 2015 21:38:59 +0000 (21:38 +0000)]
devmdv: fix load to user

We need this fixed to load /init into the right addresses

9 years agobinman: simplify code a bit
Alan Cox [Mon, 9 Mar 2015 19:13:09 +0000 (19:13 +0000)]
binman: simplify code a bit

fcc now always passes a progbase, so require it

9 years agofcc: various fixups
Alan Cox [Mon, 9 Mar 2015 19:12:10 +0000 (19:12 +0000)]
fcc: various fixups

- Pass the progload base to binman unconditionally
- Handle progload as a variable generically
- Fix passing of freed memory (caused strange error reports with apparently
  valid sdcc command lines)

9 years agolibs: Fix typo in Makefile
Alan Cox [Sun, 8 Mar 2015 22:06:02 +0000 (22:06 +0000)]
libs: Fix typo in Makefile

9 years agofcc: Some updates for -t platform support
Alan Cox [Sun, 8 Mar 2015 22:05:46 +0000 (22:05 +0000)]
fcc: Some updates for -t platform support

9 years agoutils: Allow platform to be passed for special builds
Alan Cox [Sun, 8 Mar 2015 22:05:23 +0000 (22:05 +0000)]
utils: Allow platform to be passed for special builds

9 years agolibs: Support Z80 variant builds
Alan Cox [Sun, 8 Mar 2015 21:40:31 +0000 (21:40 +0000)]
libs: Support Z80 variant builds

Allow PLATFORM to be set and make it use a different crt0 and syscall.s file.
We need this for platforms like ZX128 where we can't use the normal RST calls.

For relocatable binaries when we get there the syscall vector is going to need
to be discoverable - perhaps passed in a register or on the passed stack ?

9 years agotools: remove fstomdv, it's now part of blankmdv
Alan Cox [Sun, 8 Mar 2015 21:40:05 +0000 (21:40 +0000)]
tools: remove fstomdv, it's now part of blankmdv

9 years agozx128: remove a FIXME ret
Alan Cox [Sun, 8 Mar 2015 21:19:09 +0000 (21:19 +0000)]
zx128: remove a FIXME ret

Not saying this code is right yet, but the ret isn't needed

9 years agozx128: Add syscall entry point
Alan Cox [Sun, 8 Mar 2015 21:16:32 +0000 (21:16 +0000)]
zx128: Add syscall entry point

This needs some further thought. If we are going to support relocatable
binaries we will need some way to fix up the syscall entry point on them.

9 years agoblankmdv: Allow an fs to be added
Alan Cox [Sun, 8 Mar 2015 19:27:52 +0000 (19:27 +0000)]
blankmdv: Allow an fs to be added

Add an argument so you can supply a file system to add to the cartridge as it
is built.

9 years agozx128: Fix stacking of arguments on switchin/switchout
Alan Cox [Sun, 8 Mar 2015 19:27:24 +0000 (19:27 +0000)]
zx128: Fix stacking of arguments on switchin/switchout

With this fixed we can get to the point of trying to load init properly

9 years agozx128: update for tty_sleeping
Alan Cox [Sun, 8 Mar 2015 18:58:16 +0000 (18:58 +0000)]
zx128: update for tty_sleeping

9 years agoplus3: tag in progres devfd seek so I remember to add error handling
Alan Cox [Sun, 8 Mar 2015 18:04:07 +0000 (18:04 +0000)]
plus3: tag in progres devfd seek so I remember to add error handling

Once it works at all anyway...

9 years ago6502: video needs to be in SEG3 to make stuff fit
Alan Cox [Sun, 8 Mar 2015 18:03:49 +0000 (18:03 +0000)]
6502: video needs to be in SEG3 to make stuff fit

9 years agotgl6502: remove bogus NMI bit
Alan Cox [Sun, 8 Mar 2015 18:03:33 +0000 (18:03 +0000)]
tgl6502: remove bogus NMI bit

9 years agolowlevel-6502: Fix NMI confusion
Alan Cox [Sun, 8 Mar 2015 18:03:00 +0000 (18:03 +0000)]
lowlevel-6502: Fix NMI confusion

We never use NMI which is forunate as half the code though the NMI trap
was a string to print and half code to execute.

9 years agomtx: bring up to date with tty_sleeping change
Alan Cox [Sun, 8 Mar 2015 18:02:26 +0000 (18:02 +0000)]
mtx: bring up to date with tty_sleeping change

9 years ago6502: cc65 doesn't grok inline
Alan Cox [Sun, 8 Mar 2015 18:02:08 +0000 (18:02 +0000)]
6502: cc65 doesn't grok inline

9 years agoMerge branch 'master' of https://github.com/EtchedPixels/FUZIX
Alan Cox [Sun, 8 Mar 2015 18:01:54 +0000 (18:01 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX

9 years agoMerge pull request #134 from erkinalp/utils
EtchedPixels [Sun, 8 Mar 2015 17:53:33 +0000 (17:53 +0000)]
Merge pull request #134 from erkinalp/utils

gets_s() from C11,
factor from toybox

9 years agoFixed prototype macro
Erkin Alp Güney [Sun, 8 Mar 2015 16:49:20 +0000 (18:49 +0200)]
Fixed prototype macro

This is a macro, space is illegal here

9 years agoxputc() does not exist in FUZIX
Erkin Alp Güney [Sun, 8 Mar 2015 16:46:12 +0000 (18:46 +0200)]
xputc() does not exist in FUZIX

9 years agofactor: main() signature corrected, header fixup
Erkin Alp Güney [Sun, 8 Mar 2015 16:43:32 +0000 (18:43 +0200)]
factor: main() signature corrected, header fixup

9 years agoC11: gets_s() prototype added
Erkin Alp Güney [Sun, 8 Mar 2015 16:40:46 +0000 (18:40 +0200)]
C11: gets_s() prototype added

9 years agomodified factor
Erkin Alp Güney [Sun, 8 Mar 2015 16:36:45 +0000 (18:36 +0200)]
modified factor

9 years agoC11 improvements and factor
Erkin Alp Güney [Sun, 8 Mar 2015 15:38:25 +0000 (17:38 +0200)]
C11 improvements and factor
C11: gets_s() added
prime factorisation utility added

9 years agoC11 improvements and factor
Erkin Alp Güney [Sun, 8 Mar 2015 15:38:25 +0000 (17:38 +0200)]
C11 improvements and factor
C11: gets_s() added
prime factorisation utility added

9 years agovt: allow for platforms whose keyboard is not a scan map
Alan Cox [Sat, 7 Mar 2015 21:20:36 +0000 (21:20 +0000)]
vt: allow for platforms whose keyboard is not a scan map

9 years agonc100: tty_sleeping
Alan Cox [Sat, 7 Mar 2015 20:01:34 +0000 (20:01 +0000)]
nc100: tty_sleeping

9 years agoMerge pull request #132 from willsowerbutts/dietsd
EtchedPixels [Sat, 7 Mar 2015 12:41:14 +0000 (12:41 +0000)]
Merge pull request #132 from willsowerbutts/dietsd

devsd: Do not pass drive number as function argument

9 years agoMerge pull request #133 from skiselev/master
EtchedPixels [Sat, 7 Mar 2015 12:40:58 +0000 (12:40 +0000)]
Merge pull request #133 from skiselev/master

zeta-v2: RAM disk cleanup, README fixes

9 years agodevsd msx2: Restore previous drive selection behaviour
Will Sowerbutts [Fri, 6 Mar 2015 23:08:16 +0000 (23:08 +0000)]
devsd msx2: Restore previous drive selection behaviour

9 years agozeta-v2: Update block device names and numbers
Sergey Kiselev [Fri, 6 Mar 2015 17:14:20 +0000 (09:14 -0800)]
zeta-v2: Update block device names and numbers

9 years agozeta-v2: README typo fix
Sergey Kiselev [Fri, 6 Mar 2015 17:10:35 +0000 (09:10 -0800)]
zeta-v2: README typo fix

9 years agozeta-v2: Update shadow MPGSEL registers copy, so that RAM disk can run with interrupt...
Sergey Kiselev [Fri, 6 Mar 2015 01:42:27 +0000 (17:42 -0800)]
zeta-v2: Update shadow MPGSEL registers copy, so that RAM disk can run with interrupts enabled; Misc clean-ups (README file, config.h)

9 years agodevsd: Do not pass drive number as function argument
Will Sowerbutts [Fri, 6 Mar 2015 10:28:07 +0000 (10:28 +0000)]
devsd: Do not pass drive number as function argument

None of our existing platforms support multiple cards. This change moves
the SD drive number into a global variable which platform drivers can
access if required.

This change reduces code size by just over 200 bytes.

9 years agoMerge pull request #131 from skiselev/master
EtchedPixels [Thu, 5 Mar 2015 19:12:33 +0000 (19:12 +0000)]
Merge pull request #131 from skiselev/master

zeta-v2: Initial support for Zeta SBC V2 platform

9 years agozeta-v2: Initial support for Zeta SBC V2 platform
Sergey Kiselev [Thu, 5 Mar 2015 18:16:07 +0000 (10:16 -0800)]
zeta-v2: Initial support for Zeta SBC V2 platform

9 years agodragon: Build with simple.c instead of single.c
Tormod Volden [Sun, 1 Mar 2015 12:46:41 +0000 (13:46 +0100)]
dragon: Build with simple.c instead of single.c

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agodragon: Add missing .globl directive
Tormod Volden [Sun, 1 Mar 2015 12:46:39 +0000 (13:46 +0100)]
dragon: Add missing .globl directive

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agodragon: Add empty tty_sleeping()
Tormod Volden [Sun, 1 Mar 2015 12:46:38 +0000 (13:46 +0100)]
dragon: Add empty tty_sleeping()

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years ago6809: Remove stray #endif in cpu.h
Tormod Volden [Sun, 1 Mar 2015 12:46:37 +0000 (13:46 +0100)]
6809: Remove stray #endif in cpu.h

Signed-off-by: Tormod Volden <debian.tormod@gmail.com>
9 years agoplus3: Initial files for spectrum +3
Alan Cox [Sat, 28 Feb 2015 14:04:06 +0000 (14:04 +0000)]
plus3: Initial files for spectrum +3

This is just development in progress to make it easier to see how to split
the 128 and the plus 3 features.

9 years agopcw8256: Get back building
Alan Cox [Fri, 27 Feb 2015 17:36:35 +0000 (17:36 +0000)]
pcw8256: Get back building

The floppy driver is still not behaving and I'm not sure why

9 years agosimple: no cache flusher needed
Alan Cox [Thu, 26 Feb 2015 22:43:50 +0000 (22:43 +0000)]
simple: no cache flusher needed

9 years agoMerge pull request #130 from willsowerbutts/fixes
EtchedPixels [Thu, 26 Feb 2015 09:59:36 +0000 (09:59 +0000)]
Merge pull request #130 from willsowerbutts/fixes

Fixes

9 years agop112, n8vem-mark4: Drop BOOT_TTY in favour of TTYDEV.
Will Sowerbutts [Sun, 22 Feb 2015 21:41:29 +0000 (21:41 +0000)]
p112, n8vem-mark4: Drop BOOT_TTY in favour of TTYDEV.

9 years agomonitor-z80: Record entry SP
Will Sowerbutts [Sun, 22 Feb 2015 23:50:27 +0000 (23:50 +0000)]
monitor-z80: Record entry SP

9 years agon8vem-mark4: Stub for tty_sleeping()
Will Sowerbutts [Tue, 24 Feb 2015 21:10:46 +0000 (21:10 +0000)]
n8vem-mark4: Stub for tty_sleeping()

9 years agodevide: Reset all drives before initialisation
Will Sowerbutts [Tue, 24 Feb 2015 21:11:23 +0000 (21:11 +0000)]
devide: Reset all drives before initialisation

9 years agoKernel: Bug fix for failed _open on devices
Will Sowerbutts [Wed, 25 Feb 2015 00:13:04 +0000 (00:13 +0000)]
Kernel: Bug fix for failed _open on devices

9 years agoKernel: Minor bug fix for tty_open
Will Sowerbutts [Wed, 25 Feb 2015 00:17:03 +0000 (00:17 +0000)]
Kernel: Minor bug fix for tty_open

9 years agoMerge pull request #129 from willsowerbutts/bugfixes
EtchedPixels [Sun, 22 Feb 2015 18:07:33 +0000 (18:07 +0000)]
Merge pull request #129 from willsowerbutts/bugfixes

Bugfixes

9 years agoKernel: Bug fix: _execve() did not dereference executable's inode when successful.
Will Sowerbutts [Sun, 22 Feb 2015 17:58:45 +0000 (17:58 +0000)]
Kernel: Bug fix: _execve() did not dereference executable's inode when successful.

9 years agoKernel: Improve idump() output
Will Sowerbutts [Sun, 22 Feb 2015 17:59:20 +0000 (17:59 +0000)]
Kernel: Improve idump() output

9 years agoRevert "devio: sync before we flush"
Alan Cox [Sun, 22 Feb 2015 17:35:12 +0000 (17:35 +0000)]
Revert "devio: sync before we flush"

This reverts commit 19be9812a23c618b71b8d9a224c4de18260ca053.

We can't handle it this way

9 years agotrs80: add tty_sleeping
Alan Cox [Sat, 21 Feb 2015 23:20:02 +0000 (23:20 +0000)]
trs80: add tty_sleeping

9 years agoMerge pull request #128 from geijoenr/master
EtchedPixels [Sat, 21 Feb 2015 20:00:16 +0000 (20:00 +0000)]
Merge pull request #128 from geijoenr/master

boot with R800 CPU mode and README update

9 years agomsx2: update README
geijoenr [Sat, 21 Feb 2015 19:20:03 +0000 (19:20 +0000)]
msx2: update README

9 years agomsx2: switch to R800 cpu on boot if available
geijoenr [Sat, 21 Feb 2015 19:19:03 +0000 (19:19 +0000)]
msx2: switch to R800 cpu on boot if available

We want to boot fast on TurboR.

9 years agomsx2: add tty_sleeping
geijoenr [Sat, 21 Feb 2015 19:18:20 +0000 (19:18 +0000)]
msx2: add tty_sleeping

9 years agoMerge pull request #127 from geijoenr/master
EtchedPixels [Sat, 21 Feb 2015 15:33:11 +0000 (15:33 +0000)]
Merge pull request #127 from geijoenr/master

msx2: generate 8k banked ascii rom

9 years agoMerge pull request #126 from willsowerbutts/typo
EtchedPixels [Sat, 21 Feb 2015 15:32:48 +0000 (15:32 +0000)]
Merge pull request #126 from willsowerbutts/typo

README: typo

9 years agoMerge pull request #125 from willsowerbutts/p112serial
EtchedPixels [Sat, 21 Feb 2015 15:32:27 +0000 (15:32 +0000)]
Merge pull request #125 from willsowerbutts/p112serial

Improved P112 serial support

9 years agomsx2: move memory sizing to bootstrap
geijoenr [Sat, 21 Feb 2015 12:57:45 +0000 (12:57 +0000)]
msx2: move memory sizing to bootstrap

9 years agomsx2: generate 8k banked ascii rom
geijoenr [Fri, 20 Feb 2015 20:44:11 +0000 (20:44 +0000)]
msx2: generate 8k banked ascii rom

Switching to a banked rom simplifies the bootstrap, allows us to
discard it and also opens the possibility of appending a romfs
after the kernel

9 years agoplatform: standardise the offset checks for raw, and use BLKMASK
Alan Cox [Sat, 21 Feb 2015 00:34:17 +0000 (00:34 +0000)]
platform: standardise the offset checks for raw, and use BLKMASK

9 years agoinode: use BLKOFF
Alan Cox [Sat, 21 Feb 2015 00:32:38 +0000 (00:32 +0000)]
inode: use BLKOFF

This saves a bit of memory

9 years agofilesys: use BLKOFF
Alan Cox [Sat, 21 Feb 2015 00:32:22 +0000 (00:32 +0000)]
filesys: use BLKOFF

9 years agokernel: Add a definition for BLKOFF(x) which does the right casting
Alan Cox [Sat, 21 Feb 2015 00:31:09 +0000 (00:31 +0000)]
kernel: Add a definition for BLKOFF(x) which does the right casting

This avoids promotion to long and ugly code coming out of the Z80 compiler
in particular (and excessive code on 6502).

9 years agoinode: use psleep_flags helper
Alan Cox [Sat, 21 Feb 2015 00:02:05 +0000 (00:02 +0000)]
inode: use psleep_flags helper

In doing so also corrects sleep behaviour

9 years agoREADME: typo
Will Sowerbutts [Fri, 20 Feb 2015 23:56:50 +0000 (23:56 +0000)]
README: typo

9 years agoinode: Fix bug in direct I/O with holes
Alan Cox [Fri, 20 Feb 2015 23:55:07 +0000 (23:55 +0000)]
inode: Fix bug in direct I/O with holes

9 years agop112: README update
Will Sowerbutts [Fri, 20 Feb 2015 23:51:42 +0000 (23:51 +0000)]
p112: README update

9 years agoREADME: update
Alan Cox [Fri, 20 Feb 2015 23:50:26 +0000 (23:50 +0000)]
README: update

9 years agodevio: sync before we flush
Alan Cox [Fri, 20 Feb 2015 22:27:37 +0000 (22:27 +0000)]
devio: sync before we flush

We should sync just this device and invalidate in the close but this is a start

9 years agofilesys: use inline for baddev
Alan Cox [Fri, 20 Feb 2015 22:24:56 +0000 (22:24 +0000)]
filesys: use inline for baddev

Saves us 0x40 bytes or so

9 years agop112: Pad floppy boot images to sector boundary
Will Sowerbutts [Fri, 20 Feb 2015 21:34:35 +0000 (21:34 +0000)]
p112: Pad floppy boot images to sector boundary

9 years agoFilesystem tools: Create tty5 through tty8 as standard
Will Sowerbutts [Fri, 20 Feb 2015 21:34:11 +0000 (21:34 +0000)]
Filesystem tools: Create tty5 through tty8 as standard

9 years agop112: Improved ESCC, 16550A serial port support
Will Sowerbutts [Fri, 20 Feb 2015 21:33:43 +0000 (21:33 +0000)]
p112: Improved ESCC, 16550A serial port support

9 years agoKernel: Fix tty race condition, introduce new tty_sleeping() function.
Will Sowerbutts [Fri, 20 Feb 2015 21:21:29 +0000 (21:21 +0000)]
Kernel: Fix tty race condition, introduce new tty_sleeping() function.

There are a few cases where a process goes to sleep while waiting for
the UART to be ready to transmit. We want to be able to use interrupts
to alert us to the UART becoming ready again (for example once the UART
has drained or the flow control pins have changed).

There was a race to put the process to sleep after tty_writeready()
reports that it the UART is busy but before psleep() is called; the
waking interrupt may arrive in that interval, wakeup() will not find
any sleeping process, and no further interrupts will arrive after
psleep() returns.

The solution adopted here is to normally run with these waking
interrupts disabled. When we put the process to sleep we enable the
waking interrupts and call psleep() atomically. A new platform
tty_sleeping() function is required to do the work of enabling the
relevant interrupts for the given tty. The platform interrupt handler
then disables these interrupts when calling tty_outproc() to awaken the
process.

9 years agoKernel: wakeup() now uses pwake() function
Will Sowerbutts [Fri, 20 Feb 2015 21:20:36 +0000 (21:20 +0000)]
Kernel: wakeup() now uses pwake() function

9 years agoreadonly: Initial pieces for read-only mounts
Alan Cox [Fri, 20 Feb 2015 20:45:25 +0000 (20:45 +0000)]
readonly: Initial pieces for read-only mounts

9 years agotrs80: note you need -model 4p
Alan Cox [Fri, 20 Feb 2015 20:43:12 +0000 (20:43 +0000)]
trs80: note you need -model 4p

Small but important detail

9 years agobanking: fix panic uses
Alan Cox [Fri, 20 Feb 2015 20:39:45 +0000 (20:39 +0000)]
banking: fix panic uses

9 years agobankfixed: fix panic use
Alan Cox [Fri, 20 Feb 2015 20:38:47 +0000 (20:38 +0000)]
bankfixed: fix panic use

9 years agosimple: panic on corrupted swap
Alan Cox [Thu, 19 Feb 2015 23:22:10 +0000 (23:22 +0000)]
simple: panic on corrupted swap

9 years agobankfixed: adopt panic behaviour of other map types on swap bug
Alan Cox [Thu, 19 Feb 2015 23:20:53 +0000 (23:20 +0000)]
bankfixed: adopt panic behaviour of other map types on swap bug

9 years agobank32k: add reminder about stack
Alan Cox [Thu, 19 Feb 2015 23:20:35 +0000 (23:20 +0000)]
bank32k: add reminder about stack

9 years agobank16k_low: first cut at swap
Alan Cox [Thu, 19 Feb 2015 23:15:13 +0000 (23:15 +0000)]
bank16k_low: first cut at swap

There are a couple of 6502 crawly horrors around the stack left to resolve!

9 years agobank16k: first pass swap logic
Alan Cox [Thu, 19 Feb 2015 23:05:58 +0000 (23:05 +0000)]
bank16k: first pass swap logic

Do the swap in four requests so that each I/O is one mapping in memory space
and the drivers can stay sane. Right now swap passes the process ptr and
that should probably change to the page number (or for the simpler cases
the bank is the same thing).

9 years agosimple: swap policy
Alan Cox [Thu, 19 Feb 2015 23:05:07 +0000 (23:05 +0000)]
simple: swap policy

Nice and easy, no common memory magic, no splitting buffers, it's either
mapped or its swapped