Chameleon: the OS is now also a zip file.
This commit is contained in:
parent
893a9b9d93
commit
dc362b52be
2
example-os/.gitignore
vendored
2
example-os/.gitignore
vendored
|
@ -4,4 +4,6 @@
|
||||||
/os.reasm
|
/os.reasm
|
||||||
/os.reasm.disasm
|
/os.reasm.disasm
|
||||||
/os.file
|
/os.file
|
||||||
|
/os.fdisk
|
||||||
/os.arm.disasm
|
/os.arm.disasm
|
||||||
|
/os.zip
|
||||||
|
|
|
@ -2,14 +2,15 @@ os_filename = os.bat
|
||||||
tests = test/qemu-system-i386 test/qemu-system-arm test/virtualbox test/bochs test/gui-sh test/dosbox
|
tests = test/qemu-system-i386 test/qemu-system-arm test/virtualbox test/bochs test/gui-sh test/dosbox
|
||||||
|
|
||||||
os_image_size_kb = 1440
|
os_image_size_kb = 1440
|
||||||
os_sectors_before_partition = 720
|
os_partition_start_sectors = 3
|
||||||
|
os_partition_size_sectors = 717 # 720 - start
|
||||||
# CHS parameters for 1.44 MB floppy disk
|
# CHS parameters for 1.44 MB floppy disk
|
||||||
os_floppy_chs_h = 2
|
os_floppy_chs_h = 2
|
||||||
os_floppy_chs_s = 9
|
os_floppy_chs_s = 9
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
# all: os.arm.disasm
|
# all: os.arm.disasm
|
||||||
all: $(os_filename) os.ndisasm.disasm os.reasm.asm os.reasm os.file .gitignore Makefile
|
all: $(os_filename) os.ndisasm.disasm os.reasm.asm os.reasm os.file os.fdisk .gitignore Makefile
|
||||||
|
|
||||||
../deploy-screenshots: Makefile
|
../deploy-screenshots: Makefile
|
||||||
mkdir -p $@
|
mkdir -p $@
|
||||||
|
@ -19,16 +20,22 @@ $(os_filename): os.asm ../deploy-screenshots Makefile
|
||||||
rm -f $@
|
rm -f $@
|
||||||
nasm -o $@ $<
|
nasm -o $@ $<
|
||||||
mformat -v "Example OS" \
|
mformat -v "Example OS" \
|
||||||
-T $$(($(os_image_size_kb)*1024/512-$(os_sectors_before_partition))) \
|
-T $$(($(os_partition_size_sectors))) \
|
||||||
-h $(os_floppy_chs_h) \
|
-h $(os_floppy_chs_h) \
|
||||||
-s $(os_floppy_chs_s) \
|
-s $(os_floppy_chs_s) \
|
||||||
-i "$@@@$$(($(os_sectors_before_partition)*512))"
|
-i "$@@@$$(($(os_partition_start_sectors)*512))"
|
||||||
# mcopy … "$@@@$$(($(os_sectors_before_partition)*512))"
|
# mcopy … "$@@@$$(($(os_partition_start_sectors)*512))"
|
||||||
|
zip os.zip $@
|
||||||
|
dd seek=$$(($(os_image_size_kb)*1024-$$(wc -c os.zip | cut -d ' ' -f 1))) bs=1 if=os.zip of=$@
|
||||||
|
zip --adjust-sfx $@
|
||||||
chmod a+x-w $@
|
chmod a+x-w $@
|
||||||
|
|
||||||
os.file: $(os_filename) Makefile
|
os.file: $(os_filename) Makefile
|
||||||
file -kr $< > $@
|
file -kr $< > $@
|
||||||
|
|
||||||
|
os.fdisk: $(os_filename) Makefile
|
||||||
|
fdisk -l $< > $@
|
||||||
|
|
||||||
os.ndisasm.disasm: $(os_filename) Makefile
|
os.ndisasm.disasm: $(os_filename) Makefile
|
||||||
../utils/compact-ndisasm.sh $< $@
|
../utils/compact-ndisasm.sh $< $@
|
||||||
|
|
||||||
|
@ -49,7 +56,7 @@ os.reasm: os.reasm.asm $(os_filename) Makefile
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: Makefile
|
clean: Makefile
|
||||||
rm -f $(os_filename) os.ndisasm.disasm os.reasm.asm os.reasm os.file os.arm.disasm
|
rm -f $(os_filename) os.ndisasm.disasm os.reasm.asm os.reasm os.file os.arm.disasm os.zip
|
||||||
|
|
||||||
.gitignore: Makefile
|
.gitignore: Makefile
|
||||||
echo /$(os_filename) > $@
|
echo /$(os_filename) > $@
|
||||||
|
@ -58,11 +65,17 @@ clean: Makefile
|
||||||
echo /os.reasm >> $@
|
echo /os.reasm >> $@
|
||||||
echo /os.reasm.disasm >> $@
|
echo /os.reasm.disasm >> $@
|
||||||
echo /os.file >> $@
|
echo /os.file >> $@
|
||||||
|
echo /os.fdisk >> $@
|
||||||
echo /os.arm.disasm >> $@
|
echo /os.arm.disasm >> $@
|
||||||
|
echo /os.zip >> $@
|
||||||
|
|
||||||
.PHONY: test
|
.PHONY: test
|
||||||
test: $(tests) all Makefile
|
test: $(tests) test/zip all Makefile
|
||||||
|
|
||||||
.PHONY: $(tests)
|
.PHONY: $(tests)
|
||||||
$(tests): $(os_filename) ../deploy-screenshots Makefile
|
$(tests): $(os_filename) ../deploy-screenshots Makefile
|
||||||
cd .. && ./utils/gui-wrapper.sh 800x600x24 ./$@.sh example-os/$<
|
cd .. && ./utils/gui-wrapper.sh 800x600x24 ./$@.sh example-os/$<
|
||||||
|
|
||||||
|
.PHONY: test/zip
|
||||||
|
test/zip:
|
||||||
|
unzip -t os.zip
|
||||||
|
|
|
@ -53,7 +53,7 @@ db "ExOSxx" ;; 0x1b8 unique disk ID (4 bytes, can be any value)
|
||||||
;;; 3 bytes End Head Sector Cylinder (8 bits + 6 bits + 10 bits)
|
;;; 3 bytes End Head Sector Cylinder (8 bits + 6 bits + 10 bits)
|
||||||
;;; 4 bytes LBA offset
|
;;; 4 bytes LBA offset
|
||||||
;;; 4 bytes LBA length
|
;;; 4 bytes LBA length
|
||||||
db 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x3d, 0x0b, 0x00, 0x00 ;; 0x1be p1
|
db 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x40, 0x0b, 0x00, 0x00, 0x3d, 0x0b, 0x00, 0x00 ;; 0x1be p1
|
||||||
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; 0x1ce p2
|
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; 0x1ce p2
|
||||||
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; 0x1de p3
|
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; 0x1de p3
|
||||||
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; 0x1ee p4
|
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 ;; 0x1ee p4
|
||||||
|
|
Loading…
Reference in New Issue
Block a user