MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / Util_ProDOS_CopyBitsyBoot

Function Util_ProDOS_CopyBitsyBoot

source/ProDOS_Utils.cpp:507–547  ·  view source on GitHub ↗

=======Util_ProDOS_CopyBitsyBoot====================================================================

Source from the content-addressed store, hash-verified

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 )

Callers 1

New_DOSProDOS_DiskFunction · 0.85

Calls 4

ProDOS_PackDateFunction · 0.85
ProDOS_PackTimeFunction · 0.85
Util_ProDOS_AddFileFunction · 0.85
GetResourceMethod · 0.80

Tested by

no test coverage detected