Re: Source code CBM 8032

From: Spiro Trikaliotis <ml-cbmhackers_at_trikaliotis.net>
Date: Tue, 10 Oct 2017 22:09:24 +0200
Message-ID: <20171010200924.GB7756@hermes.local.trikaliotis.net>
Hello Ruud,

* On Tue, Oct 10, 2017 at 08:27:33PM +0200 Ruud@Baltissen.org wrote:
 
> Not everything has been commented. The header specifies some special 
> cases. I would be very pleased if someone at least could explain the 
> parts marked with '???'. 

I only looked for the '???' and I looked what might be obvious to me:

After GetVariable:
        The C64/VIC20 does something similar, but the test is more
        sophisticated. On the C64, it checks if the string pointer (!)
        is in the range between BASIC START and BASIC END.
        Here, it only checks if the pointer is below $8B00. This might
        be caused by the memory map of the 8032, which I do not have at
        the moment.

A_DDA8/A_DDAF:
        Isn't $91 the token for ON (not TO is stated on A_DDA8)?
        And $A4 is the tken for TO.

Between A_E15B and A_E169: Wild guess: If I remember right, on the IEC
       machines (C64/VIC20), if you read past the end of the file (EOI),
       you read the character $DE. Could this check by a "poor man's"
       check for EOI?

A_E408: Most probably, a delay in the scroll like pressing CTRL on the
        C64? For this, it checks if the right key is pressed (lda/cmp
        #$f8). If not, it branches to A_E420. If it is pressed, it
        delays the output


SendByteIEEE: This is the "delayed" send. It is done on the C64/VIC20
              for IEC, too.
              The EOI must be signalled *before* the last byte is sent.
              Thus, sending a char means this byte is buffered. If you
              try to send the next char, the buffered char is send, and
              the "new" char is buffered.
              This test for "FlgStoredChar" does the following:
              If FlgStoredChar is 0, then the bit/bmi fails. Thus, dec
              FlgStoredChar sets FlgStoredChar to $FF, that is, bit 7
              (negative!) to 1. Thus, in the next clal, bit
              FlgStoredChar/bmi will branch, and the stored char is send
              out.

Between bcCLOSE4 and A_F315: cmp #$62: It compares the secondary address
              of the tape. If you open the tape with "OPEN 1,0,2", it
              means that you want to write an "end of tape" marker on
              the tape after the CLOSE 1.
              This is tested here.

TblDay: 24 h + 1/60, because it is tested AFTER the clock has been
        incremented. If it is the same, the value is set back to 0.

A_F818 to A_F828: If the secondary address is not 0, the file was to be
                  opened with secondary address 1, that is, for reading.
                  In this case, do not write, but set NOT OUTPUT FILE.

BTW: Do you want help on the things that are marked with two ?? only? ;)

Regards,
Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/

       Message was sent through the cbm-hackers mailing list
Received on 2017-10-10 21:02:23

Archive generated by hypermail 2.2.0.