B A L S Y S 

for Plus4 by S\_/S 2006

Homepage: www.cbm264.com/svs/svsindex.html


Changes between BALSYS rel 2.1 and rel. 3.0:
--------------------------------------------


NEWS:

a) New: .SAV pseudo now accepts new option A to save all the current memory (instead of only the memory from begin to LABel 0). Both options N, A can be freely entered, or only one of them, or any. Only .SAV with no parameter does check if both LAB 255 and LAB 0 exist. Messages on display are according to the selected options.
b) New massive-data menmonics:
     - SAMP to sample and store values from a Plus4 memory cell or port (frequency can be between 1 and 1/1450th second)
     - STAT to process statistics over a data area (calculate Sum, Min, Max), and optionally reduce to a coherent number of data.
     - GRAF to generate a graphic-chart from a data area (21 values). Two types of graphic are possible: bars or curve. Graphic scale is dynamically calculated.
c) New: mnemonic DISP. It allows to show any message on the 2 lines display. Features are: 3 available colors, centering, auto split words over the 2 lines, autolooping horizontal scrolling (performed in background while system is running other processes).
d) New: managing of a new IRQ line, used for scrolling text (see above mnemonic DISP).
e) New: Increased BAL memory, now it can manage till 8192 bytes! (Be informed that using too much memory amount, RAM shifting operations (after insert/delte a mnemonic) could be slower, then you are encouraged to use the right size of BAL RAM).
f) New: Registers watching, in case of non BCD codes found, system now show the address in grey color, in order to signalize this between registers numbers and address.
g) New: added Condition-Register modify to RAND mnemonic execution: 0 if random number is 0; 1 is random number is different.
h) New: added Condition-Register modify to SAMP mnemonic execution: 0 if last value sampled was 0; 1 if not.
i) New: added Condition-Register modify to STAT mnemonic execution: 0 if one or more values was 0; 1 if not.
j) New: when you press CBM-X to reset BalSys, system asks you for possible memory erasing. If you do not reply Y, system will reset all but Balsys memory will maintain its contents (program and/or data).
k) New: .DIR pseudo is now able to select filename pattern (wildcard * is allowed; ? is not). Wildcard * can even be omitted
l) New: Online helper. This is acomplished by pseudo .? or by Error routine (see next paragraph). Pseudo .? allows to ask help screens to:
	1) Any mnemonic (example: .? BS)
	2) Any Pseudo command (example: .? TSL)
	3) Any error code (example: .? E30 to invoke helpscreen for Errror code N 30)
	4) Any helpfile record (example: .? 126)
Helper screen is overlayed over the normal BalSys screen and does remain there. This in order to help user to understand and fix the problem. The output window (paper simulated) is conseguentely reduced, in this way programs and commands will be able to work even with helpscreen open. The registers watching tool reduces itself to first 4 Registers, in order to not overlay the helpscreen, and so this debug tool works too. The console lights under the helpscreen are not updated in order to not corrupt the helpscreen.
An open helpscreen can be closed, with restore of old content, simply by pressing pound-key () or [Canc] on a PC keyboard. All standard features are restored.
m) New: Device icon is increased with an "H" if the helper file is online and ready to use. Enabling and disabling of Help system is automatic.
n) New: online help can be invoked in case of error, by hitting H while in error status. Error helpscreen does remain viewable even after the error status is cleared. To erase helpscreen hit  (see previous paragraph).
o) New: Added possibility to load an invisible file (see mnemonic FILE special feature), by calling it as MC-0.
p) New: advanced setting in .SET pseudo command by hitting [K] you can set/cancel the automatic background text scroll started by new mnemonic DISP.
q) New: Balsys can be loaded from any device unit (for example disk 8, or 9 etc.). All following selfconfiguring operations will consider that unit as default for I/O. Be warned about PREFERENCES.BAL data: if this file is present, system will use its info to update current configuration.




MODIFIES:

a) Modify: Better error message M_ERR by special font, in case of attempt to list codes not used as mnemonics
b) Modify: .PX pseudo now shows hex couples with Reverse/NonReverse video attributes in order to obtain a better readablity.
c) Modify: .SET menu, better readablity.
d) Modify: when pressed ? when in error status, system shows, on alternative display, the current values of PC, SC, Stack, Condition Code, and just executed mnemonic. Then it automatically executes the pseudo .PNT in order to show all other system/debug settings.
e) Modify: .PNT now shows 4 hex ciphers for System-flags in order to accomplish the ScrollingText new feature. Furthermore the active IRQ list now shows SCRL if scrolling is on.
f) Modify: The new lenght of any BAL mnemnic/pseudo argument is now extended to a max of 80 characters (before it was limited to 39)
g) Modify: .DST pseudo now can accept values till 8192, allowing to clear the whole BAL memory if desired.
h) Modify: Mnemonics NL and NLF work in the same way, that is doing newline+return on screen
i) Modify: .SAV pseudo does not check LAB 255 existance if parameter N is entered. It does not check LAB 0 existance if parameter A is entered.
j) Modified the output of .SVS pseudo in order to show current version and build too, of the package.
k) Modified SAMP mnemonic (after beta 1). Now it accepts 2 input parameters: first one sets the Register with the frequency of sampling (how many samplings a second); the second parameter sets the Label where is stored the address of the cell/port to test. If first supplied parameter is zero, processing is done at the fastest speed (1450/s) without to care the content of Register# 0. Registers from #1 to #15 can set a frequency from 1/s to 700/s.
l) Modified the .SVS pseudo commands. Now it shows also the current version and build of BalSys package.
m) Modify: During bidirectional listing (by CRSR-UP CRSR-DOWN) system is now able to correctly skip backward a comment line without to decode its internal bytes. This is performed only if you execute reverse list (CRSR-UP) after a comment was shown or max one mnemonic below.
n) Modify: Speeded up (like hell) the execution of pseudos .MNE and .PSE


FIXES:

a) Fix: exit code on partition command (pseudo .PAR) was not checked from the error channel.
b) Fix: While using pseudo command .SAV the possible message SELFCONFIG NOT SAVED was shown partially corrupted.
c) Fix: Bug on TIME mnemonic, when a wrong datum was entered as start time.
d) Fix: Bug just after message Filename must begin MC- when entered an incorrect filename.
e) Fix: nomore crash when digit more than 255 characters in direct mode before the [Return]. Now system accepts the first 253 and warns with a message.
f) Fix: .DST pseudo erased a byte more.
g) Fix: comment inserting features had a bug, allowing comments even 32K long (!). Now the maximum lenght of a comment is 252 characters.
h) Fix: centering processing on right display worked like line lenght was 12 characters instead of 13. See test program DISPLAY.USR and see the 3rd message shown.
i) Fix: bug on .DIR pseudo. With some D64 images, directory listing relinked itself in an endless loop.
j) Fixed a bug inside the Label-table building: it caused a delay in the process.
k) Fixed a bug in the cold-start routine: Sometimes it produced LAB 255 NOT FOUND or OUT RANGE VALUE errors during first program run.
l) Fixed a problem when current memory amount was lower than address of LAB 255 of just loaded program. Label 255 was not found and system went to error.
m) Fix: in Service-mode, when inserting LAB mnemonics, checking for existing label was performed on current labels-table without verifying its integrity. This caused false duplicate label warnings. Now system clears labels-table when resetted.
n) Fix: Reinserted the labels array initialization at BalSys start (After it was cancelled, system sometimes output wrong warnings about existing labels at address 0).
o) Fix: .TSL pseudo default (255) sometimes worked as defualt=0.
