mirror of
https://github.com/whscullin/apple2js.git
synced 2024-01-12 14:14:38 +00:00
c9b7987c4c
Before, the offset for `FLAGS` in `2mg.ts` was `0x0A`, which is incorrect according to the spec at: https://apple2.org.za/gswv/a2zine/Docs/DiskImage_2MG_Info.txt Now, all of the fields in the 2mg header are described, including their lengths and any constraints. These constraints are enforced by `read2MGHeader` and tested by new tests.
147 lines
4.4 KiB
TypeScript
147 lines
4.4 KiB
TypeScript
import { BYTES_BY_SECTOR, BYTES_BY_SECTOR_IMAGE, BYTES_BY_TRACK, BYTES_BY_TRACK_IMAGE, BYTES_IN_ORDER } from './16sector';
|
|
|
|
describe('BYTES_IN_ORDER', () => {
|
|
it('has the correct bytes in track 0, sector 0, byte 0 and byte 1', () => {
|
|
const disk = BYTES_IN_ORDER;
|
|
expect(disk[0][0][0]).toBe(0);
|
|
expect(disk[0][0][1]).toBe(1);
|
|
});
|
|
|
|
it('has the correct bytes in track 0, sector 0', () => {
|
|
const disk = BYTES_IN_ORDER;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[0][0][i]).toBe(i);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 1, sector 0', () => {
|
|
const disk = BYTES_IN_ORDER;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[1][0][i]).toBe(i);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 30, sector 11', () => {
|
|
const disk = BYTES_IN_ORDER;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[30][11][i]).toBe(i);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe('BYTES_BY_SECTOR', () => {
|
|
it('has the correct bytes in track 0, sector 0, byte 0 and byte 1', () => {
|
|
const disk = BYTES_BY_SECTOR;
|
|
expect(disk[0][0][0]).toBe(0);
|
|
expect(disk[0][0][1]).toBe(0);
|
|
});
|
|
|
|
it('has the correct bytes in track 0, sector 0', () => {
|
|
const disk = BYTES_BY_SECTOR;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[0][0][i]).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 1, sector 0', () => {
|
|
const disk = BYTES_BY_SECTOR;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[1][0][i]).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 30, sector 11', () => {
|
|
const disk = BYTES_BY_SECTOR;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[30][11][i]).toBe(11);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe('BYTES_BY_SECTOR_IMAGE', () => {
|
|
it('has the correct bytes in track 0, sector 0, byte 0 and byte 1', () => {
|
|
const image = BYTES_BY_SECTOR_IMAGE;
|
|
expect(image[0]).toBe(0);
|
|
expect(image[1]).toBe(0);
|
|
});
|
|
|
|
it('has the correct bytes in track 0, sector 0', () => {
|
|
const image = BYTES_BY_SECTOR_IMAGE;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(image[i]).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 1, sector 0', () => {
|
|
const image = BYTES_BY_SECTOR_IMAGE;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(image[1 * 16 * 256 + i]).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 30, sector 11', () => {
|
|
const disk = BYTES_BY_SECTOR_IMAGE;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[((30 * 16) + 11) * 256 + i]).toBe(11);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe('BYTES_BY_TRACK', () => {
|
|
it('has the correct bytes in track 0, sector 0, byte 0 and byte 1', () => {
|
|
const disk = BYTES_BY_TRACK;
|
|
expect(disk[0][0][0]).toBe(0);
|
|
expect(disk[0][0][1]).toBe(0);
|
|
});
|
|
|
|
it('has the correct bytes in track 0, sector 0', () => {
|
|
const disk = BYTES_BY_TRACK;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[0][0][i]).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 1, sector 0', () => {
|
|
const disk = BYTES_BY_TRACK;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[1][0][i]).toBe(1);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 30, sector 11', () => {
|
|
const disk = BYTES_BY_TRACK;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(disk[30][11][i]).toBe(30);
|
|
}
|
|
});
|
|
});
|
|
|
|
describe('BYTES_BY_TRACK_IMAGE', () => {
|
|
it('has the correct bytes in track 0, sector 0, byte 0 and byte 1', () => {
|
|
const image = BYTES_BY_TRACK_IMAGE;
|
|
expect(image[0]).toBe(0);
|
|
expect(image[1]).toBe(0);
|
|
});
|
|
|
|
it('has the correct bytes in track 0, sector 0', () => {
|
|
const image = BYTES_BY_TRACK_IMAGE;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(image[i]).toBe(0);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 1, sector 0', () => {
|
|
const image = BYTES_BY_TRACK_IMAGE;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(image[i + 256 * 16]).toBe(1);
|
|
}
|
|
});
|
|
|
|
it('has the correct bytes in track 30, sector 11', () => {
|
|
const image = BYTES_BY_TRACK_IMAGE;
|
|
for (let i = 0; i < 256; i++) {
|
|
expect(image[i + ((30 * 16) + 11) * 256]).toBe(30);
|
|
}
|
|
});
|
|
});
|