ac6502 1.13.0 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/IO/Storage.d.ts +7 -5
- package/dist/components/IO/Storage.js +47 -38
- package/dist/components/IO/Storage.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tests/IO/Storage.test.js +8 -8
- package/dist/tests/IO/Storage.test.js.map +1 -1
- package/package.json +1 -1
- package/src/components/IO/Storage.ts +51 -37
- package/src/index.ts +1 -1
- package/src/tests/IO/Storage.test.ts +8 -8
|
@@ -2,7 +2,8 @@ import { IO } from '../IO';
|
|
|
2
2
|
/**
|
|
3
3
|
* Storage - Emulates a Compact Flash card in 8-bit IDE mode
|
|
4
4
|
*
|
|
5
|
-
* Emulates a
|
|
5
|
+
* Emulates a CF card with ATA-style register interface.
|
|
6
|
+
* Default size is 32MB. Size is configurable via constructor or loadData.
|
|
6
7
|
* Uses LBA (Logical Block Addressing) for sector access.
|
|
7
8
|
*
|
|
8
9
|
* Register Map (address & 0x07):
|
|
@@ -23,9 +24,10 @@ import { IO } from '../IO';
|
|
|
23
24
|
* 0xEF: Set Features (accepted but not implemented)
|
|
24
25
|
*/
|
|
25
26
|
export declare class Storage implements IO {
|
|
26
|
-
|
|
27
|
+
static readonly DEFAULT_STORAGE_SIZE: number;
|
|
27
28
|
private static readonly SECTOR_SIZE;
|
|
28
|
-
private
|
|
29
|
+
private storageSize;
|
|
30
|
+
private totalSectors;
|
|
29
31
|
private static readonly STATUS_ERR;
|
|
30
32
|
private static readonly STATUS_DRQ;
|
|
31
33
|
private static readonly STATUS_RDY;
|
|
@@ -49,7 +51,7 @@ export declare class Storage implements IO {
|
|
|
49
51
|
private command;
|
|
50
52
|
private isIdentifying;
|
|
51
53
|
private isTransferring;
|
|
52
|
-
constructor();
|
|
54
|
+
constructor(size?: number);
|
|
53
55
|
read(address: number): number;
|
|
54
56
|
write(address: number, data: number): void;
|
|
55
57
|
tick(frequency: number): number;
|
|
@@ -62,7 +64,7 @@ export declare class Storage implements IO {
|
|
|
62
64
|
private generateIdentity;
|
|
63
65
|
/**
|
|
64
66
|
* Load storage data from a Uint8Array, ArrayBuffer, or number array
|
|
65
|
-
*
|
|
67
|
+
* Resizes storage to match the loaded data if it is a valid multiple of the sector size
|
|
66
68
|
*/
|
|
67
69
|
loadData(data: Uint8Array | ArrayBuffer | number[] | null): void;
|
|
68
70
|
/**
|
|
@@ -4,7 +4,8 @@ exports.Storage = void 0;
|
|
|
4
4
|
/**
|
|
5
5
|
* Storage - Emulates a Compact Flash card in 8-bit IDE mode
|
|
6
6
|
*
|
|
7
|
-
* Emulates a
|
|
7
|
+
* Emulates a CF card with ATA-style register interface.
|
|
8
|
+
* Default size is 32MB. Size is configurable via constructor or loadData.
|
|
8
9
|
* Uses LBA (Logical Block Addressing) for sector access.
|
|
9
10
|
*
|
|
10
11
|
* Register Map (address & 0x07):
|
|
@@ -25,7 +26,7 @@ exports.Storage = void 0;
|
|
|
25
26
|
* 0xEF: Set Features (accepted but not implemented)
|
|
26
27
|
*/
|
|
27
28
|
class Storage {
|
|
28
|
-
constructor() {
|
|
29
|
+
constructor(size = Storage.DEFAULT_STORAGE_SIZE) {
|
|
29
30
|
// Data buffer (512 bytes)
|
|
30
31
|
this.buffer = new Uint8Array(Storage.SECTOR_SIZE);
|
|
31
32
|
this.bufferIndex = 0;
|
|
@@ -45,7 +46,9 @@ class Storage {
|
|
|
45
46
|
this.isIdentifying = false;
|
|
46
47
|
this.isTransferring = false;
|
|
47
48
|
// Initialize storage and identity buffers
|
|
48
|
-
this.
|
|
49
|
+
this.storageSize = size;
|
|
50
|
+
this.totalSectors = Math.floor(size / Storage.SECTOR_SIZE);
|
|
51
|
+
this.storage = new Uint8Array(this.storageSize);
|
|
49
52
|
this.identity = new Uint8Array(Storage.SECTOR_SIZE);
|
|
50
53
|
this.generateIdentity();
|
|
51
54
|
this.reset(true);
|
|
@@ -145,8 +148,8 @@ class Storage {
|
|
|
145
148
|
this.error |= Storage.ERR_ABRT | Storage.ERR_IDNF;
|
|
146
149
|
}
|
|
147
150
|
else {
|
|
148
|
-
const
|
|
149
|
-
this.storage.fill(0x00,
|
|
151
|
+
const eraseOffset = this.sectorIndex() * Storage.SECTOR_SIZE;
|
|
152
|
+
this.storage.fill(0x00, eraseOffset, eraseOffset + Storage.SECTOR_SIZE);
|
|
150
153
|
}
|
|
151
154
|
break;
|
|
152
155
|
}
|
|
@@ -251,25 +254,29 @@ class Storage {
|
|
|
251
254
|
return ((this.lba3 & 0x0F) << 24) | (this.lba2 << 16) | (this.lba1 << 8) | this.lba0;
|
|
252
255
|
}
|
|
253
256
|
sectorValid() {
|
|
254
|
-
return this.sectorIndex() <
|
|
257
|
+
return this.sectorIndex() < this.totalSectors;
|
|
255
258
|
}
|
|
256
259
|
generateIdentity() {
|
|
257
|
-
// Generate emulated
|
|
258
|
-
// Based on real Promaster 128MB CF card data
|
|
260
|
+
// Generate emulated CF card identity based on current storage size
|
|
259
261
|
// Fill with zeros first
|
|
260
262
|
this.identity.fill(0x00);
|
|
263
|
+
// Compute CHS geometry from sector count
|
|
264
|
+
const totalSectors = this.totalSectors;
|
|
265
|
+
const heads = 16;
|
|
266
|
+
const sectorsPerTrack = 32;
|
|
267
|
+
const cylinders = Math.floor(totalSectors / (heads * sectorsPerTrack));
|
|
261
268
|
// Word 0: General configuration
|
|
262
269
|
this.identity[0] = 0x84;
|
|
263
270
|
this.identity[1] = 0x8A; // Removable Disk
|
|
264
271
|
// Word 1: Number of cylinders
|
|
265
|
-
this.identity[2] =
|
|
266
|
-
this.identity[3] =
|
|
272
|
+
this.identity[2] = cylinders & 0xFF;
|
|
273
|
+
this.identity[3] = (cylinders >> 8) & 0xFF;
|
|
267
274
|
// Word 2: Reserved
|
|
268
275
|
this.identity[4] = 0x00;
|
|
269
276
|
this.identity[5] = 0x00;
|
|
270
277
|
// Word 3: Number of heads
|
|
271
|
-
this.identity[6] =
|
|
272
|
-
this.identity[7] =
|
|
278
|
+
this.identity[6] = heads & 0xFF;
|
|
279
|
+
this.identity[7] = (heads >> 8) & 0xFF;
|
|
273
280
|
// Word 4: Unformatted bytes per track
|
|
274
281
|
this.identity[8] = 0x00;
|
|
275
282
|
this.identity[9] = 0x40;
|
|
@@ -277,8 +284,8 @@ class Storage {
|
|
|
277
284
|
this.identity[10] = 0x00;
|
|
278
285
|
this.identity[11] = 0x02;
|
|
279
286
|
// Word 6: Sectors per track
|
|
280
|
-
this.identity[12] =
|
|
281
|
-
this.identity[13] =
|
|
287
|
+
this.identity[12] = sectorsPerTrack & 0xFF;
|
|
288
|
+
this.identity[13] = (sectorsPerTrack >> 8) & 0xFF;
|
|
282
289
|
// Words 7-9: Reserved
|
|
283
290
|
this.identity[14] = 0x04;
|
|
284
291
|
this.identity[15] = 0x00;
|
|
@@ -332,32 +339,32 @@ class Storage {
|
|
|
332
339
|
this.identity[106] = 0x01;
|
|
333
340
|
this.identity[107] = 0x00;
|
|
334
341
|
// Word 54: Current number of cylinders
|
|
335
|
-
this.identity[108] =
|
|
336
|
-
this.identity[109] =
|
|
342
|
+
this.identity[108] = cylinders & 0xFF;
|
|
343
|
+
this.identity[109] = (cylinders >> 8) & 0xFF;
|
|
337
344
|
// Word 55: Current number of heads
|
|
338
|
-
this.identity[110] =
|
|
339
|
-
this.identity[111] =
|
|
345
|
+
this.identity[110] = heads & 0xFF;
|
|
346
|
+
this.identity[111] = (heads >> 8) & 0xFF;
|
|
340
347
|
// Word 56: Current sectors per track
|
|
341
|
-
this.identity[112] =
|
|
342
|
-
this.identity[113] =
|
|
348
|
+
this.identity[112] = sectorsPerTrack & 0xFF;
|
|
349
|
+
this.identity[113] = (sectorsPerTrack >> 8) & 0xFF;
|
|
343
350
|
// Words 57-58: Current capacity in sectors
|
|
344
|
-
this.identity[114] =
|
|
345
|
-
this.identity[115] =
|
|
346
|
-
this.identity[116] =
|
|
347
|
-
this.identity[117] =
|
|
351
|
+
this.identity[114] = totalSectors & 0xFF;
|
|
352
|
+
this.identity[115] = (totalSectors >> 8) & 0xFF;
|
|
353
|
+
this.identity[116] = (totalSectors >> 16) & 0xFF;
|
|
354
|
+
this.identity[117] = (totalSectors >> 24) & 0xFF;
|
|
348
355
|
// Word 59: Multiple sector setting
|
|
349
356
|
this.identity[118] = 0x01;
|
|
350
357
|
this.identity[119] = 0x01;
|
|
351
358
|
// Words 60-61: Total number of sectors in LBA mode
|
|
352
|
-
this.identity[120] =
|
|
353
|
-
this.identity[121] =
|
|
354
|
-
this.identity[122] =
|
|
355
|
-
this.identity[123] =
|
|
359
|
+
this.identity[120] = totalSectors & 0xFF;
|
|
360
|
+
this.identity[121] = (totalSectors >> 8) & 0xFF;
|
|
361
|
+
this.identity[122] = (totalSectors >> 16) & 0xFF;
|
|
362
|
+
this.identity[123] = (totalSectors >> 24) & 0xFF;
|
|
356
363
|
// Remaining words are zero
|
|
357
364
|
}
|
|
358
365
|
/**
|
|
359
366
|
* Load storage data from a Uint8Array, ArrayBuffer, or number array
|
|
360
|
-
*
|
|
367
|
+
* Resizes storage to match the loaded data if it is a valid multiple of the sector size
|
|
361
368
|
*/
|
|
362
369
|
loadData(data) {
|
|
363
370
|
if (!data) {
|
|
@@ -374,17 +381,20 @@ class Storage {
|
|
|
374
381
|
else {
|
|
375
382
|
uint8Data = new Uint8Array(data);
|
|
376
383
|
}
|
|
377
|
-
|
|
378
|
-
if (uint8Data.length === Storage.STORAGE_SIZE) {
|
|
379
|
-
this.storage.set(uint8Data);
|
|
380
|
-
console.log(`Storage loaded (${Storage.STORAGE_SIZE} bytes)`);
|
|
381
|
-
}
|
|
382
|
-
else if (uint8Data.length === 0) {
|
|
384
|
+
if (uint8Data.length === 0) {
|
|
383
385
|
this.storage.fill(0x00);
|
|
384
386
|
console.log('Storage initialized as new empty image.');
|
|
385
387
|
}
|
|
388
|
+
else if (uint8Data.length % Storage.SECTOR_SIZE === 0) {
|
|
389
|
+
this.storageSize = uint8Data.length;
|
|
390
|
+
this.totalSectors = this.storageSize / Storage.SECTOR_SIZE;
|
|
391
|
+
this.storage = new Uint8Array(this.storageSize);
|
|
392
|
+
this.storage.set(uint8Data);
|
|
393
|
+
this.generateIdentity();
|
|
394
|
+
console.log(`Storage loaded (${this.storageSize} bytes)`);
|
|
395
|
+
}
|
|
386
396
|
else {
|
|
387
|
-
console.warn(`Warning: Storage data size
|
|
397
|
+
console.warn(`Warning: Storage data size (${uint8Data.length} bytes) is not a multiple of sector size (${Storage.SECTOR_SIZE}).`);
|
|
388
398
|
console.warn('Storage will remain empty.');
|
|
389
399
|
}
|
|
390
400
|
}
|
|
@@ -397,9 +407,8 @@ class Storage {
|
|
|
397
407
|
}
|
|
398
408
|
exports.Storage = Storage;
|
|
399
409
|
// Constants
|
|
400
|
-
Storage.
|
|
410
|
+
Storage.DEFAULT_STORAGE_SIZE = 32 * 1024 * 1024; // 32MB
|
|
401
411
|
Storage.SECTOR_SIZE = 512;
|
|
402
|
-
Storage.SECTOR_COUNT = Storage.STORAGE_SIZE / Storage.SECTOR_SIZE; // 262144 sectors
|
|
403
412
|
// Status Register Flags
|
|
404
413
|
Storage.STATUS_ERR = 0x01; // Error
|
|
405
414
|
Storage.STATUS_DRQ = 0x08; // Data Request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../src/components/IO/Storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Storage.js","sourceRoot":"","sources":["../../../src/components/IO/Storage.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,7 +20,7 @@ const serialport_1 = require("serialport");
|
|
|
20
20
|
const sdl_1 = __importDefault(require("@kmamal/sdl"));
|
|
21
21
|
const promises_1 = require("fs/promises");
|
|
22
22
|
const fs_1 = require("fs");
|
|
23
|
-
const VERSION = '1.
|
|
23
|
+
const VERSION = '1.14.0';
|
|
24
24
|
const WIDTH = 320;
|
|
25
25
|
const HEIGHT = 240;
|
|
26
26
|
// Audio constants
|
|
@@ -482,9 +482,9 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
482
482
|
yield (0, promises_1.writeFile)(testFile, storageData);
|
|
483
483
|
// Verify file exists
|
|
484
484
|
expect((0, fs_1.existsSync)(testFile)).toBe(true);
|
|
485
|
-
// Verify file size is
|
|
485
|
+
// Verify file size is 32MB
|
|
486
486
|
const fileData = yield (0, promises_1.readFile)(testFile);
|
|
487
|
-
expect(fileData.length).toBe(
|
|
487
|
+
expect(fileData.length).toBe(32 * 1024 * 1024);
|
|
488
488
|
}));
|
|
489
489
|
it('should save complete storage contents', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
490
490
|
// Write to multiple sectors
|
|
@@ -513,7 +513,7 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
513
513
|
describe('loadFromFile', () => {
|
|
514
514
|
it('should load storage data from an existing file', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
515
515
|
// Create a test file with known data
|
|
516
|
-
const testData = Buffer.alloc(
|
|
516
|
+
const testData = Buffer.alloc(32 * 1024 * 1024, 0x00);
|
|
517
517
|
// Fill first sector with pattern
|
|
518
518
|
for (let i = 0; i < 512; i++) {
|
|
519
519
|
testData[i] = (0xAA + i) & 0xFF;
|
|
@@ -541,10 +541,10 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
541
541
|
expect(storageCard.read(0x00)).toBe(0x00);
|
|
542
542
|
}
|
|
543
543
|
});
|
|
544
|
-
it('should reject file with
|
|
545
|
-
// Create a file that's
|
|
546
|
-
const
|
|
547
|
-
yield (0, promises_1.writeFile)(invalidSizeFile,
|
|
544
|
+
it('should reject file with non-sector-aligned size', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
545
|
+
// Create a file that's not a multiple of 512 bytes
|
|
546
|
+
const badData = Buffer.alloc(1023, 0xFF);
|
|
547
|
+
yield (0, promises_1.writeFile)(invalidSizeFile, badData);
|
|
548
548
|
const fileData = yield (0, promises_1.readFile)(invalidSizeFile);
|
|
549
549
|
storageCard.loadData(new Uint8Array(fileData));
|
|
550
550
|
// Storage should remain empty (zeros)
|
|
@@ -556,7 +556,7 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
556
556
|
}
|
|
557
557
|
}));
|
|
558
558
|
it('should load multiple sectors correctly', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
559
|
-
const testData = Buffer.alloc(
|
|
559
|
+
const testData = Buffer.alloc(32 * 1024 * 1024, 0x00);
|
|
560
560
|
// Fill sectors with different patterns
|
|
561
561
|
for (let sector = 0; sector < 10; sector++) {
|
|
562
562
|
for (let i = 0; i < 512; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Storage.test.js","sourceRoot":"","sources":["../../../src/tests/IO/Storage.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Storage.test.js","sourceRoot":"","sources":["../../../src/tests/IO/Storage.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,8 @@ import { IO } from '../IO'
|
|
|
3
3
|
/**
|
|
4
4
|
* Storage - Emulates a Compact Flash card in 8-bit IDE mode
|
|
5
5
|
*
|
|
6
|
-
* Emulates a
|
|
6
|
+
* Emulates a CF card with ATA-style register interface.
|
|
7
|
+
* Default size is 32MB. Size is configurable via constructor or loadData.
|
|
7
8
|
* Uses LBA (Logical Block Addressing) for sector access.
|
|
8
9
|
*
|
|
9
10
|
* Register Map (address & 0x07):
|
|
@@ -26,9 +27,12 @@ import { IO } from '../IO'
|
|
|
26
27
|
export class Storage implements IO {
|
|
27
28
|
|
|
28
29
|
// Constants
|
|
29
|
-
|
|
30
|
+
static readonly DEFAULT_STORAGE_SIZE = 32 * 1024 * 1024 // 32MB
|
|
30
31
|
private static readonly SECTOR_SIZE = 512
|
|
31
|
-
|
|
32
|
+
|
|
33
|
+
// Instance size properties
|
|
34
|
+
private storageSize: number
|
|
35
|
+
private totalSectors: number
|
|
32
36
|
|
|
33
37
|
// Status Register Flags
|
|
34
38
|
private static readonly STATUS_ERR = 0x01 // Error
|
|
@@ -65,9 +69,11 @@ export class Storage implements IO {
|
|
|
65
69
|
private isIdentifying: boolean = false
|
|
66
70
|
private isTransferring: boolean = false
|
|
67
71
|
|
|
68
|
-
constructor() {
|
|
72
|
+
constructor(size: number = Storage.DEFAULT_STORAGE_SIZE) {
|
|
69
73
|
// Initialize storage and identity buffers
|
|
70
|
-
this.
|
|
74
|
+
this.storageSize = size
|
|
75
|
+
this.totalSectors = Math.floor(size / Storage.SECTOR_SIZE)
|
|
76
|
+
this.storage = new Uint8Array(this.storageSize)
|
|
71
77
|
this.identity = new Uint8Array(Storage.SECTOR_SIZE)
|
|
72
78
|
this.generateIdentity()
|
|
73
79
|
this.reset(true)
|
|
@@ -177,8 +183,8 @@ export class Storage implements IO {
|
|
|
177
183
|
this.status |= Storage.STATUS_ERR
|
|
178
184
|
this.error |= Storage.ERR_ABRT | Storage.ERR_IDNF
|
|
179
185
|
} else {
|
|
180
|
-
const
|
|
181
|
-
this.storage.fill(0x00,
|
|
186
|
+
const eraseOffset = this.sectorIndex() * Storage.SECTOR_SIZE
|
|
187
|
+
this.storage.fill(0x00, eraseOffset, eraseOffset + Storage.SECTOR_SIZE)
|
|
182
188
|
}
|
|
183
189
|
break
|
|
184
190
|
}
|
|
@@ -293,31 +299,36 @@ export class Storage implements IO {
|
|
|
293
299
|
}
|
|
294
300
|
|
|
295
301
|
private sectorValid(): boolean {
|
|
296
|
-
return this.sectorIndex() <
|
|
302
|
+
return this.sectorIndex() < this.totalSectors
|
|
297
303
|
}
|
|
298
304
|
|
|
299
305
|
private generateIdentity(): void {
|
|
300
|
-
// Generate emulated
|
|
301
|
-
// Based on real Promaster 128MB CF card data
|
|
306
|
+
// Generate emulated CF card identity based on current storage size
|
|
302
307
|
|
|
303
308
|
// Fill with zeros first
|
|
304
309
|
this.identity.fill(0x00)
|
|
305
310
|
|
|
311
|
+
// Compute CHS geometry from sector count
|
|
312
|
+
const totalSectors = this.totalSectors
|
|
313
|
+
const heads = 16
|
|
314
|
+
const sectorsPerTrack = 32
|
|
315
|
+
const cylinders = Math.floor(totalSectors / (heads * sectorsPerTrack))
|
|
316
|
+
|
|
306
317
|
// Word 0: General configuration
|
|
307
318
|
this.identity[0] = 0x84
|
|
308
319
|
this.identity[1] = 0x8A // Removable Disk
|
|
309
320
|
|
|
310
321
|
// Word 1: Number of cylinders
|
|
311
|
-
this.identity[2] =
|
|
312
|
-
this.identity[3] =
|
|
322
|
+
this.identity[2] = cylinders & 0xFF
|
|
323
|
+
this.identity[3] = (cylinders >> 8) & 0xFF
|
|
313
324
|
|
|
314
325
|
// Word 2: Reserved
|
|
315
326
|
this.identity[4] = 0x00
|
|
316
327
|
this.identity[5] = 0x00
|
|
317
328
|
|
|
318
329
|
// Word 3: Number of heads
|
|
319
|
-
this.identity[6] =
|
|
320
|
-
this.identity[7] =
|
|
330
|
+
this.identity[6] = heads & 0xFF
|
|
331
|
+
this.identity[7] = (heads >> 8) & 0xFF
|
|
321
332
|
|
|
322
333
|
// Word 4: Unformatted bytes per track
|
|
323
334
|
this.identity[8] = 0x00
|
|
@@ -328,8 +339,8 @@ export class Storage implements IO {
|
|
|
328
339
|
this.identity[11] = 0x02
|
|
329
340
|
|
|
330
341
|
// Word 6: Sectors per track
|
|
331
|
-
this.identity[12] =
|
|
332
|
-
this.identity[13] =
|
|
342
|
+
this.identity[12] = sectorsPerTrack & 0xFF
|
|
343
|
+
this.identity[13] = (sectorsPerTrack >> 8) & 0xFF
|
|
333
344
|
|
|
334
345
|
// Words 7-9: Reserved
|
|
335
346
|
this.identity[14] = 0x04
|
|
@@ -398,39 +409,39 @@ export class Storage implements IO {
|
|
|
398
409
|
this.identity[107] = 0x00
|
|
399
410
|
|
|
400
411
|
// Word 54: Current number of cylinders
|
|
401
|
-
this.identity[108] =
|
|
402
|
-
this.identity[109] =
|
|
412
|
+
this.identity[108] = cylinders & 0xFF
|
|
413
|
+
this.identity[109] = (cylinders >> 8) & 0xFF
|
|
403
414
|
|
|
404
415
|
// Word 55: Current number of heads
|
|
405
|
-
this.identity[110] =
|
|
406
|
-
this.identity[111] =
|
|
416
|
+
this.identity[110] = heads & 0xFF
|
|
417
|
+
this.identity[111] = (heads >> 8) & 0xFF
|
|
407
418
|
|
|
408
419
|
// Word 56: Current sectors per track
|
|
409
|
-
this.identity[112] =
|
|
410
|
-
this.identity[113] =
|
|
420
|
+
this.identity[112] = sectorsPerTrack & 0xFF
|
|
421
|
+
this.identity[113] = (sectorsPerTrack >> 8) & 0xFF
|
|
411
422
|
|
|
412
423
|
// Words 57-58: Current capacity in sectors
|
|
413
|
-
this.identity[114] =
|
|
414
|
-
this.identity[115] =
|
|
415
|
-
this.identity[116] =
|
|
416
|
-
this.identity[117] =
|
|
424
|
+
this.identity[114] = totalSectors & 0xFF
|
|
425
|
+
this.identity[115] = (totalSectors >> 8) & 0xFF
|
|
426
|
+
this.identity[116] = (totalSectors >> 16) & 0xFF
|
|
427
|
+
this.identity[117] = (totalSectors >> 24) & 0xFF
|
|
417
428
|
|
|
418
429
|
// Word 59: Multiple sector setting
|
|
419
430
|
this.identity[118] = 0x01
|
|
420
431
|
this.identity[119] = 0x01
|
|
421
432
|
|
|
422
433
|
// Words 60-61: Total number of sectors in LBA mode
|
|
423
|
-
this.identity[120] =
|
|
424
|
-
this.identity[121] =
|
|
425
|
-
this.identity[122] =
|
|
426
|
-
this.identity[123] =
|
|
434
|
+
this.identity[120] = totalSectors & 0xFF
|
|
435
|
+
this.identity[121] = (totalSectors >> 8) & 0xFF
|
|
436
|
+
this.identity[122] = (totalSectors >> 16) & 0xFF
|
|
437
|
+
this.identity[123] = (totalSectors >> 24) & 0xFF
|
|
427
438
|
|
|
428
439
|
// Remaining words are zero
|
|
429
440
|
}
|
|
430
441
|
|
|
431
442
|
/**
|
|
432
443
|
* Load storage data from a Uint8Array, ArrayBuffer, or number array
|
|
433
|
-
*
|
|
444
|
+
* Resizes storage to match the loaded data if it is a valid multiple of the sector size
|
|
434
445
|
*/
|
|
435
446
|
loadData(data: Uint8Array | ArrayBuffer | number[] | null): void {
|
|
436
447
|
if (!data) {
|
|
@@ -447,15 +458,18 @@ export class Storage implements IO {
|
|
|
447
458
|
uint8Data = new Uint8Array(data)
|
|
448
459
|
}
|
|
449
460
|
|
|
450
|
-
|
|
451
|
-
if (uint8Data.length === Storage.STORAGE_SIZE) {
|
|
452
|
-
this.storage.set(uint8Data)
|
|
453
|
-
console.log(`Storage loaded (${Storage.STORAGE_SIZE} bytes)`)
|
|
454
|
-
} else if (uint8Data.length === 0) {
|
|
461
|
+
if (uint8Data.length === 0) {
|
|
455
462
|
this.storage.fill(0x00)
|
|
456
463
|
console.log('Storage initialized as new empty image.')
|
|
464
|
+
} else if (uint8Data.length % Storage.SECTOR_SIZE === 0) {
|
|
465
|
+
this.storageSize = uint8Data.length
|
|
466
|
+
this.totalSectors = this.storageSize / Storage.SECTOR_SIZE
|
|
467
|
+
this.storage = new Uint8Array(this.storageSize)
|
|
468
|
+
this.storage.set(uint8Data)
|
|
469
|
+
this.generateIdentity()
|
|
470
|
+
console.log(`Storage loaded (${this.storageSize} bytes)`)
|
|
457
471
|
} else {
|
|
458
|
-
console.warn(`Warning: Storage data size
|
|
472
|
+
console.warn(`Warning: Storage data size (${uint8Data.length} bytes) is not a multiple of sector size (${Storage.SECTOR_SIZE}).`)
|
|
459
473
|
console.warn('Storage will remain empty.')
|
|
460
474
|
}
|
|
461
475
|
}
|
package/src/index.ts
CHANGED
|
@@ -586,9 +586,9 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
586
586
|
// Verify file exists
|
|
587
587
|
expect(existsSync(testFile)).toBe(true)
|
|
588
588
|
|
|
589
|
-
// Verify file size is
|
|
589
|
+
// Verify file size is 32MB
|
|
590
590
|
const fileData = await readFile(testFile)
|
|
591
|
-
expect(fileData.length).toBe(
|
|
591
|
+
expect(fileData.length).toBe(32 * 1024 * 1024)
|
|
592
592
|
})
|
|
593
593
|
|
|
594
594
|
it('should save complete storage contents', async () => {
|
|
@@ -624,7 +624,7 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
624
624
|
describe('loadFromFile', () => {
|
|
625
625
|
it('should load storage data from an existing file', async () => {
|
|
626
626
|
// Create a test file with known data
|
|
627
|
-
const testData = Buffer.alloc(
|
|
627
|
+
const testData = Buffer.alloc(32 * 1024 * 1024, 0x00)
|
|
628
628
|
|
|
629
629
|
// Fill first sector with pattern
|
|
630
630
|
for (let i = 0; i < 512; i++) {
|
|
@@ -661,10 +661,10 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
661
661
|
}
|
|
662
662
|
})
|
|
663
663
|
|
|
664
|
-
it('should reject file with
|
|
665
|
-
// Create a file that's
|
|
666
|
-
const
|
|
667
|
-
await writeFile(invalidSizeFile,
|
|
664
|
+
it('should reject file with non-sector-aligned size', async () => {
|
|
665
|
+
// Create a file that's not a multiple of 512 bytes
|
|
666
|
+
const badData = Buffer.alloc(1023, 0xFF)
|
|
667
|
+
await writeFile(invalidSizeFile, badData)
|
|
668
668
|
|
|
669
669
|
const fileData = await readFile(invalidSizeFile)
|
|
670
670
|
storageCard.loadData(new Uint8Array(fileData))
|
|
@@ -680,7 +680,7 @@ describe('Storage (Compact Flash in IDE Mode)', () => {
|
|
|
680
680
|
})
|
|
681
681
|
|
|
682
682
|
it('should load multiple sectors correctly', async () => {
|
|
683
|
-
const testData = Buffer.alloc(
|
|
683
|
+
const testData = Buffer.alloc(32 * 1024 * 1024, 0x00)
|
|
684
684
|
|
|
685
685
|
// Fill sectors with different patterns
|
|
686
686
|
for (let sector = 0; sector < 10; sector++) {
|