@@ -455,10 +455,10 @@ export class MarieSim {
455455 this . _log [ this . _log . length - 1 ] . type !== 'step'
456456 ) ;
457457
458- // Recalcular datos totales después de retroceder
459- if ( typeof window !== 'undefined' ) {
460- window . dataBytes = calculateDataBytesOccupied ( window . staticDataAddresses ) ;
461- }
458+ // // Recalcular datos totales después de retroceder
459+ // if (typeof window !== 'undefined') {
460+ // window.dataBytes = calculateDataBytesOccupied(window.staticDataAddresses);
461+ // }
462462
463463 // Decrementar contador global de steps
464464 if ( typeof window !== 'undefined' ) {
@@ -529,9 +529,6 @@ export class MarieSim {
529529 this . addLog ( action ) ;
530530 }
531531
532- if ( typeof window !== 'undefined' && action && [ 'memwrite' , 'memset' ] . includes ( action . type ) ) {
533- window . dataBytes = calculateDataBytesOccupied ( window . staticDataAddresses ) ;
534- }
535532 // Sumar al contador global
536533 if ( typeof window !== 'undefined' && isRealMicroStep ( action ) ) {
537534 window . microStepCount = ( window . microStepCount || 0 ) + 1 ;
@@ -551,8 +548,11 @@ export class MarieSim {
551548 const action = this . _decoded . microSteps [ pos ] ( this ) ;
552549 if ( action ) {
553550 this . addLog ( action ) ;
554- if ( typeof window !== 'undefined' && [ 'memwrite' , 'memset' ] . includes ( action . type ) ) {
555- window . dataBytes = calculateDataBytesOccupied ( window . dynamicDataAddresses ) ;
551+ if ( typeof window !== 'undefined' && action && [ 'memwrite' , 'memset' ] . includes ( action . type ) ) {
552+ window . dataBytes = calculateDataBytesOccupied (
553+ window . staticDataAddresses ,
554+ window . dynamicDataAddresses
555+ ) ;
556556 }
557557 }
558558
@@ -643,10 +643,10 @@ export class MarieSim {
643643 window . microStepCount = Math . max ( 0 , window . microStepCount - 1 ) ;
644644 }
645645
646- // Recalcular datos totales después de retroceder
647- if ( typeof window !== 'undefined' ) {
648- window . dataBytes = calculateDataBytesOccupied ( window . staticDataAddresses ) ;
649- }
646+ // // Recalcular datos totales después de retroceder
647+ // if (typeof window !== 'undefined') {
648+ // window.dataBytes = calculateDataBytesOccupied(window.staticDataAddresses);
649+ // }
650650
651651 return last ;
652652 }
@@ -701,8 +701,11 @@ export class MarieSim {
701701 window . dynamicDataAddresses = new Set ( ) ;
702702 }
703703 window . dynamicDataAddresses . add ( this . _registers . MAR ) ;
704-
705- window . dataBytes = calculateDataBytesOccupied ( window . staticDataAddresses ) ;
704+
705+ window . dataBytes = calculateDataBytesOccupied (
706+ window . staticDataAddresses ,
707+ window . dynamicDataAddresses
708+ ) ;
706709 }
707710
708711 return {
@@ -1025,8 +1028,11 @@ export class MarieSim {
10251028 sim . _halted = true ;
10261029 // Recalcular datos totales al llegar a HALT
10271030 if ( typeof window !== 'undefined' ) {
1028- window . dataBytes = calculateDataBytesOccupied ( window . staticDataAddresses ) ;
1029- }
1031+ window . dataBytes = calculateDataBytesOccupied (
1032+ window . staticDataAddresses ,
1033+ window . dynamicDataAddresses
1034+ ) ;
1035+ }
10301036 return {
10311037 type : 'halt' ,
10321038 halt : true ,
@@ -1435,17 +1441,14 @@ export function isRealMicroStep(action: Action | null): boolean {
14351441 return realTypes . includes ( action . type ) ;
14361442}
14371443
1438- export function calculateDataBytesOccupied ( staticDataAddresses : Set < number > ) {
1439- const allData = new Set ( [ ...staticDataAddresses ] ) ;
1444+ export function calculateDataBytesOccupied ( staticDataAddresses : Set < number > , dynamicDataAddresses : Set < number > ) : number {
1445+ const allData = new Set ( [ ...staticDataAddresses ] ) ;
14401446
1441- if ( typeof window !== 'undefined' && window . dynamicDataAddresses !== undefined ) {
1442- const dynamic = window . dynamicDataAddresses ;
1443- for ( const addr of dynamic ) {
1444- allData . add ( addr ) ;
1445- }
1446- }
1447+ for ( const addr of dynamicDataAddresses ) {
1448+ allData . add ( addr ) ;
1449+ }
14471450
1448- // Cada palabra ocupa 2 bytes
1449- return allData . size * 2 ;
1451+ // Cada palabra ocupa 2 bytes
1452+ return allData . size * 2 ;
14501453}
14511454
0 commit comments