@@ -337,21 +337,21 @@ std::vector<DisasmLine> DebugAdapter::GetDisassembly(u16 start_address, u16 end_
337337 }
338338 }
339339
340- u16 addr = scan_start;
340+ u32 addr = scan_start;
341341
342- while (addr <= end_address)
342+ while (addr <= ( u32 ) end_address)
343343 {
344344 GG_Disassembler_Record* record = NULL ;
345345
346346 if (use_explicit_bank)
347- record = memory->GetDisassemblerRecord (addr, (u8 )bank);
347+ record = memory->GetDisassemblerRecord (( u16 ) addr, (u8 )bank);
348348 else
349- record = memory->GetDisassemblerRecord (addr);
349+ record = memory->GetDisassemblerRecord (( u16 ) addr);
350350
351351 if (IsValidPointer (record) && record->name [0 ] != 0 )
352352 {
353353 DisasmLine line;
354- line.address = addr;
354+ line.address = ( u16 ) addr;
355355 line.bank = record->bank ;
356356 line.name = record->name ;
357357 strip_color_tags (line.name );
@@ -381,7 +381,7 @@ std::vector<DisasmLine> DebugAdapter::GetDisassembly(u16 start_address, u16 end_
381381 // Handle wrap-around within the bank when explicit bank is used
382382 if (use_explicit_bank)
383383 {
384- u16 offset_in_bank = addr & 0x1FFF ;
384+ u16 offset_in_bank = ( u16 ) addr & 0x1FFF ;
385385 offset_in_bank += (u16 )record->size ;
386386 if (offset_in_bank >= 0x2000 )
387387 {
@@ -392,7 +392,7 @@ std::vector<DisasmLine> DebugAdapter::GetDisassembly(u16 start_address, u16 end_
392392 }
393393 else
394394 {
395- addr = addr + (u16 )record->size ;
395+ addr = addr + (u32 )record->size ;
396396 }
397397
398398 if (record->size == 0 )
@@ -403,9 +403,6 @@ std::vector<DisasmLine> DebugAdapter::GetDisassembly(u16 start_address, u16 end_
403403 // No record at this address, try next byte
404404 addr++;
405405 }
406-
407- if (addr < start_address && !use_explicit_bank)
408- break ;
409406 }
410407
411408 return result;
0 commit comments