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.
@@ -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 128MB CF card with ATA-style register interface.
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
- private static readonly STORAGE_SIZE;
27
+ static readonly DEFAULT_STORAGE_SIZE: number;
27
28
  private static readonly SECTOR_SIZE;
28
- private static readonly SECTOR_COUNT;
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
- * If data is not provided or wrong size, storage remains empty
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 128MB CF card with ATA-style register interface.
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.storage = new Uint8Array(Storage.STORAGE_SIZE);
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 offset = this.sectorIndex() * Storage.SECTOR_SIZE;
149
- this.storage.fill(0x00, offset, offset + Storage.SECTOR_SIZE);
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() < Storage.SECTOR_COUNT;
257
+ return this.sectorIndex() < this.totalSectors;
255
258
  }
256
259
  generateIdentity() {
257
- // Generate emulated 128MB CF card identity
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] = 0x00;
266
- this.identity[3] = 0x04;
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] = 0x08;
272
- this.identity[7] = 0x00;
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] = 0x20;
281
- this.identity[13] = 0x00;
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] = 0x00;
336
- this.identity[109] = 0x04;
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] = 0x08;
339
- this.identity[111] = 0x00;
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] = 0x20;
342
- this.identity[113] = 0x00;
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] = 0x00;
345
- this.identity[115] = 0x00;
346
- this.identity[116] = 0x04;
347
- this.identity[117] = 0x00;
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] = 0x00;
353
- this.identity[121] = 0x00;
354
- this.identity[122] = 0x04;
355
- this.identity[123] = 0x00;
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
- * If data is not provided or wrong size, storage remains empty
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
- // Ensure the data is exactly the expected size, or empty (new file)
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 mismatch. Expected ${Storage.STORAGE_SIZE} bytes, got ${uint8Data.length} bytes.`);
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.STORAGE_SIZE = 128 * 1024 * 1024; // 128MB
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.13.0';
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 128MB
485
+ // Verify file size is 32MB
486
486
  const fileData = yield (0, promises_1.readFile)(testFile);
487
- expect(fileData.length).toBe(128 * 1024 * 1024);
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(128 * 1024 * 1024, 0x00);
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 incorrect size', () => __awaiter(void 0, void 0, void 0, function* () {
545
- // Create a file that's too small
546
- const smallData = Buffer.alloc(1024, 0xFF); // Only 1KB
547
- yield (0, promises_1.writeFile)(invalidSizeFile, smallData);
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(128 * 1024 * 1024, 0x00);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ac6502",
3
- "version": "1.13.0",
3
+ "version": "1.14.0",
4
4
  "description": "Emulator for the A.C. Wright 6502 project",
5
5
  "main": "dist/lib.js",
6
6
  "types": "dist/lib.d.ts",
@@ -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 128MB CF card with ATA-style register interface.
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
- private static readonly STORAGE_SIZE = 128 * 1024 * 1024 // 128MB
30
+ static readonly DEFAULT_STORAGE_SIZE = 32 * 1024 * 1024 // 32MB
30
31
  private static readonly SECTOR_SIZE = 512
31
- private static readonly SECTOR_COUNT = Storage.STORAGE_SIZE / Storage.SECTOR_SIZE // 262144 sectors
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.storage = new Uint8Array(Storage.STORAGE_SIZE)
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 offset = this.sectorIndex() * Storage.SECTOR_SIZE
181
- this.storage.fill(0x00, offset, offset + Storage.SECTOR_SIZE)
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() < Storage.SECTOR_COUNT
302
+ return this.sectorIndex() < this.totalSectors
297
303
  }
298
304
 
299
305
  private generateIdentity(): void {
300
- // Generate emulated 128MB CF card identity
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] = 0x00
312
- this.identity[3] = 0x04
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] = 0x08
320
- this.identity[7] = 0x00
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] = 0x20
332
- this.identity[13] = 0x00
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] = 0x00
402
- this.identity[109] = 0x04
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] = 0x08
406
- this.identity[111] = 0x00
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] = 0x20
410
- this.identity[113] = 0x00
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] = 0x00
414
- this.identity[115] = 0x00
415
- this.identity[116] = 0x04
416
- this.identity[117] = 0x00
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] = 0x00
424
- this.identity[121] = 0x00
425
- this.identity[122] = 0x04
426
- this.identity[123] = 0x00
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
- * If data is not provided or wrong size, storage remains empty
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
- // Ensure the data is exactly the expected size, or empty (new file)
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 mismatch. Expected ${Storage.STORAGE_SIZE} bytes, got ${uint8Data.length} bytes.`)
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
@@ -11,7 +11,7 @@ import sdl from '@kmamal/sdl'
11
11
  import { readFile, writeFile } from 'fs/promises'
12
12
  import { existsSync } from 'fs'
13
13
 
14
- const VERSION = '1.13.0'
14
+ const VERSION = '1.14.0'
15
15
  const WIDTH = 320
16
16
  const HEIGHT = 240
17
17
 
@@ -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 128MB
589
+ // Verify file size is 32MB
590
590
  const fileData = await readFile(testFile)
591
- expect(fileData.length).toBe(128 * 1024 * 1024)
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(128 * 1024 * 1024, 0x00)
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 incorrect size', async () => {
665
- // Create a file that's too small
666
- const smallData = Buffer.alloc(1024, 0xFF) // Only 1KB
667
- await writeFile(invalidSizeFile, smallData)
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(128 * 1024 * 1024, 0x00)
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++) {