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

Function Util_DOS33_SetTrackSectorUsage

source/ProDOS_Utils.cpp:643–683  ·  view source on GitHub ↗

bSectorsUsed is 16-bits bitmask of sectors. 1 = Free 0 = Used ===========================================================================

Source from the content-addressed store, hash-verified

641 // 0 = Used
642 //===========================================================================
643 void Util_DOS33_SetTrackSectorUsage ( uint8_t *pVTOC, const int nTrack, const uint16_t bSectorsFree )
644 {
645 int nOffset = 0x38 + (nTrack * 4);
646
647 // Byte Sectors
648 // 0 FEDC BA98
649 // 1 7654 3210
650 // 2 -Wasted-
651 // 3 -Wasted-
652#if _DEBUG
653 std::string sFree;
654 std::string sUsed;
655 for( int iSector = 15; iSector >= 0; iSector-- )
656 {
657 bool bFree = (bSectorsFree >> iSector) & 1;
658 sFree.append( 1, (char)( bFree) | '0' );
659 sUsed.append( 1, (char)(!bFree) ^ '0' );
660 if ((iSector & 3) == 0)
661 {
662 sFree.append( 1, ' ' );
663 sUsed.append( 1, ' ' );
664 }
665 }
666 LogOutput("Track: %02X, VTOC[ %02X ]: %02X %02X %02X %02X -> %02X %02X, Free: %s, Used: %s\n"
667 , nTrack
668 , nOffset
669 , pVTOC[ nOffset + 0 ]
670 , pVTOC[ nOffset + 1 ]
671 , pVTOC[ nOffset + 2 ]
672 , pVTOC[ nOffset + 3 ]
673 , (bSectorsFree >> 8) & 0xFF
674 , (bSectorsFree >> 0) & 0xFF
675 , sFree.c_str()
676 , sUsed.c_str()
677 );
678#endif
679 pVTOC[ nOffset + 0 ] = (bSectorsFree >> 8) & 0xFF;
680 pVTOC[ nOffset + 1 ] = (bSectorsFree >> 0) & 0xFF;
681 pVTOC[ nOffset + 2 ] = 0x00;
682 pVTOC[ nOffset + 3 ] = 0x00;
683 }
684
685 //===========================================================================
686 void Util_DOS33_SetTrackUsed ( uint8_t *pDiskBytes, const int nVTOC_Track, int nTrackUsed )

Callers 2

Util_DOS33_SetTrackUsedFunction · 0.85

Calls 1

LogOutputFunction · 0.85

Tested by

no test coverage detected