wok rev 24942
BootProg: clear cmdline
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Apr 20 15:10:50 2022 +0000 (2022-04-20) |
parents | e7bde16e8f79 |
children | 810e3d0a38f7 |
files | BootProg/receipt BootProg/stuff/boot16.asm BootProg/stuff/boot32.asm BootProg/stuff/bootex.asm BootProg/stuff/bootprog.sh ipxe/stuff/bootloader.S memtest/stuff/bootloader.S memtest/stuff/memtest86+-5.01-array-size.patch pingus/receipt plop/stuff/bootloader.S tumbler-dev/receipt tumbler/receipt xaos/receipt |
line diff
1.1 --- a/BootProg/receipt Sat Apr 16 12:43:33 2022 +0000 1.2 +++ b/BootProg/receipt Wed Apr 20 15:10:50 2022 +0000 1.3 @@ -8,20 +8,17 @@ 1.4 LICENSE="MIT" 1.5 WEB_SITE="https://wiki.osdev.org/BootProg" 1.6 1.7 -BUILD_DEPENDS="nasm" 1.8 +BUILD_DEPENDS="nasm lzma" 1.9 1.10 # Rules to configure and make the package. 1.11 compile_rules() 1.12 { 1.13 mkdir -p $src && cd $src 1.14 - for i in bootex boot16 boot32 ; do 1.15 + sed '1,/^exit 1/!d' $stuff/bootprog.sh > bootprog 1.16 + for i in boot16 boot32 bootex ; do 1.17 cp $stuff/$i.asm . 1.18 - nasm $i.asm -f bin -o $i.bin -l $i.lst 1.19 - done 1.20 - sed '1,/^exit 1/!d' $stuff/bootprog.sh > bootprog 1.21 - tar czf - boot16.bin boot32.bin bootex.bin > set.tar.gz 1.22 - [ "$(which advdef)" ] && advdef -z4 set.tar.gz 1.23 - cat set.tar.gz >> bootprog 1.24 + nasm $i.asm -f bin -o $i.bin -l $i.lst && cat $i.bin 1.25 + done | lzma -9 >> bootprog 1.26 chmod +x bootprog 1.27 } 1.28
2.1 --- a/BootProg/stuff/boot16.asm Sat Apr 16 12:43:33 2022 +0000 2.2 +++ b/BootProg/stuff/boot16.asm Wed Apr 20 15:10:50 2022 +0000 2.3 @@ -213,14 +213,14 @@ 2.4 mul bx ; dx:ax = 0 = LBA (LBA are relative to FAT) 2.5 mov cx, word [bx(bpbSectorsPerFAT)] 2.6 2.7 - call ReadCXSectors ; read fat and clear cx 2.8 + call ReadCXSectors ; read fat and clear ax & cx 2.9 2.10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.11 ;; load the root directory in ;; 2.12 ;; its entirety (16KB max) ;; 2.13 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.14 2.15 - mov ax, 32 2.16 + mov al, 32 2.17 2.18 mul word [bx(bpbRootEntries)] 2.19 div word [bx(bpbBytesPerSector)] 2.20 @@ -230,7 +230,7 @@ 2.21 mul bp ; [bx(bpbSectorsPerFAT)], set by ReadCXSectors 2.22 2.23 push es 2.24 - call ReadCXSectors ; read root directory, clear cx and di 2.25 + call ReadCXSectors ; read root directory; clear ax, cx and di 2.26 pop es 2.27 2.28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.29 @@ -248,15 +248,15 @@ 2.30 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.31 2.32 FindNameCycle: 2.33 - cmp byte [es:di], ch 2.34 - je FindNameFailed ; end of root directory (NULL entry found) 2.35 push di 2.36 mov cl, 11 2.37 mov si, ProgramName ; ds:si -> program name 2.38 repe cmpsb 2.39 pop di 2.40 je FindNameFound 2.41 - add di, byte 32 2.42 + scasb 2.43 + je FindNameFailed ; end of root directory (NULL entry found) 2.44 + add di, byte 31 2.45 dec word [bx(bpbRootEntries)] 2.46 jnz FindNameCycle ; next root entry 2.47 2.48 @@ -298,28 +298,26 @@ 2.49 jnc First64 2.50 mov ah, (1000h+ImageLoadSeg)>>8 ; adjust segment for 2nd part of FAT16 2.51 First64: 2.52 + mov dx, 0FFF8h 2.53 + 2.54 cmp [bx(bpbSectorsPerFAT)], cx ; 1..12 = FAT12, 16..256 = FAT16 2.55 mov ds, ax 2.56 - jbe ReadClusterFat12 2.57 + ja ReadClusterFat16 2.58 2.59 - lodsw ; ax = next cluster 2.60 - cmp ax, 0FFF8h 2.61 - jmp short ReadClusterDone 2.62 - 2.63 -ReadClusterFat12: 2.64 + mov dh, 0Fh 2.65 add si, [cs:di] 2.66 shr si, 1 ; si = cluster * 3 / 2 2.67 2.68 +ReadClusterFat16: 2.69 lodsw ; ax = next cluster 2.70 jnc ReadClusterEven 2.71 2.72 rol ax, cl 2.73 2.74 ReadClusterEven: 2.75 - and ax, 0FFFh ; mask cluster value 2.76 - cmp ax, 0FF8h 2.77 + and ah, dh ; mask cluster value 2.78 + cmp ax, dx 2.79 2.80 -ReadClusterDone: 2.81 push cs 2.82 pop ds 2.83 inc di 2.84 @@ -352,7 +350,7 @@ 2.85 add ax, bp ; LBA for cluster data 2.86 adc dx, bx ; dx:ax = LBA 2.87 2.88 - call ReadSector ; clear cx 2.89 + call ReadSector ; clear ax & cx, restore dx 2.90 2.91 jne ReadClusters 2.92 2.93 @@ -365,7 +363,6 @@ 2.94 mov ds, bp ; bp=ds=seg the file is loaded to 2.95 2.96 add bp, [bx+08h] ; bp = image base 2.97 - mov ax, [bx+06h] ; ax = reloc items 2.98 mov di, [bx+18h] ; di = reloc table pointer 2.99 2.100 cmp word [bx], 5A4Dh ; "MZ" signature? 2.101 @@ -374,19 +371,22 @@ 2.102 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.103 ;; Setup and run a .COM program ;; 2.104 ;; Set CS=DS=ES=SS SP=0 IP=100h ;; 2.105 +;; AX=0ffffh BX=0 CX=0 DX=drive ;; 2.106 +;; and cmdline=void ;; 2.107 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.108 2.109 + mov di, 100h ; ip 2.110 mov bp, ImageLoadSeg-10h ; "org 100h" stuff :) 2.111 mov ss, bp 2.112 xor sp, sp 2.113 push bp ; cs, ds and es 2.114 - mov bh, 1 ; ip 2.115 jmp short Run 2.116 2.117 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.118 ;; Relocate, setup and run a .EXE program ;; 2.119 ;; Set CS:IP, SS:SP, DS, ES and AX according ;; 2.120 ;; to wiki.osdev.org/MZ#Initial_Program_State ;; 2.121 +;; AX=0ffffh BX=0 CX=0 DX=drive cmdline=void ;; 2.122 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.123 2.124 ReloCycle: 2.125 @@ -397,8 +397,8 @@ 2.126 scasw ; point to next entry 2.127 2.128 RelocateEXE: 2.129 - dec ax ; 32768 max (128KB table) 2.130 - jns ReloCycle ; leave with ax=0ffffh: both FCB in the 2.131 + dec word [bx+06h] ; reloc items, 32768 max (128KB table) 2.132 + jns ReloCycle 2.133 ; PSP don't have a valid drive identifier 2.134 les si, [bx+0Eh] 2.135 add si, bp 2.136 @@ -409,13 +409,15 @@ 2.137 push si ; containing the PSP structure 2.138 2.139 add bp, [bx+16h] ; cs for EXE 2.140 - mov bx, [bx+14h] ; ip for EXE 2.141 + mov di, [bx+14h] ; ip for EXE 2.142 Run: 2.143 pop ds 2.144 push bp 2.145 - push bx 2.146 + push di 2.147 push ds 2.148 pop es 2.149 + mov [80h], ax ; clear cmdline 2.150 + dec ax ; both FCB in the PSP don't have a valid drive identifier 2.151 2.152 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.153 ;; Set the magic numbers so the program knows that it ;; 2.154 @@ -539,10 +541,17 @@ 2.155 dec di ; keep C 2.156 loopne ReadSectorNext ; until cluster sector count or file sector count is reached 2.157 pop si 2.158 + mov ax, bx ; clear ax 2.159 mov dx, [bx] ; pass the BIOS boot drive to Run or Error 2.160 2.161 ret 2.162 2.163 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.164 +;; Fill free space with zeroes ;; 2.165 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.166 + 2.167 + times (512-13-20-($-$$)) db 0 2.168 + 2.169 ;;;;;;;;;;;;;;;;;;;;;;;;;; 2.170 ;; Error Messaging Code ;; 2.171 ;;;;;;;;;;;;;;;;;;;;;;;;;; 2.172 @@ -566,12 +575,6 @@ 2.173 hlt 2.174 jmp short Stop 2.175 2.176 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.177 -;; Fill free space with zeroes ;; 2.178 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.179 - 2.180 - times (512-13-($-$$)) db 0 2.181 - 2.182 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 2.183 ;; Name of the file to load and run ;; 2.184 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
3.1 --- a/BootProg/stuff/boot32.asm Sat Apr 16 12:43:33 2022 +0000 3.2 +++ b/BootProg/stuff/boot32.asm Wed Apr 20 15:10:50 2022 +0000 3.3 @@ -265,7 +265,6 @@ 3.4 mov ds, bp ; bp=ds=seg the file is loaded to 3.5 3.6 add bp, [bx+08h] ; bp = image base 3.7 - mov ax, [bx+06h] ; ax = reloc items 3.8 mov di, [bx+18h] ; di = reloc table pointer 3.9 3.10 cmp word [bx], 5A4Dh ; "MZ" signature? 3.11 @@ -275,9 +274,9 @@ 3.12 ;; Setup and run a .COM program ;; 3.13 ;; Set CS=DS=ES=SS SP=0 IP=100h ;; 3.14 ;; AX=0ffffh BX=0 CX=0 DX=drive ;; 3.15 +;; and cmdline=void ;; 3.16 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.17 3.18 - mov ax, 0ffffh ; both FCB in the PSP don't have a valid drive identifier 3.19 mov di, 100h ; ip 3.20 mov bp, ImageLoadSeg-10h ; "org 100h" stuff :) 3.21 mov ss, bp 3.22 @@ -289,7 +288,7 @@ 3.23 ;; Relocate, setup and run a .EXE program ;; 3.24 ;; Set CS:IP, SS:SP, DS, ES and AX according ;; 3.25 ;; to wiki.osdev.org/MZ#Initial_Program_State ;; 3.26 -;; AX=0ffffh BX=0 CX=0 DX=drive ;; 3.27 +;; AX=0ffffh BX=0 CX=0 DX=drive cmdline=void ;; 3.28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.29 3.30 ReloCycle: 3.31 @@ -300,13 +299,11 @@ 3.32 scasw ; point to next entry 3.33 3.34 RelocateEXE: 3.35 - dec ax ; 32768 max (128KB table) 3.36 - jns ReloCycle ; leave with ax=0ffffh: both FCB in the 3.37 - ; PSP don't have a valid drive identifier 3.38 - les si, [bx+0Eh] 3.39 - add si, bp 3.40 - mov ss, si ; ss for EXE 3.41 - mov sp, es ; sp for EXE 3.42 + dec word [bx+06h] ; reloc items, 32768 max (128KB table) 3.43 + jns ReloCycle 3.44 + 3.45 + add [bx+0Eh], bp 3.46 + lss sp, [bx+0Eh] ; ss:sp for EXE 3.47 3.48 lea si, [bp-10h] ; ds and es both point to the segment 3.49 push si ; containing the PSP structure 3.50 @@ -319,6 +316,9 @@ 3.51 push di 3.52 push ds 3.53 pop es 3.54 + xor ax, ax 3.55 + mov [80h], ax ; clear cmdline 3.56 + dec ax ; both FCB in the PSP don't have a valid drive identifier 3.57 3.58 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.59 ;; Set the magic numbers so the program knows that it ;; 3.60 @@ -431,6 +431,12 @@ 3.61 ReadSectorNext: 3.62 ret 3.63 3.64 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.65 +;; Fill free space with zeroes ;; 3.66 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.67 + 3.68 + times (512-13-20-($-$$)) db 0 3.69 + 3.70 ;;;;;;;;;;;;;;;;;;;;;;;;;; 3.71 ;; Error Messaging Code ;; 3.72 ;;;;;;;;;;;;;;;;;;;;;;;;;; 3.73 @@ -452,12 +458,6 @@ 3.74 hlt 3.75 jmp short Stop 3.76 3.77 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.78 -;; Fill free space with zeroes ;; 3.79 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.80 - 3.81 - times (512-13-($-$$)) db 0 3.82 - 3.83 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 3.84 ;; Name of the file to load and run ;; 3.85 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4.1 --- a/BootProg/stuff/bootex.asm Sat Apr 16 12:43:33 2022 +0000 4.2 +++ b/BootProg/stuff/bootex.asm Wed Apr 20 15:10:50 2022 +0000 4.3 @@ -160,7 +160,7 @@ 4.4 ;;;;;;;;;;;;;;;;;;;;;; 4.5 4.6 push es 4.7 - push byte main 4.8 + push word main 4.9 retf 4.10 4.11 main: 4.12 @@ -173,7 +173,7 @@ 4.13 mov esi, [bx(bpbRootDirCluster)] ; esi=cluster # of root dir 4.14 4.15 push byte ImageLoadSeg 4.16 - pop es 4.17 + pop es ; cx = 0 4.18 4.19 RootDirReadContinue: 4.20 call ReadCluster ; read one sector of root dir 4.21 @@ -207,11 +207,10 @@ 4.22 cmp al, 0c0h ; EXFAT_ENTRY_FILE_INFO ? 4.23 jne NotFileInfo 4.24 4.25 - mov bl, 30 4.26 + mov bl, 31 4.27 CopyInfo: 4.28 - mov ax, [es:di+bx] 4.29 - mov [bx], ax 4.30 - dec bx 4.31 + mov al, [es:di+bx] 4.32 + mov [bx], al 4.33 dec bx 4.34 jnz CopyInfo 4.35 4.36 @@ -232,6 +231,7 @@ 4.37 popf ; restore carry="not last sector" flag 4.38 jc RootDirReadContinue ; continue to the next root dir cluster 4.39 FindNameFailed: ; end of root directory (dir end reached) 4.40 +; mov dx, [bx] ; restore BIOS boot drive number 4.41 call Error 4.42 db "File not found." 4.43 FindNameFound: 4.44 @@ -251,6 +251,7 @@ 4.45 call ReadCluster ; read one cluster of root dir 4.46 sub [bx+FileSize], ebp 4.47 ja FileReadContinue 4.48 + mov dx, [bx] ; restore BIOS boot drive number 4.49 pop bp 4.50 4.51 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.52 @@ -260,7 +261,6 @@ 4.53 mov ds, bp ; bp=ds=seg the file is loaded to 4.54 4.55 add bp, [bx+08h] ; bp = image base 4.56 - mov ax, [bx+06h] ; ax = reloc items 4.57 mov di, [bx+18h] ; di = reloc table pointer 4.58 4.59 cmp word [bx], 5A4Dh ; "MZ" signature? 4.60 @@ -270,9 +270,9 @@ 4.61 ;; Setup and run a .COM program ;; 4.62 ;; Set CS=DS=ES=SS SP=0 IP=100h ;; 4.63 ;; AX=0ffffh BX=0 CX=0 DX=drive ;; 4.64 +;; and cmdline=void ;; 4.65 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.66 4.67 - mov ax, 0ffffh ; both FCB in the PSP don't have a valid drive identifier 4.68 mov di, 100h ; ip 4.69 mov bp, ImageLoadSeg-10h ; "org 100h" stuff :) 4.70 mov ss, bp 4.71 @@ -284,7 +284,7 @@ 4.72 ;; Relocate, setup and run a .EXE program ;; 4.73 ;; Set CS:IP, SS:SP, DS, ES and AX according ;; 4.74 ;; to wiki.osdev.org/MZ#Initial_Program_State ;; 4.75 -;; AX=0ffffh BX=0 CX=0 DX=drive ;; 4.76 +;; AX=0ffffh BX=0 CX=0 DX=drive cmdline=void ;; 4.77 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.78 4.79 ReloCycle: 4.80 @@ -295,13 +295,11 @@ 4.81 scasw ; point to next entry 4.82 4.83 RelocateEXE: 4.84 - dec ax ; 32768 max (128KB table) 4.85 - jns ReloCycle ; leave with ax=0ffffh: both FCB in the 4.86 - ; PSP don't have a valid drive identifier 4.87 - les si, [bx+0Eh] 4.88 - add si, bp 4.89 - mov ss, si ; ss for EXE 4.90 - mov sp, es ; sp for EXE 4.91 + dec word [bx+06h] ; reloc items, 32768 max (128KB table) 4.92 + jns ReloCycle 4.93 + 4.94 + add [bx+0Eh], bp 4.95 + lss sp, [bx+0Eh] ; ss:sp for EXE 4.96 4.97 lea si, [bp-10h] ; ds and es both point to the segment 4.98 push si ; containing the PSP structure 4.99 @@ -314,6 +312,9 @@ 4.100 push di 4.101 push ds 4.102 pop es 4.103 + xor ax, ax 4.104 + mov [80h], ax ; clear cmdline 4.105 + dec ax ; both FCB in the PSP don't have a valid drive identifier 4.106 4.107 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.108 ;; Set the magic numbers so the program knows that it ;; 4.109 @@ -411,7 +412,7 @@ 4.110 ReadSectorRetry: 4.111 mov si, sp 4.112 mov ah, 42h ; ah = 42h = extended read function no. 4.113 - mov dl, [bx] 4.114 + mov dx, [bx] ; restore BIOS boot drive number 4.115 int 13h ; extended read sectors (DL, DS:SI) 4.116 4.117 jnc ReadSuccess 4.118 @@ -434,9 +435,14 @@ 4.119 4.120 cmp esi, byte -10 ; carry=0 if last cluster, and carry=1 otherwise 4.121 ReadSectorNext: 4.122 - mov dl, [bx] ; restore BIOS boot drive number 4.123 ret 4.124 4.125 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.126 +;; Fill free space with zeroes ;; 4.127 +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.128 + 4.129 + times (512-13-20-($-$$)) db 0 4.130 + 4.131 ;;;;;;;;;;;;;;;;;;;;;;;;;; 4.132 ;; Error Messaging Code ;; 4.133 ;;;;;;;;;;;;;;;;;;;;;;;;;; 4.134 @@ -460,12 +466,6 @@ 4.135 hlt 4.136 jmp short Stop 4.137 4.138 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.139 -;; Fill free space with zeroes ;; 4.140 -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.141 - 4.142 - times (512-13-($-$$)) db 0 4.143 - 4.144 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 4.145 ;; Name of the file to load and run ;; 4.146 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5.1 --- a/BootProg/stuff/bootprog.sh Sat Apr 16 12:43:33 2022 +0000 5.2 +++ b/BootProg/stuff/bootprog.sh Wed Apr 20 15:10:50 2022 +0000 5.3 @@ -1,39 +1,30 @@ 5.4 #!/bin/sh 5.5 5.6 [ ! -e "$1" ] && cat <<EOT && exit 2 5.7 -Usage: [FAT=<FAT12|FAT16|FAT32|EXFAT>] $0 device [boot name entry] [boot.bin] 5.8 +Usage: [FAT=<FAT12|FAT16|FAT32|EXFAT>] $0 device [file] 5.9 Example: $0 /dev/fd0 STARTUP.BIN 5.10 EOT 5.11 5.12 -while read chk ofs fat bin name; do 5.13 - [ $FAT -eq $fat ] || [ "$(dd if="$1" bs=1 count=8 skip=$chk)" = "$fat " ] || continue 5.14 - echo "Install $fat bootsector on $1." 5.15 - for arg in "skip=$(($ofs+8)) seek=$(($ofs+8))" "count=11" ; do 5.16 - if [ "$3" ]; then 5.17 - cat "$3" 5.18 - else 5.19 - sed '1,/^exit 1/d' $0 | tar xzOf - boot$bin.bin 5.20 - fi | dd of="$1" bs=1 conv=notrunc $arg 5.21 +ddo="dd of=$1 bs=1 conv=notrunc" 5.22 +while read c o b f; do 5.23 + [ "${FAT:-$(dd if="$1" bs=1 count=5 skip=$c)}" = "$f" ] || continue 5.24 + echo "Install $f bootsector on $1." 5.25 + for a in "$((o+b)) seek=$o count=$((512-o))" "$b count=11"; do 5.26 + sed '1,/^exit 1/d' $0 | unlzma | $ddo skip=$a 5.27 done 5.28 - [ "$2" ] && echo "Set bootfile '$2'" && echo -en "$name" | \ 5.29 - dd of="$1" bs=1 conv=notrunc seek=499 count=11 5.30 - case "$fat" in 5.31 - EXFAT) dd if="$1" bs=512 count=11 | od -v -An -t u1 -w1 - | awk ' 5.32 -BEGIN { chk=0; i=-1 } 5.33 -{ 5.34 - i++ 5.35 - if (i == 106 || i == 107 || i == 112) next 5.36 - chk = or(lshift(chk,31),rshift(chk,1)) + $1 5.37 -} 5.38 -END { a=chk%256; b=(chk/256)%256; c=(chk/256/256)%256; d=chk/256/256/256 5.39 - for (i=0;i<128;i++) printf "echo -en \"\\x%02X\\x%02X\\x%02X\\x%02X\"\n",a,b,c,d 5.40 -} ' | sh | dd bs=512 of="$1" seek=11 5.41 - esac 5.42 + [ "$2" ] && echo "Set boot file '$2'" && echo -n "$2" | case "$f" in 5.43 + E*) sed 's| |.|;s| ||g' | cat - /dev/zero;; 5.44 + *) tr a-z A-Z | sed 's|\.| |;s|^\(.\{8\}\) *|\1|;s|$| |' 5.45 + esac | $ddo seek=499 count=11 5.46 + [ "$f" = "EXFAT" ] && dd if="$1" bs=512 count=11 | od -v -An -t u1 -w1 - | LANG=C awk ' 5.47 +BEGIN { a=0;i=-1;m=0xFFFFFFFE } 5.48 +{ if (++i!=106 && i!=107 && i!=112) a=or(and(lshift(a,31),m),and(rshift(a,1),m/2))+$1 } 5.49 +END { b=a/256;c=b/256; for (i=0;i<128;i++) printf "%c%c%c%c",a%256,b%256,c%256,(c/256)%256 }' | $ddo seek=5632 5.50 exit 0 5.51 -done 2> /dev/null <<EOT 5.52 -54 54 FAT12 16 $(A="${2/./ }";echo "${A:0:8}${A##* } " | tr '[a-z]' '[A-Z]' | sed 's| |\\\\x20|g') 5.53 -54 54 FAT16 16 $(A="${2/./ }";echo "${A:0:8}${A##* } " | tr '[a-z]' '[A-Z]' | sed 's| |\\\\x20|g') 5.54 -82 82 FAT32 32 $(A="${2/./ }";echo "${A:0:8}${A##* } " | tr '[a-z]' '[A-Z]' | sed 's| |\\\\x20|g') 5.55 -3 105 EXFAT ex $(echo "$2" | sed 's| |.|;s| ||g')\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0\\\\0 5.56 +done 2>/dev/null <<EOT 5.57 +54 62 0 FAT12 5.58 +54 62 0 FAT16 5.59 +82 90 512 FAT32 5.60 +3 113 1024 EXFAT 5.61 EOT 5.62 exit 1
6.1 --- a/ipxe/stuff/bootloader.S Sat Apr 16 12:43:33 2022 +0000 6.2 +++ b/ipxe/stuff/bootloader.S Wed Apr 20 15:10:50 2022 +0000 6.3 @@ -20,6 +20,7 @@ 6.4 /* some extra features */ 6.5 #define EXE_SUPPORT real mode dos .exe file support +208/264 6.6 #define CMDLINE dos kernel cmdline support +45 6.7 +#define BUGGY_CMDLINE verify cmdline length +2 6.8 #define VCPI VCPI 4.0 support (386+) +109 6.9 #define SHUTDOWNDOS shutdown DOS services +29 6.10 6.11 @@ -28,7 +29,7 @@ 6.12 //#define FLOPPY_HAS_2_SIDES hardcoded heads count to 2 -15 6.13 //#define NO_CMDLINE_SHRINK remove heading spaces ? -6-21 6.14 //#define NO_CMDLINE_FILE remove @cmdline file support ? -21 6.15 -//#define NO_DOTS show progression dots ? -5 6.16 +#define NO_DOTS show progression dots ? -5 6.17 #ifndef BZIMAGE 6.18 //#define TINY_ZIMAGE system < 64Kb ? -11 6.19 //#define NO_MINSETUP default setup (dos only) ? -4 6.20 @@ -356,7 +357,12 @@ 6.21 lodsb 6.22 cbw 6.23 xchgw %ax, %cx 6.24 +#ifdef BUGGY_CMDLINE 6.25 + test %cl, %cl # C=O=0, set S & Z 6.26 + jng nocmdline # Z == 1 or O != S ? 6.27 +#else 6.28 jcxz nocmdline 6.29 +#endif 6.30 # if defined(BZIMAGE) && BZIMAGE >= 0x202 6.31 movw $INITSEG/16+stacktop/256, EXEADRS(cmd_line_ptr+1) 6.32 # else
7.1 --- a/memtest/stuff/bootloader.S Sat Apr 16 12:43:33 2022 +0000 7.2 +++ b/memtest/stuff/bootloader.S Wed Apr 20 15:10:50 2022 +0000 7.3 @@ -20,6 +20,7 @@ 7.4 /* some extra features */ 7.5 #define EXE_SUPPORT real mode dos .exe file support +208/264 7.6 #define CMDLINE dos kernel cmdline support +45 7.7 +#define BUGGY_CMDLINE verify cmdline length +2 7.8 #define VCPI VCPI 4.0 support (386+) +109 7.9 #define SHUTDOWNDOS shutdown DOS services +29 7.10 7.11 @@ -356,7 +357,12 @@ 7.12 lodsb 7.13 cbw 7.14 xchgw %ax, %cx 7.15 +#ifdef BUGGY_CMDLINE 7.16 + test %cl, %cl # C=O=0, set S & Z 7.17 + jng nocmdline # Z == 1 or O != S ? 7.18 +#else 7.19 jcxz nocmdline 7.20 +#endif 7.21 # if defined(BZIMAGE) && BZIMAGE >= 0x202 7.22 movw $INITSEG/16+stacktop/256, EXEADRS(cmd_line_ptr+1) 7.23 # else
8.1 --- a/memtest/stuff/memtest86+-5.01-array-size.patch Sat Apr 16 12:43:33 2022 +0000 8.2 +++ b/memtest/stuff/memtest86+-5.01-array-size.patch Wed Apr 20 15:10:50 2022 +0000 8.3 @@ -18,3 +18,30 @@ 8.4 pci_conf_read( possible_nhm_bus[i], 3, 4, 0x00, 2, &vid); 8.5 pci_conf_read( possible_nhm_bus[i], 3, 4, 0x02, 2, &did); 8.6 vid &= 0xFFFF; 8.7 +@@ -1424,7 +1424,7 @@ 8.8 + unsigned long dramchr; 8.9 + float clockratio; 8.10 + double dramclock; 8.11 +- unsigned int dummy[3]; 8.12 ++ unsigned int dummy[4]; 8.13 + int ram_type; 8.14 + 8.15 + float coef = 10; 8.16 +@@ -3680,7 +3680,7 @@ 8.17 + static void poll_timings_k16(void) { 8.18 + 8.19 + ulong dramt0, dramt1; 8.20 +- int cas, rcd, rp, rc, ras; 8.21 ++ int cas, rcd, rp, ras; 8.22 + 8.23 + pci_conf_read(0, 24, 2, 0x200, 4, &dramt0); 8.24 + pci_conf_read(0, 24, 2, 0x204, 4, &dramt1); 8.25 +@@ -3690,7 +3690,7 @@ 8.26 + rp = ((dramt0 >> 16) & 0x1F); 8.27 + ras = ((dramt0 >> 24) & 0x3F); 8.28 + 8.29 +- rc = (dramt1 & 0x3F); 8.30 ++ //int rc = (dramt1 & 0x3F); 8.31 + 8.32 + print_ram_line(cas, rcd, rp, ras, 1); 8.33 + }
9.1 --- a/pingus/receipt Sat Apr 16 12:43:33 2022 +0000 9.2 +++ b/pingus/receipt Wed Apr 20 15:10:50 2022 +0000 9.3 @@ -11,7 +11,7 @@ 9.4 LICENSE="GPL2" 9.5 9.6 TARBALL="$PACKAGE-$VERSION.tar.bz2" 9.7 -WEB_SITE="https://pingus.seul.org/" 9.8 +WEB_SITE="https://gitlab.com/pingus/pingus" 9.9 WGET_URL="http://pingus.seul.org/files/$TARBALL" 9.10 9.11 DEPENDS="libsdl libsdl-image libsdl-mixer 9.12 @@ -23,8 +23,8 @@ 9.13 9.14 current_version() 9.15 { 9.16 - wget -O - $WEB_SITE/download.html 2>/dev/null | \ 9.17 - sed "/tar/!d;s|.*$PACKAGE-||;s|.tar.*||;q" 9.18 + wget -O - https://gitlab.com/pingus/pingus/-/tags?sort=updated_desc | \ 9.19 + sed '/item-title/!d;s|.*>v||;s|<.*||;q' 9.20 } 9.21 9.22 # Rules to configure and make the package.
10.1 --- a/plop/stuff/bootloader.S Sat Apr 16 12:43:33 2022 +0000 10.2 +++ b/plop/stuff/bootloader.S Wed Apr 20 15:10:50 2022 +0000 10.3 @@ -20,12 +20,13 @@ 10.4 /* some extra features */ 10.5 #define EXE_SUPPORT real mode dos .exe file support +208/264 10.6 #define CMDLINE dos kernel cmdline support +45 10.7 +#define BUGGY_CMDLINE verify cmdline length +2 10.8 #define VCPI VCPI 4.0 support (386+) +109 10.9 #define SHUTDOWNDOS shutdown DOS services +29 10.10 10.11 /* some contraints to reduce the code size */ 10.12 //#define FLOPPY_1440K_ONLY 1.44M floppies support only -26 10.13 -#define FLOPPY_HAS_2_SIDES hardcoded heads count to 2 -15 10.14 +//#define FLOPPY_HAS_2_SIDES hardcoded heads count to 2 -15 10.15 //#define NO_CMDLINE_SHRINK remove heading spaces ? -6-21 10.16 //#define NO_CMDLINE_FILE remove @cmdline file support ? -21 10.17 //#define NO_DOTS show progression dots ? -5 10.18 @@ -313,8 +314,8 @@ 10.19 #else 10.20 subw %ax, %bx 10.21 jnc forward 10.22 + //movw $0x8FFF, %ax 10.23 movb $0x90, %ah 10.24 - ;decw %ax 10.25 forward: 10.26 movw %ax, %es 10.27 movw %ax, %di 10.28 @@ -356,7 +357,12 @@ 10.29 lodsb 10.30 cbw 10.31 xchgw %ax, %cx 10.32 +#ifdef BUGGY_CMDLINE 10.33 + test %cl, %cl # C=O=0, set S & Z 10.34 + jng nocmdline # Z == 1 or O != S ? 10.35 +#else 10.36 jcxz nocmdline 10.37 +#endif 10.38 # if defined(BZIMAGE) && BZIMAGE >= 0x202 10.39 movw $INITSEG/16+stacktop/256, EXEADRS(cmd_line_ptr+1) 10.40 # else
11.1 --- a/tumbler-dev/receipt Sat Apr 16 12:43:33 2022 +0000 11.2 +++ b/tumbler-dev/receipt Wed Apr 20 15:10:50 2022 +0000 11.3 @@ -6,7 +6,7 @@ 11.4 SHORT_DESC="Development files for tumbler." 11.5 MAINTAINER="al.bobylev@gmail.com" 11.6 LICENSE="GPL2 LGPL2.1" 11.7 -WEB_SITE="https://docs.xfce.org/xfce/thunar/tumbler" 11.8 +WEB_SITE="https://gitlab.xfce.org/xfce/tumbler/" 11.9 11.10 DEPENDS="pkg-config tumbler" 11.11 WANTED="tumbler"
12.1 --- a/tumbler/receipt Sat Apr 16 12:43:33 2022 +0000 12.2 +++ b/tumbler/receipt Wed Apr 20 15:10:50 2022 +0000 12.3 @@ -6,7 +6,7 @@ 12.4 SHORT_DESC="A D-Bus thumbnailing service based on the thumbnail management D-Bus specification." 12.5 MAINTAINER="al.bobylev@gmail.com" 12.6 LICENSE="GPL2 LGPL2.1" 12.7 -WEB_SITE="https://docs.xfce.org/xfce/thunar/tumbler" 12.8 +WEB_SITE="https://gitlab.xfce.org/xfce/tumbler/" 12.9 12.10 TARBALL="$PACKAGE-$VERSION.tar.bz2" 12.11 WGET_URL="http://archive.xfce.org/src/xfce/$PACKAGE/${VERSION%.*}/$TARBALL"
13.1 --- a/xaos/receipt Sat Apr 16 12:43:33 2022 +0000 13.2 +++ b/xaos/receipt Wed Apr 20 15:10:50 2022 +0000 13.3 @@ -7,7 +7,7 @@ 13.4 MAINTAINER="pascal.bellard@slitaz.org" 13.5 LICENSE="GPL2" 13.6 TARBALL="$PACKAGE-$VERSION.tar.gz" 13.7 -WEB_SITE="https://matek.hu/xaos/" 13.8 +WEB_SITE="https://xaos-project.github.io/" 13.9 WGET_URL="http://heanet.dl.sourceforge.net/project/xaos/XaoS/$VERSION/$TARBALL" 13.10 13.11 DEPENDS="libpng zlib"