Date: 05/18/83 From: Frank Kerzich To: All Re: CP/M 3.0 bug There is a nasty bug in CP/M 3.0 for non-banked systems. It seems that 'SET.COM' uses the field 'BUFAD' in the BCB for the buffer instead of the address contained in 'BUFAD'. I have called D.R. and they are working on it. To check it out use SID or DDT to load SET.COM and display position 25F1H for 7 bytes and position 2643H for 5 bytes. they should read aS follows: 25F1H: LXI B,000AH ;get bcb offset to BUFAD DAD B SHLD xxADH ;save address of BUFAD At 2643H it should read: LHLD xxADH ;get saved address of BUFAD MOV B,H ;get high order byte MOV C,L ;get low order byte this code makes the address of 'BUFAD' the actual buffer. I am in the process of getting a fix from D.R. now, but they are not that co-operative. F. Kerzich To: Frank Kerzick From: Dave Mabry Re: CP/M plus bugs Hi - roger on SET.COM. That bug clobbers any subsequent transfers >16k to a freshly SET disk (like after SET C: [update=on].) I know DR is very reluctant about this one. It was discovered about 8 weeks ago and last thing I heard they flatly denied the bug! CCP.COM also has a bug: at 0AF6 there's a MOV B,M, where execution just came back from a BDOS call. HL in this case holds an ERROR NUMBER and not a RAM pointer, so MOV B,M is nonsense. In some systems, when HL=FFFF, it will hang! (My disk controller uses the last 1k of RAM and accessing anything other than a valid controller command address hangs the system.)