Fix disassembler not advancing past PC
This commit is contained in:
		
							parent
							
								
									ae22c95dbe
								
							
						
					
					
						commit
						53826584b8
					
				
							
								
								
									
										18
									
								
								core/vb.h
								
								
								
								
							
							
						
						
									
										18
									
								
								core/vb.h
								
								
								
								
							|  | @ -84,6 +84,24 @@ extern "C" { | |||
| /* Option keys */ | ||||
| #define VB_PSEUDO_HALT 0 | ||||
| 
 | ||||
| /* Controller buttons */ | ||||
| #define VB_PWR 0x0001 | ||||
| #define VB_SGN 0x0002 | ||||
| #define VB_A   0x0004 | ||||
| #define VB_B   0x0008 | ||||
| #define VB_RT  0x0010 | ||||
| #define VB_LT  0x0020 | ||||
| #define VB_RU  0x0040 | ||||
| #define VB_RR  0x0080 | ||||
| #define VB_LR  0x0100 | ||||
| #define VB_LL  0x0200 | ||||
| #define VB_LD  0x0400 | ||||
| #define VB_LU  0x0800 | ||||
| #define VB_STA 0x1000 | ||||
| #define VB_SEL 0x2000 | ||||
| #define VB_RL  0x4000 | ||||
| #define VB_RD  0x8000 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| /*********************************** Types ***********************************/ | ||||
|  |  | |||
|  | @ -295,7 +295,7 @@ static void vsuWriteLRV(VB *sim, int index, uint8_t value) { | |||
| 
 | ||||
| /* Write a value to S*RAM */ | ||||
| static void vsuWriteRAM(VB *sim, int index, uint8_t value) { | ||||
|     sim->vsu.channels[index].wave.wave = value & 7; | ||||
|     sim->vsu.channels[index].wave.wave = value & 15; | ||||
| } | ||||
| 
 | ||||
| /* Write a value to S5SWP */ | ||||
|  |  | |||
|  | @ -511,7 +511,7 @@ static int dasmLine(VB *sim, uint32_t *address, uint32_t pc, | |||
|     line->isPC       = *address == pc; | ||||
|     for (x = 0; x < line->codeLength; x++) | ||||
|         line->code[x] = vbRead(sim, *address + x, VB_U8); | ||||
|     *address += pc - *address < line->codeLength ? | ||||
|     *address += pc != *address && pc - *address < line->codeLength ? | ||||
|         pc - *address : line->codeLength; | ||||
| 
 | ||||
|     /* Do not process text members */ | ||||
|  | @ -655,7 +655,7 @@ static VBU_DasmLine* dasmDisassemble(VB *sim, uint32_t address, | |||
|         size = dasmInstSize(sim, addr); | ||||
|         if (address - addr < size) | ||||
|             break; | ||||
|         addr += pc - addr < size ? pc - addr : size; | ||||
|         addr += addr != pc && pc - addr < size ? pc - addr : size; | ||||
|     } | ||||
| 
 | ||||
|     /* Address of first line is in the circular buffer */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue