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 listReceived on 2017-10-10 21:02:23
Archive generated by hypermail 2.2.0.