[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Prodos external command oddness



"Laine Houghton" <laine@intergate.com> wrote in message news:<102i52ilj2od198@corp.supernews.com>...
> 
> 
> Not sure what you mean Mike.
> Those are pointers in the global page that point  to a pathname buffer.
> 
> BE6C/6D VPATH1   ;Pathname 1 buffer
> BE6E/6F  VPATH2   ;Pathname 2 buffer  (RENAME)
> 
> Basic system itself will change those pointers as it goes about its
> business.

The parameter tables for the MLI calls start at BEA0. The tables
include entries for the pathname buffer, if appropriate for the call.
So if the pathname is in a non-standard location, then you would
change it in the parameter blocks. Since the pathname buffer can move
in various versions of basic (and the primary did) a program would
need to know what to reset it to. The secondary buffer never did move,
and it is 0280 in the three versions of Basic.System that I have
access to.

Anyway, the point is, they acted conservatively and stored the values
from BE6C/D in a safe location, then instead of putting them back,
from storage, banged in a BCBC in the read/write parameter block,
causing calamity when you try to use the routine with different
version of Basic .System where the pathname buffer is not at BCBC.
(it's at BC17 in Basic.system 1.5, BB something in 1.4.1)