| Change Log - Boot Scriptor |
| 1.2.18 |
- fixed the HP e-Vectra/AMI BIOS bug (Int 0x13, ah=0x49
incompatible)
- fixed a bug in string.read_number, string.read_dec, and
string.read_hex that would cause a crash on overflow (number too
big)
|
| |
| 1.2.17ß |
- VBE check on restart removed for mainstream release
Convert 1.1:
- now converts BMP->BSI and BSI->BMP
|
| |
| 1.2.16ß |
- splash code now looks for bscript.bsi, then bscript.bmp
- show command now accepts Boot Scriptor Images
- display.set_mode now allows mode 2 (640x480)
- created BSI image display routine
Convert 1.0:
- First version of BSI conversion program created. Only allows
BMP->BSI.
|
| |
| 1.2.14ß |
- expanded scratch segment from 64kb to 128kb. Now you can only
have 320kb of modules loaded.
- increased BMP file size limit to 126kb
- moved graphics routines into the kernel
- created show command (to replace the splash command)
- command.terminate now forces return to text mode
- new api functions: display.set_mode, display.get_mode,
display.image
- startup splash functionality implemented in core.asm
|
| |
| 1.2.13ß |
- created splash module
- Changed order of initialization to cache bscript.ini before
loading the command sets, and thus before the greeting is displayed.
The goal here is to go from a black screen to script-menu with
nothing in between.
|
| |
| 1.2.12ß |
- Fixed a bug introduced in 1.2.11 that caused memdisk to not be
found, thus the command could not be used.
|
| |
| 1.2.11ß |
- Changed Isolinux's default directory to /bscript/modules/isolinux.
This should make things cleaner for users who are booting Linux
kernels.
- boot progress bar hidden by default (show using Alt or
Scroll-Lock)
- Fixed bug that caused filenames using backslashes to not be
found.
|
| |
| 1.2.9ß |
- Updated Isolinux module to HPA's 2.00 (non-prerelease) version.
|
| |
| 1.2.8ß |
- Worked around BIOS bug which resulted in a failed boot (debug
code 00400019). The bug was invalid response to Int 0x13 extensions
check (returned carry flag set even though extensions are
supported).
|
| |
| 1.2.7ß |
- Replaced verbose error messages at startup with a progress bar
and status code. You can step through the startup process by holding
down the Alt key, or turn on scroll-lock. Caps-lock and the control
key are still used to override the bscript.ini file.
|
| |
| 1.2.6ß |
- implemented cleanup functionality in kernel. Now all modules
will be notified to release their resources before Boot Scriptor
shuts down.
- Isolinux module updated to version 2.00-pre8
- fixed a bug that would cause the loader to fail if called by the
BIOS at address 0000:7C00 instead of 07C0:0000.
|
| |
| 1.2.4ß |
- non-windows commands such as boot, chain, etc. now produce error
messages when used in the script debugger.
- error message system revamped. All commands should now report
detailed error information when a script is halted (command name,
filename, line number). Error reporting mechanism is built into the
API so it should be easy for module
developers to implement.
- Isolinux module updated to Isolinux v2.00 pre-7
- startup path now successfully restored if you use the restart
command in the script debugger (DOS/Windows version)
- implemented "color h" command. Highlight command will be
deprecated.
- list command changed to allow "list commands [module number]"
and "list keys [module number]" to limit the displayed keys/commands
to those present in the specified module.
|
| |
| 1.2.3ß |
- changed calls to display.shutdown in boot, chain, isolinux, and
memdisk commands to misc.cleanup. misc.cleanup now calls
display.shutdown
- script.get_info API call implemented. This should open the door
for better error reporting when commands fail.
- Diskemu:
- implemented new function: INT 0x13/AH=0x00 Reset Disk System
- fixed memory allocation bug which was reserving more memory
than was necessary. Memory useage should be at 19kb now (18kb
buffer + <1kb code).
- changed behavior to return error code ah=1 if an Int 0x13 is
initiated for an emulated drive, and a non-emulated function is
requested. The previous behavior was to just forward the request
to the BIOS Int 0x13 handler. This could be dangerous, however,
if a user tried writing to (emulated) drive 0. Forwarding the
operation would cause the BIOS to execute the write on
*physical* drive 0, which is potentially very bad and definately
not what was intended.
- changed behavior of "Shift Emulated Drive Number" function.
Previously the function would default to setting the emulated
drive number to zero in any case where the requested drive
number was not one. Now it returns error code ah=1 (invalid
parameter) if the requested drive number is not zero or one.
- implemented new function: INT 0x13/AH=0x01 Get Status of
Last Operation
- changed function ah=2 (read disk sectors)
- now returns error ah=1 if called with al=0 (request to read
zero sectors)
- now returns error ah=1 if either bit [7-6] of cl are set
when called (those bits are reserved for hard disks)
- changed function ah=0x42 (extended read)
- returns error ah=1 if start LBA is out of range
- fixed potential bug in read commands where rep movsw was
used without a cld
- images are always jumped into at 7C00:0000 (instead of
07C0:0000).
- changed the behavior of the print command, so that centered and
right-alighned newlines return the cursor to the first column on the
line
- fixed bug in memdisk command, when an absolute path was
specified
|
| |
| 1.2.2ß |
- fixed bugs in getkey [timeout] command (due to bugs in
misc.get_key_timeout API function)
- command history increased to remember last 16 commands
|
| |
| 1.2.1ß |
- fixed bug where files that lied beyond the first sector of a
directory were inaccessible
- about more command now reports supported interrupt 0x13
extensions
- memdisk and PART.EXE must both be in the /bscript/modules
directory now
- fixed bug in print command that caused message alignments to be
off
- changes made that affect module developers (more changes to M.2
format)
- cleanup routine added to module header
- BSS_EXTRA symbol introduced
- main.get_boot_drive renamed to disc.get_boot_drive
- main. API functions renamed to misc.
- misc.cleanup function added
- changes made that affect module developers
- most lowercase identifiers in bscript.ini changed to
uppercase
- lowercase identifiers in template.asm changed to uppercase
- template updated to BSM Version 2 (M.2) format
- api call main.get_memdisk_status no longer supported
- all modules updated to M.2 format
- userkey module and command renamed to "hotkey"
- first successful debugging session with disc.asm. Able to search
for files/directories, and open, close, and read files.
- Changes made related to modules
- modules only auto-loaded from /bscript/modules directory
- all modules in the /bscript/modules directory are
auto-loaded (underscore no longer needed)
- modules renamed to have their underscores removed
- quit command moved to basic module, and it only works in the
script debugger
- new Isolinux interface module created
- Changes made to userkey command
- userkey command now accepts key names with spaces in them
- userkey command now properly ignores trailing spaces after
names and descriptions
- userkey command now changes its module name once the key has
been activated
|
| |
| 1.1.5 |
- Small cleanup in the main Boot Scriptor program
- Userkey command created
- Fixed a bug in basic.bsm in the "list keys" command where keys
that had no name were still being listed in the output.
- loadmodule command now doesn't produce the confirmation message
if the command was executed in a script and completes without error
- Delayed greeting display so that it isn't displayed until after
all modules have loaded. This should make it less likely to be
visible if a script starts with a cls/clear command.
- Control replaces num-lock as script suppression key
|
| |
| 1.1.4 |
- Boot Scriptor can now load modules from the /BSCRIPT/MODULES
directory
- Reverse directory traversal is now possible (use "cd ..")
- You can now suppress startup scripts by turning on num-lock
|
| |
| 1.1.3 |
- First non-beta release of Boot Scriptor 1.1.
|
| |
| 1.1.2ß |
- fix to set_cursor_state API call, and history module affected by
it
- block cursor implemented for insert mode
- blinking text is now disabled in display.init
|
| |
| 1.1.1ß |
- First public beta released
- online help texts updated and colorized
- new help command finished
- man command now only provides command-specific help
- Boot Scriptor can now be built with the loadmodule command
built-in. In this version, if no modules are found at startup the
built-in loadmodule command will be installed.
- print command now accepts \t in center and right aligned
messages, however the results won't be properly aligned
- print command now accepts \al, \ac, and \ar escape sequences to
change the method of alignment on the fly
- command line now understands home and end keys
- command line is now completely editable :) Line editor now
interprets the left arrow, right arrow, insert, delete, and
backspace keys. Still need to change the appearance of the cursor
when in overstrike mode.
- 'list keys' and 'list modules' added
- 'list commands' command added
- commands now split into separate modules, based on theme
- all planned M.1 (module version 1) API functions implemented
- loadmodule command created
- command history implemented (currently set to remember the last
8 commands)
- $testkey command created (debug command)
- key commands now working
- script files are now limited to 65535 bytes (but they'll be
completely cached)
- most commands that had their actions suppressed when they were
run in the script debugger are handled slightly differently. Usually
they will just silently do nothing, but commands like isolinux and
reboot will also terminate the current script when they finish.
- chdir command will no longer be supported in 1.1. "chdir" is now
the name of the api function used to change directories, while "cd"
will be used in the console by the user to change directories.
- Boot Scriptor Module (BSM) template complete
- fixed bug in memdisk command where a comment would be
interpreted as part of the filename parameter
- new console 1.1 is born :)
- api interface working
- most internal restructuring complete
|
| |
| 1.0.12 |
- fixed a bug in the boot command where the program would hang if
the device could not be read on an unconditional boot
- the beta status has been removed from Boot Scriptor 1.0.
- I'm beginning work on Boot Scriptor 1.1. Some restructuring
is planned so I wanted to separate it from 1.0 to keep new bugs
from popping up and delaying the end of the beta status.
- Many issues have been worked out since the initial release
of Boot Scriptor, and it is clear to me that there are no major
problems in the program, and no minor problems that I am aware
of right now. I'd like to thank everyone who informed me of bugs
and worked with me to sniff them out. Thanks :)
- I will continue to make bugfixes to 1.0 when bugs are found,
until 1.1 is finalized.
- The build number is now added to the end of the version
number (e.g. 1.0.12 = 1.0 build 12). This is done because some
have been confused as to whether the "b" denotes a beta version
or a build number.
- made some changes to the message displayed when the program
starts
- converted string.asm to far call format (working towards making
many of the functions in Boot Scriptor into an API)
|
| |
| 1.0ß - build 11 |
- chain command now verifies that the jump offset lies inside the
loaded file
- chain command now accepts files up to 64kb in size. This limit
will not change on a build-by-build basis, so there's no need to
check the about more command for the max loadable file size anymore.
|
| |
| 1.0ß - build 10 |
- fixed bug where if the script command was used in a script and
the new script failed to load, the program would return to the
console (correct behavior) but remain in script mode (incorrect
behavior)
- fixed bug in script command where incorrect line number would be
displayed on a call-stack fault
- fixed bug in script and type commands where comments would be
interpreted as part of the filename parameter
- script and type commands are now better about reporting disk
read errors
- the line counter that is used for reporting errors, etc. is no
longer incremented when lines longer than 255 characters are broken
into segments
- major update to the file.getline mechanism
- now allows variable sized buffers
- input and output buffer segments may be specified
- script command now caches up to 62kb at a time :)
- type command now caches as much as will fit in the program
segment :)
|
| |
| 1.0ß - build 9 |
- fixed bug where onkey wouldn't check properly for function keys
10, 11, and 12
|
| |
| 1.0ß - build 8 |
- fixed a bug in script-mode check command where <action> was not
being performed
- check command now requires a <p/f> (pass/fail) parameter in
script mode. <action> can now be executed on either a pass or fail
condition
- minor change to the about command to conserve space
|
| |
| 1.0ß - build 7 |
- about more command's output reformatted, and now also provides
the program build number, and the BIOS drive number for the booted
CD-ROM drive.
- boot command now accepts conditional argument (boot only if the
drive appears bootable). The old format is still accepted (boot
unconditionally), but with the condition added it functions as the
inverse of the check command.
- check command's [b/p] parameter now changed to <a/b/c> to be
uniform with respect to the boot command. The level of checking must
now be specified (it was optional before).
- memdisk command's filename parameter is now based in the current
directory, as opposed to the :home directory
|
| |
| 1.0ß - build 6 |
- Fixed bug where program would crash if an invalid offset
parameter was given to the chain command
- Fixed a couple more (major) bugs in the chain command that
caused lock-ups. Still unsure wtf I can't load code up into the top
of the segment which keeps causing problems for me :(
|
| |
| 1.0ß - build 5 |
- A couple of changes to the dir/ls commands:
- "File Name" changed to "File/Directory Name"
- separator added between files and directories
- Fixed rare error of user's color setting being forgotten when
certain commands would fail
- Highlight color added
- highlight command added
- some functions now take advantage of the highlight color
- added escape code /cXX (change to highlight color)
|
| |
| 1.0ß - build 4 |
- Fixed the command 'chdir :home' not working (same prob with cd)
- Various changes to the operation of the type command
- Blank lines in the file are no longer skipped
- Lines exactly 80 characters in length (or multiples of 80)
are no longer followed by a blank line
- Lines longer than 80 characters in length no longer throw
off the line count, so nothing gets pushed off the screen before
you get a chance to read it
- cd/chdir now accept paths with trailing slashes
|
| |
| 1.0ß - build 3 |
- fixed simple-but-major bug in chain command, introduced on the
26 Mar update
|
| |
| 1.0ß - build 2 |
- small bug fixed in chain command (not properly checking for
comments)
- chain command now takes an offset parameter (documentation
updated as well)
- website address added to 'about' messages
|
| |
| 1.0ß - build 1 |
- print command now takes 'l' keyword (left justify) (for
completeness)
- "insert" and "delete" descriptive keys changed to "ins" and
"del"
- "backspace" and "semicolon" descriptive keys changed to "back"
and "semi"
- color command now supports the [t/o] option, and the overscan
command is no longer supported
- online documentation updated to be more in sync with the html
docs.
- file.getline changed now uses a struct instead of a macro to
define FCB's
- file.getline now keeps track of the current line number, and is
therefore capable of skipping blank lines and returning only lines
that have at least one character on them (so that is what it does)
- you can now use the noscript keyword on the Isolinux command
line to suppress execution of startup scripts
- bugfix in script command (last line in a file was skipped)
- bugfix in reboot command (begin_output not called for warm
reboots)
- bugfixes in goto/call/return (return not saving line number, all
not handling end-of-file properly)
- "return never" variation on return command implemented
- memdisk command now translates filenames to Unix-style
- "restart noscript" variation on restart command implemented
- Dir/Ls commands work now :)
- memdisk command updated to search for memdisk and the image file
in the home directory
- all disk i/o routines should now be able to handle disk read
errors to some extent (better than nothing I guess)
- if a script file is specified on the Isolinux command line
before starting Boot Scriptor, it is now saved for execution upon
restart (before it was potentially corrupted by the FindFirst/FindNext
mechanism)
- cleaned up center and right aligned portions of the print
command to properly handle \n's at the end of a message
- "backspace", "space", "tab", and shift-function descriptive keys
added to the list
- dir and ls commands added, but they only work under Windows.
Hopefully I can get an API implementation of the DOS FindFirst/Next
functions done tomorrow :)
- man command added (help command synonym)
- file.open, file.exist, file.read, and file.getline updated to
report disk errors (zf now indicates EOF status). Now the commands
that use them need to be updated to handle disk errors properly.
- type command now lets you press escape to quit displaying a file
- chdir/cd command added, command prompt changed to reflect the
current directory
- chain command now seems to be working when files are too big to
load. I have problems with the program crashing whenever I start
writing up near the top of the segment. I don't know what the
problem is but it seems to go away if I stop at around offset
0xFF00.
- type command now creates it's file read buffer at the end of
program memory, thus shortening the .bss section and making it
possible to chain-load larger files
- pressing F3 on the command line now reproduces the previous
command entered
- chain command now loads the whole file in a single API call, as
opposed to one sector at a time
- setpos command added (script command)
- wait command added (script command)
- cls command moved into secondary command list
- check command no longer performs a default action when a drive
appears bootable and the program is in console mode. Instead it
displays a message "Drive XX appears/does not appear bootable." The
script-mode version stays unchanged.
- batch command renamed "script"
- default script file renamed from "console.ini" to "bscript.ini"
- shell command renamed to isolinux (old isolinux command thrown
out)
- secondary console command list added
- print and test commands were moved into this list
- commands in this list are not displayed in the help command
list
- command-specific help is still available, though.
- this list exists because there are some commands that aren't
really useful in console mode, yet they still work there
anyways. Moving them out of the help command list cleans things
up and makes it easier for a user to find commands that are
actually useful.
- introduced the concept of "output sessions". Just an internal
change that simplifies command-module coding and ensures uniformity
in error messages.
- after today, the program will be known as "Boot Scriptor" until
a better name presents itself.
- if caps-lock is enabled when the program starts, it goes
directly into the console (instead of loading the default script
file or processing the Isolinux command line)
- a script can be specified on the Isolinux command line that will
be run instead of the default script when the program starts
- display.decimal support function added. Now line numbers in
error messages are displayed in human-readable form :)
- tab command added (secondary console command)
- check command added
- bug fixed in chain command with files that are too big
- chain command seems to be working. A small test program was made
(chain.bin) that when chain-loaded, reports where it's located (segment:offset)
and then attempts to quit back to Isolinux. Both forward and
backward loaders report correct load locations.
- Directories and batch files cleaned up
- Windows builds now avoid problematic operations (ie. boot
command, shell command don't follow through with their actions)
- reboot command now accepts [warm/cold] option
- chain command added (broken though)
- setkey command added (user description key list needs to be
expanded)
- changes to better support comments:
- char.is_eol is now used to determine if the end of line is
reached
- string.find_space now terminates on comment characters
(semicolons)
- all commands are now "comment aware"
- if you press the F1 key at the command prompt it now displays
general help
- descriptive keys ("enter", "f1", etc.) list is now complete
- onkey command added :) Now all the pieces are in place to allow
simple menus that can accomplish useful things. :D
- blink command added
- print command now supports center and right justification
- added verbose error messages to goto/call/return commands. Line
numbers are displayed in hex, though. :(
- file.get_line now returns blank lines as zero-length strings
(instead of just skipping them). This allows error messages to
report line numbers accurately.
- memdisk command added
- keyboard input now comes from the Isolinux API
- getkey command added
- call command added
- goto command added
- comments are now allowed in batch files (use a semicolon to
comment a line)
- return command added
- restructuring:
- Console commands and Batch commands now maintain separate
command lists
- Batch commands are ignored at the console (and from help)
- quit command now does the same thing as the isolinux command
- exit command renamed to "end". To quit batch processing you
now type "end".
- batch command fixed to work in batch files. Note when you use
batch in a batch file, the call stack is cleared and the new batch
file never returns to the file that called it.
- string.read_number funtion added (reads hex or dec dependeng on
what it finds)
- added get/set default text color routines to the display library
- color command added
- shell command upgraded from debug status to permanent console
command. I figure it's flexible enough to be useful to people. Also
the command syntax has changed to specify the shell command on the
same line as the keyword.
- reboot command added
- type command added
- overscan command added
- boot command added
- print command added (along with display.message). Escape
sequences supported: \\, \n, \t, \", \c##
- about command added
- buffers moved to .bss section
- file.open, file.close, file.read functions added
- string.copy function added
- file.getline functions added
- batch command added
- console now executes the batch file "console.ini" when starting
:)
- exit and quit commands added
- isolinux command added
- cls/clear commands added
- program now operates as a command console :)
- nop command added
- restart command added
- help command added
- test command made for debug mode
- shell command made for debug mode
- command line implemented
- first successful interface with Isolinux
- preliminary work constructing display and string libraries
|
| |
| Change Log - Isolinux for Boot
Scriptor |
| 1.67-1.0.1 |
- fixed hang bug that affected images created using mkisofs
- now properly handles images built with file version numbers
|
| |
| 1.72 - 1.0ß |
- now based on Isolinux v1.72 by H. Peter Anvin
|
| |
| 1.71 - 1.0ß |
- now based on Isolinux v1.71 by H. Peter Anvin
- version updated to 1.71-1.0b
- NOT RELEASED (17 Apr bug still present)
|
| |
| 1.70 - 1.0ß |
- now based on Isolinux v1.70 by H. Peter Anvin
- version updated to 1.70-1.0b
- commenting out the MKT_BUILD define statement now results in a
completely unmodified build
- NOT RELEASED DUE TO NEW BUG IN ISOLINUX
|
| |
| 1.67 - 1.0ß |
- FindFirst and FindNext implemented in the API
- all API functions that modify 32-bit registers now do a pushad
when they begin
- API now has specialized disk I/O routines, and returns error
codes when int 0x13 fails instead of prompting the user to reboot
the computer ;)
- fixed a bug in the API when calling with an invalid function
number
- invalid function requests now return error code 1 ("function
number invalid")
- Chdir function added to the API
- yet another API bugfix, this one the carry flag wasn't being
cleared on a successful read due to getfssec wiping out the bp
register
- default load directory changed to "bscript"
- bug fixed in Open File that affected files who's size was a
multiple of 2048
- Updated to reflect changes in the loader:
- No longer necessary to hard-code the PVD at sector 16
- Loader isn't skipped anymore. It _has_ to run now.
- The boot-file checksum check is the only thing that's
skipped.
- fixed bug in Open File where caller's regisers weren't being
preserved, thus resolving the problem with the goto/call/return
commands
- Character input commands added to the API.
- fixed minor bug in the setting/clearing of flags on the stack
- API call Open File fixed to allow opening of more than one file
at a time, so now things like "type <filename>" work in batch files.
:)
- all API calls now use the caller's stack
- Read File now reads sectors, instead of lines.
- More than one file can be opened now :)
- Open File now converts backslashes to forward slashes
- fixed repne bug in API (forgot to prevent cx from terminating
the scan)
- Load/Execute API function call implemented
- Open File function call implemented (limit of one file)
- Close File function call implemented
- Read File function call implemented (reads one line at a time)
- searchdir bug fixed
- preliminary API hook established for Load/Execute function call
- getchar relocation bug fixed
- preliminary work getting Isolinux to work with programs other
than mkisofs
- primary volume descriptor hard-coded to LBA sector 16
- skip code integrity checks
|