Jordan K. Hubbard
335edb957d
Eliminate much code cruft by extending simple file I/O API to include
...
fopen and fclose.
1998-11-07 06:18:06 +00:00
Jordan K. Hubbard
ed82a24960
Eliminate much code cruft by extending simple file I/O API to include
...
fopen and fclose. Also look for /boot/boot.4th now and, if found,
load its contents.
1998-11-07 06:18:00 +00:00
Jordan K. Hubbard
d6a0c2b58d
Take init out of here - it's a layering violation.
1998-11-07 05:01:25 +00:00
Jordan K. Hubbard
c412a7ae32
Don't have debugging on by default - it makes testing annoying. :)
1998-11-07 03:44:10 +00:00
Jordan K. Hubbard
65e7b066b3
OK, fload/fexec work properly when both compiling and interpreting
...
now. Gack.
1998-11-07 01:56:06 +00:00
Jordan K. Hubbard
ebc4b7c4fb
switch words to default mode.
1998-11-06 23:50:08 +00:00
Jordan K. Hubbard
e1266cedab
Submit better fix to the prompt bug.
1998-11-06 23:22:26 +00:00
Jordan K. Hubbard
f476d38a01
Make fexists/fload work with existing string literals instead. Doing
...
my own string literal handling is just too wonky.
1998-11-06 23:20:32 +00:00
Jordan K. Hubbard
c6c128e122
Argh, I had this right[er] before. More commits to follow.
1998-11-06 19:17:03 +00:00
Jordan K. Hubbard
11adc0d65e
Use proper literal names.
1998-11-06 04:01:32 +00:00
Mike Smith
8a34f8ba88
Ack. Create parseable command tail properly, and eat args out of the TIB.
1998-11-06 03:50:44 +00:00
Mike Smith
8190a019a5
Don't not print the prompt string; not doing this has funny side-effects.
...
Make the prompt an empty string instead.
1998-11-06 03:47:08 +00:00
Mike Smith
84924924e1
Don't use the poxy vmGetString interface (who uses counted strings these
...
days?), get the input buffer ourselves. Add some debugging code.
1998-11-06 03:45:36 +00:00
Robert Nordier
548bf5dd17
Make use of BIOS int 0x13 extensions configurable, and disabled
...
by default.
1998-11-05 20:52:25 +00:00
Jordan K. Hubbard
82f35547c9
Remember a bit more of my forth and do:
...
o Add fexists word to check for the presence of a file
o make fexists and fload immediate words which DTRT both interpreted
and compiled (doh!)
o add an init word which gets run at bootstrapping time to do extra
post-coldload initialization (in the default implementation, we
look for /boot/boot.4th and load it if found).
1998-11-05 08:39:43 +00:00
Jordan K. Hubbard
5eb1c6c169
1. rebuild all elements of testmain properly for safety.
...
2. add fload and key prims for doing simple file and terminal I/O, respectively
1998-11-05 07:27:55 +00:00
Mike Smith
875e602afe
Explicitly invoke perl to run the softwords.pl script in case the
...
script is not executable.
Submitted by: Don Lewis <Don.Lewis@tsc.tdk.com>
1998-11-05 04:54:05 +00:00
Mike Smith
2cd5cac4ec
Improve the assertion testing for successful softword compilation.
...
The excessive use of assert() vs. robust error checking is annoying.
1998-11-04 07:07:18 +00:00
Mike Smith
95bd40d634
Turn off -g accidentally left in from testing.
1998-11-04 03:42:36 +00:00
Mike Smith
4ce140ae69
Fix includes; we were still pulling in <stdlib.h> in some places.
...
Support building a standalone interpreter with 'make testmain', remove
win32 and egregious gets() in testmain.c
1998-11-04 03:42:16 +00:00
Mike Smith
66683792a4
Use a smaller default dictionary to waste less space.
1998-11-04 03:41:09 +00:00
Jordan K. Hubbard
12b2c0d82e
Respect ${.OBJDIR} properly when looking for libficl.a
1998-11-04 02:36:18 +00:00
Mike Smith
48fe834fda
Add required parts for BootForth building (currently disabled and
...
untested). Only suitable for i386 at the moment, as we are missing
setjmp/longjmp on the Alpha.
1998-11-04 00:30:47 +00:00
Mike Smith
cbb5c0dd58
Make this work in the libstand environment; don't use stdio/stdlib headers.
1998-11-04 00:29:33 +00:00
Mike Smith
c7db92c026
Add BootForth hooks; if BOOT_FORTH is defined, pass every line read
...
to the Forth interpreter. Instantiate all of our inbuilt commands
as Forth words, and handle them being called from there.
Add my copyright to the bcache module (oops).
1998-11-04 00:29:01 +00:00
Mike Smith
631746a171
Include "bootstrap.h" to get a definition for bcache_devdata.
...
Submitted by: jkh
1998-11-03 23:44:49 +00:00
Mike Smith
780ebb4b00
Add the Ficl (Forth Inspired Command Language) interpreter. If all goes well,
...
this will allow us to manage bloat in the loader by using a bytecoded HLL
rather than lots of C code. It also offers an opportunity for vendors
or others with special applications to significantly customise the boot
process without having to commit to a divergent code branch.
This early commit is to allow others to experiment with the most effective
mechanisms for integrating FICL with the loader as it currently stands.
Ficl is distributed with the following license conditions:
"Ficl is freeware. Use it in any way that you like, with the understanding
that the code is not supported."
All source files contain authorship attributions.
Obtained from: John Sadler (john_sadler@alum.mit.edu )
1998-11-03 06:11:35 +00:00
Mike Smith
ddfd18e255
Ok, the entry aging algorithm sucked; 1s time resolution is not enough for
...
LRU. Use a 31-bit counter instead. If we decide to do heavy I/O through
the bootloader this will have to be revisited.
1998-11-02 23:50:59 +00:00
Mike Smith
af1f6e0673
Implement a simple LRU block cache. By default this is initialised to 16k,
...
and will bypass transfers for more than 8k. Blocks are invalidated after
2 seconds, so removable media should not confuse the cache.
The 8k threshold is a compromise; all UFS transfers performed by
libstand are 8k or less, so large file reads thrash the cache.
However many filesystem metadata operations are also performed using
8k blocks, so using a lower threshold gives poor performance.
Those of you with an eye for cache algorithms are welcome to tell me
how badly this one sucks; you can start with the 'bcachestats' command
which will print the contents of the cache and access statistics.
1998-11-02 23:28:11 +00:00
Robert Nordier
3d04f230e5
Revise a few comments.
1998-11-02 17:53:08 +00:00
Mike Smith
3c0efe5da1
Standardise on ';' as a component separator; it seems to be a little more
...
common than ','.
1998-11-02 16:55:57 +00:00
Robert Nordier
3b1bd5ae35
Ignore, rather than emulate, an i386 'hlt' instruction (though for
...
most practical purposes, this should be indistinguishable from a
more strictly correct approach).
Feedback and testing: msmith
1998-11-01 13:52:52 +00:00
Doug Rabson
06feb69276
* Extend the memory available for the heap from 256k to 512k.
...
* Embed the stack into the bss section for loader and netboot. This
is required for netboot since otherwise the stack would be inside our
heap.
* Install loader and netboot in /boot by default.
* Fix getbootfile so that it searches for a ',' instead of a ';'
when terminating the filename.
1998-10-31 17:12:32 +00:00
Mike Smith
dc8be6a8f5
- Add a new command 'lsdev' to list devices which might be likely to host
...
filesystems.
- New 'help' command and data in the help.* files (not yet installed),
provides topic and subtopic help, indexes, etc.
- Don't crash if the user tries to set an invalid console. Be helpful
instead.
- Expand tabs (badly) on the i386 video console.
- Some minor cosmetic changes.
1998-10-31 02:53:12 +00:00
Luoqi Chen
36159e3d1e
Fix an uninitialized variable in the `dangerously dedicated disk' case.
1998-10-30 07:15:52 +00:00
Mike Smith
4c1a7a5a8f
Make the BTX loader much more quiet about what it's doing. This removes
...
most of the "what the (*^&%(*^ was that?" stuff that normally flies by.
1998-10-30 00:11:35 +00:00
Mike Smith
8879e57b3e
Simplify the "is a character ready" test, so that we don't return a false
...
negative for keypresses with zero ascii values. This is in line with the
comconsole test, rather than being more ambitious.
Submitted by: rnordier
1998-10-28 19:24:15 +00:00
Robert Nordier
9244e1a412
Avoid interruptions while talking to keyboard controller.
1998-10-27 20:19:24 +00:00
Robert Nordier
c589107988
biosboot compatibility fix: change behavior of backspace in getstr().
...
Noticed by: abial
Optimize away a few bytes to make space for the above.
1998-10-27 20:16:36 +00:00
Mike Smith
b6542d2e4f
Reserve some space for the stack in the region we recover from the initial
...
bootloader.
Submitted by: dfr
1998-10-24 00:31:21 +00:00
Mike Smith
0cae710c49
Clean the ${BASE}.sym file as well.
1998-10-23 22:32:27 +00:00
Mike Smith
4558ccdf6f
Remove a debugging copy of offsetof() that snuck in.
1998-10-23 22:30:52 +00:00
Mike Smith
c93cd32637
Enable the PCI BIOS PnP enumerator.
1998-10-23 22:29:19 +00:00
Mike Smith
a1c0b1c5c5
PnP enumerator using the PCI BIOS. This is needlessly complex due to the
...
lack of a simple "enumerate all PCI devices" function.
1998-10-23 22:29:08 +00:00
Mike Smith
8d35fb65a0
PnP BIOS enumerator; mostly useful for hunting PnP devices that are supported
...
by the system BIOS rather than supporting ISA PnP.
1998-10-22 20:25:06 +00:00
Mike Smith
051837da04
Add a dependancy on the BTX crt0 object
...
Add the biospnp handler to the pnp handler array
Drop some old debugging code
1998-10-22 20:23:58 +00:00
Mike Smith
13aedae3d7
Add biospnp.c
1998-10-22 20:23:15 +00:00
Mike Smith
f41c619d3d
Pop the return address off the stack before making a V86_CALLF call;
...
this allows us to implement what look like C function calls from user
space "directly" to v86 mode code. (Used for calling the PnP BIOS)
1998-10-22 20:22:07 +00:00
Mike Smith
60edbabff6
Export an interface for presetting the ISA PnP read port address.
...
Make the EISA ID formatter generally available
1998-10-22 20:20:51 +00:00
Mike Smith
b259863db2
Bye-bye setdefs.
1998-10-21 20:11:03 +00:00