=======Util_ProDOS_CopyBitsyBoot====================================================================
| 505 | |
| 506 | //=======Util_ProDOS_CopyBitsyBoot==================================================================== |
| 507 | bool Util_ProDOS_CopyBitsyBoot( uint8_t *pDiskBytes, const size_t nDiskSize, const char *pVolumeName, FrameBase *pFrame ) |
| 508 | { |
| 509 | const size_t nFileSize = 0x16D; // < 512 bytes -> SEED, only 1 data block |
| 510 | const uint8_t *pFileData = (uint8_t *) pFrame->GetResource(IDR_FILE_BITSY_BOOT, "FIRMWARE", nFileSize); |
| 511 | |
| 512 | // Acc dnb??iwr /PRODOS.2.4.2 Blocks Size Type Aux Kind iNode Dir Ver Min Create Time Modified Time |
| 513 | // --- -------- ---------------- ------ ------- ------- ----- ----- ----- ----- --- --- --------- ------ --------- ------ |
| 514 | // $21 --b----r *BITSY.BOOT 1 $00016D SYS $FF $2000 sed 1 @003D @0002 2.4 v00 13-JAN-18 9:09a 15-SEP-16 9:49a |
| 515 | int bAccess = 0 |
| 516 | | ACCESS_B |
| 517 | | ACCESS_R |
| 518 | ; |
| 519 | |
| 520 | ProDOS_FileHeader_t meta; |
| 521 | memset( &meta, 0, sizeof(ProDOS_FileHeader_t) ); |
| 522 | |
| 523 | const char *pName = "BITSY.BOOT"; |
| 524 | const uint16_t nDateCreate = ProDOS_PackDate( 18, 1, 13 ); // YYMMDD, NOTE: Jan starts at 1, not 0. |
| 525 | const uint16_t nTimeCreate = ProDOS_PackTime( 9, 9 ); |
| 526 | const uint16_t nDateModify = ProDOS_PackDate( 16, 9, 15 ); // YYMMDD |
| 527 | const uint16_t nTimeModify = ProDOS_PackTime( 9, 49 ); |
| 528 | |
| 529 | meta.kind = PRODOS_KIND_SEED; // File size is <= 512 bytes |
| 530 | strcpy( meta.name, pName ); |
| 531 | meta.len = strlen( pName ) & 0xF; |
| 532 | meta.type = 0xFF; // SYS |
| 533 | // .inode = TBD |
| 534 | // .blocks = TBD |
| 535 | meta.size = nFileSize; |
| 536 | meta.date = nDateCreate; |
| 537 | meta.time = nTimeCreate; |
| 538 | meta.cur_ver = 0x24; |
| 539 | meta.min_ver = 0x00; |
| 540 | meta.access = bAccess; |
| 541 | meta.aux = 0x2000; |
| 542 | meta.mod_date = nDateModify; |
| 543 | meta.mod_time = nTimeModify; |
| 544 | // .dir_block = TBD; |
| 545 | |
| 546 | return Util_ProDOS_AddFile( pDiskBytes, nDiskSize, pVolumeName, pFileData, nFileSize, meta ); |
| 547 | } |
| 548 | |
| 549 | //=========================================================================== |
| 550 | bool Util_ProDOS_CopyBitsyBye ( uint8_t *pDiskBytes, const size_t nDiskSize, const char *pVolumeName, FrameBase *pFrame ) |
no test coverage detected