Значок ресурса

Betafix 2

Нет прав на скачивание
🎮 Запустить в эмуляторе

Автор: Miles Kinloch
Год: 1998
Издатели: Outlet
Языки: 🇬🇧 Английский
Требования: 🖥️ ZX Spectrum 48K

Ссылки:
Страница на ZXArt
Страница на World Of Spectrum
Страница на Spectrum Computing

Скриншоты:
Betafix2-OPEN-1.png
Betafix2-RUN-1.png
Betafix2.gif


OUTLET'S EXTRA =================
I N S T R U C T I O N S
================================

BETAFIX 2
BETADOS BUG FIXES
AND ENHANCEMENTS
By Miles Kinloch
-----------------

The next program, "BETAFIX2",
cures the following bugs in
Betados, and also adds a couple
of new features...

BUGS

1. OPEN # command. If you omit
the IN or OUT at the end, the
DOS will not accept the syntax
if there is another statement
following in the same line, i.e.
if a colon is the next character
after the command. (This bug
also affects G+DOS.)

2. FORMAT command. There are two
bugs here:

a) The special form FORMAT
d1,n etc.ignores the drive
specified and just formats
the last drive used.

b) The form FORMAT d* will
not pass syntax.

3. Command codes. These are
perhaps the most serious of all
the Betados bugs, as they affect
many commercial programs which
call the DOS from machine code.
Once the command codes are fixed
the great majority of such soft-
ware will then run with Betados
without any problems.

A few examples are the +D
converted version of Tasword
128, Hackers' Workbench (S.D.
Software), Profile (Glensoft),
Disc-Kit, +D converted Art
Studio and several of Better-
bytes' utilities.

Seven codes altogether are
faulty, as follows...

a) Codes 52 and 53. The
problem here is the alternate HL
register pair being corrupted,
resulting in a crash after
returning to BASIC from a USR
call which involves these
commands.

b) Code 56. The routine
called by RST 8 DB 56 has not
been changed from the one in +D
ROM which G+DOS uses. This is
fine with Betados too, except
for disks that have been form-
atted for more than 80 files:
such disks would invariably be
corrupted as a result. (Code 56
serves to close a file from
machine code, i.e. to create an
entry for it in the directory.)

c) Code 59. Again, the orig-
inal G+DOS routine is called,
with the result that on disks
with extended directories, any
files beyond the first 80 cannot
be found. (The purpose of Code
59 is to search for a file.)

d) Code 67. This is the code
used to CAT a disk, and is
fatally flawed. Any attempt to
use it will almost always crash
the Spectrum and may possibly
corrupt the DOS at the same time

e) Codes 68 and 69. The equi-
valents, in fact, of SAVE @ and
LOAD @. These return signalling
a DOS error, regardless of
whether there has actually been
one. (See also No. 4).

4. LOAD @/SAVE @ commands (and
command code equivalents). If an
error during a LOAD @ or SAVE @,
e.g. write-protected disk, it
results in a wrong value being
left in one of the DOS system
variables. If you then type RUN
to re-boot the DOS, the process
will stop prematurely with an
'END of file' message. Also, if
you try to make a snapshot, it
will be improperly saved and run
an additional risk of corrupting
other files on the disk. (Typing
CLEAR # resets the variable, but
this is hardly an ideal solution
to the problem,eg,if any streams
were open at the time or if the
error had come about through the
command codes and an exit to
BASIC was impossible etc.).

5. SAVE @ command. There is a
problem with the routine which
spins the drive for about a
second to ensure the motor is up
to speed before it writes the
sector. It takes no account of
the drive specified, merely
spinning the motor of the last
drive used. This is fine if you
happen to have a disk in both
drives, otherwise the last drive
will spin indefinitely until a
disk is inserted in it.

6. Use of a capital 'D' in SAVE
and ERASE commands. Contrary to
appearances, the auto-CAT which
occurred with G+DOS when using
the capital 'D', has not in fact
been fully disabled in Betados.
The CAT actually still takes
place: it's just that you can't
see it as its stream is altered
to make it CAT to the BASIC
workspace instead of the screen.
In these circumstances no checks
are made on the amount of work
space memory available etc.,and
this can sometimes cause prob-
lems, especially if an INPUT has
been used previously as this
also uses the workspace.

