[Coco] Color Forth Assistance Request

Stephen Pereira spereira1952 at comcast.net
Sun Jan 18 08:43:37 EST 2015


Thanks very much for the added explanations, Art!

smp
--
Stephen M. Pereira
Bedford, NH  03110
KB1SXE


> On Jan 17, 2015, at 10:18 PM, Arthur Flexser <flexser at fiu.edu> wrote:
> 
> The stuff between $CF68 and $CF7E is for parsing the remainder of the line
> once the SAVE token is encountered.  Jumping in at $CF7E bypasses that and
> assumes that it is already known that you are saving a binary file.
> 
> Art
> 
> On Sat, Jan 17, 2015 at 8:17 PM, Stephen Pereira <spereira1952 at comcast.net>
> wrote:
> 
>> Hello again, Art,
>> 
>> I’m looking at “Disk Basic Unraveled.”  I shows a disassembly of Disk
>> Basic version 1.1, and it shows the SAVEM command at $CF68 and the LOADM
>> command at $CFC1.
>> 
>> I guess my confusion is with your statement that SAVEM is at $CF7E…
>> 
>> smp
>> --
>> Stephen M. Pereira
>> Bedford, NH  03110
>> KB1SXE
>> 
>> 
>>> On Jan 17, 2015, at 7:30 PM, Arthur Flexser <flexser at fiu.edu> wrote:
>>> 
>>> I found a snatch of old code of mine that contains enough information
>> that
>>> I can give you something with more detail.  It doesn't exactly use the
>>> method of the previous message, but instead jumps directly into the
>>> SAVEM command (to $CF7E in Disk Basic 1.1) after storing the appropriate
>>> information to the file name buffer (8 bytes at $94C) and extension
>> buffer
>>> (3 bytes at $954).  It appears that if you then jump to $CF7E with the
>>> registers set as below and pushed onto the stack with a single PSHS
>>> instruction, everything should work:
>>> 
>>> Y = start address - 1
>>> X = end address
>>> D = exec address
>>> U = address in your program where you want to resume execution after
>>> the       savem happens
>>> 
>>> Art
>>> 
>>> 
>>> 
>>> On Sat, Jan 17, 2015 at 2:02 PM, Arthur Flexser <flexser at fiu.edu> wrote:
>>> 
>>>> One approach to using Basic operations from a machine-language program
>> is
>>>> to set up a buffer containing the command as it would be typed in to
>> Basic,
>>>> possibly already tokenized (i.e., use a "save" token byte instead of
>> Ascii
>>>> SAVE), and then point Basic to this buffer and have it execute the
>>>> command.  There was an article in Rainbow with examples;  maybe someone
>> can
>>>> provide the reference.  Pointing Basic to the buffer essentially
>> involves
>>>> putting its address into $00A6, the location of Basic's parse pointer.
>>>> 
>>>> Art
>>>> 
>>>> On Sat, Jan 17, 2015 at 12:57 PM, Stephen Pereira <
>>>> spereira1952 at comcast.net> wrote:
>>>> 
>>>>> Hello again, all,
>>>>> 
>>>>> As you know from my postings about Color Forth, I have been successful
>>>>> with typing in the source code for the Color Forth nucleus (thanks
>> again,
>>>>> Brett, for your assistance finding the last few typos!).  With this,
>> the
>>>>> ORG of the assembly code can be changed to allow Color Forth to be
>> loaded
>>>>> from DECB (HDBDOS in my case) without overwriting any of the disk
>>>>> capabilities.  I also have devised a method to pre-load the code for 1
>> to 8
>>>>> Forth screens of Forth code that can be subsequently loaded into Color
>>>>> Forth to add in more of the original capability, or the editor, etc.
>>>>> 
>>>>> Now, I would like to add in a simple method for loading and saving a
>> set
>>>>> of Forth screens from disk.  What I would like to be able to do is
>> perform
>>>>> LOADM"SCRN1TO8" and SAVEM"SCRN1TO8" &H2380 &H43A0 &H5979 from inside
>> Color
>>>>> Forth.
>>>>> 
>>>>> I have taken a look at "Disk Basic Unravelled," and I found memory
>>>>> locations like Disk File Name Buffer (DNAMBF) and Disk File Extension
>> Name
>>>>> Buffer (DEXTBF) which look like places that I could load the file name
>> and
>>>>> extension.  I also found the routine at LC48D which is commented as
>> "Open
>>>>> Disk File For Read or Write."
>>>>> 
>>>>> However, I have never written my own code to patch into the DECB system
>>>>> before, so I am skittish, to say the least.
>>>>> 
>>>>> What I would like to do is write my own code to load the file name and
>>>>> extension, the starting and ending addresses for the memory block that
>> I
>>>>> would like to save, and call a routine to perform a SAVEM command as
>> if it
>>>>> had come in from the Basic command line.  Similarly, I would like to
>> write
>>>>> the code to load the file name and extension, and call a routine to
>> perform
>>>>> a LOADM command as if it had come in from the Basic command line.
>>>>> 
>>>>> Can anyone offer me some advice on where to look to pick up on the
>>>>> specific things that I would have to do in my code to accomplish these
>>>>> operations?
>>>>> 
>>>>> Thanks very much, in advance, for your attention and advice.
>>>>> 
>>>>> smp
>>>>> --
>>>>> Stephen M. Pereira
>>>>> Bedford, NH  03110
>>>>> KB1SXE
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Coco mailing list
>>>>> Coco at maltedmedia.com
>>>>> https://pairlist5.pair.net/mailman/listinfo/coco
>>>>> 
>>>> 
>>>> 
>>> 
>>> --
>>> Coco mailing list
>>> Coco at maltedmedia.com
>>> https://pairlist5.pair.net/mailman/listinfo/coco
>> 
>> 
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> https://pairlist5.pair.net/mailman/listinfo/coco
>> 
> 
> -- 
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco



More information about the Coco mailing list