mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[mbr] replace gpt.S with a more generic msg.S
* msg.S now reads an ASCII message (with escaped colour sequences) from the following blocks, which is both more flexible and allows for more content to be displayed. * Also adds Bochs testing to the MBR build facility
This commit is contained in:
		
							parent
							
								
									b8579c04da
								
							
						
					
					
						commit
						bfbb9d2ed5
					
				
					 9 changed files with 325 additions and 122 deletions
				
			
		|  | @ -17,23 +17,23 @@ | |||
| # along with this program; if not, see <http://www.gnu.org/licenses/>.
 | ||||
| #
 | ||||
| 
 | ||||
| OBJECTS   = mbr.o | ||||
| TARGET    = mbr | ||||
| TEST_TARGET = msg | ||||
| 
 | ||||
| ASM       = gcc | ||||
| CC        = gcc | ||||
| LD        = ld | ||||
| OBJDUMP   = objdump | ||||
| OBJCOPY   = objcopy | ||||
| CFLAGS    = -m32 | ||||
| LDFLAGS   = -nostartfile | ||||
| ASM         = gcc | ||||
| CC          = gcc | ||||
| LD          = ld | ||||
| OBJDUMP     = objdump | ||||
| OBJCOPY     = objcopy | ||||
| CFLAGS      = -m32 | ||||
| LDFLAGS     = -nostartfile | ||||
| BOCHS       = "C:/Program Files/Bochs/bochsdbg.exe" | ||||
| 
 | ||||
| .PHONY: all clean | ||||
| 
 | ||||
| all: $(TARGET).bin | ||||
| all: mbr.bin msg.bin | ||||
| 
 | ||||
| clean: | ||||
| 	@-rm -f -v *.o *.out $(TARGET).map | ||||
| 	@-rm -f -v *.o *.out *.map *.bin *.img *.ini | ||||
| 
 | ||||
| %.o: %.c Makefile | ||||
| 	@echo "[CC]  $@" | ||||
|  | @ -44,17 +44,25 @@ clean: | |||
| 	@$(ASM) -c -o $*.o $(CFLAGS) $< | ||||
| 
 | ||||
| # Produce a disassembly dump, for verification purposes
 | ||||
| dis: $(TARGET).out | ||||
| dis: $(TEST_TARGET).out | ||||
| 	@echo "[DIS] $<" | ||||
| 	@$(OBJCOPY) -O binary -j .main --set-section-flags .main=alloc,load,readonly,code $< main.bin | ||||
| 	@$(OBJDUMP) -D -bbinary -mi8086 -Mintel main.bin | less | ||||
| 	@-rm -f main.bin | ||||
| 
 | ||||
| $(TARGET).out: $(OBJECTS) $(TARGET).ld | ||||
| 	@echo "[LD]  $@" | ||||
| 	@$(LD) $(LDFLAGS) -T$(TARGET).ld -o $@ $(OBJECTS) -Map $(TARGET).map | ||||
| # Run the MBR in a Bochs environment (append msg.txt in subsequent blocks)
 | ||||
| test: $(TEST_TARGET).bin | ||||
| 	@test -s $(BOCHS) || { echo "Error: $(BOCHS) was not found on this system"; exit 1; } | ||||
| 	@cat $(TEST_TARGET).bin msg.txt > disk.img | ||||
| 	@truncate -c -s 10M disk.img | ||||
| 	-@$(BOCHS) -f bochsrc.bxrc -q | ||||
| 
 | ||||
| $(TARGET).bin: $(TARGET).out | ||||
| %.out: %.o mbr.ld | ||||
| 	@echo "[LD]  $@" | ||||
| 	@$(LD) $(LDFLAGS) -Tmbr.ld -o $@ $< -Map $*.map | ||||
| 
 | ||||
| %.bin: %.out | ||||
| 	@echo "[MBR] $@" | ||||
| 	@# Note: -j only works for sections that have the 'ALLOC' flag set | ||||
| 	@$(OBJCOPY) -O binary -j .main --gap-fill=0x00 $< $@ | ||||
| 	@-rm -f $< $*.map | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue