.load 0x1380 @include <../bios_api.dss> .data $_drake_logo_line_1 " ___ ___ ___ __ ______" $_drake_logo_line_2 " / _ \/ _ \/ _ | / //_/ __/" $_drake_logo_line_3 " / // / , _/ __ |/ ,< / _/ " $_drake_logo_line_4 "/____/_/|_/_/ |_/_/|_/___/ " $_logo_padding " " $ddd .code mov R10, 0xE0 int 0x30 push 0 call $_print_logo mov [$ddd.Mode], DiskMode.READ mov [$ddd.Disk], 0x00 mov [$ddd.Sector], 0x0000 mov [$ddd.Address], 0x0400 mov [$ddd.DataSize], 5120 mov [$ddd.MemoryAddress], MemoryAddresses.RAM and FL, 0b1111111111111110 ## Disable interrupts mov FL, ACC push $ddd push 1 call $_disk_load_from_ddd_blocking or FL, 0b0000000000000001 ## Enable interrupts mov FL, ACC jmp MemoryAddresses.RAM _infinite_loop: jmp $_infinite_loop hlt _print_logo: mov R5, $_drake_logo_line_1 mov R6, 0 mov ACC, 6 _print_logo_loop: mov R10, 0x0C inc R6 mov R9, $_logo_padding int 0x30 mov R9, R5 int 0x30 mov R10, 0x02 int 0x30 addip R5, 29 jls $_print_logo_loop, R6 ret @include .fixed 512, 0x00