diff --git a/apple2/diskette16sector.go b/apple2/diskette16sector.go index 7f6ded2..391057a 100644 --- a/apple2/diskette16sector.go +++ b/apple2/diskette16sector.go @@ -172,15 +172,15 @@ func nibEncodeTrack(data []byte, volume byte, track byte) []byte { b = append(b, 0xd5, 0xaa, 0xad) // Data prolog prevV := byte(0) for _, v := range secondaryBuffer { - b = append(b, sixAndTwoTranslateTable[v|prevV]) + b = append(b, sixAndTwoTranslateTable[v^prevV]) prevV = v } for _, v := range primaryBuffer { - b = append(b, sixAndTwoTranslateTable[v|prevV]) + b = append(b, sixAndTwoTranslateTable[v^prevV]) prevV = v } - b = append(b, prevV) // Checksum - b = append(b, 0xd5, 0xaa, 0xeb) // Data epilog + b = append(b, sixAndTwoTranslateTable[prevV]) // Checksum + b = append(b, 0xde, 0xaa, 0xeb) // Data epilog } return b diff --git a/main.go b/main.go index e1054be..ef14b68 100644 --- a/main.go +++ b/main.go @@ -7,7 +7,7 @@ func main() { romFile := "apple2/romdumps/Apple2_Plus.rom" //romFile := "apple2/romdumps/Apple2e.rom" disk2RomFile := "apple2/romdumps/DISK2.rom" - diskImage := "../dos33.nib" + diskImage := "../dos33.dsk" log := false a := apple2.NewApple2(romFile)