MacRISC MacRISC3 MacRISC4 : my-max-boot-num 9 ; : my-boot-default 5 ; : my-boot-delay d# 100 ; \ unit = 100 ms : my-print-menu ( -- ) ." Boot selector menu" cr ." MorphOS " cr ." 1: MorphOS 3.1 " cr ." 2: MorphOS 3.1 bootmenu " cr ." 3: MorphOS 3.1 USB fat " cr ." 4: MorphOS 3.1 USB bootmenu fat " cr ." " cr ." " cr ." Mac OS X 10.4 " cr ." 5: Mac OSX 10.4 " cr ." 6: Mac OSX 10.4 USB :3 " cr ." 7: Mac OSX 10.4 USB :5 " cr ." 8: Mac OSX 10.4 USB :7 " cr ." " cr ." 9: Openfirmware " cr ; : my-boot-case ( num -- ) case 1 of " hd:3,\boot.img bd=dh1 rd" endof 2 of " hd:3,\boot.img bd=dh1 rd bm" endof 3 of " usb1/@1:1,\boot.img bd=umsd0 rd" endof 4 of " usb1/@1:1,\boot.img bd=umsd0 rd bm" endof 5 of " hd:7,\\:tbxi" endof 6 of " usb1/@1:3,\\:tbxi" endof 7 of " usb1/@1:5,\\:tbxi" endof 8 of " usb1/@1:7,\\:tbxi" endof 9 of " hd:3,\wejsciedoof.txt" endof endcase ['] $boot catch drop user-abort ; : my-input-num ( wait-period max-boot-num default-num -- boot-num ) 1 \ loop-inc = 1 3 pick 0 do 0d emit ." press 1-" ( wait-period max-boot-num default-num loop-inc ) 2 pick ascii 0 + emit dup 1 = if ." within " 3 pick i - d# 10 / .d ." seconds" then ." (default: " over ascii 0 + emit ." ) : " d# 100 ms key? if key ( wait-period max-boot-num default-num loop-inc key ) dup 0d = if \ return pressed drop leave then ascii 0 - ( wait-period max-boot-num default-num loop-inc num ) dup 1 5 pick ( wait-period max-boot-num default-num loop-inc num num 1 max-boot-num ) between if rot drop swap leave then ( wait-period max-boot-num default-num loop-inc num ) 2drop 0 \ loop-inc = 0 then dup +loop drop ( wait-period max-boot-num boot-num ) nip nip ; load-base release-load-area stdout @ 0 = if false to _normal-boot install-console then true to use-console? false to ignore-output? dev /multiboot flash-dev-icon-off device-end erase-screen my-print-menu my-boot-delay my-max-boot-num my-boot-default my-input-num my-boot-case 1010 FFFF000000000000000000000000FFFF FF0000000000000000A5F1000000F8FF 000000000000000000C1C7F5000000F8 00000000000000002BC1C19D000000F8 0000000000000000F8C19DC12A0000F8 0000000000000000F8C19797F50000F8 0000000000000000F7C1974F977200F8 0000000000000000F7C19090BAC100F8 0000F52BF7F82BF7DFC8B4B4BAC800F8 00ABC8C1C7C8C8C8C25D569EC1C100F8 00CFC1BB9DBB9796B47A00F52B0000F8 0000F6A4C1974F9090C1F500000000F8 000000004FF597BABABAF700000000F8 00000000000079BBC1C1F500000000F8 FFF8000000000000000000000000F8FF FFFFF8F8F8F8F8F8F8F8F8F8F8F8FFFF FFFFF7F7F7F7F7F7F7F7F7F7F7F7FFFF FFF7F7F7F7F7F7F7F7ABF2F7F7F781FF F7F7F7F7F7F7F7F7F7C8C8F7F7F7F781 F7F7F7F7F7F7F7F756C8C2A4F7F7F781 F7F7F7F7F7F7F7F7F9C89EC856F7F781 F7F7F7F7F7F7F7F7F9C8C29EF8F7F781 F7F7F7F7F7F7F7F7F9C89E7A9E79F781 F7F7F7F7F7F7F7F7F9C89797C1C2F781 F7F7F856F9F956F9FEC9BBBBC1C8F781 F7ABC8C2C8CFCFC8C981FAA4C8C8F781 F7CFC8C19EC29E97BBFAF7F856F7F781 F7F7F8A4C89E7A9797C8F7F7F7F7F781 F7F7F7F756F89EC1C1C156F7F7F7F781 F7F7F7F7F7F77AC2C2C2F7F7F7F7F781 FF81F7F7F7F7F7F7F7F7F7F7F7F781FF FFFF818181818181818181818181FFFF 0000FFFFFFFFFFFFFFFFFFFFFFFF0000 00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 00FFFFFFFFFFFFFFFFFFFFFFFFFFFF00 0000FFFFFFFFFFFFFFFFFFFFFFFF0000