(10-17-2022 04:16 PM)brouhaha Wrote: You found that the 0100 instruction senses that too? Jacques and I didn't find anything like that. Nonpareil seems to support the card reader just fine with 0100 only sensing buffer ready in the way you described.
Maybe the flag doesn't go true unless both the head switch is closed and the buffer is ready?
It might merit some more investigation on my part.
The CRC100 and CRC1700 code is also executed during read/write without checking the status flag. I'm still not sure what the CRC is doing in these cases.
Edit:
This is a list of all CRC executions for a card write. Some do not test the s3 flag
Code:
$0087 170 CRC 560 card in test
$0088 0D4 if s3 = 1
$0078 340 CRC 1500
$0079 0D4 if s3 = 1
$007C 0C0 CRC 300
$007D 0D4 if s3 = 1
$0087 170 CRC 560
$0088 0D4 if s3 = 1
$0078 340 CRC 1500
$0079 0D4 if s3 = 1
$007C 0C0 CRC 300
$007D 0D4 if s3 = 1
$0087 170 CRC 560
$0088 0D4 if s3 = 1
$0078 340 CRC 1500
$0079 0D4 if s3 = 1
$007C 0C0 CRC 300
$007D 0D4 if s3 = 1
$0087 170 CRC 560
$0088 0D4 if s3 = 1
$168F 2C0 CRC 1300
$1690 0DC if s3 = 0
$1693 1F0 CRC 760
$161A 1B0 CRC 660
$16E2 3C0 CRC 1700 <<< no flag test
$16E3 0B0 CRC 260
$16E4 040 CRC 100 <<< no flag test
$16E7 040 CRC 100 <<< no flag test
$167A 040 CRC 100
$167B 0D4 if s3 = 1
$1688 3C0 CRC 1700
$1689 0D4 if s3 = 1
$16ED 040 CRC 100 <<< no flag test
$164C 3C0 CRC 1700 <<< no flag test
$167A 040 CRC 100 <<< write STATUS
$167B 0D4 if s3 = 1
$1688 3C0 CRC 1700
$1689 0D4 if s3 = 1
Write Card Data x 32
$1682 040 CRC 100
$1683 0DC if s3 = 0
$1688 3C0 CRC 1700
$1689 0D4 if s3 = 1
$167A 040 CRC 100 <<< write CHECKSUM
$167B 0D4 if s3 = 1
$1688 3C0 CRC 1700
$1689 0D4 if s3 = 1
$1688 3C0 CRC 1700 unsure what this last one does
$1689 0D4 if s3 = 1
$17A7 0CC 0 -> s3
$17A8 3C0 CRC 1700 <<< no flag test, interesting that the following CRC 560 flag is not affected
as this CRC 1700 does not seem to affect s3 which was cleared
$17A9 170 CRC 560 card out test
$17AA 0D4 if s3 = 1
$17AC 0F0 CRC 360
$17AD 040 CRC 100 <<< no flag test
cheers
Tony