X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=bootcard.asm;h=1288c4a9d1a15380113d742cbfe5e20f8c16faf6;hb=58fe680f15216bea684641de4cd94fc78f1582d5;hp=ddf50cdbbe0fcb7730394d3ae655a4c50d5976ea;hpb=c887100262b10fe9814eee05aaeba763202afe9c;p=bootcard diff --git a/bootcard.asm b/bootcard.asm index ddf50cd..1288c4a 100644 --- a/bootcard.asm +++ b/bootcard.asm @@ -8,7 +8,7 @@ nticks equ 7e00h tmoffs equ 7e04h -muscur equ 7e08h +musptr equ 7e08h %macro setcur 2 mov dx, %1 | (%2 << 8) @@ -129,24 +129,26 @@ textout: tintr: pusha - push ds - push word 0 - pop ds mov ax, [nticks] inc ax mov [nticks], ax + mov bx, [musptr] + cmp bx, 23*3 + jnz .skiploop + xor bx, bx + mov [tmoffs], ax +.skiploop: + xor cx, cx + mov cl, [music + bx] + shl cx, 4 sub ax, [tmoffs] -.pmus: mov bx, [muscur] - shl bx, 2 - mov cx, [music + bx] - cmp cx, 0ffffh - jz .loop cmp ax, cx jb .eoi - inc word [muscur] - mov ax, [music + 2 + bx] + mov ax, [music + 1 + bx] + add bx, 3 + mov [musptr], bx test ax, ax jz .off mov bx, ax @@ -158,51 +160,16 @@ tintr: .eoi: mov al, 20h out 20h, al - pop ds popa iret -.loop: neg cx - mov [muscur], cx - mov ax, [nticks] - mov [tmoffs], ax - jmp .pmus - - str1: db 'message blah',0 str2: db 'Michael & Athena',0 -G2 equ 12175 -C3 equ 9121 -D3 equ 8126 -B2 equ 9664 -F3 equ 6833 -E3 equ 7239 - -music: dw 0, 0 - dw 40, G2 - dw 200, C3 - dw 320, C3 - dw 360, C3 - dw 600, 0 - dw 680, G2 - dw 840, D3 - dw 960, B2 - dw 1000, C3 - dw 1240, 0 - dw 1320, G2 - dw 1480, C3 - dw 1600, F3 - dw 1640, F3 - dw 1800, E3 - dw 1920, D3 - dw 1960, C3 - dw 2120, B2 - dw 2240, C3 - dw 2280, D3 - dw 2600, 0 - dw 2760, 0 - dw 0ffffh, 0 +music: dd 0a2f8f00h, 0a11123a1h, 23a11423h, 28000023h, 0be322f8fh, 25c0391fh + dd 4b23a13ch, 8f500000h, 23a15a2fh, 641ab161h, 476e1ab1h, 1fbe751ch + dd 8223a178h, 0a18925c0h, 1fbe8c23h, 0aa0000a0h + dw 0 w5: dw 5 w30: dw 30