apple2js/test/js/formats/testdata/13sector.ts

79 lines
2.1 KiB
TypeScript

import { memory } from 'js/types';
import { concat } from 'js/util';
function generateBytesInOrder() {
const data: memory[][] = [];
for (let t = 0; t < 35; t++) {
const track: memory[] = [];
for (let s = 0; s < 13; s++) {
const sector: memory = new Uint8Array(256);
for (let b = 0; b < 256; b++) {
sector[b] = b;
}
track[s] = sector;
}
data[t] = track;
}
return data;
}
export const BYTES_IN_ORDER: memory[][] = generateBytesInOrder();
function generateBytesBySector() {
const data: memory[][] = [];
for (let t = 0; t < 35; t++) {
const track: memory[] = [];
for (let s = 0; s < 13; s++) {
const sector: memory = new Uint8Array(256);
for (let b = 0; b < 256; b++) {
sector[b] = s;
}
track[s] = sector;
}
data[t] = track;
}
return data;
}
export const BYTES_BY_SECTOR: memory[][] = generateBytesBySector();
function generateBytesByTrack() {
const data: memory[][] = [];
for (let t = 0; t < 35; t++) {
const track: memory[] = [];
for (let s = 0; s < 13; s++) {
const sector: memory = new Uint8Array(256);
for (let b = 0; b < 256; b++) {
sector[b] = t;
}
track[s] = sector;
}
data[t] = track;
}
return data;
}
export const BYTES_BY_TRACK: memory[][] = generateBytesByTrack();
function toImage(disk: memory[][]) {
const tracks: Uint8Array[] = [];
for (let t = 0; t < disk.length; t++) {
const track = concat(...disk[t]);
tracks.push(track);
}
return concat(...tracks);
}
export const BYTES_BY_SECTOR_IMAGE = toImage(BYTES_BY_SECTOR);
export const BYTES_BY_TRACK_IMAGE = toImage(BYTES_BY_TRACK);
function randomImage() {
const result = new Uint8Array(35 * 13 * 256);
for (let i = 0; i < result.length; i++) {
result[i] = Math.floor(Math.random() * 256);
}
return result;
}
export const RANDOM_IMAGE = randomImage();