Last active
August 3, 2022 11:18
-
-
Save svofski/19aeb8641cbcce4fa56fa79f3400fca4 to your computer and use it in GitHub Desktop.
relocatable pt2 player
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; player + songe ripped from polet4k ~ 50 lines | |
; tune: DOCZak1 by DOC'NEONSOFT | |
.project p4kplayer.rom | |
.tape v06c-rom | |
.org $100 | |
di | |
xra a | |
out $10 | |
mvi a, $c9 | |
sta $38 | |
main: | |
lxi h, songe1 | |
call player_init_X36b5 | |
eternal_loop: | |
ei | |
hlt | |
call player_frame_X3698 | |
call player_flush_X3be0 | |
jmp eternal_loop | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
; PLAYER STUFF | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
jmp player_init_X36b5 | |
jmp player_frame_X3698 | |
jmp player_flush_X3be0 | |
jmp player_stfu_X36a3 | |
player_enable: .db 0x2 | |
; | |
player_frame_X3698: | |
lxi h, player_enable; 3698 21 97 36 !.6 | |
xra a ; 369b af / | |
cmp m ; 369c be > | |
rz ; 369d c8 H | |
mvi m,0x2 ; 369e 36 02 6. | |
jmp X382f ; 36a0 c3 2f 38 C/8 | |
; | |
player_stfu_X36a3: | |
lxi b,$0010 ; 36a3 01 10 00 ... | |
X36a6: mov a,b ; 36a6 78 x | |
out 0x15 ; 36a7 d3 15 S. | |
xra a ; 36a9 af / | |
out 0x14 ; 36aa d3 14 S. | |
inr b ; 36ac 04 . | |
dcr c ; 36ad 0d . | |
X36ae: jnz X36a6 ; 36ae c2 a6 36 B&6 | |
sta player_enable ; 36b1 32 97 36 2.6 | |
ret ; 36b4 c9 I | |
; | |
player_init_X36b5: | |
mvi a,0x1 ; 36b5 3e 01 >. | |
sta player_enable ; 36b7 32 97 36 2.6 | |
mov a,m ; 36ba 7e ~ | |
sta X3731 ; 36bb 32 31 37 217 | |
shld X3773+1 ; 36be 22 74 37 "t7 | |
inx h ; 36c1 23 # | |
call X376e ; 36c2 cd 6e 37 Mn7 | |
ldax d ; 36c5 1a . | |
inx d ; 36c6 13 . | |
inr a ; 36c7 3c < | |
sta X3733 ; 36c8 32 33 37 237 | |
xchg ; 36cb eb k | |
shld X3729 ; 36cc 22 29 37 ")7 | |
xchg ; 36cf eb k | |
call X376e ; 36d0 cd 6e 37 Mn7 | |
xchg ; 36d3 eb k | |
shld X372b ; 36d4 22 2b 37 "+7 | |
xchg ; 36d7 eb k | |
push d ; 36d8 d5 U | |
call X376e ; 36d9 cd 6e 37 Mn7 | |
xchg ; 36dc eb k | |
shld X372d ; 36dd 22 2d 37 "-7 | |
xchg ; 36e0 eb k | |
lxi h,$001b ; 36e1 21 1b 00 !.. | |
call X3773 ; 36e4 cd 73 37 Ms7 | |
xchg ; 36e7 eb k | |
shld X372f ; 36e8 22 2f 37 "/7 | |
lxi h,X373a ; 36eb 21 3a 37 !:7 | |
shld X3734 ; 36ee 22 34 37 "47 | |
lxi h,X373b ; 36f1 21 3b 37 !;7 | |
lxi d,X373c ; 36f4 11 3c 37 .<7 | |
lxi b,$002c ; 36f7 01 2c 00 .,. | |
mov m,b ; 36fa 70 p | |
X36fb: mov a,m ; 36fb 7e ~ | |
stax d ; 36fc 12 . | |
inx h ; 36fd 23 # | |
inx d ; 36fe 13 . | |
dcr c ; 36ff 0d . | |
jnz X36fb ; 3700 c2 fb 36 B{6 | |
pop h ; 3703 e1 a | |
lxi b,$0021 ; 3704 01 21 00 .!. | |
xra a ; 3707 af / | |
call X3768 ; 3708 cd 68 37 Mh7 | |
dcr a ; 370b 3d = | |
sta X3744 ; 370c 32 44 37 2D7 | |
sta X374e ; 370f 32 4e 37 2N7 | |
sta player_ayreg0+2 ;X3758 ; 3712 32 58 37 2X7 | |
mvi a,0x1 ; 3715 3e 01 >. | |
sta X3732 ; 3717 32 32 37 227 | |
inx h ; 371a 23 # | |
shld X3742 ; 371b 22 42 37 "B7 | |
shld X374c ; 371e 22 4c 37 "L7 | |
shld player_ayreg0 ; 3721 22 56 37 "V7 | |
call X3bdd ; 3724 cd dd 3b M]; | |
ret ; 3727 c9 I | |
;;; | |
;; data | |
;;; | |
X3728: .db $01 | |
X3729: .db $fa ; 3728 01 fa .z | |
; | |
.db $23, | |
X372b: .db $0e | |
; | |
.db 0x24 ; 372c $ | |
X372d: .db 0xf5,0x24 ; 372d u$ | |
X372f: .dw $201b ; 372f 1b 20 . | |
; | |
X3731: .db 0x5 ; 3731 . | |
X3732: .db 0x1 ; 3732 . | |
X3733: .db $0a ; 3733 0a 34 .4 | |
X3734: .db $34 | |
.db $25 | |
X3736: .db $5c ; 3735 25 5c %\ | |
.db 0x25 ; 3737 % | |
X3738: .db 0xc9 ; 3738 I | |
.db $25 ; 3739 25 ff %. | |
X373a: .db $ff | |
; | |
X373b: .db 0x0 ; 373b . | |
X373c: .db $03 ; 373c 03 0f .. | |
X373d: .db $0f | |
.dw $012f ; 373e 2f 01 /. | |
X3740: .db 0xb ; 3740 . | |
X3741: .db $22 | |
X3742: .db $93 ; 3741 22 93 ". | |
.db 0x24 ; 3743 $ | |
X3744: .db 0x11,0x0,0x0 ; 3744 ... | |
X3747: .dw $1005 ; 3747 05 10 .. | |
; | |
.db 0x0 ; 3749 . | |
; | |
X374a: .db $1c ; 374a 1c . | |
.db 0x20 ; 374b 20 | |
X374c: .db $f ; 374c 0f . | |
.db $24 ; 374d 24 $ | |
X374e: .db $1b ; 374e 1b . | |
X374f: .db 0 ; 374f 00 . | |
.db 0 ; 3750 00 . | |
X3751: .db 5 ; 3751 05 . | |
X3752: .db 0x38 ; 3752 38 8 | |
.db 0 ; 3753 00 . | |
X3754: .db $6e | |
.db $22 | |
player_ayreg0: | |
.db 0, 0, 0, 0, 0, 0, 0 | |
.db 0, 0, 0, 0, 0, 0, 0 | |
X3764: .db $0b ; 3764 0b . | |
X3765: .db 0 ; 3765 00 . | |
.db 0 ; 3766 00 . | |
X3767: .db 0 ; 3767 00 . | |
X3768: cmp m ; 3768 be > | |
rz ; 3769 c8 H | |
dad b ; 376a 09 . | |
jmp X3768 ; 376b c3 68 37 Ch7 | |
; | |
X376e: mov e,m ; 376e 5e ^ | |
inx h ; 376f 23 # | |
mov d,m ; 3770 56 V | |
inx h ; 3771 23 # | |
xchg ; 3772 eb k | |
X3773: lxi b, $2000 ; 3773 01 00 20 .. | |
dad b ; 3776 09 . | |
xchg ; 3777 eb k | |
ret ; 3778 c9 I | |
; | |
X3779: mvi d,0x0 ; 3779 16 00 .. | |
mov e,a ; 377b 5f _ | |
add a ; 377c 87 . | |
add e ; 377d 83 . | |
mov e,a ; 377e 5f _ | |
push h ; 377f e5 e | |
lhld X3bde ; 3780 2a de 3b *^; | |
dad d ; 3783 19 . | |
shld X3bde ; 3784 22 de 3b "^; | |
inx h ; 3787 23 # | |
mov a,m ; 3788 7e ~ | |
pop h ; 3789 e1 a | |
sta X378f+1 ; 378a 32 90 37 2.7 | |
ani 0x80 ; 378d e6 80 f. | |
X378f: mvi a,0x80 ; 378f 3e 80 >. | |
mvi c,0x10 ; 3791 0e 10 .. | |
jnz X3797 ; 3793 c2 97 37 B.7 | |
mov c,d ; 3796 4a J | |
X3797: sta X379c+1 ; 3797 32 9d 37 2.7 | |
ani 0x40 ; 379a e6 40 f@ | |
X379c: mvi a,0x80 ; 379c 3e 80 >. | |
mvi b,0x2 ; 379e 06 02 .. | |
jnz X37a4 ; 37a0 c2 a4 37 B$7 | |
mov b,d ; 37a3 42 B | |
X37a4: ani 0x1f ; 37a4 e6 1f f. | |
mov h,a ; 37a6 67 g | |
push h ; 37a7 e5 e | |
lhld X3bde ; 37a8 2a de 3b *^; | |
mov a,m ; 37ab 7e ~ | |
inx h ; 37ac 23 # | |
inx h ; 37ad 23 # | |
mov e,m ; 37ae 5e ^ | |
pop h ; 37af e1 a | |
push psw ; 37b0 f5 u | |
ani 0xf0 ; 37b1 e6 f0 fp | |
rrc ; 37b3 0f . | |
rrc ; 37b4 0f . | |
rrc ; 37b5 0f . | |
rrc ; 37b6 0f . | |
mov d,a ; 37b7 57 W | |
pop psw ; 37b8 f1 q | |
ani 0xf ; 37b9 e6 0f f. | |
mov l,a ; 37bb 6f o | |
sta X37c8+1 ; 37bc 32 c9 37 2I7 | |
push h ; 37bf e5 e | |
lhld X3bde ; 37c0 2a de 3b *^; | |
inx h ; 37c3 23 # | |
mov a,m ; 37c4 7e ~ | |
ani 0x20 ; 37c5 e6 20 f | |
pop h ; 37c7 e1 a | |
X37c8: mvi a,0xb ; 37c8 3e 0b >. | |
rz ; 37ca c8 H | |
push psw ; 37cb f5 u | |
mov a,d ; 37cc 7a z | |
ori 0x10 ; 37cd f6 10 v. | |
mov d,a ; 37cf 57 W | |
pop psw ; 37d0 f1 q | |
ret ; 37d1 c9 I | |
; | |
X37d2: lda player_ayreg0+3 ; X3759 ; 37d2 3a 59 37 :Y7 | |
mov c,a ; 37d5 4f O | |
lxi h,X3733 ; 37d6 21 33 37 !37 | |
cmp m ; 37d9 be > | |
jc X37df ; 37da da df 37 Z_7 | |
xra a ; 37dd af / | |
mov c,a ; 37de 4f O | |
X37df: inr a ; 37df 3c < | |
sta player_ayreg0+3 ; 37e0 32 59 37 2Y7 | |
mov l,c ; 37e3 69 i | |
mvi h,0x0 ; 37e4 26 00 &. | |
dad h ; 37e6 29 ) | |
xchg ; 37e7 eb k | |
lhld X3729 ; 37e8 2a 29 37 *)7 | |
xchg ; 37eb eb k | |
dad d ; 37ec 19 . | |
mov c,m ; 37ed 4e N | |
inx h ; 37ee 23 # | |
mov a,m ; 37ef 7e ~ | |
sta X3aed+1 ; 37f0 32 ee 3a 2n: | |
mov a,c ; 37f3 79 y | |
sta X3728 ; 37f4 32 28 37 2(7 | |
lhld X372d ; 37f7 2a 2d 37 *-7 | |
lxi b,$0007 ; 37fa 01 07 00 ... | |
call X3768 ; 37fd cd 68 37 Mh7 | |
inx h ; 3800 23 # | |
call X376e ; 3801 cd 6e 37 Mn7 | |
xchg ; 3804 eb k | |
shld X3734 ; 3805 22 34 37 "47 | |
xchg ; 3808 eb k | |
call X376e ; 3809 cd 6e 37 Mn7 | |
xchg ; 380c eb k | |
shld X3736 ; 380d 22 36 37 "67 | |
X3810: xchg ; 3810 eb k | |
call X376e ; 3811 cd 6e 37 Mn7 | |
xchg ; 3814 eb k | |
shld X3738 ; 3815 22 38 37 "87 | |
X3818: xchg ; 3818 eb k | |
ret ; 3819 c9 I | |
; | |
X381a: push h ; 381a e5 e | |
lhld X3bde ; 381b 2a de 3b *^; | |
inx h ; 381e 23 # | |
inx h ; 381f 23 # | |
dcr m ; 3820 35 5 | |
pop h ; 3821 e1 a | |
rp ; 3822 f0 p | |
push h ; 3823 e5 e | |
lhld X3bde ; 3824 2a de 3b *^; | |
dcx h ; 3827 2b + | |
mov a,m ; 3828 7e ~ | |
inx h ; 3829 23 # | |
inx h ; 382a 23 # | |
inx h ; 382b 23 # | |
mov m,a ; 382c 77 w | |
pop h ; 382d e1 a | |
ret ; 382e c9 I | |
; | |
X382f: lda X3732 ; 382f 3a 32 37 :27 | |
dcr a ; 3832 3d = | |
sta X3732 ; 3833 32 32 37 227 | |
jnz X39ef ; 3836 c2 ef 39 Bo9 | |
lda X3731 ; 3839 3a 31 37 :17 | |
sta X3732 ; 383c 32 32 37 227 | |
push h ; 383f e5 e | |
lxi h,X373d ; 3840 21 3d 37 !=7 | |
shld X3bde ; 3843 22 de 3b "^; | |
pop h ; 3846 e1 a | |
call X381a ; 3847 cd 1a 38 M.8 | |
jp X385e ; 384a f2 5e 38 r^8 | |
lhld X3734 ; 384d 2a 34 37 *47 | |
mov a,m ; 3850 7e ~ | |
inr a ; 3851 3c < | |
cz X37d2 ; 3852 cc d2 37 LR7 | |
lhld X3734 ; 3855 2a 34 37 *47 | |
call X388f ; 3858 cd 8f 38 M.8 | |
shld X3734 ; 385b 22 34 37 "47 | |
X385e: push h ; 385e e5 e | |
lxi h,X3747 ; 385f 21 47 37 !G7 | |
shld X3bde ; 3862 22 de 3b "^; | |
pop h ; 3865 e1 a | |
call X381a ; 3866 cd 1a 38 M.8 | |
jp X3875 ; 3869 f2 75 38 ru8 | |
lhld X3736 ; 386c 2a 36 37 *67 | |
call X388f ; 386f cd 8f 38 M.8 | |
shld X3736 ; 3872 22 36 37 "67 | |
X3875: push h ; 3875 e5 e | |
lxi h,X3751 ; 3876 21 51 37 !Q7 | |
shld X3bde ; 3879 22 de 3b "^; | |
X387c: pop h ; 387c e1 a | |
call X381a ; 387d cd 1a 38 M.8 | |
jp X39ef ; 3880 f2 ef 39 ro9 | |
lhld X3738 ; 3883 2a 38 37 *87 | |
call X388f ; 3886 cd 8f 38 M.8 | |
shld X3738 ; 3889 22 38 37 "87 | |
jmp X39ef ; 388c c3 ef 39 Co9 | |
; | |
X388f: mov a,m ; 388f 7e ~ | |
cpi 0x60 ; 3890 fe 60 ~` | |
jc X38c2 ; 3892 da c2 38 ZB8 | |
cpi 0x70 ; 3895 fe 70 ~p | |
jc X38d5 ; 3897 da d5 38 ZU8 | |
cpi 0x80 ; 389a fe 80 ~. | |
jc X3908 ; 389c da 08 39 Z.9 | |
jz X38f4 ; 389f ca f4 38 Jt8 | |
cpi 0x81 ; 38a2 fe 81 ~. | |
jz X38d3 ; 38a4 ca d3 38 JS8 | |
cpi 0x82 ; 38a7 fe 82 ~. | |
jz X3904 ; 38a9 ca 04 39 J.9 | |
cpi 0x8f ; 38ac fe 8f ~. | |
jc X392f ; 38ae da 2f 39 Z/9 | |
sui 0xa1 ; 38b1 d6 a1 V! | |
push h ; 38b3 e5 e | |
lhld X3bde ; 38b4 2a de 3b *^; | |
dcx h ; 38b7 2b + | |
mov m,a ; 38b8 77 w | |
inx h ; 38b9 23 # | |
inx h ; 38ba 23 # | |
inx h ; 38bb 23 # | |
mov m,a ; 38bc 77 w | |
pop h ; 38bd e1 a | |
inx h ; 38be 23 # | |
jmp X388f ; 38bf c3 8f 38 C.8 | |
; | |
X38c2: push h ; 38c2 e5 e | |
lhld X3bde ; 38c3 2a de 3b *^; | |
mvi m,0x0 ; 38c6 36 00 6. | |
inx h ; 38c8 23 # | |
mov m,a ; 38c9 77 w | |
inx h ; 38ca 23 # | |
inx h ; 38cb 23 # | |
inx h ; 38cc 23 # | |
inx h ; 38cd 23 # | |
inx h ; 38ce 23 # | |
inx h ; 38cf 23 # | |
mvi m,0x20 ; 38d0 36 20 6 | |
pop h ; 38d2 e1 a | |
X38d3: inx h ; 38d3 23 # | |
ret ; 38d4 c9 I | |
; | |
X38d5: sui 0x60 ; 38d5 d6 60 V` | |
push h ; 38d7 e5 e | |
lxi b,$0063 ; 38d8 01 63 00 .c. | |
lhld X372f ; 38db 2a 2f 37 */7 | |
call X3768 ; 38de cd 68 37 Mh7 | |
inx h ; 38e1 23 # | |
push d ; 38e2 d5 U | |
xchg ; 38e3 eb k | |
lhld X3bde ; 38e4 2a de 3b *^; | |
inx h ; 38e7 23 # | |
inx h ; 38e8 23 # | |
inx h ; 38e9 23 # | |
mov m,e ; 38ea 73 s | |
inx h ; 38eb 23 # | |
mov m,d ; 38ec 72 r | |
xchg ; 38ed eb k | |
pop d ; 38ee d1 Q | |
pop h ; 38ef e1 a | |
inx h ; 38f0 23 # | |
jmp X388f ; 38f1 c3 8f 38 C.8 | |
; | |
X38f4: inx h ; 38f4 23 # | |
X38f5: push h ; 38f5 e5 e | |
lhld X3bde ; 38f6 2a de 3b *^; | |
X38f9: inx h ; 38f9 23 # | |
inx h ; 38fa 23 # | |
inx h ; 38fb 23 # | |
inx h ; 38fc 23 # | |
inx h ; 38fd 23 # | |
inx h ; 38fe 23 # | |
inx h ; 38ff 23 # | |
mvi m,0xff ; 3900 36 ff 6. | |
pop h ; 3902 e1 a | |
ret ; 3903 c9 I | |
; | |
X3904: xra a ; 3904 af / | |
jmp X390a ; 3905 c3 0a 39 C.9 | |
; | |
X3908: sui 0x70 ; 3908 d6 70 Vp | |
X390a: push h ; 390a e5 e | |
lxi b,$0021 ; 390b 01 21 00 .!. | |
lhld X372b ; 390e 2a 2b 37 *+7 | |
call X3768 ; 3911 cd 68 37 Mh7 | |
inx h ; 3914 23 # | |
push d ; 3915 d5 U | |
xchg ; 3916 eb k | |
lhld X3bde ; 3917 2a de 3b *^; | |
dcx h ; 391a 2b + | |
dcx h ; 391b 2b + | |
mvi m,0x0 ; 391c 36 00 6. | |
inx h ; 391e 23 # | |
inx h ; 391f 23 # | |
inx h ; 3920 23 # | |
inx h ; 3921 23 # | |
inx h ; 3922 23 # | |
inx h ; 3923 23 # | |
inx h ; 3924 23 # | |
mov m,e ; 3925 73 s | |
inx h ; 3926 23 # | |
mov m,d ; 3927 72 r | |
pop h ; 3928 e1 a | |
xchg ; 3929 eb k | |
pop h ; 392a e1 a | |
inx h ; 392b 23 # | |
jmp X388f ; 392c c3 8f 38 C.8 | |
; | |
X392f: sui 0x80 ; 392f d6 80 V. | |
sta X3767 ; 3931 32 67 37 2g7 | |
inx h ; 3934 23 # | |
mov a,m ; 3935 7e ~ | |
inx h ; 3936 23 # | |
sta X3765 ; 3937 32 65 37 2e7 | |
X393a: push h ; 393a e5 e | |
lhld X3bde ; 393b 2a de 3b *^; | |
dcx h ; 393e 2b + | |
dcx h ; 393f 2b + | |
mvi m,0x1 ; 3940 36 01 6. | |
xra a ; 3942 af / | |
lxi b,$0021 ; 3943 01 21 00 .!. | |
lhld X372b ; 3946 2a 2b 37 *+7 | |
call X3768 ; 3949 cd 68 37 Mh7 | |
inx h ; 394c 23 # | |
push d ; 394d d5 U | |
xchg ; 394e eb k | |
lhld X3bde ; 394f 2a de 3b *^; | |
inx h ; 3952 23 # | |
inx h ; 3953 23 # | |
inx h ; 3954 23 # | |
inx h ; 3955 23 # | |
inx h ; 3956 23 # | |
mov m,e ; 3957 73 s | |
inx h ; 3958 23 # | |
mov m,d ; 3959 72 r | |
pop d ; 395a d1 Q | |
pop h ; 395b e1 a | |
jmp X388f ; 395c c3 8f 38 C.8 | |
; | |
X395f: push h ; 395f e5 e | |
lhld X3bde ; 3960 2a de 3b *^; | |
inx h ; 3963 23 # | |
inx h ; 3964 23 # | |
inx h ; 3965 23 # | |
inx h ; 3966 23 # | |
inx h ; 3967 23 # | |
inx h ; 3968 23 # | |
inx h ; 3969 23 # | |
mov a,m ; 396a 7e ~ | |
shld X3973+1 ; 396b 22 74 39 "t9 | |
pop h ; 396e e1 a | |
inr a ; 396f 3c < | |
rz ; 3970 c8 H | |
dcr a ; 3971 3d = | |
dcr a ; 3972 3d = | |
X3973: sta player_ayreg0+2 ; X3758 ; 3973 32 58 37 2X7 | |
push psw ; 3976 f5 u | |
push h ; 3977 e5 e | |
lhld X3bde ; 3978 2a de 3b *^; | |
mov a,m ; 397b 7e ~ | |
mov c,a ; 397c 4f O | |
inr a ; 397d 3c < | |
ani 0x1f ; 397e e6 1f f. | |
mov m,a ; 3980 77 w | |
pop h ; 3981 e1 a | |
pop psw ; 3982 f1 q | |
rnz ; 3983 c0 @ | |
lhld X3bde ; 3984 2a de 3b *^; | |
inx h ; 3987 23 # | |
inx h ; 3988 23 # | |
inx h ; 3989 23 # | |
mov e,m ; 398a 5e ^ | |
inx h ; 398b 23 # | |
mov d,m ; 398c 56 V | |
lxi h, $0060 ; 398d 21 60 00 !`. | |
dad d ; 3990 19 . | |
mov a,m ; 3991 7e ~ | |
dcr a ; 3992 3d = | |
jm X38f5 ; 3993 fa f5 38 zu8 | |
mov c,a ; 3996 4f O | |
inr a ; 3997 3c < | |
ani 0x1f ; 3998 e6 1f f. | |
push h ; 399a e5 e | |
lhld X3bde ; 399b 2a de 3b *^; | |
mov m,a ; 399e 77 w | |
pop h ; 399f e1 a | |
inx h ; 39a0 23 # | |
mov a,m ; 39a1 7e ~ | |
inr a ; 39a2 3c < | |
push h ; 39a3 e5 e | |
lhld X3bde ; 39a4 2a de 3b *^; | |
inx h ; 39a7 23 # | |
inx h ; 39a8 23 # | |
inx h ; 39a9 23 # | |
inx h ; 39aa 23 # | |
inx h ; 39ab 23 # | |
inx h ; 39ac 23 # | |
inx h ; 39ad 23 # | |
mov m,a ; 39ae 77 w | |
pop h ; 39af e1 a | |
ret ; 39b0 c9 I | |
; | |
X39b1: mov a,c ; 39b1 79 y | |
ora a ; 39b2 b7 7 | |
rnz ; 39b3 c0 @ | |
mov a,h ; 39b4 7c | | |
sta player_ayreg0+10;X3760 ; 39b5 32 60 37 2`7 | |
ret ; 39b8 c9 I | |
; | |
X39b9: push h ; 39b9 e5 e | |
lhld X3bde ; 39ba 2a de 3b *^; | |
inx h ; 39bd 23 # | |
inx h ; 39be 23 # | |
inx h ; 39bf 23 # | |
inx h ; 39c0 23 # | |
inx h ; 39c1 23 # | |
inx h ; 39c2 23 # | |
inx h ; 39c3 23 # | |
mov a,m ; 39c4 7e ~ | |
pop h ; 39c5 e1 a | |
inr a ; 39c6 3c < | |
rz ; 39c7 c8 H | |
push h ; 39c8 e5 e | |
lhld X3bde ; 39c9 2a de 3b *^; | |
dcx h ; 39cc 2b + | |
dcx h ; 39cd 2b + | |
shld X39dd+1 ; 39ce 22 de 39 "^9 | |
mov a,m ; 39d1 7e ~ | |
pop h ; 39d2 e1 a | |
ora a ; 39d3 b7 7 | |
rz ; 39d4 c8 H | |
cpi 0x2 ; 39d5 fe 02 ~. | |
jz X39e4 ; 39d7 ca e4 39 Jd9 | |
push psw ; 39da f5 u | |
mvi a,0x2 ; 39db 3e 02 >. | |
X39dd: sta X374f ; 39dd 32 4f 37 2O7 | |
pop psw ; 39e0 f1 q | |
jmp X39e8 ; 39e1 c3 e8 39 Ch9 | |
; | |
X39e4: xra a ; 39e4 af / | |
sta X3767 ; 39e5 32 67 37 2g7 | |
X39e8: push psw ; 39e8 f5 u | |
mov a,m ; 39e9 7e ~ | |
ori 0x10 ; 39ea f6 10 v. | |
mov m,a ; 39ec 77 w | |
pop psw ; 39ed f1 q | |
ret ; 39ee c9 I | |
; | |
X39ef: push h ; 39ef e5 e | |
lxi h,X373d ; 39f0 21 3d 37 !=7 | |
shld X3bde ; 39f3 22 de 3b "^; | |
pop h ; 39f6 e1 a | |
call X395f ; 39f7 cd 5f 39 M_9 | |
mov a,c ; 39fa 79 y | |
sta X3ae5+1 ; 39fb 32 e6 3a 2f: | |
push h ; 39fe e5 e | |
lhld X3740 ; 39ff 2a 40 37 *@7 | |
shld X3bde ; 3a02 22 de 3b "^; | |
pop h ; 3a05 e1 a | |
call X3779 ; 3a06 cd 79 37 My7 | |
mov a,c ; 3a09 79 y | |
ora b ; 3a0a b0 0 | |
rrc ; 3a0b 0f . | |
sta player_ayreg0+11; X3761 ; 3a0c 32 61 37 2a7 | |
push h ; 3a0f e5 e | |
lxi h,X373d ; 3a10 21 3d 37 !=7 | |
shld X3bde ; 3a13 22 de 3b "^; | |
inx h ; 3a16 23 # | |
inx h ; 3a17 23 # | |
inx h ; 3a18 23 # | |
inx h ; 3a19 23 # | |
inx h ; 3a1a 23 # | |
inx h ; 3a1b 23 # | |
inx h ; 3a1c 23 # | |
mov a,m ; 3a1d 7e ~ | |
pop h ; 3a1e e1 a | |
inr a ; 3a1f 3c < | |
jz X3a2c ; 3a20 ca 2c 3a J,: | |
call X39b1 ; 3a23 cd b1 39 M19 | |
call X3ad2 ; 3a26 cd d2 3a MR: | |
shld player_ayreg0+4 ; 3a29 22 5a 37 "Z7 | |
X3a2c: lxi h,player_ayreg0+12; X3762 ; 3a2c 21 62 37 | |
mov m,a ; 3a2f 77 w | |
call X39b9 ; 3a30 cd b9 39 M99 | |
push h ; 3a33 e5 e | |
lxi h,X3747 ; 3a34 21 47 37 !G7 | |
shld X3bde ; 3a37 22 de 3b "^; | |
pop h ; 3a3a e1 a | |
X3a3b: call X395f ; 3a3b cd 5f 39 M_9 | |
push h ; 3a3e e5 e | |
lhld X3bde ; 3a3f 2a de 3b *^; | |
inx h ; 3a42 23 # | |
inx h ; 3a43 23 # | |
X3a44: inx h ; 3a44 23 # | |
inx h ; 3a45 23 # | |
inx h ; 3a46 23 # | |
inx h ; 3a47 23 # | |
inx h ; 3a48 23 # | |
mov a,m ; 3a49 7e ~ | |
pop h ; 3a4a e1 a | |
inr a ; 3a4b 3c < | |
jz X3a77 ; 3a4c ca 77 3a Jw: | |
mov a,c ; 3a4f 79 y | |
sta X3ae5+1 ; 3a50 32 e6 3a 2f: | |
push h ; 3a53 e5 e | |
lhld X374a ; 3a54 2a 4a 37 *J7 | |
shld X3bde ; 3a57 22 de 3b "^; | |
pop h ; 3a5a e1 a | |
call X3779 ; 3a5b cd 79 37 My7 | |
lda player_ayreg0+11; 3a5e 3a 61 37 :a7 | |
ora c ; 3a61 b1 1 | |
ora b ; 3a62 b0 0 | |
sta player_ayreg0+11; 3a63 32 61 37 2a7 | |
call X39b1 ; 3a66 cd b1 39 M19 | |
push h ; 3a69 e5 e | |
lxi h,X3747 ; 3a6a 21 47 37 !G7 | |
shld X3bde ; 3a6d 22 de 3b "^; | |
pop h ; 3a70 e1 a | |
call X3ad2 ; 3a71 cd d2 3a MR: | |
shld player_ayreg0+6 ;X375c ; 3a74 22 5c 37 "\7 | |
X3a77: lxi h,player_ayreg0+13 ; 3a77 21 63 37 !c7 | |
mov m,a ; 3a7a 77 w | |
call X39b9 ; 3a7b cd b9 39 M99 | |
push h ; 3a7e e5 e | |
X3a7f: lxi h,X3751 ; 3a7f 21 51 37 !Q7 | |
shld X3bde ; 3a82 22 de 3b "^; | |
pop h ; 3a85 e1 a | |
call X395f ; 3a86 cd 5f 39 M_9 | |
push h ; 3a89 e5 e | |
lhld X3bde ; 3a8a 2a de 3b *^; | |
inx h ; 3a8d 23 # | |
inx h ; 3a8e 23 # | |
inx h ; 3a8f 23 # | |
inx h ; 3a90 23 # | |
inx h ; 3a91 23 # | |
inx h ; 3a92 23 # | |
inx h ; 3a93 23 # | |
mov a,m ; 3a94 7e ~ | |
pop h ; 3a95 e1 a | |
inr a ; 3a96 3c < | |
jz X3ac8 ; 3a97 ca c8 3a JH: | |
mov a,c ; 3a9a 79 y | |
sta X3ae5+1 ; 3a9b 32 e6 3a 2f: | |
push h ; 3a9e e5 e | |
lhld X3754 ; 3a9f 2a 54 37 *T7 | |
shld X3bde ; 3aa2 22 de 3b "^; | |
pop h ; 3aa5 e1 a | |
call X3779 ; 3aa6 cd 79 37 My7 | |
mov a,c ; 3aa9 79 y | |
rlc ; 3aaa 07 . | |
mov c,a ; 3aab 4f O | |
mov a,b ; 3aac 78 x | |
rlc ; 3aad 07 . | |
mov b,a ; 3aae 47 G | |
lda player_ayreg0+11; 3aaf 3a 61 37 :a7 | |
ora b ; 3ab2 b0 0 | |
ora c ; 3ab3 b1 1 | |
sta player_ayreg0+11; 3ab4 32 61 37 2a7 | |
call X39b1 ; 3ab7 cd b1 39 M19 | |
push h ; 3aba e5 e | |
lxi h,X3751 ; 3abb 21 51 37 !Q7 | |
shld X3bde ; 3abe 22 de 3b "^; | |
pop h ; 3ac1 e1 a | |
call X3ad2 ; 3ac2 cd d2 3a MR: | |
shld player_ayreg0+8 ; 3ac5 22 5e 37 "^7 | |
X3ac8: lxi h,X3764 ; 3ac8 21 64 37 !d7 | |
mov m,a ; 3acb 77 w | |
call X39b9 ; 3acc cd b9 39 M99 | |
jmp X3bdd ; 3acf c3 dd 3b C]; | |
; | |
X3ad2: mov a,l ; 3ad2 7d } | |
push psw ; 3ad3 f5 u | |
push d ; 3ad4 d5 U | |
xchg ; 3ad5 eb k | |
lhld X3bde ; 3ad6 2a de 3b *^; | |
inx h ; 3ad9 23 # | |
shld X3ae9+1 ; 3ada 22 ea 3a "j: | |
inx h ; 3add 23 # | |
inx h ; 3ade 23 # | |
inx h ; 3adf 23 # | |
inx h ; 3ae0 23 # | |
mov e,m ; 3ae1 5e ^ | |
inx h ; 3ae2 23 # | |
mov d,m ; 3ae3 56 V | |
xchg ; 3ae4 eb k | |
X3ae5: lxi d, $0004 ; 3ae5 11 04 00 ... | |
dad d ; 3ae8 19 . | |
X3Ae9: lda X3752 ; 3ae9 3a 52 37 :R7 | |
add m ; 3aec 86 . | |
X3aed: adi 0xfe ; 3aed c6 fe F~ | |
add a ; 3aef 87 . | |
mov e,a ; 3af0 5f _ | |
mvi d,0x0 ; 3af1 16 00 .. | |
lxi h,tonetbl_X3b1d ; 3af3 21 1d 3b !.; | |
dad d ; 3af6 19 . | |
mov e,m ; 3af7 5e ^ | |
inx h ; 3af8 23 # | |
mov d,m ; 3af9 56 V | |
xchg ; 3afa eb k | |
pop d ; 3afb d1 Q | |
pop psw ; 3afc f1 q | |
sta X3b03+1 ; 3afd 32 04 3b 2.; | |
mov a,d ; 3b00 7a z | |
ani 0x10 ; 3b01 e6 10 f. | |
X3b03: mvi a,0xb ; 3b03 3e 0b >. | |
jz X3b10 ; 3b05 ca 10 3b J.; | |
push psw ; 3b08 f5 u | |
X3b09: mov a,d ; 3b09 7a z | |
ani 0xef ; 3b0a e6 ef fo | |
mov d,a ; 3b0c 57 W | |
X3b0d: pop psw ; 3b0d f1 q | |
dad d ; 3b0e 19 . | |
ret ; 3b0f c9 I | |
; | |
X3b10: ana a ; 3b10 a7 ' | |
sta X3b1a+1 ; 3b11 32 1b 3b 2.; | |
mov a,l ; 3b14 7d } | |
sub e ; 3b15 93 . | |
mov l,a ; 3b16 6f o | |
mov a,h ; 3b17 7c | | |
sbb d ; 3b18 9a . | |
mov h,a ; 3b19 67 g | |
X3b1a: mvi a,0xb ; 3b1a 3e 0b >. | |
ret ; 3b1c c9 I | |
tonetbl_X3b1d: | |
.db $f8, $0e, $10, $0e, $60, $0d, $80, $0c, $d8, $0b, $28, $0b, $88, $0a, $f0, $09 | |
.db $60, $09, $e0, $08, $58, $08, $e0, $07, $7c, $07, $08, $07, $b0, $06, $40, $06 | |
.db $ec, $05, $94, $05, $44, $05, $f8, $04, $b0, $04, $70, $04, $2c, $04, $f0, $03 | |
.db $be, $03, $84, $03, $58, $03, $20, $03, $f6, $02, $ca, $02, $a2, $02, $7c, $02 | |
.db $58, $02, $38, $02, $16, $02, $f8, $01, $df, $01, $c2, $01, $ac, $01, $90, $01 | |
.db $7b, $01, $65, $01, $51, $01, $3e, $01, $2c, $01, $1c, $01, $0b, $01, $fc, $00 | |
.db $ef, $00, $e1, $00, $d6, $00, $c8, $00, $bd, $00, $b2, $00, $a8, $00, $9f, $00 | |
.db $96, $00, $8e, $00, $85, $00, $7e, $00, $77, $00, $70, $00, $6b, $00, $64, $00 | |
.db $5e, $00, $59, $00, $54, $00, $4f, $00, $4b, $00, $47, $00, $42, $00, $3f, $00 | |
.db $3b, $00, $38, $00, $35, $00, $32, $00, $2f, $00, $2c, $00, $2a, $00, $27, $00 | |
.db $25, $00, $23, $00, $21, $00, $1f, $00, $1d, $00, $1c, $00, $1a, $00, $19, $00 | |
.db $17, $00, $16, $00, $15, $00, $13, $00, $12, $00, $11, $00, $10, $00, $0f, $00 | |
X3bdd: ret ; 3bdd c9 I | |
; | |
X3bde: .db 0x51,0x37 ; 3bde Q7 | |
; | |
player_flush_X3be0: | |
lda player_enable ; 3be0 3a 97 36 :.6 | |
cpi 0x2 ; 3be3 fe 02 ~. | |
rnz ; 3be5 c0 @ | |
lxi h,X3767 ; 3be6 21 67 37 !g7 | |
xra a ; 3be9 af / | |
ora m ; 3bea b6 6 | |
mvi a,0xd ; 3beb 3e 0d >. | |
jnz X3bf5 ; 3bed c2 f5 3b Bu; | |
sui 0x3 ; 3bf0 d6 03 V. | |
dcx h ; 3bf2 2b + | |
dcx h ; 3bf3 2b + | |
dcx h ; 3bf4 2b + | |
X3bf5: mov c,a ; 3bf5 4f O | |
X3bf6: mov a,c ; 3bf6 79 y | |
out 0x15 ; 3bf7 d3 15 S. | |
mov a,m ; 3bf9 7e ~ | |
out 0x14 ; 3bfa d3 14 S. | |
dcx h ; 3bfc 2b + | |
dcr c ; 3bfd 0d . | |
jp X3bf6 ; 3bfe f2 f6 3b rv; | |
ret ; 3c01 c9 I | |
; | |
; DOCZak01.STC by DOC'NEONSOF | |
; https://zxart.ee/spa/autores/d/doc/doczak01/ | |
; | |
songe1: | |
.db $05,$f9,$03,$0e,$04,$f5,$04,$44,$4f,$43,$27,$4e,$45,$4f,$4e,$53 | |
.db $4f,$46,$54,$20,$20,$20,$20,$20,$20,$7b,$08,$01,$0f,$20,$00,$0f | |
.db $a0,$00,$0e,$a0,$00,$0e,$a0,$00,$0d,$a0,$00,$0c,$a0,$00,$0b,$a0 | |
.db $00,$0a,$80,$00,$09,$80,$00,$08,$80,$00,$07,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$00,$02,$0f | |
.db $22,$80,$1f,$23,$00,$0e,$24,$00,$0d,$25,$00,$0c,$06,$00,$0b,$07 | |
.db $00,$0a,$09,$00,$09,$00,$00,$08,$80,$00,$07,$80,$00,$06,$80,$00 | |
.db $05,$80,$00,$04,$80,$00,$02,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $00,$03,$0d,$40,$00,$0a,$40,$00,$08,$40,$00,$05,$40,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$05,$0f,$24,$00,$0e,$25,$2f,$0d,$25,$5e,$0c,$26 | |
.db $8d,$0b,$27,$bc,$0a,$27,$eb,$19,$67,$1a,$18,$67,$49,$16,$67,$78 | |
.db $15,$67,$a7,$14,$67,$d6,$23,$67,$05,$22,$67,$34,$21,$60,$63,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$07,$2f,$a0,$00,$3e,$a0,$80,$4d,$a0 | |
.db $00,$6b,$a0,$00,$78,$a0,$80,$86,$a0,$80,$04,$80,$00,$02,$80,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$0f,$a0,$01,$0f,$a0 | |
.db $02,$0e,$a0,$03,$0d,$a0,$03,$0e,$a0,$02,$0e,$a0,$02,$0e,$a0,$01 | |
.db $0e,$a0,$01,$0e,$a0,$01,$0e,$a0,$00,$0e,$a0,$00,$0e,$a0,$00,$0e | |
.db $a0,$00,$0e,$a0,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$a0 | |
.db $01,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00 | |
.db $0e,$80,$01,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e | |
.db $a0,$01,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$10,$0e,$0b,$0c,$80 | |
.db $00,$0c,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00 | |
.db $0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b | |
.db $80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80 | |
.db $00,$0b,$a0,$01,$0b,$a0,$02,$0b,$a0,$01,$0b,$80,$00,$0b,$80,$01 | |
.db $0b,$80,$02,$0b,$80,$01,$0b,$80,$00,$0b,$a0,$01,$0b,$a0,$02,$0b | |
.db $a0,$01,$0b,$80,$00,$0b,$80,$01,$0b,$80,$02,$0b,$80,$01,$0e,$11 | |
.db $0c,$0f,$3b,$80,$1f,$a0,$00,$0e,$a0,$00,$0e,$80,$00,$0d,$80,$00 | |
.db $0c,$80,$00,$0b,$80,$00,$0a,$80,$00,$09,$80,$00,$08,$80,$00,$07 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$00,$0e,$0f,$a0,$00,$0f,$a0,$00,$0f,$a0,$00,$0e,$80,$00 | |
.db $0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e | |
.db $80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80 | |
.db $00,$0e,$80,$00,$0e,$a0,$02,$0e,$a0,$04,$0e,$a0,$02,$0e,$80,$00 | |
.db $0e,$80,$02,$0e,$80,$04,$0e,$80,$02,$0e,$80,$00,$0e,$a0,$02,$0e | |
.db $a0,$04,$0e,$a0,$02,$0e,$80,$00,$0e,$80,$02,$0e,$80,$04,$0e,$80 | |
.db $02,$0e,$80,$00,$0c,$11,$0f,$0e,$a0,$00,$0e,$a0,$00,$0d,$a0,$00 | |
.db $0d,$80,$00,$0c,$80,$00,$0c,$80,$00,$0b,$80,$00,$0b,$80,$00,$0a | |
.db $80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80 | |
.db $00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00 | |
.db $0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a | |
.db $80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80 | |
.db $00,$0a,$80,$00,$0a,$80,$00,$00,$00,$09,$01,$fe,$02,$fe,$03,$fe | |
.db $04,$fe,$01,$fe,$02,$fe,$05,$fe,$07,$fe,$06,$fe,$08,$fe,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01 | |
.db $00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c | |
.db $00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c | |
.db $09,$0c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$0a,$00,$00,$ff,$fe,$fd,$fc,$fb,$fa,$f9,$f8,$f7,$f6,$f5,$f4 | |
.db $f3,$f2,$f1,$f0,$ef,$ee,$ed,$ec,$eb,$ea,$e9,$e8,$e7,$e6,$e5,$e4 | |
.db $e3,$e2,$0c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$0d,$fc,$fd,$fe,$ff,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$0e,$00,$07,$03,$0c,$00,$07,$03,$0c,$00,$07,$03 | |
.db $0c,$00,$07,$03,$0c,$00,$07,$03,$0c,$00,$07,$03,$0c,$00,$07,$03 | |
.db $0c,$00,$07,$03,$0c,$01,$2e,$05,$3f,$05,$b8,$05,$02,$fb,$05,$3f | |
.db $05,$b8,$05,$03,$11,$06,$3f,$05,$b8,$05,$04,$40,$06,$3f,$05,$b8 | |
.db $05,$05,$68,$06,$85,$06,$d7,$06,$06,$df,$06,$3f,$05,$b8,$05,$07 | |
.db $2c,$07,$4f,$07,$d7,$06,$08,$bb,$07,$06,$08,$b8,$05,$ff,$ac,$68 | |
.db $7c,$2c,$a4,$2f,$b0,$31,$ae,$2a,$a1,$2f,$2e,$b0,$70,$2c,$ff,$a2 | |
.db $6c,$79,$14,$a1,$61,$70,$20,$20,$a2,$62,$79,$14,$61,$70,$20,$6c | |
.db $79,$14,$61,$70,$20,$62,$79,$14,$a1,$61,$70,$10,$0f,$a2,$6c,$79 | |
.db $0d,$a1,$61,$70,$19,$19,$a2,$62,$79,$0d,$61,$70,$19,$6c,$79,$0d | |
.db $61,$70,$19,$62,$79,$0d,$a1,$61,$70,$16,$14,$a2,$6c,$79,$12,$a1 | |
.db $61,$70,$1e,$1e,$a2,$62,$79,$12,$61,$70,$1e,$6c,$79,$12,$61,$70 | |
.db $1e,$62,$79,$12,$a1,$61,$70,$17,$16,$a2,$6c,$79,$14,$a1,$61,$70 | |
.db $20,$20,$a2,$62,$79,$14,$61,$70,$20,$6c,$79,$14,$61,$70,$20,$62 | |
.db $79,$14,$a1,$61,$70,$17,$16,$ff,$a1,$6b,$2c,$2f,$33,$38,$3b,$3f | |
.db $38,$3b,$2c,$2f,$33,$38,$3b,$3f,$38,$3b,$25,$28,$2c,$31,$34,$38 | |
.db $31,$34,$25,$28,$2c,$31,$34,$38,$31,$34,$2a,$2e,$31,$36,$3a,$31 | |
.db $36,$3a,$2a,$2e,$31,$36,$3a,$31,$36,$3a,$2c,$2f,$33,$38,$3b,$3f | |
.db $38,$3b,$2c,$2f,$33,$38,$3b,$3f,$38,$3b,$ff,$ac,$68,$7c,$2c,$a4 | |
.db $2f,$b0,$31,$ae,$36,$a1,$3b,$3a,$a8,$7d,$38,$a7,$7a,$38,$a1,$80 | |
.db $ff,$a2,$6e,$7d,$2c,$a4,$7c,$2f,$a1,$31,$2f,$a4,$33,$a1,$33,$6f | |
.db $70,$2f,$a4,$6e,$7c,$33,$34,$a1,$34,$6f,$33,$a8,$6e,$31,$a1,$2a | |
.db $6f,$28,$a4,$6e,$2a,$a1,$2e,$2f,$a2,$31,$34,$33,$31,$b0,$2c,$ff | |
.db $a2,$6e,$7c,$2c,$a4,$2f,$a1,$31,$2f,$a4,$33,$a1,$33,$6f,$2f,$a4 | |
.db $6e,$33,$a2,$34,$38,$36,$a8,$34,$a2,$36,$a4,$38,$a1,$36,$38,$a2 | |
.db $36,$34,$33,$31,$b0,$7d,$38,$ff,$a4,$68,$7c,$2c,$a2,$2c,$a6,$2f | |
.db $a4,$2c,$a2,$31,$ac,$34,$a1,$33,$31,$a2,$2a,$2e,$2f,$2e,$31,$34 | |
.db $33,$31,$b0,$2c,$ff,$a2,$63,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25 | |
.db $a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2 | |
.db $25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25 | |
.db $a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1 | |
.db $25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25 | |
.db $25,$a2,$25,$a1,$25,$25,$ff,$b0,$6b,$7c,$14,$0d,$12,$14,$ff,$a2 | |
.db $6e,$7e,$38,$a1,$80,$a2,$38,$a1,$80,$38,$80,$38,$80,$38,$80,$38 | |
.db $80,$38,$80,$a2,$31,$a1,$80,$a2,$31,$a1,$80,$31,$80,$31,$80,$31 | |
.db $80,$31,$80,$31,$80,$a2,$71,$36,$a1,$80,$a2,$36,$a1,$80,$36,$80 | |
.db $36,$80,$36,$80,$36,$80,$36,$80,$a2,$7e,$38,$a1,$80,$a2,$38,$a1 | |
.db $80,$38,$80,$38,$80,$38,$80,$38,$80,$38,$80,$ff,$a4,$68,$7c,$2c | |
.db $a2,$2c,$a6,$2f,$a4,$2c,$a2,$31,$ac,$34,$a1,$33,$31,$a2,$2a,$2e | |
.db $2f,$2e,$31,$34,$33,$31,$a8,$2c,$a3,$7a,$38,$36,$a2,$33,$ff,$a2 | |
.db $67,$25,$a1,$63,$25,$25,$a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25 | |
.db $a1,$63,$25,$25,$a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63 | |
.db $25,$25,$a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25 | |
.db $a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25,$a2,$65 | |
.db $25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25,$a2,$65,$25,$a1 | |
.db $63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25,$a2,$65,$25,$a1,$63,$25 | |
.db $25,$65,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$ff,$a2,$6e,$7e,$38,$a1 | |
.db $80,$a2,$38,$a1,$80,$38,$80,$38,$80,$38,$80,$38,$80,$38,$80,$a2 | |
.db $31,$a1,$80,$a2,$31,$a1,$80,$31,$80,$31,$80,$31,$80,$31,$80,$31 | |
.db $80,$a2,$71,$36,$a1,$80,$a2,$36,$a1,$80,$36,$80,$36,$80,$36,$80 | |
.db $36,$80,$36,$80,$a2,$7e,$38,$a1,$80,$a2,$38,$a1,$80,$38,$80,$a3 | |
.db $7a,$38,$36,$a2,$33,$ff,$a2,$6c,$79,$14,$a1,$61,$70,$20,$20,$a2 | |
.db $62,$79,$14,$61,$70,$20,$6c,$79,$14,$61,$70,$20,$62,$79,$14,$a1 | |
.db $61,$70,$10,$0f,$a2,$6c,$79,$0d,$a1,$61,$70,$19,$19,$a2,$62,$79 | |
.db $0d,$61,$70,$19,$6c,$79,$0d,$61,$70,$19,$62,$79,$0d,$a1,$61,$70 | |
.db $16,$14,$a2,$6c,$79,$12,$a1,$61,$70,$1e,$1e,$a2,$62,$79,$12,$61 | |
.db $70,$1e,$6c,$79,$12,$61,$70,$1e,$62,$79,$12,$a1,$61,$70,$17,$16 | |
.db $a2,$6c,$79,$14,$a1,$61,$70,$20,$20,$a2,$62,$79,$14,$61,$70,$20 | |
.db $a1,$65,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$ff | |
.end | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° | |
;°°°° This file was created by °°°° | |
;°°°° PROGRAM RECOMPILE SYSTEM v(1.15) °°°° | |
;°°°° (C) 1995 by FRIENDS Software °°°° | |
;°°°° (C) 2008 by TIMSoft (i8080/i8085 rebuild) °°°° | |
;°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° | |
.project player-fml.rom | |
player_org equ $1000 | |
.org 256 | |
xra a | |
out $10 | |
mvi a, $c9 | |
sta $38 | |
lxi sp, $100 | |
lxi h, flash_pt2 | |
call player_org | |
zaloop: | |
ei | |
hlt | |
call player_org+6 | |
call player_org+3 | |
jmp zaloop | |
flash_pt2: | |
db 0x03, 0x09, 0x00, 0x00, 0x00, 0x9c, 0x03, 0x5e, 0x04, 0x8a, 0x04, 0xc5, | |
db 0x04, 0xca, 0x04, 0xf3, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x05, 0x55, 0x05, 0x00, | |
db 0x00, 0x00, 0x00, 0x5b, 0x05, 0x61, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, | |
db 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |
db 0x00, 0x67, 0x05, 0x8d, 0x00, 0x46, 0x4c, 0x41, 0x53, 0x48, 0x20, 0x49, | |
db 0x4e, 0x20, 0x50, 0x41, 0x52, 0x41, 0x44, 0x49, 0x53, 0x45, 0x2f, 0x50, | |
db 0x52, 0x4f, 0x47, 0x20, 0x4d, 0x41, 0x53, 0x54, 0x45, 0x52, 0x20, 0x02, | |
db 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xa7, 0x00, 0xee, | |
db 0x01, 0x40, 0x02, 0x75, 0x02, 0x1a, 0x03, 0x45, 0x03, 0x75, 0x02, 0x60, | |
db 0x03, 0x7d, 0x03, 0x89, 0x03, 0x89, 0x03, 0x8c, 0x03, 0x00, 0x00, 0x20, | |
db 0xe1, 0x7c, 0x50, 0x00, 0x6f, 0x1f, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0x60, | |
db 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, | |
db 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x5a, | |
db 0x00, 0xa4, 0xe4, 0x7e, 0x1e, 0x00, 0xb0, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, | |
db 0xe4, 0x7e, 0x1e, 0x00, 0xb0, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, | |
db 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, | |
db 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, | |
db 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, | |
db 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, | |
db 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, | |
db 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, | |
db 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, | |
db 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, 0x1e, 0x00, 0xb0, 0xe1, 0x7c, 0x4b, | |
db 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x50, 0x00, 0x6f, | |
db 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0x60, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, | |
db 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, | |
db 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, 0x1e, 0x00, | |
db 0xb0, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, 0x1e, 0x00, 0xb0, 0xe1, | |
db 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, | |
db 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, | |
db 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, | |
db 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, | |
db 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, | |
db 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x4b, | |
db 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, | |
db 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, | |
db 0x1e, 0x00, 0xb0, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, | |
db 0xb3, 0x00, 0x21, 0xe1, 0x7c, 0x50, 0x00, 0x6f, 0x1f, 0xc8, 0x20, 0xc9, | |
db 0xe0, 0xca, 0xe0, 0xcb, 0xe0, 0x21, 0xcc, 0x20, 0xcd, 0xe0, 0xce, 0xe0, | |
db 0xcf, 0xe0, 0x21, 0xd0, 0x20, 0xd1, 0xe0, 0xd2, 0xe0, 0xd3, 0xe0, 0x21, | |
db 0xd4, 0x20, 0xd5, 0xe0, 0xd6, 0xe0, 0xd7, 0xe0, 0x21, 0x7c, 0x50, 0x00, | |
db 0xc8, 0x20, 0xc9, 0xe0, 0xca, 0xe0, 0xcb, 0xe0, 0x21, 0xcc, 0x20, 0xcd, | |
db 0xe0, 0xce, 0xe0, 0xcf, 0xe0, 0x21, 0xd0, 0x20, 0xd1, 0xe0, 0xd2, 0xe0, | |
db 0xd3, 0xe0, 0x21, 0xd4, 0x20, 0xd5, 0xe0, 0xd6, 0xe0, 0xd7, 0xe0, 0x00, | |
db 0x23, 0xe2, 0x7f, 0x61, 0x1f, 0xb7, 0xe5, 0xb7, 0xe3, 0xb7, 0x21, 0xe5, | |
db 0xb7, 0xb7, 0x23, 0xe2, 0x64, 0xb7, 0xe5, 0x65, 0xb7, 0xe3, 0x64, 0xb7, | |
db 0x20, 0x61, 0xb7, 0xb0, 0xb0, 0xb0, 0x23, 0xe2, 0xb7, 0xe5, 0xb7, 0xe3, | |
db 0xb7, 0x21, 0xe5, 0xb7, 0xb7, 0xe2, 0x65, 0xb7, 0xb7, 0x23, 0xe5, 0xb7, | |
db 0xe3, 0xb7, 0xe5, 0xb7, 0x00, 0x20, 0xe1, 0x7c, 0x50, 0x00, 0x6f, 0x1f, | |
db 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0x60, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, | |
db 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, | |
db 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, 0x1e, 0x00, | |
db 0xb0, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, 0x1e, 0x00, 0xb0, 0xe1, | |
db 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, | |
db 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, | |
db 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, | |
db 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, | |
db 0xb2, 0xe1, 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, | |
db 0x7c, 0x50, 0x00, 0xa6, 0xe4, 0x7e, 0x1b, 0x00, 0xb2, 0xe1, 0x7c, 0x4b, | |
db 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, | |
db 0xe4, 0x7e, 0x19, 0x00, 0xb3, 0xe1, 0x7c, 0x5a, 0x00, 0xa4, 0xe4, 0x7e, | |
db 0x1e, 0x00, 0xb0, 0xe1, 0x7c, 0x4b, 0x00, 0xa7, 0xe4, 0x7e, 0x19, 0x00, | |
db 0xb3, 0x00, 0x21, 0xe1, 0x7c, 0x50, 0x00, 0x6f, 0x1f, 0xc8, 0x20, 0xc9, | |
db 0xe0, 0xca, 0xe0, 0xcb, 0xe0, 0x21, 0xcc, 0x20, 0xcd, 0xe0, 0xce, 0xe0, | |
db 0xcf, 0xe0, 0x21, 0xd0, 0x20, 0xd1, 0xe0, 0xd2, 0xe0, 0xd3, 0xe0, 0x21, | |
db 0xd4, 0x20, 0xd5, 0xe0, 0xd6, 0xe0, 0xd7, 0xe0, 0x00, 0x21, 0xe6, 0x7f, | |
db 0x61, 0x1f, 0xa4, 0x23, 0xa4, 0xa4, 0x21, 0xa4, 0x23, 0xa4, 0xa4, 0x21, | |
db 0xa4, 0xa4, 0x20, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0xa4, 0x00, | |
db 0x20, 0xe1, 0x7c, 0x50, 0x00, 0x6f, 0x1f, 0xc8, 0xe0, 0xc9, 0xe0, 0xca, | |
db 0x25, 0xe0, 0x20, 0xd4, 0xe0, 0xe0, 0xcf, 0xe0, 0x21, 0xd0, 0x20, 0xd1, | |
db 0xe0, 0xd2, 0x2a, 0xe0, 0x00, 0x21, 0xe6, 0x7f, 0x61, 0x1f, 0xa4, 0x25, | |
db 0xa4, 0x37, 0x1a, 0xa4, 0x00, 0x5f, 0xe0, 0x00, 0x27, 0xe6, 0x7f, 0x6f, | |
db 0x1f, 0xa4, 0x1a, 0xa4, 0x16, 0xa4, 0x13, 0xa4, 0x3f, 0x11, 0xa4, 0x00, | |
db 0x40, 0x24, 0x01, 0xf0, 0x09, 0x01, 0xf0, 0x00, 0x01, 0xf0, 0x00, 0x01, | |
db 0xe0, 0x00, 0x01, 0xd0, 0x01, 0x01, 0xd0, 0x00, 0x01, 0xd0, 0x00, 0x01, | |
db 0xd0, 0x00, 0x01, 0xd0, 0x01, 0x01, 0xd0, 0x00, 0x01, 0xc0, 0x05, 0x01, | |
db 0xc0, 0x00, 0x01, 0xc0, 0x02, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x01, | |
db 0xc0, 0x01, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x01, 0xb0, 0x02, 0x01, | |
db 0xb0, 0x00, 0x01, 0xb0, 0x00, 0x01, 0xb0, 0x05, 0x01, 0xb0, 0x00, 0x01, | |
db 0xb0, 0x01, 0x01, 0xa0, 0x00, 0x01, 0xa0, 0x00, 0x01, 0xa0, 0x00, 0x01, | |
db 0xa0, 0x02, 0x01, 0x90, 0x00, 0x01, 0x90, 0x05, 0x01, 0x90, 0x01, 0x01, | |
db 0x90, 0x00, 0x01, 0x90, 0x00, 0x01, 0x90, 0x02, 0x01, 0x90, 0x00, 0x01, | |
db 0x90, 0x05, 0x01, 0x80, 0x00, 0x01, 0x80, 0x01, 0x01, 0x80, 0x00, 0x01, | |
db 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, | |
db 0x80, 0x01, 0x01, 0x80, 0x03, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, | |
db 0x80, 0x02, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x01, 0x01, | |
db 0x80, 0x00, 0x01, 0x80, 0x00, 0x05, 0x80, 0x01, 0x01, 0x80, 0x00, 0x01, | |
db 0x80, 0x00, 0x01, 0x80, 0x00, 0x01, 0x80, 0x00, 0x05, 0x80, 0x01, 0x05, | |
db 0x80, 0x01, 0x05, 0x80, 0x01, 0x05, 0x80, 0x02, 0x05, 0x80, 0x02, 0x01, | |
db 0x80, 0x00, 0x0e, 0x05, 0xfc, 0xf2, 0x00, 0x05, 0xf4, 0x00, 0x05, 0xe5, | |
db 0x80, 0x05, 0xd7, 0x80, 0x05, 0xc8, 0x80, 0x05, 0xc0, 0x01, 0x05, 0xc0, | |
db 0x01, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x01, 0x01, 0xc0, | |
db 0x01, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x13, 0x07, | |
db 0x2c, 0xf0, 0xc0, 0x2c, 0xf1, 0x80, 0x2c, 0xf2, 0x40, 0x2c, 0xe2, 0x80, | |
db 0x2e, 0xe3, 0x40, 0x26, 0xd2, 0x00, 0x1e, 0xc2, 0x40, 0x10, 0xb0, 0x01, | |
db 0x09, 0xc0, 0x01, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x05, 0xc0, 0x01, | |
db 0x05, 0xc0, 0x01, 0x01, 0xc0, 0x00, 0x05, 0xc0, 0x02, 0x05, 0xc0, 0x02, | |
db 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x01, 0x00, 0x03, | |
db 0x00, 0x04, 0x0d, 0x03, 0x22, 0xd0, 0x00, 0x12, 0xb0, 0x00, 0x08, 0xc0, | |
db 0x00, 0x05, 0xc0, 0x01, 0x05, 0xc0, 0x01, 0x01, 0xc0, 0x00, 0x05, 0xc0, | |
db 0x02, 0x05, 0xc0, 0x02, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x01, 0x01, 0xc0, | |
db 0x01, 0x01, 0xc0, 0x00, 0x01, 0xc0, 0x00, 0x1f, 0x1e, 0x3c, 0xf0, 0x40, | |
db 0x3c, 0xf0, 0x80, 0x3c, 0xf0, 0xc0, 0x3c, 0xe1, 0x00, 0x34, 0xe1, 0xc0, | |
db 0x34, 0xe1, 0x40, 0x34, 0xd1, 0x00, 0x34, 0xd1, 0xc0, 0x2c, 0xd1, 0x40, | |
db 0x2c, 0xc2, 0x80, 0x2c, 0xc2, 0x80, 0x2c, 0xc3, 0x00, 0x2c, 0xc3, 0x80, | |
db 0x24, 0xb3, 0x40, 0x24, 0xb3, 0x40, 0x24, 0xb3, 0x80, 0x24, 0xb3, 0x40, | |
db 0x24, 0xa3, 0x40, 0x24, 0xa3, 0x40, 0x1c, 0x92, 0xc0, 0x1c, 0x91, 0x40, | |
db 0x1e, 0x91, 0x40, 0x1e, 0x81, 0x80, 0x1e, 0x70, 0x00, 0x16, 0x70, 0x00, | |
db 0x16, 0x60, 0x00, 0x16, 0x50, 0x00, 0x16, 0x40, 0x00, 0x0e, 0x30, 0x00, | |
db 0x0e, 0x20, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x04, 0x00, 0x07, | |
db 0x03, 0x07, 0x00, 0x04, 0x00, 0x07, 0x05, 0x07, 0x00, 0x04, 0x00, 0x07, | |
db 0x02, 0x07, 0x00, 0x01, 0x00, 0x00 | |
;unsigned int flash_pt2_len = 1386; | |
.org player_org | |
ram_F000 equ 0f000h | |
START: jmp INIT | |
LA003: jmp LA00F | |
LA006: jmp LA031 | |
LA009: jmp LA016 | |
LA00C: jmp LA05E | |
M0A010 equ $+1 | |
LA00F: mvi a, 000h | |
ora a | |
rz | |
jmp LA6D9 | |
LA016: mvi a, 001h | |
sta M0ABF6 | |
mvi a, 008h | |
sta M0A042 | |
ret | |
INIT: xra a | |
sta M0ABF6 | |
inr a | |
sta M0A010 | |
jmp LA2C1 | |
LA02C: inr a | |
sta M0A010 | |
ret | |
LA031: lda M0A010 | |
cpi 001h | |
rc | |
jz LA02C | |
lda M0ABF6 | |
ora a | |
jz LA642 | |
M0A042 equ $+1 | |
mvi a, 000h | |
dcr a | |
sta M0A042 | |
jnz LA642 | |
mvi a, 008h | |
sta M0A042 | |
lda M0ABF6 | |
cpi 00Fh | |
jz LA05E | |
inr a | |
sta M0ABF6 | |
jmp LA642 | |
LA05E: xra a | |
sta M0A010 | |
lxi b, 00010h | |
LA065: mov a, b | |
out 015h | |
xra a | |
out 014h | |
inr b | |
dcr c | |
jnz LA065 | |
ret | |
.db 020h,050h,052h,04Fh | |
.db 054h,052h,041h,043h | |
.db 04Bh,045h,052h,020h | |
.db 032h,02Eh,031h,020h | |
.db 042h,059h,020h,047h | |
.db 04Fh,04Ch,044h,045h | |
.db 04Eh,020h,044h,049h | |
.db 053h,04Bh,020h | |
LA090: .db 0F8h,00Eh,010h,00Eh | |
.db 060h,00Dh,080h,00Ch | |
.db 0D8h,00Bh,028h,00Bh | |
.db 088h,00Ah,0F0h,009h | |
.db 060h,009h,0E0h,008h | |
.db 058h,008h,0E0h,007h | |
.db 07Ch,007h,008h,007h | |
.db 0B0h,006h,040h,006h | |
.db 0ECh,005h,094h,005h | |
.db 044h,005h,0F8h,004h | |
.db 0B0h,004h,070h,004h | |
.db 02Ch,004h,0FDh,003h | |
.db 0BEh,003h,084h,003h | |
.db 058h,003h,020h,003h | |
.db 0F6h,002h,0CAh,002h | |
.db 0A2h,002h,07Ch,002h | |
.db 058h,002h,038h,002h | |
.db 016h,002h,0F8h,001h | |
.db 0DFh,001h,0C2h,001h | |
.db 0ACh,001h,090h,001h | |
.db 07Bh,001h,065h,001h | |
.db 051h,001h,03Eh,001h | |
.db 02Ch,001h,01Ch,001h | |
.db 00Ah,001h,0FCh,000h | |
.db 0EFh,000h,0E1h,000h | |
.db 0D6h,000h,0C8h,000h | |
.db 0BDh,000h,0B2h,000h | |
.db 0A8h,000h,09Fh,000h | |
.db 096h,000h,08Eh,000h | |
.db 085h,000h,07Eh,000h | |
.db 077h,000h,070h,000h | |
.db 06Bh,000h,064h,000h | |
.db 05Eh,000h,059h,000h | |
.db 054h,000h,04Fh,000h | |
.db 04Bh,000h,047h,000h | |
.db 042h,000h,03Fh,000h | |
.db 03Bh,000h,038h,000h | |
.db 035h,000h,032h,000h | |
.db 02Fh,000h,02Ch,000h | |
.db 02Ah,000h,027h,000h | |
.db 025h,000h,023h,000h | |
.db 021h,000h,01Fh,000h | |
.db 01Dh,000h,01Ch,000h | |
.db 01Ah,000h,019h,000h | |
.db 017h,000h,016h,000h | |
.db 015h,000h,013h,000h | |
.db 012h,000h,011h,000h | |
.db 010h,000h,00Fh,000h | |
LA150: .db 000h,000h,000h,000h | |
.db 000h,000h,000h,000h | |
.db 000h,000h,000h,000h | |
.db 000h,000h,000h,000h | |
.db 000h,000h,000h,000h | |
.db 000h,000h,000h,000h | |
.db 001h,001h,001h,001h | |
.db 001h,001h,001h,001h | |
.db 000h,000h,000h,000h | |
.db 001h,001h,001h,001h | |
.db 001h,001h,001h,001h | |
.db 002h,002h,002h,002h | |
.db 000h,000h,000h,001h | |
.db 001h,001h,001h,001h | |
.db 002h,002h,002h,002h | |
.db 002h,003h,003h,003h | |
LA190: .db 000h,000h,001h,001h | |
.db 001h,001h,002h,002h | |
.db 002h,002h,003h,003h | |
.db 003h,003h,004h,004h | |
.db 000h,000h,001h,001h | |
.db 001h,002h,002h,002h | |
.db 003h,003h,003h,004h | |
.db 004h,004h,005h,005h | |
.db 000h,000h,001h,001h | |
.db 002h,002h,002h,003h | |
.db 003h,004h,004h,004h | |
.db 005h,005h,006h,006h | |
.db 000h,000h,001h,001h | |
.db 002h,002h,003h,003h | |
.db 004h,004h,005h,005h | |
.db 006h,006h,007h,007h | |
.db 000h,001h,001h,002h | |
.db 002h,003h,003h,004h | |
.db 004h,005h,005h,006h | |
.db 006h,007h,007h,008h | |
.db 000h,001h,001h,002h | |
.db 002h,003h,004h,004h | |
.db 005h,005h,006h,007h | |
.db 007h,008h,008h,009h | |
.db 000h,001h,001h,002h | |
.db 003h,003h,004h,005h | |
.db 005h,006h,007h,007h | |
.db 008h,009h,009h,00Ah | |
.db 000h,001h,001h,002h | |
.db 003h,004h,004h,005h | |
.db 006h,007h,007h,008h | |
.db 009h,00Ah,00Ah,00Bh | |
LA210: .db 000h,001h,002h,002h | |
.db 003h,004h,005h,006h | |
.db 006h,007h,008h,009h | |
.db 00Ah,00Ah,00Bh,00Ch | |
LA220: .db 000h,001h,002h,003h | |
.db 003h,004h,005h,006h | |
.db 007h,008h,009h,00Ah | |
.db 00Ah,00Bh,00Ch,00Dh | |
.db 000h,001h,002h,003h | |
.db 004h,005h,006h,007h | |
.db 007h,008h,009h,00Ah | |
.db 00Bh,00Ch,00Dh,00Eh | |
LA240: .db 000h,001h,002h,003h | |
.db 004h,005h,006h,007h | |
.db 008h,009h,00Ah,00Bh | |
.db 00Ch,00Dh,00Eh,00Fh | |
LA250: .db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 050h,095h,079h,095h | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 0AEh,095h,0C2h,095h | |
.db 054h,096h,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
LA290: .db 0B6h,096h,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
.db 02Fh,08Ah,02Fh,08Ah | |
LA2B0: .db 000h | |
LA2B1: .db 001h | |
LA2B2: .db 000h | |
LA2B3: .db 0C2h | |
LA2B4: .db 001h | |
LA2B5: .db 02Ch,001h | |
M0A2B9 equ $+2 | |
LA2B7: .db 02Ch,001h,000h | |
LA2BA: .db 000h | |
LA2BB: .db 006h | |
LA2BC: .db 003h | |
LA2BD: .db 00Ah | |
LA2BE: .db 000h,000h | |
LA2C0: .db 000h | |
LA2C1: push h | |
shld LA3D5_+1 | |
push h | |
mov a, m | |
sta M0A81A | |
sta M0A6DF | |
inx h | |
inx h | |
mov a, m | |
inx h | |
shld LA36E_+1 | |
lxi d, 00020h | |
dad d | |
dad d | |
shld LA382_+1 | |
dad d | |
mov e, m | |
inx h | |
mov d, m | |
inx h | |
lxi b, 0001Eh | |
dad b | |
shld LA3C1_+1 | |
mov c, a | |
dad b | |
shld LA3AC_+1 | |
pop h | |
dad d | |
shld LA3D0_+1 | |
lxi h, LA2B3 | |
lxi d, LA2B4 | |
lxi b, 0000Dh | |
mov m, b | |
LA2FC: mov a, b | |
ora c | |
jz LA309 | |
mov a, m | |
stax d | |
inx h | |
inx d | |
dcx b | |
jmp LA2FC | |
LA309: nop | |
xra a | |
sta LA2B0 | |
sta LA2B1 | |
sta LA2B2 | |
sta M0A76C | |
sta M0A7D5 | |
sta M0A49A | |
sta M0A537 | |
sta M0A5D7 | |
sta M0A767 | |
sta M0A7D0 | |
sta M0A4FC | |
sta M0A59C | |
sta M0A63D | |
mov b, a | |
cma | |
sta MA464 | |
sta MA501 | |
sta MA5A1 | |
mvi a, 02Fh | |
sta M0A7B8 | |
sta LA74F | |
lxi h, LA240 | |
shld LA771_+1 | |
shld LA7DA_+1 | |
shld LA4F7_+1 | |
shld LA597_+1 | |
shld LA638_+1 | |
call LA3B3 | |
xchg | |
shld LA6F9_+1 | |
xchg | |
pop b | |
shld LA36B_+1 | |
lxi h, 00000h | |
dad sp | |
shld LA396_+1 | |
LA36B_ lxi h, 00000h | |
LA36E_ lxi sp, 08A32h | |
lxi d, LA250 | |
mvi a, 020h | |
LA375: pop h | |
dad b | |
xchg | |
mov m, e | |
inx h | |
mov m, d | |
inx h | |
xchg | |
dcr a | |
jnz LA375 | |
LA382_ lxi sp, 08A72h | |
lxi d, LA290 | |
mvi a, 010h | |
LA389: pop h | |
dad b | |
xchg | |
mov m, e | |
inx h | |
mov m, d | |
inx h | |
xchg | |
dcr a | |
jnz LA389 | |
LA396_ lxi sp, 05FF5h | |
lhld LA290 | |
shld LA782_+1 | |
shld LA7EB_+1 | |
shld LA470_+1 | |
shld LA50D_+1 | |
shld LA5AD_+1 | |
ret | |
LA3AB | |
LA3AC_ lxi h, 08ACEh | |
mov a, m | |
add a | |
jmp LA3C8 | |
LA3B3: shld LA3BE_+1 | |
lxi h, 00000h | |
dad sp | |
shld LA3E5_+1 | |
LA3BE_ lxi h, 00000h | |
LA3C1_ lxi h, 08AB6h | |
mov a, m | |
add a | |
jc LA3AB | |
LA3C8: add m | |
add a | |
inx h | |
shld LA3C1_+1 | |
mov c, a | |
LA3D0_ lxi h, 08AD0h | |
dad b | |
sphl | |
LA3D5_ lxi b, 08A2Fh | |
pop h | |
dad b | |
xchg | |
pop h | |
dad b | |
shld LA718_+1 | |
pop h | |
dad b | |
shld LA732_+1 | |
LA3E5_ lxi sp, 05FDFh | |
mvi b, 000h | |
ret | |
LA3EA: mov a, e | |
add a | |
add e | |
mov e, a | |
mvi d, 000h | |
dad d | |
mov a, m | |
rar | |
jnc LA3F8 | |
mvi d, 004h | |
LA3F8: rar | |
sta M0A400 | |
mov a, d | |
ral | |
mov d, a | |
M0A400 equ $+1 | |
mvi a, 000h | |
rar | |
call LABC4 | |
inx h | |
mov a, m | |
rrc | |
rrc | |
rrc | |
rrc | |
ani 00Fh | |
call LABC4 | |
sta M0A418 | |
push psw | |
mov a, d | |
ani 008h | |
M0A418 equ $+1 | |
mvi a, 000h | |
jnz LABF1 | |
pop psw | |
push psw | |
add b | |
sta M0A2B9 | |
pop psw | |
LA423: mov a, m | |
ral | |
ani 01Fh | |
inx h | |
mov l, m | |
mov h, a | |
sta M0A432 | |
mov a, d | |
sta VABC3 | |
M0A432 equ $+1 | |
mvi a, 000h | |
xchg | |
mvi b, 000h | |
LA437_ lxi h, 096B8h | |
dad b | |
lda VABC2 | |
add m | |
add a | |
mov c, a | |
lxi h, LA090 | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
sta M0A451 | |
mov a, d | |
stc | |
cmc | |
rar | |
mov d, a | |
M0A451 equ $+1 | |
mvi a, 000h | |
jc LA461 | |
sta M0A45F | |
mov a, l | |
sub e | |
mov l, a | |
mov a, h | |
sbb d | |
mov h, a | |
M0A45F equ $+1 | |
mvi a, 000h | |
ret | |
LA461: dad d | |
ret | |
MA464 equ $+1 | |
LA463: mvi a, 000h | |
inr a | |
jz LA4FD | |
LA46A_ lxi b, 02800h | |
LA46D_ lxi d, 095C2h | |
LA470_ lxi h, 096B6h | |
mov a, c | |
inr a | |
cmp m | |
inx h | |
jnz LA47A | |
mov a, m | |
LA47A: sta LA46A_+1 | |
inx h | |
shld LA437_+1 | |
xchg | |
mov a, b | |
mov e, a | |
inr a | |
cmp m | |
inx h | |
jnz LA48B | |
mov a, m | |
LA48B: sta LA46A_+2 ; LA46A_+2 | |
inx h | |
sta M0A498 | |
M0A493 equ $+1 | |
mvi a, 000h | |
sta VABC2 | |
M0A498 equ $+1 | |
mvi a, 000h | |
M0A49A equ $+1 | |
mvi b, 000h | |
call LA3EA | |
LA49F_ lxi d, 00000h | |
dad d | |
shld LA2B3 | |
xchg | |
M0A4A8 equ $+2 | |
LA4A7_ lxi d, 00000h | |
dcr d | |
jm LA4EC | |
jz LA4E6 | |
push h | |
LA4B2_ lxi h, 00000h | |
mov a, e | |
ana a | |
jp LA4C0 | |
sta M0A4BF | |
mvi a, 000h | |
M0A4BF equ $+1 | |
sui 000h | |
LA4C0: mov c, a | |
ana a | |
sta M0A4CC | |
mov a, l | |
sbb c | |
mov l, a | |
mov a, h | |
sbb b | |
mov h, a | |
M0A4CC equ $+1 | |
mvi a, 000h | |
jnc LA4E2 | |
pop h | |
M0A4D2 equ $+1 | |
mvi a, 000h | |
sta M0A493 | |
xra a | |
sta M0A4A8 | |
mov h, a | |
mov l, a | |
shld LA49F_+1 | |
jmp LA4EC | |
LA4E2: shld LA4B2_+1 | |
pop h | |
M0A4E7 equ $+1 | |
LA4E6: mvi d, 000h | |
dad d | |
shld LA49F_+1 | |
LA4EC: lda VABC3 | |
sta LA2BA | |
call LABC4 | |
mov c, a | |
LA4F7_ lxi h, LA210 | |
dad b | |
mov a, m | |
M0A4FC equ $+1 | |
ori 000h | |
LA4FD: sta LA2BB | |
MA501 equ $+1 | |
mvi a, 000h | |
inr a | |
jz LA59D | |
M0A507 equ $+1 | |
LA507_ lxi b, 00A00h | |
LA50A_ lxi d, 09654h | |
LA50D_ lxi h, 096B6h | |
mov a, c | |
inr a | |
cmp m | |
inx h | |
jnz LA517 | |
mov a, m | |
LA517: sta M0A507 | |
inx h | |
shld LA437_+1 | |
xchg | |
mov a, b | |
mov e, a | |
inr a | |
cmp m | |
inx h | |
jnz LA528 | |
mov a, m | |
LA528: sta LA507_+2 ; LA507_+2 | |
inx h | |
sta M0A535 | |
M0A530 equ $+1 | |
mvi a, 000h | |
sta VABC2 | |
M0A535 equ $+1 | |
mvi a, 000h | |
M0A537 equ $+1 | |
mvi b, 000h | |
call LA3EA | |
LA53C_ lxi d, 00000h | |
dad d | |
shld LA2B5 | |
xchg | |
M0A545 equ $+2 | |
LA544_ lxi d, 00000h | |
dcr d | |
jm LA589 | |
jz LA583 | |
push h | |
LA54F_ lxi h, 00000h | |
mov a, e | |
ana a | |
jp LA55D | |
sta M0A55C | |
mvi a, 000h | |
M0A55C equ $+1 | |
sui 000h | |
LA55D: mov c, a | |
ana a | |
sta M0A569 | |
mov a, l | |
sbb c | |
mov l, a | |
mov a, h | |
sbb b | |
mov h, a | |
M0A569 equ $+1 | |
mvi a, 000h | |
jnc LA57F | |
pop h | |
M0A56F equ $+1 | |
mvi a, 000h | |
sta M0A530 | |
xra a | |
sta M0A545 | |
mov h, a | |
mov l, a | |
shld LA53C_+1 | |
jmp LA589 | |
LA57F: shld LA54F_+1 | |
pop h | |
M0A584 equ $+1 | |
LA583: mvi d, 000h | |
dad d | |
shld LA53C_+1 | |
LA589: lda VABC3 | |
lxi h, LA2BA | |
rlc | |
ora m | |
mov m, a | |
call LABC4 | |
mov c, a | |
LA597_ lxi h, LA190 | |
dad b | |
mov a, m | |
M0A59C equ $+1 | |
ori 000h | |
LA59D: sta LA2BC | |
MA5A1 equ $+1 | |
mvi a, 000h | |
inr a | |
jz LA63E | |
LA5A7_ lxi b, 00A00h | |
LA5AA_ lxi d, 09654h | |
LA5AD_ lxi h, 096B6h | |
mov a, c | |
inr a | |
cmp m | |
inx h | |
jnz LA5B7 | |
mov a, m | |
LA5B7: sta LA5A7_+1 | |
inx h | |
shld LA437_+1 | |
xchg | |
mov a, b | |
mov e, a | |
inr a | |
cmp m | |
inx h | |
jnz LA5C8 | |
mov a, m | |
LA5C8: sta LA5A7_+2 | |
inx h | |
sta M0A5D5 | |
MA5D0 equ $+1 | |
mvi a, 000h | |
sta VABC2 | |
M0A5D5 equ $+1 | |
mvi a, 000h | |
M0A5D7 equ $+1 | |
mvi b, 000h | |
call LA3EA | |
LA5DC_ lxi d, 00000h | |
dad d | |
shld LA2B7 | |
xchg | |
M0A5E5 equ $+2 | |
LA5E4_ lxi d, 00000h | |
dcr d | |
jm LA629 | |
jz LA623 | |
push h | |
LA5EF_ lxi h, 00000h | |
mov a, e | |
ana a | |
jp LA5FD | |
sta M0A5FC | |
mvi a, 000h | |
M0A5FC equ $+1 | |
sui 000h | |
LA5FD: mov c, a | |
ana a | |
sta M0A609 | |
mov a, l | |
sbb c | |
mov l, a | |
mov a, h | |
sbb b | |
mov h, a | |
M0A609 equ $+1 | |
mvi a, 000h | |
jnc LA61F | |
M0A60E equ $+1 | |
mvi a, 000h | |
sta MA5D0 | |
xra a | |
sta M0A5E5 | |
mov h, a | |
mov l, a | |
shld LA5DC_+1 | |
pop h | |
jmp LA629 | |
LA61F: shld LA5EF_+1 | |
pop h | |
M0A624 equ $+1 | |
LA623: mvi d, 000h | |
dad d | |
shld LA5DC_+1 | |
LA629: lda VABC3 | |
lxi h, LA2BA | |
rlc | |
rlc | |
ora m | |
mov m, a | |
call LABC4 | |
mov c, a | |
LA638_ lxi h, LA220 | |
dad b | |
mov a, m | |
M0A63D equ $+1 | |
ori 000h | |
LA63E: sta LA2BD | |
ret | |
LA642: lxi h, LA2C0 | |
lxi d, ram_F000+0FBFh | |
mvi c, 0FDh | |
xra a | |
ora m | |
mvi a, 00Dh | |
jnz LA659 | |
sui 003h | |
lxi h, LA2BD | |
jmp LA672 | |
LA659: out 015h | |
mov c, a | |
mov a, m | |
dcx h | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
out 014h | |
dcx h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
out 014h | |
dcx h | |
dcr c | |
mov a, c | |
LA672: out 015h | |
mov c, a | |
mov a, m | |
dcx h | |
call LABF5 | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
call LABF5 | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
call LABF5 | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
dcx h | |
out 014h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
out 014h | |
dcx h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
out 014h | |
dcx h | |
dcr c | |
mov a, c | |
out 015h | |
mov a, m | |
out 014h | |
mov a, c | |
sta LA2BA | |
sta LA2C0 | |
ret | |
LA6D9: xra a | |
mov b, a | |
call LABC4 | |
M0A6DF equ $+1 | |
mvi a, 001h | |
dcr a | |
sta M0A6DF | |
jz LA728 | |
dcr a | |
jz LA70E | |
dcr a | |
jnz LA463 | |
lxi h, LA2B0 | |
dcr m | |
jp LA463 | |
M0A6F7 equ $+1 | |
mvi m, 000h | |
LA6F9_ lxi d, 08C6Fh | |
ldax d | |
ana a | |
cz LA3B3 | |
call LA8BA | |
sta M0A73D | |
xchg | |
shld LA6F9_+1 | |
xchg | |
jmp LA463 | |
LA70E: lxi h, LA2B1 | |
dcr m | |
jp LA463 | |
M0A716 equ $+1 | |
mvi m, 001h | |
LA718_ lxi d, 08D01h | |
call LAA00 | |
sta LA7A6 | |
xchg | |
shld LA718_+1 | |
xchg | |
jmp LA463 | |
LA728: lxi h, LA2B2 | |
dcr m | |
jp LA73C | |
M0A730 equ $+1 | |
mvi m, 001h | |
LA732_ lxi d, 08D38h | |
call LAB25 | |
xchg | |
shld LA732_+1 | |
xchg | |
LA73C: xra a | |
M0A73D: stc | |
jnc LA75F | |
sta M0A73D | |
sta M0A4A8 | |
mov h, a | |
mov l, a | |
shld LA46A_+1 | |
shld LA49F_+1 | |
LA74F: nop | |
sta MA464 | |
M0A754 equ $+1 | |
mvi a, 023h | |
sta M0A493 | |
LA759_ lxi h, 095C2h | |
shld LA46D_+1 | |
xra a | |
LA75F: stc | |
jnc LA777 | |
sta LA75F | |
M0A767 equ $+1 | |
mvi a, 000h | |
sta M0A4FC | |
M0A76C equ $+1 | |
mvi a, 000h | |
sta M0A49A | |
LA771_ lxi h, 08198h | |
shld LA4F7_+1 | |
xra a | |
LA777: nop | |
jnc LA788 | |
sta LA46A_+1 | |
sta LA777 | |
LA782_ lxi h, 096B6h | |
shld LA470_+1 | |
xra a | |
LA788: nop | |
jnc LA7A6 | |
sta LA788 | |
M0A790 equ $+1 | |
mvi a, 000h | |
sta M0A4D2 | |
LA795_ lxi h, 00000h | |
shld LA4B2_+1 | |
M0A79B equ $+1 | |
mvi a, 000h | |
sta M0A4E7 | |
M0A7A1 equ $+2 | |
LA7A0_ lxi h, 00000h | |
shld LA4A7_+1 | |
xra a | |
LA7A6: stc | |
jnc LA7C8 | |
mov h, a | |
mov l, a | |
sta M0A545 | |
shld LA53C_+1 | |
shld LA507_+1 | |
sta LA7A6 | |
M0A7B8: nop | |
sta MA501 | |
M0A7BD equ $+1 | |
mvi a, 036h | |
sta M0A530 | |
LA7C2_ lxi h, 09654h | |
shld LA50A_+1 | |
xra a | |
LA7C8: stc | |
jnc LA7E0 | |
sta LA7C8 | |
M0A7D0 equ $+1 | |
mvi a, 000h | |
sta M0A59C | |
M0A7D5 equ $+1 | |
mvi a, 000h | |
sta M0A537 | |
LA7DA_ lxi h, 081A8h | |
shld LA597_+1 | |
xra a | |
LA7E0: nop | |
jnc LA7F1 | |
sta M0A507 | |
sta LA7E0 | |
LA7EB_ lxi h, 096B6h | |
shld LA50D_+1 | |
xra a | |
LA7F1: nop | |
jnc LA80E | |
sta LA7F1 | |
LA7F9_ lxi h, 00000h | |
shld LA54F_+1 | |
M0A7FF equ $+1 | |
mvi a, 000h | |
sta M0A56F | |
M0A804 equ $+1 | |
mvi a, 000h | |
sta M0A584 | |
M0A80A equ $+2 | |
LA809_ lxi h, 00000h | |
shld LA544_+1 | |
M0A80F equ $+1 | |
LA80E: mvi a, 000h | |
sta LA2C0 | |
M0A814 equ $+1 | |
M0A815 equ $+2 | |
lxi h, 00000h | |
shld LA2BE | |
M0A81A equ $+1 | |
mvi a, 005h | |
sta M0A6DF | |
xra a | |
sta M0A80F | |
jmp LA463 | |
LA825: sta M0A790 | |
lda M0A7A1 | |
dcr a | |
jz LA834 | |
mov a, c | |
sta M0A754 | |
xra a | |
LA834: sta LA74F | |
mvi a, 037h | |
sta LA788 | |
ret | |
LA83D: call LABC4 | |
sta LA75F | |
lda M0A493 | |
mov c, a | |
call LABC4 | |
sta M0A754 | |
inr b | |
jz LA825 | |
xra a | |
sta M0A7A1 | |
sta LA74F | |
mvi a, 037h | |
ret | |
LA85B: add a | |
add a | |
add a | |
add a | |
lxi h, LA150 | |
mov c, a | |
dad b | |
shld LA771_+1 | |
mvi a, 037h | |
call LABC4 | |
jmp LA8BA | |
LA86F: mvi a, 037h | |
sta LA788 | |
ldax d | |
inx d | |
mvi h, 001h | |
mov l, a | |
shld LA7A0_+1 | |
ana a | |
mov a, b | |
jp LA882 | |
cma | |
LA882: sta M0A79B | |
dcr b | |
jmp LA8BA | |
LA889: ldax d | |
inx d | |
mvi h, 002h | |
mov l, a | |
shld LA7A0_+1 | |
ana a | |
mov a, b | |
jp LA897 | |
cma | |
LA897: sta M0A79B | |
ldax d | |
mov l, a | |
inx d | |
ldax d | |
inx d | |
mov h, a | |
shld LA795_+1 | |
dcr b | |
jmp LA8BA | |
LA8A7: ldax d | |
inx d | |
sta M0A76C | |
mvi a, 037h | |
call LABC4 | |
jmp LA8BA | |
LA8B4: sta LA2B0 | |
sta M0A6F7 | |
LA8BA: ldax d | |
inx d | |
adi 020h | |
jc LA8F6 | |
adi 060h | |
jc LA83D | |
adi 010h | |
jc LA941 | |
adi 010h | |
jc LA909 | |
adi 040h | |
jc LA8B4 | |
adi 010h | |
jc LA85B | |
inr a | |
jz LA963 | |
inr a | |
jz LA86F | |
inr a | |
jz LA889 | |
inr a | |
jnz LA8A7 | |
xra a | |
sta M0A7A1 | |
mvi a, 037h | |
sta LA788 | |
jmp LA8BA | |
LA8F6: jz LA91E | |
add a | |
lxi h, LA250 | |
mov c, a | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
shld LA759_+1 | |
jmp LA8BA | |
LA909: lxi h, LA290 | |
add a | |
mov c, a | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
shld LA782_+1 | |
mvi a, 037h | |
sta LA777 | |
jmp LA8BA | |
LA91E: call LABC4 | |
sta LA75F | |
mvi a, 02Fh | |
sta LA74F | |
mvi a, 037h | |
ret | |
LA92C: call LABC4 | |
sta LA75F | |
mvi a, 0A7h | |
ret | |
LA935: xra a | |
sta M0A767 | |
mvi a, 037h | |
call LABC4 | |
jmp LA8BA | |
LA941: jz LA92C | |
cpi 00Fh | |
jz LA935 | |
sta M0A80F | |
mvi a, 010h | |
sta M0A767 | |
ldax d | |
sta M0A814 | |
inx d | |
ldax d | |
sta M0A815 | |
inx d | |
mvi a, 037h | |
call LABC4 | |
jmp LA8BA | |
LA963: ldax d | |
inx d | |
sta M0A81A | |
jmp LA8BA | |
LA96B: sta M0A7FF | |
lda M0A80A | |
dcr a | |
jz LA97A | |
mov a, c | |
sta M0A7BD | |
xra a | |
LA97A: sta M0A7B8 | |
mvi a, 037h | |
sta LA7F1 | |
ret | |
LA983: call LABC4 | |
sta LA7C8 | |
lda M0A530 | |
mov c, a | |
call LABC4 | |
sta M0A7BD | |
inr b | |
jz LA96B | |
xra a | |
sta M0A80A | |
sta M0A7B8 | |
mvi a, 037h | |
ret | |
LA9A1: add a | |
add a | |
add a | |
add a | |
lxi h, LA150 | |
mov c, a | |
dad b | |
shld LA7DA_+1 | |
mvi a, 037h | |
call LABC4 | |
jmp LAA00 | |
LA9B5: mvi a, 037h | |
sta LA7F1 | |
ldax d | |
inx d | |
mvi h, 001h | |
mov l, a | |
shld LA809_+1 | |
ana a | |
mov a, b | |
jp LA9C8 | |
cma | |
LA9C8: sta M0A804 | |
dcr b | |
jmp LAA00 | |
LA9CF: ldax d | |
inx d | |
mvi h, 002h | |
mov l, a | |
shld LA809_+1 | |
ana a | |
mov a, b | |
jp LA9DD | |
cma | |
LA9DD: sta M0A804 | |
ldax d | |
mov l, a | |
inx d | |
ldax d | |
inx d | |
mov h, a | |
shld LA7F9_+1 | |
dcr b | |
jmp LAA00 | |
LA9ED: ldax d | |
inx d | |
sta M0A7D5 | |
mvi a, 037h | |
call LABC4 | |
jmp LAA00 | |
LA9FA: sta LA2B1 | |
sta M0A716 | |
LAA00: ldax d | |
inx d | |
adi 020h | |
jc LAA3C | |
adi 060h | |
jc LA983 | |
adi 010h | |
jc LAA87 | |
adi 010h | |
jc LAA4F | |
adi 040h | |
jc LA9FA | |
adi 010h | |
jc LA9A1 | |
inr a | |
jz LAAA9 | |
inr a | |
jz LA9B5 | |
inr a | |
jz LA9CF | |
inr a | |
jnz LA9ED | |
xra a | |
sta M0A80A | |
mvi a, 037h | |
sta LA7F1 | |
jmp LAA00 | |
LAA3C: jz LAA64 | |
add a | |
lxi h, LA250 | |
mov c, a | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
shld LA7C2_+1 | |
jmp LAA00 | |
LAA4F: lxi h, LA290 | |
add a | |
mov c, a | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
shld LA7EB_+1 | |
mvi a, 037h | |
sta LA7E0 | |
jmp LAA00 | |
LAA64: call LABC4 | |
sta LA7C8 | |
mvi a, 02Fh | |
sta M0A7B8 | |
mvi a, 037h | |
ret | |
LAA72: call LABC4 | |
sta LA7C8 | |
mvi a, 0A7h | |
ret | |
LAA7B: xra a | |
sta M0A7D0 | |
mvi a, 037h | |
call LABC4 | |
jmp LAA00 | |
LAA87: jz LAA72 | |
cpi 00Fh | |
jz LAA7B | |
sta M0A80F | |
mvi a, 010h | |
sta M0A7D0 | |
ldax d | |
sta M0A814 | |
inx d | |
ldax d | |
sta M0A815 | |
inx d | |
mvi a, 037h | |
call LABC4 | |
jmp LAA00 | |
LAAA9: ldax d | |
inx d | |
sta M0A81A | |
jmp LAA00 | |
LAAB1: call LABC4 | |
lda MA5D0 | |
mov c, a | |
call LABC4 | |
sta MA5D0 | |
inr b | |
jz LAAC9 | |
xra a | |
sta M0A5E5 | |
jmp LAAD8 | |
LAAC9: sta M0A60E | |
lda M0A5E5 | |
dcr a | |
jz LAAD8 | |
mov a, c | |
sta MA5D0 | |
xra a | |
LAAD8: mov h, a | |
mov l, a | |
shld LA5DC_+1 | |
sta MA5A1 | |
shld LA5A7_+1 | |
ret | |
LAAE4: ldax d | |
inx d | |
mvi h, 001h | |
mov l, a | |
shld LA5E4_+1 | |
ana a | |
mov a, b | |
jp LAAF2 | |
cma | |
LAAF2: sta M0A624 | |
dcr b | |
jmp LAB25 | |
LAAF9: ldax d | |
inx d | |
mov l, a | |
mvi h, 002h | |
shld LA5E4_+1 | |
ana a | |
mov a, b | |
jp LAB07 | |
cma | |
LAB07: sta M0A624 | |
ldax d | |
mov l, a | |
inx d | |
ldax d | |
inx d | |
mov h, a | |
shld LA5EF_+1 | |
dcr b | |
jmp LAB25 | |
LAB17: ldax d | |
inx d | |
sta M0A5D7 ; M0A5D7 | |
jmp LAB25 | |
LAB1F: sta LA2B2 | |
sta M0A730 | |
LAB25: ldax d | |
inx d | |
adi 020h | |
jc LAB5C | |
adi 060h | |
jc LAAB1 | |
adi 010h | |
jc LAB89 | |
adi 010h | |
jc LAB6F | |
adi 040h | |
jc LAB1F | |
adi 010h | |
jc LABB3 | |
inr a | |
jz LABAB | |
inr a | |
jz LAAE4 | |
inr a | |
jz LAAF9 | |
inr a | |
jnz LAB17 | |
xra a | |
sta M0A5E5 | |
jmp LAB25 | |
LAB5C: jz LAB83 | |
add a | |
lxi h, LA250 | |
mov c, a | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
shld LA5AA_+1 | |
jmp LAB25 | |
LAB6F: lxi h, LA290 | |
add a | |
mov c, a | |
dad b | |
mov a, m | |
inx h | |
mov h, m | |
mov l, a | |
shld LA5AD_+1 | |
xra a | |
sta LA5A7_+1 | |
jmp LAB25 | |
LAB83: mvi a, 0FFh | |
sta MA5A1 | |
ret | |
LAB89: rz | |
cpi 00Fh | |
jz LABA4 | |
sta M0A80F | |
mvi a, 010h | |
sta M0A63D | |
ldax d | |
sta M0A814 | |
inx d | |
ldax d | |
sta M0A815 | |
inx d | |
jmp LAB25 | |
LABA4: xra a | |
sta M0A63D | |
jmp LAB25 | |
LABAB: ldax d | |
inx d | |
sta M0A81A | |
jmp LAB25 | |
LABB3: add a | |
add a | |
add a | |
add a | |
lxi h, LA150 | |
mov c, a | |
dad b | |
shld LA638_+1 | |
jmp LAB25 | |
VABC2: .db 0 | |
VABC3: .db 0 | |
LABC4: shld LABDB_+1 | |
push psw | |
pop h | |
LABCA_ jmp LABCC | |
LABCC: shld LABED | |
lxi h, LABDE | |
shld LABCA_+1 | |
lhld LABEF | |
LABD8: push h | |
pop psw | |
LABDB_ lxi h, 00000h | |
ret | |
LABDE: shld LABEF ; .db 022h,0EFh,0ABh, | |
lxi h, LABCC | |
shld LABCA_+1 | |
lhld LABED | |
jmp LABD8 | |
LABED: .db 000h,000h | |
LABEF: .db 000h,000h | |
LABF1: pop psw | |
jmp LA423 | |
M0ABF6 equ $+1 | |
LABF5: sui 000h | |
cpi 080h | |
rc | |
xra a | |
ret | |
.end | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; STC player by DemonID7: 33-48 lines без визуализации | |
; худший случай: 45 строк | |
; tune: DOCZak1 by DOC'NEONSOFT | |
.project stcplay-demonid7.rom | |
.tape v06c-rom | |
.org $100 | |
di | |
xra a | |
out $10 | |
mvi a, $c9 | |
sta $38 | |
main: | |
lxi b, songe1 | |
call STINIT | |
eternal_loop: | |
ei | |
hlt | |
call STPLAY | |
jmp eternal_loop | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
; PLAYER STUFF | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
; EQUHEIGHT equ 6 ; высота полос эквалайзера | |
;------------------------------------------------------------------------ | |
; сброс "эквалайзера" в исходное положение | |
;------------------------------------------------------------------------ | |
RstEqu: | |
ret | |
;------------------------------------------------------------------------ | |
; отрисовывает строку "эквалайзера" | |
;------------------------------------------------------------------------ | |
; на входе: | |
; BC - адрес видеопамяти | |
PutEql: | |
ret | |
STSTOP: | |
di | |
mvi A, 7 | |
out 15h ; номер регистра AY - адрес в спектруме FFFDh | |
mvi A, 3Fh | |
out 14h | |
mvi A, 8 | |
out 15h | |
mvi A, 0 | |
out 14h | |
mvi A, 9 | |
out 15h | |
mvi A, 0 | |
out 14h | |
mvi A, 10 | |
out 15h | |
mvi A, 0 | |
out 14h | |
; убираем свой обработчик IRQ | |
; lxi B, OLDISR | |
; call DelVec | |
ret | |
;------------------------------------------------------------------------ | |
; Инициализация проигрывателя | |
;------------------------------------------------------------------------ | |
; на входе: | |
; BC - адрес музона | |
STINIT: | |
call RstEqu | |
lda plFlag | |
ani 0FEh | |
sta plFlag ; сбрасываем флаг остановки | |
mov L, C | |
mov H, B | |
mov A, M | |
sta nDelay | |
shld musAdr+1 | |
inx H | |
call cnvAdr ; DE = &OrderList | |
ldax D | |
inx D | |
inr A | |
sta lenOrd | |
xchg | |
shld ordAdr | |
xchg | |
call cnvAdr ; DE = &Ornaments | |
xchg | |
shld ornAdr | |
xchg | |
push D ; save ornament address | |
call cnvAdr ; DE = &Patterns | |
xchg | |
shld patAdr | |
xchg | |
lxi H, 1Bh | |
call musAdr ; DE = &Samples | |
xchg | |
shld smpAdr | |
lxi H, nulPat | |
mvi M, 0FFh | |
shld patA ; patA = &numPat // ставим заглушку на паттерн | |
; инициализируем остальные данные значением 0x2C | |
lxi H, ul7c46 | |
lxi D, ul7c46+1 | |
lxi B, 2ch | |
mov M, B | |
LDIR1: ; ldir | |
mov A, M | |
stax D ; [DE++] = [HL++] | |
inx H | |
inx D | |
dcx B | |
mov A,B | |
ora C | |
jnz LDIR1 | |
pop H ; HL = &Ornaments | |
lxi B, 21h | |
xra A | |
call fndRec | |
dcr A ; A = 0xFF | |
sta smCntA ; осталось позиций в сэмпле канала | |
sta smCntB | |
sta smCntC | |
mvi A, 1 | |
sta delCnt | |
inx H | |
shld nOrnmA ; адрес таблицы орнамента | |
shld nOrnmB | |
shld nOrnmC | |
call ldRegs | |
; вешаем обработчик прерывания | |
; lxi B, ISR | |
; lxi D, OLDISR | |
; call SetVec | |
ret | |
ISR: | |
call STPLAY | |
lhld eqStep | |
xchg | |
lhld eqTick | |
lda eqUpd | |
dad D | |
aci 0 | |
shld eqTick | |
sta eqUpd | |
OLDISR: ; jmp old interrupt | |
ret | |
ret | |
ret | |
;------------------------------------------------------------------------ | |
; поиск элемента в таблице | |
;------------------------------------------------------------------------ | |
; на входе: | |
; A - номер записи | |
; HL - массив записей | |
; BC - размер одной записи | |
; на выходе: | |
; HL - адрес найденной записи | |
fndRec: | |
cmp M ; это заданный элемент? | |
rz ; -> да | |
dad B ; нет, переходим к следующему | |
jmp fndRec | |
;------------------------------------------------------------------------ | |
; преобразует смещение от начала файла в абсолютный адрес | |
;------------------------------------------------------------------------ | |
; на входе: | |
; HL - указатель на смещание относительно нач. файла | |
; DE - адрес для результата | |
; destroy: BC | |
cnvAdr: | |
mov E, M | |
inx H | |
mov D, M | |
inx H | |
xchg | |
musAdr: | |
lxi B, 0 | |
dad B | |
xchg | |
ret ; return musAddr + [HL++] | |
;------------------------------------------------------------------------ | |
; извлекает данные из текущего инструмента | |
;------------------------------------------------------------------------ | |
; на входе: | |
; A - текущая позиция в сэмпле [0..31] | |
; IX - &Sample[n] | |
; на выходе: | |
; DE - смещение тона (12 бит) | |
; L - громкость | |
; H - значение шума | |
; C - флаг включения шума | |
; B - флаг включения тона | |
; destroy: A | |
getSmp: | |
mvi D, 0 | |
mov E, A | |
add A | |
add E | |
mov E, A ; DE = A*3 | |
;add ix,de | |
lhld IX | |
dad D | |
shld IX ; IX = &Sample.Data[curPos] | |
;ld a,1(ix) | |
inx H | |
mov A, M | |
push PSW | |
; -- | |
; bit 7,a | |
mov B, A | |
ani 80h ; шум включен? | |
; -- | |
mvi C, 10h | |
jnz l7c97 ; -> нет, выключен | |
mov C, D ; C = 0 // шум включен | |
l7c97: | |
; bit 6,a | |
mov A, B | |
ani 40h ; тон включен? | |
mov A, B | |
; -- | |
mvi B, 2 | |
jnz l7c9f ; -> нет | |
mov B, D ; B = 0 // тон включен | |
l7c9f: | |
; ld e,2(ix) | |
dcx H | |
; ld a,0(ix) | |
mov D, M ; A = bit 0-3 - громкость, 4-7 - старшие биты смещения тона | |
inx H | |
inx H | |
mov E, M ; E = смещение тона (младший байт) | |
; -- | |
ani 1Fh | |
mov H, A ; H = значение шума | |
mov A, D | |
ani 0Fh | |
mov L, A ; L = громкость | |
mov A, D | |
rrc | |
rrc | |
rrc | |
rrc | |
ani 0Fh | |
mov D, A ; D = старшие биты смещения тона | |
; bit 5,1(ix) | |
pop PSW | |
ani 20h ; A = направление сдвига (0- минус к частоте, 1-плюс к частоте) | |
; -- | |
rz | |
; set 4,d | |
mov A, D | |
ori 10h | |
mov D, A ; устанавливаем признак прибавки тона к частоте | |
; -- | |
ret | |
;------------------------------------------------------------------------ | |
; переход к следующему паттерну | |
;------------------------------------------------------------------------ | |
; на входе: | |
; curOrd - номер текущего паттерна в order list | |
; на выходе: | |
; destroy: ALL | |
nexPat: | |
lda curOrd | |
mov C, A | |
lxi H, lenOrd | |
cmp M | |
jc _nwOrd | |
; достигли конца таблицы Orders | |
lda plFlag | |
ori 1 | |
sta plFlag ; выставляем признак окончания | |
xra A ; переходим в начало списка паттернов | |
mov C, A | |
_nwOrd: | |
inr A | |
sta curOrd | |
; ld de,(ordAdr) | |
lhld ordAdr | |
xchg | |
; -- | |
mov L, C | |
mvi H, 0 | |
dad H | |
dad D ; HL = &OrderList[curOrd-1] | |
mov A, M | |
mov C, A ; C = номер паттерна для данной позиции | |
sta patNum | |
inx H | |
mov A, M ; A = смещение тона для паттерна | |
sta shTone+1 | |
mov A, C | |
lhld patAdr | |
lxi B, 7 ; BC = sizeof (PATTERN_ELEM) | |
call fndRec | |
inx H ; пропускаем номер элемента | |
call cnvAdr | |
; ld (patA),de | |
xchg | |
shld patA | |
xchg | |
; -- | |
call cnvAdr | |
; ld (patB),de | |
xchg | |
shld patB | |
xchg | |
; -- | |
call cnvAdr | |
; ld (patC),de | |
xchg | |
shld patC | |
xchg | |
; -- | |
ret | |
;------------------------------------------------------------------------ | |
; декремент счетчика задержки между проигрыванием нот | |
;------------------------------------------------------------------------ | |
; на входе: | |
; HL - адрес блока параметров (IX) | |
; destroy: A, HL | |
decCnt: | |
; dec 2(ix) | |
inx H | |
inx H | |
dcr M ; (IX+2) = (IX+2) - 1 | |
; -- | |
rp ; if (IX+2) >= 0 then RETURN | |
; ld a,-1(ix) | |
dcx H | |
dcx H | |
dcx H | |
mov A, M | |
; ld 2(ix),a | |
inx H | |
inx H | |
inx H | |
mov M, A ; (IX+2) = (IX-1) | |
; -- | |
ret | |
;------------------------------------------------------------------------ | |
; проигрывание музона (вызывается раз в 1/50 секунды) | |
;------------------------------------------------------------------------ | |
STPLAY: | |
lda plFlag | |
mov C, A | |
ani 10b ; loop enable? | |
jnz _RUNPL ; -> yes | |
mov A, C | |
ani 1 ; stop play? | |
rnz ; -> yes | |
_RUNPL: | |
lda delCnt | |
dcr A | |
sta delCnt | |
jnz doPlay | |
; пора делать выборку данных для проигрывателя | |
lda nDelay | |
sta delCnt ; delCnt = nDelay | |
; канал A | |
; ld ix,#IXchA | |
lxi H, IXchA | |
shld IX | |
; -- | |
call decCnt ; не пора ли играть след. ноту на канале A? | |
jp _playB | |
lhld patA | |
mov A, M | |
inr A ; if (A = 0xFF) then | |
cz nexPat ; подгружаем следующий паттерн | |
lhld patA | |
call getPat ; обрабатываем очередную ноту | |
shld patA ; сохраняем текущую позицию в паттерне A | |
_playB: | |
; ld ix,#IXchB | |
lxi H, IXchB | |
shld IX | |
; -- | |
call decCnt | |
jp _playC | |
lhld patB | |
call getPat | |
shld patB | |
_playC: | |
; ld ix,#IXchC | |
lxi H, IXchC | |
shld IX | |
; -- | |
call decCnt | |
jp doPlay | |
lhld patC | |
call getPat | |
shld patC | |
jmp doPlay | |
;------------------------------------------------------------------------ | |
; | |
;------------------------------------------------------------------------ | |
; на входе: | |
; HL - адрес паттерна для текущего канала | |
; IX - блок данных канала | |
; на выходе: | |
; HL - новый адрес паттерна для текущего канала | |
; destroy: BC, DE, A | |
getPat: | |
mov A, M | |
cpi 60h | |
jc cNote | |
cpi 70h | |
jc cInstr | |
cpi 80h | |
jc cOrmn | |
jz cPause | |
cpi 81h | |
jz cEmpty | |
cpi 82h | |
jz cEfOff | |
cpi 8fh | |
jc cEnvil | |
; 0xA1 - 0xFE - значение задержки между нотами в канале (в прерываниех) | |
sui 0a1h ; A = значение задержки | |
; ld -1(ix),a | |
xchg | |
lhld IX | |
dcx H | |
mov M, A ; (IX-1) = A | |
; ld 2(ix),a | |
inx H | |
inx H | |
inx H | |
mov M, A ; (IX+2) = A | |
xchg | |
; -- | |
inx H | |
jmp getPat | |
cNote: ; 0..0x5F - номер ноты (позиция завершается) | |
; ld 1(ix),a | |
; ld 0(ix),#0x00 | |
; ld 7(ix),#0x20 | |
xchg | |
lhld IX | |
mvi M, 0 ; текущая позиция в сэмпле = 0 | |
inx H | |
mov M, A ; нота = A | |
inx H | |
inx H | |
inx H | |
inx H | |
inx H | |
inx H | |
mvi M, 32 ; осталось позиций в сэмпле = 32 | |
xchg | |
; -- | |
cEmpty: ; 0x81 - пустая нота, позиция завершается | |
inx H | |
ret | |
cInstr: ; 0x60-0x6F - номер инструмента (samples) | |
sui 60h | |
xchg | |
; ищем нужный инструмент по его номеру | |
lxi B, 63h | |
lhld smpAdr | |
call fndRec | |
inx H ; skip номер инструмента | |
; ld 3(ix),l | |
mov C, L | |
mov B, H | |
lhld IX | |
inx H | |
inx H | |
inx H | |
mov M, C ; (IX+3) = LO( &Samples[n] ) | |
; ld 4(ix),h | |
inx H | |
mov M, B ; (IX+4) = HI( &Samples[n] ) | |
; -- | |
xchg | |
inx H | |
jmp getPat | |
cPause: ; 0x80 - пауза (отключение канала и завершение позиции) | |
inx H | |
chOff: | |
; ld 7(ix),#0x0ff | |
xchg | |
lhld IX | |
inx H | |
inx H | |
inx H | |
inx H | |
inx H | |
inx H | |
inx H | |
mvi M, 0FFh | |
xchg | |
; -- | |
ret | |
cEfOff: ; 0x82 - отключение огибающей эффекта (орнамента) | |
xra A | |
jmp doOrmn | |
cOrmn: ; 0x70-0x7F - номер эффекта (орнамента) | |
sui 70h ; A - номер эффекта (0 - отключение огибающей) | |
doOrmn: | |
push H | |
; ищем нужный орнамент по его номеру | |
lxi B, 21h | |
lhld ornAdr | |
call fndRec | |
inx H ; skip номер орнамента | |
; ld 5(ix),l | |
; ld 6(ix),h | |
; ld -2(ix),#00 | |
push H | |
lhld IX | |
dcx H | |
dcx H | |
mvi M, 0 ; (IX-2) = 0 | |
lxi D, 7 | |
dad D | |
pop D | |
mov M, E ; (IX+5) = LO( &Ornaments[n] ) | |
inx H | |
mov M, D ; (IX+6) = HI( &Ornaments[n] ) | |
; -- | |
pop H | |
inx H | |
jmp getPat | |
cEnvil: ; 0x83-0x8E - номер огибающей (3..14) | |
sui 80h | |
sta rg0x0D | |
inx H | |
mov A, M | |
inx H | |
sta rg0x0B | |
; ld -2(ix),#01 | |
xchg | |
lhld IX | |
dcx H | |
dcx H | |
mvi M, 1 ; (IX-2) = 1 | |
xchg | |
; -- | |
push H | |
xra A | |
lxi B, 21h | |
lhld ornAdr | |
call fndRec | |
inx H | |
; ld 5(ix),l | |
; ld 6(ix),h | |
push H | |
lhld IX | |
lxi D, 5 | |
dad D | |
pop D | |
mov M,E ; (IX+5) = LO( &Effects[0] ) | |
inx H | |
mov M,D ; (IX+6) = HI( &Effects[0] ) | |
; -- | |
pop H | |
jmp getPat | |
;------------------------------------------------------------------------ | |
; выборка следующей позиции в текущем сэмпле | |
;------------------------------------------------------------------------ | |
; на входе: | |
; IX - | |
; на выходе: | |
; C - текущая позиция в сэмпле (????? при достижении конца сэмпла будет неопределен ?????) | |
; (IX+0) - след. позиция в сэмпле | |
; (IX+7) - количество оставшихся выборок в сэмпле | |
; destroy: HL, DE, A | |
sNxPos: | |
mvi C, 0 ; ????? | |
; ld a,7(ix) | |
lhld IX | |
lxi D, 7 | |
dad D | |
mov A, M ; A - осталось позиций в сэмпле | |
; -- | |
inr A ; if (IX+7) = 0xFF then | |
rz ; return | |
dcr A | |
; уменьшаем количество оставшихся выборок в сэмпле (IX+7) | |
dcr A | |
; ld 7(ix),a | |
mov M, A ; (IX+7) = (IX+7) - 1 | |
; -- | |
; инкрементируем текущую позицию в сэмпле (IX+0) | |
push PSW | |
; ld a,0(ix) | |
lhld IX | |
mov A, M ; A = текущая позиция в сэмпле | |
; -- | |
mov C, A ; C = текущая позиция в сэмпле | |
inr A ; smpPos++ | |
ani 1Fh | |
; ld 0(ix),a | |
lhld IX | |
mov M, A ; (IX+0) = ( (IX+0) + 1) & 0x1F; | |
; -- | |
pop PSW | |
rnz ; if ( (IX+7)-1) > 0 then RETURN | |
; достигли конца сэмпла | |
; ld e,3(ix) | |
; ld d,4(ix) | |
lhld IX | |
inx H | |
inx H | |
inx H | |
mov E, M | |
inx H | |
mov D, M ; DE = &Sample[curSample] | |
; -- | |
lxi H, 60h ; HL = &Sample[curSample].RepeatPosition | |
dad D | |
mov A, M ; A - позиция с которой начинать проигрывание семпла и орнамента | |
dcr A ; if pos == 0 then | |
jm chOff ; выключаем канал | |
mov C, A ; C = текущая позиция в сэмпле | |
inr A ; smpPos++ | |
ani 1Fh | |
inx H ; HL = &Sample[curSample].RepeatLength | |
mov D, M ; A - длина сэмпла (количество позиций) | |
; ld 0(ix),a | |
lhld IX | |
mov M, A ; (IX+0) = ( (IX+0) + 1) & 0x1F; | |
; ld 7(ix),a | |
mov A, D | |
inr A | |
lxi D, 7 | |
dad D | |
mov M, A ; (IX+7) = осталось поз. в сэмпле | |
ret | |
;------------------------------------------------------------------------ | |
; заносит в буф. регистр значение для генератора шума | |
;------------------------------------------------------------------------ | |
; на входе: | |
; C - флаг включения шума (0 - разрешен, >0 - отключен) | |
; H - значение шума | |
; destroy: A | |
stNois: | |
mov A, C | |
ora A ; шум требуется включить? | |
rnz ; -> нет | |
mov A, H | |
sta rg0x06 | |
ret | |
;------------------------------------------------------------------------ | |
;------------------------------------------------------------------------ | |
; на входе: | |
; HL - адрес регистра громкости | |
; A - громкость | |
; destroy: A, BC, DE | |
l7e35: | |
mov M, A | |
xchg ; DE = адрес регистра громкости | |
; ld a,7(ix) | |
lhld IX | |
lxi B, 7 | |
dad B | |
mov A, M ; A - количество оставшихся позиций в сэмпле | |
; -- | |
inr A ; if (IX+7) == 0xFF then | |
rz ; return | |
; ld a,-2(ix) | |
lxi B, -9 | |
dad B | |
mov A, M | |
; -- | |
ora A ; if (IX-2) == 0 then | |
rz ; return | |
cpi 2 ; if (IX-2) == 0 then | |
jz envOff ; отключаем генератор огибающей | |
; ld 2(ix),#2 ; ??????? bags ??????? | |
mvi M, 2 ; (IX-2) = 2 | |
; -- | |
jmp l7e4f | |
envOff: | |
xra A | |
sta rg0x0D | |
l7e4f: | |
; set 4,(hl) | |
xchg | |
mvi A, 10h | |
ora M ; уровень громкости определяется битами | |
mov M, A ; генератора огибающей | |
ret | |
;------------------------------------------------------------------------ | |
; выборка данных паттерна и их проигрывание | |
;------------------------------------------------------------------------ | |
doPlay: | |
; канал A | |
; ld ix,#IXchA | |
lxi H, IXchA | |
shld IX | |
; -- | |
call sNxPos ; переход на след. позицию сэмпла | |
mov A, C ; A - текущая позиция в сэмпле | |
sta smpPos+1 | |
; ld ix,(pSampA) | |
lhld pSampA | |
shld IX | |
; -- | |
call getSmp | |
; формируем биты разрешения шума и тона для регистра смесителя | |
mov A, C ; A = бит включения шума | |
ora B ; A = бит включения шума + бит включения тона | |
rar | |
sta rg0x07 | |
; ld ix,#IXchA | |
push H | |
lxi H, IXchA | |
shld IX | |
; ld a,7(ix) | |
push D | |
lxi D, 7 | |
dad D | |
pop D | |
mov A, M ; A = остаток позиций в сэмпле | |
pop H | |
; -- | |
inr A | |
jz _volA | |
call stNois ; задаем значение шума, если нужно | |
call getFrq ; HL = частота канала A, A - громкость | |
shld rg0x00 | |
_volA: | |
lxi H, rgVolA | |
call l7e35 | |
; канал B | |
; ld ix,#IXchB | |
lxi H, IXchB | |
shld IX | |
; -- | |
call sNxPos ; переход на след. позицию сэмпла | |
; ld a,7(ix) | |
lhld IX | |
lxi D, 7 | |
dad D | |
mov A, M ; A - осталось позиций в сэмпле | |
; -- | |
inr A | |
jz _volB | |
mov A, C ; A - текущая позиция в сэмпле | |
sta smpPos+1 | |
; ld ix,(pSampB) | |
lhld pSampB | |
shld IX | |
call getSmp | |
; формируем биты разрешения шума и тона для регистра смесителя | |
lda rg0x07 | |
ora B | |
ora C | |
sta rg0x07 | |
call stNois ; задаем значение шума, если нужно | |
; ld ix,#IXchB | |
push H | |
lxi H, IXchB | |
shld IX | |
pop H | |
; -- | |
call getFrq ; HL = частота канала A, A - громкость | |
shld rg0x02 | |
_volB: | |
lxi H, rgVolB | |
call l7e35 | |
; канал C | |
; ld ix,#IXchC | |
lxi H, IXchC | |
shld IX | |
; -- | |
call sNxPos ; переход на след. позицию сэмпла | |
; ld a,7(ix) | |
lhld IX | |
lxi D, 7 | |
dad D | |
mov A, M ; A - осталось позиций в сэмпле | |
; -- | |
inr A | |
jz _volC | |
mov A, C ; A - текущая позиция в сэмпле | |
sta smpPos+1 | |
; ld ix,(pSampC) | |
lhld pSampC | |
shld IX | |
; -- | |
call getSmp | |
; формируем биты разрешения шума и тона для регистра смесителя | |
mov A, C | |
ora B ; clear carry | |
ani 10010b | |
ral | |
mov C, A | |
lda rg0x07 | |
ora C | |
sta rg0x07 | |
call stNois ; задаем значение шума, если нужно | |
; ld ix,#IXchC | |
push H | |
lxi H, IXchC | |
shld IX | |
pop H | |
; -- | |
call getFrq ; HL = частота канала A, A - громкость | |
shld rg0x04 | |
_volC: | |
lxi H, rgVolC | |
call l7e35 | |
jmp ldRegs | |
;------------------------------------------------------------------------ | |
; | |
;------------------------------------------------------------------------ | |
; на входе: | |
; IX - блок параметров | |
; DE - смещение тона (12 бит) | |
; L - громкость | |
; B - флаг включения тона | |
; на выходе: | |
; HL - частота для генератора | |
; A - громкость | |
; destroy: | |
getFrq: | |
mov A, L | |
push PSW | |
push D | |
; ld l,5(ix) | |
; ld h,6(ix) | |
lhld IX | |
lxi D, 5 | |
dad D | |
mov E, M | |
inx H | |
mov D, M | |
xchg ; HL = &Ornaments[curOrnm] | |
; -- | |
smpPos: | |
lxi D, 0 ; DE - текущая позиция в сэмпле | |
dad D ; HL = &Ornaments[curOrnm].smpPos | |
; ld a,1(ix) | |
push H | |
lhld IX | |
inx H | |
mov A, M ; A = нота | |
pop H | |
; -- | |
add M ; A = нота+октава | |
shTone: | |
adi 0 ; A = нота+эффект+смещение тона | |
; преобразуем ноту в частоту | |
add A | |
mov E, A | |
mvi D, 0 | |
lxi H, frqTbl | |
dad D | |
mov E, M | |
inx H | |
mov D, M | |
xchg ; HL = freqTable[нота+эффект+смещение тона] | |
pop D ; DE = смещение тона (12 бит) | |
; bit 4,d | |
mov A, D | |
ani 10h ; знак смещения? | |
jz subTon | |
mov A, D | |
ani 0Fh ; убираем бит знака смещения тона | |
mov D, A | |
pop PSW ; A = громкость | |
dad D ; HL = freq + смещение тона | |
ret | |
subTon: ; вычитаем тон из частоты | |
; and a ; сброс CF | |
; sbc hl,de | |
mov A, L | |
sub E | |
mov L, A | |
mov A, H | |
sbb D | |
mov H, A ; HL = freq - смещение тона | |
pop PSW ; A = громкость | |
ret | |
; загружаем регистры AY | |
ldRegs: | |
lxi H, rg0x0D | |
xra A | |
ora M | |
mvi A, 0Dh | |
jnz l7ff1 | |
sui 3 | |
dcx H | |
dcx H | |
dcx H | |
l7ff1: | |
push PSW | |
out 15h ; номер регистра AY | |
mov A, M | |
out 14h ; данные AY | |
dcx H | |
pop PSW | |
dcr A | |
jp l7ff1 | |
ret | |
frqTbl: ; таблица частот для нот | |
dw 0ef8h, 0e10h, 0d60h, 0c80h, 0bd8h, 0b28h, 0a88h, 09f0h | |
dw 0960h, 08e0h, 0858h, 07e0h, 077ch, 0708h, 06b0h, 0640h | |
dw 05ech, 0594h, 0544h, 04f8h, 04b0h, 0470h, 042ch, 03f0h | |
dw 03beh, 0384h, 0358h, 0320h, 02f6h, 02cah, 02a2h, 027ch | |
dw 0258h, 0238h, 0216h, 01f8h, 01dfh, 01c2h, 01ach, 0190h | |
dw 017bh, 0165h, 0151h, 013eh, 012ch, 011ch, 010bh, 00fch | |
dw 00efh, 00e1h, 00d6h, 00c8h, 00bdh, 00b2h, 00a8h, 009fh | |
dw 0096h, 008eh, 0085h, 007eh, 0077h, 0070h, 006bh, 0064h | |
dw 005eh, 0059h, 0054h, 004fh, 004bh, 0047h, 0042h, 003fh | |
dw 003bh, 0038h, 0035h, 0032h, 002fh, 002ch, 002ah, 0027h | |
dw 0025h, 0023h, 0021h, 001fh, 001dh, 001ch, 001ah, 0019h | |
dw 0017h, 0016h, 0015h, 0013h, 0012h, 0011h, 0010h, 000fh | |
eqTick: ds 2 ; отсчет времени до обновления эквалайзера | |
eqStep: ds 2 ; 20 fps для прерывания в 1/50 секунды | |
eqUpd: ds 1 ; флаг разрешения обновления эквалайзера | |
eqNew: ds 1 | |
plFlag: ds 1 ; bit 0: stop play | |
; bit 1: loop flag | |
IX: ds 2 | |
ordAdr: ds 2 ; адрес таблицы позиций (Order Lists) | |
ornAdr: ds 2 ; адрес таблицы Ornaments | |
patAdr: ds 2 ; адрес таблицы паттернов (Patterns) | |
smpAdr: ds 2 ; адрес таблицы сэмплов (инструментов) Samples | |
patNum: ds 1 ; номер текущего паттерна | |
nDelay: ds 1 ; число прерываний (задержка) между нотами | |
delCnt: ds 1 ; осталось прерываний между нотами | |
lenOrd: ds 1 ; количество элементов в списке позиций (orders) | |
patA: ds 2 ; адрес паттерна для канала A | |
patB: ds 2 ; адрес паттерна для канала B | |
patC: ds 2 ; адрес паттерна для канала C | |
nulPat: ds 1 ; = 0xff ( pattern-заглушка нулевой длины ) | |
; канал A | |
ul7c46: ds 1 ; -2: 1-огибающая, 2-откл. генератора огибающей,0-нет огибающей | |
ds 1 ; -1: задержка между нотами | |
IXchA: ds 1 ; 0: текущая позиция в сэмпле | |
ds 1 ; +1: нота | |
ds 1 ; +2: счетчик задержки между нотами | |
pSampA: ds 2 ; +3: адрес инструмента (Sample) | |
nOrnmA: ds 2 ; +5: адрес орнамента (Ornaments, Effects) | |
smCntA: ds 1 ; +7: осталось позиций в сэмпле канала | |
; канал B | |
ds 1 | |
ds 1 | |
IXchB: ds 1 | |
ds 1 | |
ds 1 | |
pSampB: ds 2 | |
nOrnmB: ds 2 | |
smCntB: ds 1 | |
; канал C | |
ds 1 | |
ds 1 | |
IXchC: ds 1 | |
ds 1 | |
ds 1 | |
pSampC: ds 2 | |
nOrnmC: ds 2 | |
smCntC: ds 1 | |
curOrd: ds 1 ; позиция в Order List [1..lenOrd] | |
; регистры AY | |
rg0x00: ds 2 ; делитель входной частоты канала A | |
rg0x02: ds 2 ; делитель входной частоты канала B | |
rg0x04: ds 2 ; делитель входной частоты канала C | |
rg0x06: ds 1 ; 5-разрядное значение периода для псевдослучайного генератора шума | |
rg0x07: ds 1 ; микшер, содержащий по два бита для каждого канала, | |
; в зависимости от которых к каналам подмешивается | |
; сигнал генератора шума, либо генератор огибающей. | |
rgVolA: ds 1 ; громкость канала A + бит разрешения использования огибающей | |
rgVolB: ds 1 ; громкость канала B + бит разрешения использования огибающей | |
rgVolC: ds 1 ; громкость канала C + бит разрешения использования огибающей | |
rg0x0B: ds 2 ; частота | |
rg0x0D: ds 1 ; и форма огибающей | |
I | |
; | |
; DOCZak01.STC by DOC'NEONSOF | |
; https://zxart.ee/spa/autores/d/doc/doczak01/ | |
; | |
songe1: | |
.db $05,$f9,$03,$0e,$04,$f5,$04,$44,$4f,$43,$27,$4e,$45,$4f,$4e,$53 | |
.db $4f,$46,$54,$20,$20,$20,$20,$20,$20,$7b,$08,$01,$0f,$20,$00,$0f | |
.db $a0,$00,$0e,$a0,$00,$0e,$a0,$00,$0d,$a0,$00,$0c,$a0,$00,$0b,$a0 | |
.db $00,$0a,$80,$00,$09,$80,$00,$08,$80,$00,$07,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$00,$02,$0f | |
.db $22,$80,$1f,$23,$00,$0e,$24,$00,$0d,$25,$00,$0c,$06,$00,$0b,$07 | |
.db $00,$0a,$09,$00,$09,$00,$00,$08,$80,$00,$07,$80,$00,$06,$80,$00 | |
.db $05,$80,$00,$04,$80,$00,$02,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $00,$03,$0d,$40,$00,$0a,$40,$00,$08,$40,$00,$05,$40,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$05,$0f,$24,$00,$0e,$25,$2f,$0d,$25,$5e,$0c,$26 | |
.db $8d,$0b,$27,$bc,$0a,$27,$eb,$19,$67,$1a,$18,$67,$49,$16,$67,$78 | |
.db $15,$67,$a7,$14,$67,$d6,$23,$67,$05,$22,$67,$34,$21,$60,$63,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$07,$2f,$a0,$00,$3e,$a0,$80,$4d,$a0 | |
.db $00,$6b,$a0,$00,$78,$a0,$80,$86,$a0,$80,$04,$80,$00,$02,$80,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$0f,$a0,$01,$0f,$a0 | |
.db $02,$0e,$a0,$03,$0d,$a0,$03,$0e,$a0,$02,$0e,$a0,$02,$0e,$a0,$01 | |
.db $0e,$a0,$01,$0e,$a0,$01,$0e,$a0,$00,$0e,$a0,$00,$0e,$a0,$00,$0e | |
.db $a0,$00,$0e,$a0,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$a0 | |
.db $01,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00 | |
.db $0e,$80,$01,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e | |
.db $a0,$01,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$10,$0e,$0b,$0c,$80 | |
.db $00,$0c,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00 | |
.db $0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b | |
.db $80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80,$00,$0b,$80 | |
.db $00,$0b,$a0,$01,$0b,$a0,$02,$0b,$a0,$01,$0b,$80,$00,$0b,$80,$01 | |
.db $0b,$80,$02,$0b,$80,$01,$0b,$80,$00,$0b,$a0,$01,$0b,$a0,$02,$0b | |
.db $a0,$01,$0b,$80,$00,$0b,$80,$01,$0b,$80,$02,$0b,$80,$01,$0e,$11 | |
.db $0c,$0f,$3b,$80,$1f,$a0,$00,$0e,$a0,$00,$0e,$80,$00,$0d,$80,$00 | |
.db $0c,$80,$00,$0b,$80,$00,$0a,$80,$00,$09,$80,$00,$08,$80,$00,$07 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00 | |
.db $00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00 | |
.db $80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80,$00,$00,$80 | |
.db $00,$00,$00,$0e,$0f,$a0,$00,$0f,$a0,$00,$0f,$a0,$00,$0e,$80,$00 | |
.db $0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e | |
.db $80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80,$00,$0e,$80 | |
.db $00,$0e,$80,$00,$0e,$a0,$02,$0e,$a0,$04,$0e,$a0,$02,$0e,$80,$00 | |
.db $0e,$80,$02,$0e,$80,$04,$0e,$80,$02,$0e,$80,$00,$0e,$a0,$02,$0e | |
.db $a0,$04,$0e,$a0,$02,$0e,$80,$00,$0e,$80,$02,$0e,$80,$04,$0e,$80 | |
.db $02,$0e,$80,$00,$0c,$11,$0f,$0e,$a0,$00,$0e,$a0,$00,$0d,$a0,$00 | |
.db $0d,$80,$00,$0c,$80,$00,$0c,$80,$00,$0b,$80,$00,$0b,$80,$00,$0a | |
.db $80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80 | |
.db $00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00 | |
.db $0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a | |
.db $80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80,$00,$0a,$80 | |
.db $00,$0a,$80,$00,$0a,$80,$00,$00,$00,$09,$01,$fe,$02,$fe,$03,$fe | |
.db $04,$fe,$01,$fe,$02,$fe,$05,$fe,$07,$fe,$06,$fe,$08,$fe,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01 | |
.db $00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c | |
.db $00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c,$00,$07,$04,$0c | |
.db $09,$0c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$0a,$00,$00,$ff,$fe,$fd,$fc,$fb,$fa,$f9,$f8,$f7,$f6,$f5,$f4 | |
.db $f3,$f2,$f1,$f0,$ef,$ee,$ed,$ec,$eb,$ea,$e9,$e8,$e7,$e6,$e5,$e4 | |
.db $e3,$e2,$0c,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$0d,$fc,$fd,$fe,$ff,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 | |
.db $00,$00,$00,$00,$0e,$00,$07,$03,$0c,$00,$07,$03,$0c,$00,$07,$03 | |
.db $0c,$00,$07,$03,$0c,$00,$07,$03,$0c,$00,$07,$03,$0c,$00,$07,$03 | |
.db $0c,$00,$07,$03,$0c,$01,$2e,$05,$3f,$05,$b8,$05,$02,$fb,$05,$3f | |
.db $05,$b8,$05,$03,$11,$06,$3f,$05,$b8,$05,$04,$40,$06,$3f,$05,$b8 | |
.db $05,$05,$68,$06,$85,$06,$d7,$06,$06,$df,$06,$3f,$05,$b8,$05,$07 | |
.db $2c,$07,$4f,$07,$d7,$06,$08,$bb,$07,$06,$08,$b8,$05,$ff,$ac,$68 | |
.db $7c,$2c,$a4,$2f,$b0,$31,$ae,$2a,$a1,$2f,$2e,$b0,$70,$2c,$ff,$a2 | |
.db $6c,$79,$14,$a1,$61,$70,$20,$20,$a2,$62,$79,$14,$61,$70,$20,$6c | |
.db $79,$14,$61,$70,$20,$62,$79,$14,$a1,$61,$70,$10,$0f,$a2,$6c,$79 | |
.db $0d,$a1,$61,$70,$19,$19,$a2,$62,$79,$0d,$61,$70,$19,$6c,$79,$0d | |
.db $61,$70,$19,$62,$79,$0d,$a1,$61,$70,$16,$14,$a2,$6c,$79,$12,$a1 | |
.db $61,$70,$1e,$1e,$a2,$62,$79,$12,$61,$70,$1e,$6c,$79,$12,$61,$70 | |
.db $1e,$62,$79,$12,$a1,$61,$70,$17,$16,$a2,$6c,$79,$14,$a1,$61,$70 | |
.db $20,$20,$a2,$62,$79,$14,$61,$70,$20,$6c,$79,$14,$61,$70,$20,$62 | |
.db $79,$14,$a1,$61,$70,$17,$16,$ff,$a1,$6b,$2c,$2f,$33,$38,$3b,$3f | |
.db $38,$3b,$2c,$2f,$33,$38,$3b,$3f,$38,$3b,$25,$28,$2c,$31,$34,$38 | |
.db $31,$34,$25,$28,$2c,$31,$34,$38,$31,$34,$2a,$2e,$31,$36,$3a,$31 | |
.db $36,$3a,$2a,$2e,$31,$36,$3a,$31,$36,$3a,$2c,$2f,$33,$38,$3b,$3f | |
.db $38,$3b,$2c,$2f,$33,$38,$3b,$3f,$38,$3b,$ff,$ac,$68,$7c,$2c,$a4 | |
.db $2f,$b0,$31,$ae,$36,$a1,$3b,$3a,$a8,$7d,$38,$a7,$7a,$38,$a1,$80 | |
.db $ff,$a2,$6e,$7d,$2c,$a4,$7c,$2f,$a1,$31,$2f,$a4,$33,$a1,$33,$6f | |
.db $70,$2f,$a4,$6e,$7c,$33,$34,$a1,$34,$6f,$33,$a8,$6e,$31,$a1,$2a | |
.db $6f,$28,$a4,$6e,$2a,$a1,$2e,$2f,$a2,$31,$34,$33,$31,$b0,$2c,$ff | |
.db $a2,$6e,$7c,$2c,$a4,$2f,$a1,$31,$2f,$a4,$33,$a1,$33,$6f,$2f,$a4 | |
.db $6e,$33,$a2,$34,$38,$36,$a8,$34,$a2,$36,$a4,$38,$a1,$36,$38,$a2 | |
.db $36,$34,$33,$31,$b0,$7d,$38,$ff,$a4,$68,$7c,$2c,$a2,$2c,$a6,$2f | |
.db $a4,$2c,$a2,$31,$ac,$34,$a1,$33,$31,$a2,$2a,$2e,$2f,$2e,$31,$34 | |
.db $33,$31,$b0,$2c,$ff,$a2,$63,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25 | |
.db $a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2 | |
.db $25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25 | |
.db $a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1 | |
.db $25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25,$25,$a2,$25,$a1,$25 | |
.db $25,$a2,$25,$a1,$25,$25,$ff,$b0,$6b,$7c,$14,$0d,$12,$14,$ff,$a2 | |
.db $6e,$7e,$38,$a1,$80,$a2,$38,$a1,$80,$38,$80,$38,$80,$38,$80,$38 | |
.db $80,$38,$80,$a2,$31,$a1,$80,$a2,$31,$a1,$80,$31,$80,$31,$80,$31 | |
.db $80,$31,$80,$31,$80,$a2,$71,$36,$a1,$80,$a2,$36,$a1,$80,$36,$80 | |
.db $36,$80,$36,$80,$36,$80,$36,$80,$a2,$7e,$38,$a1,$80,$a2,$38,$a1 | |
.db $80,$38,$80,$38,$80,$38,$80,$38,$80,$38,$80,$ff,$a4,$68,$7c,$2c | |
.db $a2,$2c,$a6,$2f,$a4,$2c,$a2,$31,$ac,$34,$a1,$33,$31,$a2,$2a,$2e | |
.db $2f,$2e,$31,$34,$33,$31,$a8,$2c,$a3,$7a,$38,$36,$a2,$33,$ff,$a2 | |
.db $67,$25,$a1,$63,$25,$25,$a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25 | |
.db $a1,$63,$25,$25,$a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63 | |
.db $25,$25,$a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25 | |
.db $a2,$65,$25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25,$a2,$65 | |
.db $25,$a1,$63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25,$a2,$65,$25,$a1 | |
.db $63,$25,$25,$a2,$67,$25,$a1,$63,$25,$25,$a2,$65,$25,$a1,$63,$25 | |
.db $25,$65,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$ff,$a2,$6e,$7e,$38,$a1 | |
.db $80,$a2,$38,$a1,$80,$38,$80,$38,$80,$38,$80,$38,$80,$38,$80,$a2 | |
.db $31,$a1,$80,$a2,$31,$a1,$80,$31,$80,$31,$80,$31,$80,$31,$80,$31 | |
.db $80,$a2,$71,$36,$a1,$80,$a2,$36,$a1,$80,$36,$80,$36,$80,$36,$80 | |
.db $36,$80,$36,$80,$a2,$7e,$38,$a1,$80,$a2,$38,$a1,$80,$38,$80,$a3 | |
.db $7a,$38,$36,$a2,$33,$ff,$a2,$6c,$79,$14,$a1,$61,$70,$20,$20,$a2 | |
.db $62,$79,$14,$61,$70,$20,$6c,$79,$14,$61,$70,$20,$62,$79,$14,$a1 | |
.db $61,$70,$10,$0f,$a2,$6c,$79,$0d,$a1,$61,$70,$19,$19,$a2,$62,$79 | |
.db $0d,$61,$70,$19,$6c,$79,$0d,$61,$70,$19,$62,$79,$0d,$a1,$61,$70 | |
.db $16,$14,$a2,$6c,$79,$12,$a1,$61,$70,$1e,$1e,$a2,$62,$79,$12,$61 | |
.db $70,$1e,$6c,$79,$12,$61,$70,$1e,$62,$79,$12,$a1,$61,$70,$17,$16 | |
.db $a2,$6c,$79,$14,$a1,$61,$70,$20,$20,$a2,$62,$79,$14,$61,$70,$20 | |
.db $a1,$65,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$2c,$ff | |
.end | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment