\ FORTH - Script generated by BootCreator 1.2 (25.01.2007) by Marcin Kurek (Morgoth/D-CAPS) \ Mac mini adaptation - Marek 'March' Szyprowski \ \ terminal control stuff \ : .printf fb8-write drop ; : .crlf " "(0d 0a)" .printf ; : .clear " "(0C)" .printf ; : .cr " "(0d)" .printf ; \ \ boot menu stuff \ : my-max-boot-num 8 ; : my-boot-default 4 ; : my-boot-delay d# 100 ; \ unit = 100 ms : my-print-menu ( -- ) .clear .crlf " Boot Menu" .printf .crlf " " .printf .crlf " 1: MorphOS 3 BootMenu" .printf .crlf " 2: MorphOS 2" .printf .crlf " 3: MorphOS ISO USB" .printf .crlf " 4: MorphOS ISO HD" .printf .crlf " 5: MorphOS Previous ISO" .printf .crlf " 6: Firewire" .printf .crlf " 7: CDRom" .printf .crlf " 8: Abort" .printf .crlf .crlf " press 1-8 or wait for auto boot" .printf .crlf ; : my-boot-case ( num -- ) .crlf case 1 of " boot hd:,\boot.img BM BD=DH1 ed invzeropage" eval endof 2 of " boot hd:4,\boot.img BD=DH4 ed invzeropage" eval endof 3 of " boot ud:,\boot.img bi=UMSD0:morphos.iso ed invzeropage" eval endof 4 of " boot hd:,\bootiso.img bi=dh3:NoBackup/morphos.iso ed invzeropage" eval endof 5 of " boot hd:,\bootold.img bi=dh3:NoBackup/morphosold.iso ed invzeropage" eval endof 6 of " boot mac-io/ata-4@1f000/@0:3,\\:tbxi" eval endof 7 of " boot cd:\\:tbxi " eval endof 8 of abort endof endcase ; : my-input-num ( wait-period max-boot-num default-num -- boot-num ) 1 \ loop-inc = 1 3 pick 0 do " ." .printf \ 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 ; " screen" output dev screen " "(0000000000aa00aa0000aaaaaa0000aa00aaaa5500aaaaaa)" drop 0 7 set-colors " "(5555555555ff55ff5555ffffff5555ff55ffffff55ffffff)" drop 8 15 set-colors erase-screen device-end f to foreground-color 0 to background-color my-print-menu my-boot-delay my-max-boot-num my-boot-default my-input-num my-boot-case