wok rev 25454

oldrunner: add apple2 keys mapping
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Sep 22 07:58:57 2022 +0000 (19 months ago)
parents ec9531d04de1
children 002a704d9c02
files BootProg/receipt BootProg/stuff/boot16.asm BootProg/stuff/boot32.asm BootProg/stuff/bootex.asm BootProg/stuff/bootprog.sh dex2jar/receipt oldrunner/receipt oldrunner/stuff/remap.u viewnior/receipt wol/receipt
line diff
     1.1 --- a/BootProg/receipt	Sat Sep 17 08:17:46 2022 +0000
     1.2 +++ b/BootProg/receipt	Thu Sep 22 07:58:57 2022 +0000
     1.3 @@ -8,17 +8,17 @@
     1.4  LICENSE="MIT"
     1.5  WEB_SITE="https://wiki.osdev.org/BootProg"
     1.6  
     1.7 -BUILD_DEPENDS="nasm lzma"
     1.8 +BUILD_DEPENDS="nasm xz"
     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 -	sed '1,/^exit 1/!d' $stuff/bootprog.sh > bootprog
    1.15 +	sed '1,/^exit/!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 && cat $i.bin
    1.19 -	done | lzma -9 >> bootprog
    1.20 +	done | xz -z --format=lzma --lzma1=lc=0,pb=0,nice=102,dict=4k >> bootprog
    1.21  	chmod +x bootprog
    1.22  }
    1.23  
     2.1 --- a/BootProg/stuff/boot16.asm	Sat Sep 17 08:17:46 2022 +0000
     2.2 +++ b/BootProg/stuff/boot16.asm	Thu Sep 22 07:58:57 2022 +0000
     2.3 @@ -65,7 +65,7 @@
     2.4  ;;                   Boot Image Startup (register values):                  ;;
     2.5  ;;                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  ;;
     2.6  ;;  ax = 0ffffh (both FCB in the PSP don't have a valid drive identifier),  ;;
     2.7 -;;  bx = cx = 0, dl = BIOS boot drive number (e.g. 0, 80H)                  ;;
     2.8 +;;  bx = 0, dl = BIOS boot drive number (e.g. 0, 80H)                       ;;
     2.9  ;;  cs:ip = program entry point                                             ;;
    2.10  ;;  ss:sp = program stack (don't confuse with boot sector's stack)          ;;
    2.11  ;;  COM program defaults: cs = ds = es = ss = 50h, sp = 0, ip = 100h        ;;
    2.12 @@ -261,7 +261,7 @@
    2.13  
    2.14  FindNameCycle:
    2.15          push    di
    2.16 -        mov     cl, 11
    2.17 +        mov     cl, NameLength
    2.18          mov     si, ProgramName         ; ds:si -> program name
    2.19          repe    cmpsb
    2.20          pop     di
    2.21 @@ -306,9 +306,14 @@
    2.22  
    2.23  FAT12   	equ       1
    2.24  FAT16   	equ       1
    2.25 +TINYFAT16   	equ       1
    2.26          push    di                      ; up to 2 * 635K / BytesPerCluster = 2540 bytes
    2.27  %if FAT12 == 1
    2.28 + %if TINYFAT16 == 0 && FAT16 == 1
    2.29 +        mov     cl, 12
    2.30 + %else
    2.31          mov     cl, 4
    2.32 + %endif
    2.33  %endif
    2.34  ClusterLoop:
    2.35          mov     [di], si
    2.36 @@ -320,7 +325,11 @@
    2.37  First64k:
    2.38   %if FAT12 == 1
    2.39          mov     dx, 0FFF8h
    2.40 +  %if TINYFAT16 == 1
    2.41          test    [bx(bsFileSystem+4)], cl ; FAT12 or FAT16 ? clear C
    2.42 +  %else
    2.43 +        cmp     [bx(bpbSectorsPerFAT)], cx ; 1..12 = FAT12, 16..256 = FAT16
    2.44 +  %endif
    2.45          jne     ReadClusterFat16
    2.46          mov     dh, 0Fh
    2.47   %endif
    2.48 @@ -340,22 +349,24 @@
    2.49  %endif
    2.50  %if FAT12 == 1
    2.51          jnc     ReadClusterEven
    2.52 + %if TINYFAT16 == 0 && FAT16 == 1
    2.53 +        rol     ax, cl
    2.54 + %else
    2.55          shr     ax, cl
    2.56 + %endif
    2.57  ReadClusterEven:
    2.58 -%endif
    2.59          scasw                           ; di += 2
    2.60 -%if FAT12 == 1 && FAT16 == 1
    2.61 + %if FAT16 == 1
    2.62          and     ah, dh                  ; mask cluster value
    2.63          cmp     ax, dx
    2.64 -%else
    2.65 - %if FAT12 == 1
    2.66 + %else
    2.67          and     ah, 0Fh                 ; mask cluster value
    2.68          cmp     ax, 0FF8h
    2.69 - %else
    2.70 + %endif
    2.71 +%else
    2.72 +        scasw                           ; di += 2
    2.73          cmp     ax, 0FFF8h
    2.74 - %endif
    2.75  %endif
    2.76 -
    2.77          xchg    ax, si
    2.78          jc      ClusterLoop
    2.79          pop     si
    2.80 @@ -379,13 +390,13 @@
    2.81          dec     ax
    2.82          dec     ax
    2.83  
    2.84 -        mov     cl, [bx(bpbSectorsPerCluster)]
    2.85 +        mov     cl, [bx(bpbSectorsPerCluster)] ; 1..128
    2.86          mul     cx                      ; cx = sector count (ch = 0)
    2.87  
    2.88          add     ax, bp                  ; LBA for cluster data
    2.89          adc     dx, bx                  ; dx:ax = LBA
    2.90  
    2.91 -        call    ReadSector              ; clear ax & cx, restore dx
    2.92 +        call    ReadSector              ; clear ax, restore dx
    2.93  
    2.94          jne     ReadClusters
    2.95  
    2.96 @@ -406,8 +417,8 @@
    2.97  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    2.98  ;; Setup and run a .COM program ;;
    2.99  ;; Set CS=DS=ES=SS SP=0 IP=100h ;;
   2.100 -;; AX=0ffffh BX=0 CX=0 DX=drive ;;
   2.101 -;; and cmdline=void             ;;
   2.102 +;; AX=0ffffh BX=0 DX=drive and  ;;
   2.103 +;; cmdline=void                 ;;
   2.104  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   2.105  
   2.106          mov     di, 100h                ; ip
   2.107 @@ -421,7 +432,7 @@
   2.108  ;; Relocate, setup and run a .EXE program     ;;
   2.109  ;; Set CS:IP, SS:SP, DS, ES and AX according  ;;
   2.110  ;; to wiki.osdev.org/MZ#Initial_Program_State ;;
   2.111 -;; AX=0ffffh BX=0 CX=0 DX=drive cmdline=void  ;;
   2.112 +;; AX=0ffffh BX=0 DX=drive cmdline=void       ;;
   2.113  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   2.114  
   2.115  ReloCycle:
   2.116 @@ -639,6 +650,7 @@
   2.117  
   2.118  ProgramName     db      "STARTUP BIN"   ; name and extension each must be
   2.119                  times (510-($-$$)) db ' ' ; padded with spaces (11 bytes total)
   2.120 +NameLength      equ     $-ProgramName
   2.121  
   2.122  ;;;;;;;;;;;;;;;;;;;;;;;;;;
   2.123  ;; End of the sector ID ;;
     3.1 --- a/BootProg/stuff/boot32.asm	Sat Sep 17 08:17:46 2022 +0000
     3.2 +++ b/BootProg/stuff/boot32.asm	Thu Sep 22 07:58:57 2022 +0000
     3.3 @@ -60,7 +60,7 @@
     3.4  ;;                   Boot Image Startup (register values):                  ;;
     3.5  ;;                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  ;;
     3.6  ;;  ax = 0ffffh (both FCB in the PSP don't have a valid drive identifier),  ;;
     3.7 -;;  bx = cx = 0, dl = BIOS boot drive number (e.g. 0, 80H)                  ;;
     3.8 +;;  bx = 0, dl = BIOS boot drive number (e.g. 0, 80H)                       ;;
     3.9  ;;  cs:ip = program entry point                                             ;;
    3.10  ;;  ss:sp = program stack (don't confuse with boot sector's stack)          ;;
    3.11  ;;  COM program defaults: cs = ds = es = ss = 50h, sp = 0, ip = 100h        ;;
    3.12 @@ -234,7 +234,7 @@
    3.13          je      ErrFind                 ; end of root directory (NULL entry found)
    3.14  %endif
    3.15          pusha
    3.16 -        mov     cl, 11
    3.17 +        mov     cl, NameLength
    3.18          mov     si, ProgramName         ; ds:si -> program name
    3.19          repe    cmpsb
    3.20          je      FindNameFound
    3.21 @@ -289,8 +289,8 @@
    3.22  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    3.23  ;; Setup and run a .COM program ;;
    3.24  ;; Set CS=DS=ES=SS SP=0 IP=100h ;;
    3.25 -;; AX=0ffffh BX=0 CX=0 DX=drive ;;
    3.26 -;; and cmdline=void             ;;
    3.27 +;; AX=0ffffh BX=0 DX=drive and  ;;
    3.28 +;; cmdline=void                 ;;
    3.29  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    3.30  
    3.31          mov     di, 100h                ; ip
    3.32 @@ -304,7 +304,7 @@
    3.33  ;; Relocate, setup and run a .EXE program     ;;
    3.34  ;; Set CS:IP, SS:SP, DS, ES and AX according  ;;
    3.35  ;; to wiki.osdev.org/MZ#Initial_Program_State ;;
    3.36 -;; AX=0ffffh BX=0 CX=0 DX=drive cmdline=void  ;;
    3.37 +;; AX=0ffffh BX=0 DX=drive cmdline=void       ;;
    3.38  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    3.39  
    3.40  ReloCycle:
    3.41 @@ -387,7 +387,7 @@
    3.42          mul     dword [bx(bsSectorsPerFAT32)]
    3.43  
    3.44          xchg    eax, edi
    3.45 -        movzx   ecx, byte [bx(bpbSectorsPerCluster)]
    3.46 +        movzx   ecx, byte [bx(bpbSectorsPerCluster)] ; 8..128
    3.47          mul     ecx                             ; edx:eax=sector number in data area
    3.48          add     eax, edi
    3.49  
    3.50 @@ -400,7 +400,7 @@
    3.51  %if LBA48bits != 0
    3.52          adc     word [bx(HiLBA)], bx
    3.53  %endif
    3.54 -        mov     dx, word [bx(bpbReservedSectors)]
    3.55 +        mov     dx, [bx(bpbReservedSectors)]
    3.56  
    3.57  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    3.58  ;; Reads a sector using BIOS Int 13h fn 42h ;;
    3.59 @@ -468,7 +468,7 @@
    3.60          mov     dl, [bx(DriveNumber)]   ; restore BIOS boot drive number
    3.61  %endif
    3.62  
    3.63 -ReadSectorLBARetry:
    3.64 +ReadSectorRetry:
    3.65          mov     si, sp
    3.66          mov     ah, 42h                 ; ah = 42h = extended read function no.
    3.67          int     13h                     ; extended read sectors (DL, DS:SI)
    3.68 @@ -490,7 +490,7 @@
    3.69          int     13h                     ; reset drive (DL)
    3.70  
    3.71          dec     bp
    3.72 -        jnz     ReadSectorLBARetry
    3.73 +        jnz     ReadSectorRetry
    3.74  %endif
    3.75  
    3.76          call    Error
    3.77 @@ -543,6 +543,7 @@
    3.78  
    3.79  ProgramName     db      "STARTUP BIN"   ; name and extension each must be
    3.80                  times (510-($-$$)) db ' ' ; padded with spaces (11 bytes total)
    3.81 +NameLength      equ     $-ProgramName
    3.82  
    3.83  ;;;;;;;;;;;;;;;;;;;;;;;;;;
    3.84  ;; End of the sector ID ;;
     4.1 --- a/BootProg/stuff/bootex.asm	Sat Sep 17 08:17:46 2022 +0000
     4.2 +++ b/BootProg/stuff/bootex.asm	Thu Sep 22 07:58:57 2022 +0000
     4.3 @@ -59,7 +59,7 @@
     4.4  ;;                   Boot Image Startup (register values):                  ;;
     4.5  ;;                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                  ;;
     4.6  ;;  ax = 0ffffh (both FCB in the PSP don't have a valid drive identifier),  ;;
     4.7 -;;  bx = cx = 0, dl = BIOS boot drive number (e.g. 0, 80H)                  ;;
     4.8 +;;  bx = 0, dl = BIOS boot drive number (e.g. 0, 80H)                       ;;
     4.9  ;;  cs:ip = program entry point                                             ;;
    4.10  ;;  ss:sp = program stack (don't confuse with boot sector's stack)          ;;
    4.11  ;;  COM program defaults: cs = ds = es = ss = 50h, sp = 0, ip = 100h        ;;
    4.12 @@ -188,7 +188,7 @@
    4.13  ;; Look for the COM/EXE file to load and run ;;
    4.14  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.15  
    4.16 -        xor     di, di                  ; es:di -> root entries array
    4.17 +                                        ; es:di -> root entries array
    4.18  
    4.19  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.20  ;; Looks for the file/dir ProgramName    ;;
    4.21 @@ -240,7 +240,7 @@
    4.22          popf                            ; restore carry="not last sector" flag
    4.23          jc      RootDirReadContinue     ; continue to the next root dir cluster
    4.24  FindNameFailed:                         ; end of root directory (dir end reached)
    4.25 -        mov     dx, [bx(DriveNumber)]   ; restore BIOS boot drive number
    4.26 +        mov     dl, [bx(DriveNumber)]   ; restore BIOS boot drive number
    4.27          call    Error
    4.28          db      "File not found."
    4.29  FindNameFound:
    4.30 @@ -261,7 +261,7 @@
    4.31          sub     [bx+FileSize], ebp      ; max FileSize is < 640KB : check low 32 bits only
    4.32          ja      FileReadContinue
    4.33          mov     dx, [bx(DriveNumber)]   ; restore BIOS boot drive number
    4.34 -        xor     ax, ax
    4.35 +        xchg    ax, di
    4.36          pop     bp
    4.37  
    4.38  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.39 @@ -279,8 +279,8 @@
    4.40  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.41  ;; Setup and run a .COM program ;;
    4.42  ;; Set CS=DS=ES=SS SP=0 IP=100h ;;
    4.43 -;; AX=0ffffh BX=0 CX=0 DX=drive ;;
    4.44 -;; and cmdline=void             ;;
    4.45 +;; AX=0ffffh BX=0 DX=drive and  ;;
    4.46 +;; cmdline=void                 ;;
    4.47  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.48  
    4.49          mov     di, 100h                ; ip
    4.50 @@ -294,7 +294,7 @@
    4.51  ;; Relocate, setup and run a .EXE program     ;;
    4.52  ;; Set CS:IP, SS:SP, DS, ES and AX according  ;;
    4.53  ;; to wiki.osdev.org/MZ#Initial_Program_State ;;
    4.54 -;; AX=0ffffh BX=0 CX=0 DX=drive cmdline=void  ;;
    4.55 +;; AX=0ffffh BX=0 DX=drive cmdline=void       ;;
    4.56  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.57  
    4.58  ReloCycle:
    4.59 @@ -373,7 +373,7 @@
    4.60  
    4.61          cdq
    4.62          add     eax, [bx(bpbFatSectorStart)]    ; sector # relative to exFAT
    4.63 -        call    ReadSectorC                     ; read 1 exFAT sector
    4.64 +        call    ReadSectorFAT                   ; read 1 exFAT sector, keep edx=0, set C
    4.65  
    4.66          mov     esi, [es:si]                    ; esi=next cluster #
    4.67  
    4.68 @@ -385,6 +385,8 @@
    4.69  
    4.70          add     eax, [bx(bpbClusterSectorStart)]
    4.71  ReadSectorC:
    4.72 +        mov     di, bx
    4.73 +ReadSectorFAT:
    4.74          adc     edx, ebx
    4.75  
    4.76  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    4.77 @@ -413,12 +415,11 @@
    4.78          push    es
    4.79          push    bx
    4.80          push    bp                      ; sector count word = 1
    4.81 +        push    byte 16                 ; packet size byte = 16, reserved byte = 0
    4.82  %if ReadRetry != 0
    4.83 -        mov     cx, 16
    4.84 -        push    cx                      ; packet size byte = 16, reserved byte = 0
    4.85 +        pop     cx
    4.86 +        push    cx
    4.87  ReadSectorRetry:        
    4.88 -%else
    4.89 -        push    byte 16
    4.90  %endif
    4.91          mov     si, sp
    4.92          mov     ah, 42h                 ; ah = 42h = extended read function no.
     5.1 --- a/BootProg/stuff/bootprog.sh	Sat Sep 17 08:17:46 2022 +0000
     5.2 +++ b/BootProg/stuff/bootprog.sh	Thu Sep 22 07:58:57 2022 +0000
     5.3 @@ -1,30 +1,31 @@
     5.4  #!/bin/sh
     5.5  
     5.6 -[ ! -e "$1" ] && cat <<EOT && exit 2
     5.7 +[ ! -e "$1" ] && cat<<S && exit 2
     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 -xd="dd of=$1 bs=1 conv=notrunc"
    5.13 -while read c o b f; do
    5.14 -	[ "${FAT:-$(dd if="$1" bs=1 count=5 skip=$c)}" = "$f" ] || continue
    5.15 +S
    5.16 +r="dd if=$1 count"
    5.17 +w="dd of=$1 bs=1 conv=notrunc seek"
    5.18 +while read c o b f
    5.19 +do	[ "${FAT:-$($r=5 bs=1 skip=$c)}" = "$f" ] || continue
    5.20  	echo "Install $f bootsector on $1."
    5.21 -	for a in "$((o+b)) seek=$o count=$((512-o))" "$b count=11"; do
    5.22 -		sed '1,/^exit 1/d' $0 | unlzma | $xd skip=$a
    5.23 -	done
    5.24 +	for a in "$o skip=$((o+b)) count=$((512-o))" "0 skip=$b count=11"
    5.25 +	do sed '1,/^exit/d' $0 | unlzma | $w=$a; done
    5.26  	[ "$2" ] && echo "Set boot file '$2'" && echo -n "$2" | case "$f" in
    5.27  	E*)	sed 's| |.|;s| ||g' | cat - /dev/zero;;
    5.28  	*)	tr a-z A-Z | sed 's|\.|       |;s|^\(.\{8\}\) *|\1|;s|$|   |'
    5.29 -	esac | $xd seek=499 count=11
    5.30 -	[ "$f" = "EXFAT" ] && dd if="$1" bs=512 count=11 | od -v -An -t u1 -w1 - | LANG=C awk '
    5.31 -BEGIN { a=0;i=-1;m=0xFFFFFFFE }
    5.32 +	esac | $w=499 count=11
    5.33 +	case "$f" in
    5.34 +	*32)	$w=1536 if=$1 count=512;;
    5.35 +	E*)	$r=11 bs=1b | od -vAn -tu1 -w1 - | LANG=C awk 'BEGIN { a=0;i=-1;m=0xFFFFFFFE }
    5.36  { if (++i!=106 && i!=107 && i!=112) a=or(and(lshift(a,31),m),and(rshift(a,1),m/2))+$1 }
    5.37 -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 }' | $xd seek=5632
    5.38 +END { b=a/256;c=b/256; for (;i>0;i-=44) printf "%c%c%c%c",a%256,b%256,c%256,(c/256)%256 }' | $w=5632
    5.39 +	esac
    5.40  	exit 0
    5.41 -done 2>/dev/null <<EOT
    5.42 -54	62	0	FAT12
    5.43 -54	62	0	FAT16
    5.44 -82	90	512	FAT32
    5.45 +done<<S 2>/dev/null
    5.46 +54	54	0	FAT12
    5.47 +54	54	0	FAT16
    5.48 +82	82	512	FAT32
    5.49  3	113	1024	EXFAT
    5.50 -EOT
    5.51 +S
    5.52  exit 1
     6.1 --- a/dex2jar/receipt	Sat Sep 17 08:17:46 2022 +0000
     6.2 +++ b/dex2jar/receipt	Thu Sep 22 07:58:57 2022 +0000
     6.3 @@ -9,7 +9,7 @@
     6.4  WEB_SITE="https://sourceforge.net/projects/dex2jar/"
     6.5  
     6.6  TARBALL="$PACKAGE-$VERSION.zip"
     6.7 -WGET_URL="https://sourceforge.net/projects/$PACKAGE/files/$TARBALL"
     6.8 +WGET_URL="$SF_MIRROR/$PACKAGE/$TARBALL"
     6.9  
    6.10  DEPENDS="java-jre"
    6.11  BUILD_DEPENDS=""
     7.1 --- a/oldrunner/receipt	Sat Sep 17 08:17:46 2022 +0000
     7.2 +++ b/oldrunner/receipt	Thu Sep 22 07:58:57 2022 +0000
     7.3 @@ -25,6 +25,7 @@
     7.4  {
     7.5  	echo '#define LEVELS_PATH     "/usr/share/oldrunner"' >> cfg.h
     7.6  	export LDFLAGS="$LDFLAGS -ltinfo"
     7.7 +	patch -p0 < $stuff/remap.u
     7.8  	./configure &&
     7.9  	make
    7.10  }
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/oldrunner/stuff/remap.u	Thu Sep 22 07:58:57 2022 +0000
     8.3 @@ -0,0 +1,82 @@
     8.4 +--- oldrunner.c	2010-07-17 17:30:32.000000000 +0000
     8.5 ++++ oldrunner.c	2022-09-22 07:31:51.585297479 +0000
     8.6 +@@ -36,6 +36,8 @@
     8.7 + 
     8.8 + #include "oldrunner.h"
     8.9 + 
    8.10 ++int remap_apple = 0;
    8.11 ++
    8.12 + /*
    8.13 +  * Oldrunner is a remake of the Loadrunner game from Broderbund, and one of the
    8.14 +  * first computer games my father offered me. I wrote this in memory of him.
    8.15 +@@ -50,7 +52,7 @@
    8.16 +   int ch, startlvl;
    8.17 + 
    8.18 +   startlvl = 0;
    8.19 +-  while ((ch = getopt (argc, argv, "l:v")) != -1)
    8.20 ++  while ((ch = getopt (argc, argv, "l:av")) != -1)
    8.21 +     {
    8.22 +       switch (ch)
    8.23 +         {
    8.24 +@@ -62,6 +64,9 @@
    8.25 +               return 1;
    8.26 +             }
    8.27 +           break;
    8.28 ++        case 'a':
    8.29 ++          remap_apple++;
    8.30 ++          break;
    8.31 +         case 'v':
    8.32 +           fputs ("oldrunner-" VERSION "\n", stdout);
    8.33 +           return 0;
    8.34 +@@ -74,7 +79,7 @@
    8.35 +   if (argc >= 1)
    8.36 +     {
    8.37 +     err:
    8.38 +-      fputs ("usage: oldrunner [-v] [-l<num>]\n", stderr);
    8.39 ++      fputs ("usage: oldrunner [-v] [-a] [-l<num>]\n", stderr);
    8.40 +       return 0;
    8.41 +     }
    8.42 + 
    8.43 +--- usr.c	2010-07-17 17:30:32.000000000 +0000
    8.44 ++++ usr.c	2022-09-22 07:28:52.590988791 +0000
    8.45 +@@ -43,6 +43,31 @@
    8.46 +   rec_input.key = ORKEY_NONE;
    8.47 + }
    8.48 + 
    8.49 ++static int
    8.50 ++remap (int key)
    8.51 ++{
    8.52 ++  extern int remap_apple;
    8.53 ++  if (remap_apple)
    8.54 ++    {
    8.55 ++      switch (key | 0x20)
    8.56 ++        {
    8.57 ++        case 'u':
    8.58 ++          return ORKEY_DIG_LEFT;
    8.59 ++        case 'i':
    8.60 ++          return ORKEY_MOVE_UP;
    8.61 ++        case 'o':
    8.62 ++          return ORKEY_DIG_RIGHT;
    8.63 ++        case 'j':
    8.64 ++          return ORKEY_MOVE_LEFT;
    8.65 ++        case 'k':
    8.66 ++          return ORKEY_MOVE_DOWN;
    8.67 ++        case 'l':
    8.68 ++          return ORKEY_MOVE_RIGHT;
    8.69 ++        }
    8.70 ++    }
    8.71 ++  return key;
    8.72 ++}
    8.73 ++
    8.74 + void
    8.75 + usr_input (void)
    8.76 + {
    8.77 +@@ -63,7 +88,7 @@
    8.78 +           continue;
    8.79 +         }
    8.80 + 
    8.81 +-      switch (rec_input.key)
    8.82 ++      switch (remap(rec_input.key))
    8.83 +         {
    8.84 +         case ORKEY_EXIT:
    8.85 +           return;
     9.1 --- a/viewnior/receipt	Sat Sep 17 08:17:46 2022 +0000
     9.2 +++ b/viewnior/receipt	Thu Sep 22 07:58:57 2022 +0000
     9.3 @@ -7,7 +7,7 @@
     9.4  SHORT_DESC="Fast and elegant image viewer."
     9.5  MAINTAINER="pankso@slitaz.org"
     9.6  LICENSE="GPL3"
     9.7 -WEB_SITE="https://siyanpanayotov.com/project/viewnior/"
     9.8 +WEB_SITE="https://github.com/hellosiyan/Viewnior"
     9.9  
    9.10  TARBALL="$PACKAGE-$VERSION.tar.gz"
    9.11  WGET_URL="https://github.com/hellosiyan/Viewnior/archive/$TARBALL"
    10.1 --- a/wol/receipt	Sat Sep 17 08:17:46 2022 +0000
    10.2 +++ b/wol/receipt	Thu Sep 22 07:58:57 2022 +0000
    10.3 @@ -8,7 +8,7 @@
    10.4  LICENSE="GPL2"
    10.5  TARBALL="${PACKAGE}-${VERSION}.tar.gz"
    10.6  WGET_URL="$SF_MIRROR/ahh/$TARBALL"
    10.7 -WEB_SITE="http://wake-on-lan.sourceforge.net/"
    10.8 +WEB_SITE="https://wake-on-lan.sourceforge.net/"
    10.9  
   10.10  BUILD_DEPENDS=""
   10.11  DEPENDS=""