Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #3738

ProBLOAD (a DOS 3.3 tiny extension)

From Benoit0123 <bgilon@free.fr>
Newsgroups comp.sys.apple2.programmer
Subject ProBLOAD (a DOS 3.3 tiny extension)
Date 2017-07-30 20:26 +0000
Organization Mac GUI
Message-ID <benoit0123-1501446616@macgui.com> (permalink)

Show all headers | View raw


Hello,

ProBLOAD (internal codename BRR (*)) is an attempt to patch DOS 3.3 for
providing L and B options to the BLOAD and
BRUN commands, thus mimicking those commands behavior under ProDOS BI.
ProBLOAD can be downloaded from the URL below:
http://bgilon.free.fr/apple2/ProBLOAD.zip
Two versions are available:
a) BRRmini: with the minimum version of the patch (do not try to INIT a disk
while this patch is active);
b) BRR: the full pledge with safeguard procedures (see the Merlin source
file header for details).

The zip file quoted above contains a disk image with both the relevant
source and object files (Merlin 8 v2.48) along with
a PDF assembly listing file for the full version.

Including in the .do disk image is an EXEC test file to show you what the
patch does: to use it, just issue a BRUN BRR (or
BRUN BRRMINI) followed by a EXEC TESTBRR command at Applesoft prompt.

The patch is being installed by binary running (i.e. « BRUN ») either the
BRR or the BRRmini binary files.
Obviously BRRMINI is much smaller in size than BRR in case you had to
keyboard enter it from a monitor listing.

Have fun,
Benoît

(*): BRR is a TLA for « Before Release Revision »

For those interested, below is the pseudo code of the patched BLOAD core
mechanism (but you can study the provided
source file if you prefer):

Collect the original file loading address and file length from the 4 first
bytes of the binary file.
Let AVOrg:= Address from file
Let LVOrg:= Length from file
If keyword B present Then
 O:= UserParm(B);
 S:= 4; # Position then read a range of bytes subcode
 If O > LVOrg Then Issue a RANGE ERROR
Else
 S:= 2; # Read a range of bytes subcode
 O:= 0;
EndIf
If A keyword is provided then
  P:= UserParm(A);
Else
 P:= AVOrg + O;
EndIf
If L keyword is provided on command line Then
 L:= UserParm(L);
 If L + O > LVOrg Then Issue a RANGE ERROR
Else
 L:= LVOrg - O;
End If;
If P + L > 65535 Then Issue a RANGE ERROR
Calls the FM for loading the segment of binary file
- using the subcode S (either 2 or 4), the latter involving a POSITION
- from offset(O) # only meaningful where involving a POSITION
- of length (L)
- into memory starting @ address P


-- 
Growing old is mandatory..
growing up is optional..
But the other way round is as true.

Back to comp.sys.apple2.programmer | Previous | Next — Next in thread | Find similar | Unroll thread


Thread

ProBLOAD (a DOS 3.3 tiny extension) Benoit0123 <bgilon@free.fr> - 2017-07-30 20:26 +0000
  Re: ProBLOAD (a DOS 3.3 tiny extension) Hugh Hood <hughhood@earthlink.net> - 2017-07-30 18:02 -0500
    Re: ProBLOAD (a DOS 3.3 tiny extension) Benoit0123 <bgilon@free.fr> - 2017-07-31 05:49 +0000
      Re: ProBLOAD (a DOS 3.3 tiny extension) Hugh Hood <hughhood@earthlink.net> - 2017-08-01 00:05 -0500
        Re: ProBLOAD (a DOS 3.3 tiny extension) ol.sc@web.de (Oliver Schmidt) - 2017-08-01 08:00 +0000
        Re: ProBLOAD (a DOS 3.3 tiny extension) Michael J. Mahon <mjmahon@aol.com> - 2017-08-01 13:59 -0500
          Re: ProBLOAD (a DOS 3.3 tiny extension) Hugh Hood <hughhood@earthlink.net> - 2017-08-02 01:50 -0500
            Re: ProBLOAD (a DOS 3.3 tiny extension) Michael J. Mahon <mjmahon@aol.com> - 2017-08-02 12:00 -0500
          Re: ProBLOAD (a DOS 3.3 tiny extension) Nick Westgate <nick.westgate@gmail.com> - 2017-08-02 15:22 -0700

csiph-web