7. MOVE command. The form MOVE
#s TO d1"name" (not documented
in the +D manual) has two
serious bugs. The first is that
the directory entry created for
the new file, although it will
exist, won't be visible in the
catalogue.

The second problem arises if,
when using this form of the MOVE
command,the filename has already
been used. If you then type 'n'
at the Overwrite prompt and do
CLEAR # or CLOSE #* afterwards,
this will lock up the Spectrum.
This is because some pointers
won't have been reset, and CLEAR
# or CLOSE #* then becomes
'confused' about how much memory
to reclaim(This bug also affects
G+DOS.)

8. Betados FN calls, e.g. DEF FN
s(x)=USR 8 etc.Potentially,there
could be a problem with the 128K
Editor if these were typed as
direct commands, particularly
the ones concerned with opentype
files, i.e. FN e, FN l and FN p.
The 128K Editor is fussy about
the value of the IX register
pair (or rather, to be more
precise, the contents of (IX+1)
if non-zero) when it's in the
process of editing a line. The
latter three functions use IX
themselves so this should really
be set correctly afterwards for
100% safety. For further details
about this IX problem, see the
article 'Plus D Alters' in For-
mat magazine, March 1988 (Vol.
1, No. 8), as this was something
which also affected the previous
DOS (i.e. the version before
G+DOS 2a).

9. Tape SAVE command. If a null
filename or one longer than 10
characters is used, you get...
'Nonsense in BASIC' instead of
'Invalid file name' with a +D
attached. A minor bug, but one
that is nevertheless very easily
put right.

10.Printing to random access
files. There are two bugs here:

a) The Betados manual states
that when you INPUT from a file
opened RND, text or control
characters coming before the
input variable will be ignored,
e.g. INPUT #4;"text";a$.
However, this only holds true
for 48K mode; in 128 BASIC, such
text will still be written to
the file regardless.
b) Using colours in a PRINT
command which sends data to the
file can cause an error.Embedded
control codes are OK, but if you
use the PAPER, INK etc. tokens
in the PRINT statement, e.g.
PRINT #4;INK 5; "text", this can
generate a 'Nonsense in BASIC'
report.

11.When the disk directory con-
tains more than 255 entries,
file position referencing errors
occur after the 255th file, with
the numbering sequence starting
again from 0. For example, on a
disk with 300 files, the 256th
file is numbered 0, the 257th
numbered 1 etc.This affects both
long and short catalogues, and
also the LOAD pn command.
With the short catalogue, such a
disk will show only the first 44
files, which is the same as the
number of out-of-sequence items
at the end.

12.If there is too little memory
for the new faster short CAT,
possible problems can arise
where the disk is formatted for
more than 80 files. The routine
first refers to the existing
value in DTKS, the POKE @124
system variable containing the
number of tracks in the catal-
ogue, to calculate the workspace
needed.However,it does so before
updating the system variable for
the current disk, and this could
lead to the memory requirement
being underestimated if a disk
with a smaller directory had
been used previously. The result
could be an error or crash.

ENHANCEMENTS

1. New command. You can now use
LOAD dn (or SAVE dn) on its own,
which gives the opportunity to
change the current drive without
actually having to use the drive
to do so. This can be very handy
before LOAD pn, for instance.

2. SAVE...TO... This command has
been improved with regard to
copying between different drives
The +D system suffers from a
shortcoming in that it only
keeps note of the track register
(drive head position) for one
drive. This can sometimes lead
to problems, especially when
copying long files such as 128K
snapshots which can't be done in
a single 'pass', as the system
becomes 'confused' about the
true position of the head.

In extreme cases, it can even
fail altogether and stop with an
error report. Betafix patches
the SAVE...TO... routines such
that separate records are kept
for the track registers of both
drives, conferring not only much
greater reliability but also an
increase in speed, typically of
about 15%.

3. OPEN-3-OUT. This allows the
DOS to use stream 3 for opentype
files, enabling certain programs
to send their printer output to
a disk file, which will then be
capable of producing a hard copy
(using POKE @6,1 and then MOVE
dn"name" TO #3) independently of
the original software.To re-open
stream 3 to the printer after
closing the file,use OPEN #3,"p"

Miles Kinloch
Автор
Verter_bot
Загрузки
0
Просмотры
13
Расширение
zip
Размер
7.4 КБ
Хэш
bd0f97a7604bbd5c057382dcc6e9e4d6
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх