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>
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>
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>
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>
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
Alan Cox [Mon, 9 Mar 2015 21:39:24 +0000 (21:39 +0000)]
zx128: set the vectors right
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
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
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)
Alan Cox [Sun, 8 Mar 2015 22:06:02 +0000 (22:06 +0000)]
libs: Fix typo in Makefile
Alan Cox [Sun, 8 Mar 2015 22:05:46 +0000 (22:05 +0000)]
fcc: Some updates for -t platform support
Alan Cox [Sun, 8 Mar 2015 22:05:23 +0000 (22:05 +0000)]
utils: Allow platform to be passed for special 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 ?
Alan Cox [Sun, 8 Mar 2015 21:40:05 +0000 (21:40 +0000)]
tools: remove fstomdv, it's now part of blankmdv
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
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.
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.
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
Alan Cox [Sun, 8 Mar 2015 18:58:16 +0000 (18:58 +0000)]
zx128: update for tty_sleeping
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...
Alan Cox [Sun, 8 Mar 2015 18:03:49 +0000 (18:03 +0000)]
6502: video needs to be in SEG3 to make stuff fit
Alan Cox [Sun, 8 Mar 2015 18:03:33 +0000 (18:03 +0000)]
tgl6502: remove bogus NMI bit
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.
Alan Cox [Sun, 8 Mar 2015 18:02:26 +0000 (18:02 +0000)]
mtx: bring up to date with tty_sleeping change
Alan Cox [Sun, 8 Mar 2015 18:02:08 +0000 (18:02 +0000)]
6502: cc65 doesn't grok inline
Alan Cox [Sun, 8 Mar 2015 18:01:54 +0000 (18:01 +0000)]
Merge branch 'master' of https://github.com/EtchedPixels/FUZIX
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
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
Erkin Alp Güney [Sun, 8 Mar 2015 16:46:12 +0000 (18:46 +0200)]
xputc() does not exist in FUZIX
Erkin Alp Güney [Sun, 8 Mar 2015 16:43:32 +0000 (18:43 +0200)]
factor: main() signature corrected, header fixup
Erkin Alp Güney [Sun, 8 Mar 2015 16:40:46 +0000 (18:40 +0200)]
C11: gets_s() prototype added
Erkin Alp Güney [Sun, 8 Mar 2015 16:36:45 +0000 (18:36 +0200)]
modified 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
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
Alan Cox [Sat, 7 Mar 2015 21:20:36 +0000 (21:20 +0000)]
vt: allow for platforms whose keyboard is not a scan map
Alan Cox [Sat, 7 Mar 2015 20:01:34 +0000 (20:01 +0000)]
nc100: tty_sleeping
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
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
Will Sowerbutts [Fri, 6 Mar 2015 23:08:16 +0000 (23:08 +0000)]
devsd msx2: Restore previous drive selection behaviour
Sergey Kiselev [Fri, 6 Mar 2015 17:14:20 +0000 (09:14 -0800)]
zeta-v2: Update block device names and numbers
Sergey Kiselev [Fri, 6 Mar 2015 17:10:35 +0000 (09:10 -0800)]
zeta-v2: README typo fix
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)
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.
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
Sergey Kiselev [Thu, 5 Mar 2015 18:16:07 +0000 (10:16 -0800)]
zeta-v2: Initial support for Zeta SBC V2 platform
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>
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>
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>
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>
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.
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
Alan Cox [Thu, 26 Feb 2015 22:43:50 +0000 (22:43 +0000)]
simple: no cache flusher needed
EtchedPixels [Thu, 26 Feb 2015 09:59:36 +0000 (09:59 +0000)]
Merge pull request #130 from willsowerbutts/fixes
Fixes
Will Sowerbutts [Sun, 22 Feb 2015 21:41:29 +0000 (21:41 +0000)]
p112, n8vem-mark4: Drop BOOT_TTY in favour of TTYDEV.
Will Sowerbutts [Sun, 22 Feb 2015 23:50:27 +0000 (23:50 +0000)]
monitor-z80: Record entry SP
Will Sowerbutts [Tue, 24 Feb 2015 21:10:46 +0000 (21:10 +0000)]
n8vem-mark4: Stub for tty_sleeping()
Will Sowerbutts [Tue, 24 Feb 2015 21:11:23 +0000 (21:11 +0000)]
devide: Reset all drives before initialisation
Will Sowerbutts [Wed, 25 Feb 2015 00:13:04 +0000 (00:13 +0000)]
Kernel: Bug fix for failed _open on devices
Will Sowerbutts [Wed, 25 Feb 2015 00:17:03 +0000 (00:17 +0000)]
Kernel: Minor bug fix for tty_open
EtchedPixels [Sun, 22 Feb 2015 18:07:33 +0000 (18:07 +0000)]
Merge pull request #129 from willsowerbutts/bugfixes
Bugfixes
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.
Will Sowerbutts [Sun, 22 Feb 2015 17:59:20 +0000 (17:59 +0000)]
Kernel: Improve idump() output
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
Alan Cox [Sat, 21 Feb 2015 23:20:02 +0000 (23:20 +0000)]
trs80: add tty_sleeping
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
geijoenr [Sat, 21 Feb 2015 19:20:03 +0000 (19:20 +0000)]
msx2: update README
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.
geijoenr [Sat, 21 Feb 2015 19:18:20 +0000 (19:18 +0000)]
msx2: add tty_sleeping
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
EtchedPixels [Sat, 21 Feb 2015 15:32:48 +0000 (15:32 +0000)]
Merge pull request #126 from willsowerbutts/typo
README: typo
EtchedPixels [Sat, 21 Feb 2015 15:32:27 +0000 (15:32 +0000)]
Merge pull request #125 from willsowerbutts/p112serial
Improved P112 serial support
geijoenr [Sat, 21 Feb 2015 12:57:45 +0000 (12:57 +0000)]
msx2: move memory sizing to bootstrap
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
Alan Cox [Sat, 21 Feb 2015 00:34:17 +0000 (00:34 +0000)]
platform: standardise the offset checks for raw, and use BLKMASK
Alan Cox [Sat, 21 Feb 2015 00:32:38 +0000 (00:32 +0000)]
inode: use BLKOFF
This saves a bit of memory
Alan Cox [Sat, 21 Feb 2015 00:32:22 +0000 (00:32 +0000)]
filesys: use BLKOFF
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).
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
Will Sowerbutts [Fri, 20 Feb 2015 23:56:50 +0000 (23:56 +0000)]
README: typo
Alan Cox [Fri, 20 Feb 2015 23:55:07 +0000 (23:55 +0000)]
inode: Fix bug in direct I/O with holes
Will Sowerbutts [Fri, 20 Feb 2015 23:51:42 +0000 (23:51 +0000)]
p112: README update
Alan Cox [Fri, 20 Feb 2015 23:50:26 +0000 (23:50 +0000)]
README: update
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
Alan Cox [Fri, 20 Feb 2015 22:24:56 +0000 (22:24 +0000)]
filesys: use inline for baddev
Saves us 0x40 bytes or so
Will Sowerbutts [Fri, 20 Feb 2015 21:34:35 +0000 (21:34 +0000)]
p112: Pad floppy boot images to sector boundary
Will Sowerbutts [Fri, 20 Feb 2015 21:34:11 +0000 (21:34 +0000)]
Filesystem tools: Create tty5 through tty8 as standard
Will Sowerbutts [Fri, 20 Feb 2015 21:33:43 +0000 (21:33 +0000)]
p112: Improved ESCC, 16550A serial port support
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.
Will Sowerbutts [Fri, 20 Feb 2015 21:20:36 +0000 (21:20 +0000)]
Kernel: wakeup() now uses pwake() function
Alan Cox [Fri, 20 Feb 2015 20:45:25 +0000 (20:45 +0000)]
readonly: Initial pieces for read-only mounts
Alan Cox [Fri, 20 Feb 2015 20:43:12 +0000 (20:43 +0000)]
trs80: note you need -model 4p
Small but important detail
Alan Cox [Fri, 20 Feb 2015 20:39:45 +0000 (20:39 +0000)]
banking: fix panic uses
Alan Cox [Fri, 20 Feb 2015 20:38:47 +0000 (20:38 +0000)]
bankfixed: fix panic use
Alan Cox [Thu, 19 Feb 2015 23:22:10 +0000 (23:22 +0000)]
simple: panic on corrupted swap
Alan Cox [Thu, 19 Feb 2015 23:20:53 +0000 (23:20 +0000)]
bankfixed: adopt panic behaviour of other map types on swap bug
Alan Cox [Thu, 19 Feb 2015 23:20:35 +0000 (23:20 +0000)]
bank32k: add reminder about stack
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!
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).
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
Alan Cox [Thu, 19 Feb 2015 23:04:49 +0000 (23:04 +0000)]
kernel.h: swapmap prototypes