OldComp.cz
http://oldcomp.cz/

Obsah OPENING DATA
http://oldcomp.cz/viewtopic.php?f=134&t=6266
Stránka 11

Autor:  lukz [ 23.04.2018, 12:05 ]
Předmět příspěvku:  Obsah OPENING DATA

Sharpisté znají OPENING 800 demo, které se dodávalo k Sharpu MZ-800. Demo se skládá
ze dvou částí. Hlavní část je napsaná v BASICU a další část se dohrává jako binární
soubor. Program v BASICU si každý může vypsat a podívat se, jak a co se tam dělá.
Někoho by ovšem mohlo zajímat, co je v té binární části, kterou tak snadno vypsat
nejde.

Po nahrání binární části do paměti si můžeme prohlížet obsah paměti na dané adrese,
a zjistíme, že kromě jiného je tam určitý kód pro hraní hudby, a dále data této
hudby. Pro přehrávání se používají pomocné procedury BASICU, stejné jako používá
příkaz MUSIC.

Vzhledem k tomu, že máme tedy dostupný příkaz MUSIC, můžeme se ptát, jestli by
stejná hudba šla zahrát i přímo z BASICU, bez dalšího strojového kódu. Jde to,
a program, který to demonstruje, je připojen níže.

Má to ovšem i určité nevýhody. Po provedení příkazu MUSIC můžeme provádět grafickou
animaci. Ve chvíli kdy hudba dohraje musíme ovšem provést další přikaz MUSIC a
v hudbě pokračovat. Pokud neprovedeme další příkaz MUSIC hned po skončení předchozího,
tak hudba bude přerušená. Naopak pokud příkaz provedeme dříve, tak nemůžeme provádět
grafickou animaci, dokud předchozí příkaz MUSIC neskončil. Nejspíš z tohoto důvodu
je v původním demu hudba řešená přes dodatečný strojový kód, aby nebylo potřeba
řešit tak detailně synchronizaci.

A tady je program s hudbou:

Kód:
1 REM OPENING 800 MUSIC
2 MU."O3T5G2R1G0RGRG6F1GA3G1FG2R1G0RGRG6R1G0RGRG1#A2R1#A0R#AR#A6#G0R#A1L3""O3T5E2R1E0RERE6D1EF3E1DE2R1E0RERE6R1E0RERE1G2R1G0RGRG6F1G""O2T5L2N36R1L0N36RN36RL6N36#A1N36L3N38L1N36#AL2N36R1L0N36RN36RL6N36R1L0N36RN36RL1N36L2N39R1L0N39RN39RL6N39L1N37N39L3
3 MU."N48#A1#G#A2R1#A0R#AR#A6R0#A3R1#AB9T6R5CRCRCR3#AR1CA3GRC5RCRCR3#A""A3G1FG2R1G0RGRG6R1G3R0G1G9T6R5N34RN34RN34R3GRFERL5N34RN34RN34R3G""N41L1N39N37L2N39R1L0N39RN39RL6N39R1L3N39R0L1N39L9N38T6C1RCRGRCRCRCRGRCRCRCRGRCRCRCRCRCRCRCRGRCRCRCRGRCRCRC3GC1RCRC
4 MU."R1CA3GCE1G4AG1R3A#A1A#AA#AL4N48AG1RCL3N48GCE1G4AG1R3A#A1A#AA#AL4N48AG1RCL3N48AFA1L4N48N50L1N48R3N50L1""RFER4RFRF3G1RGRGR4FE1R3N55ER4RFRF3G1RGRGR4FE1R3N55FR4R#AR#A3L1""CRC3C1RC3E1G4CR1R5C1RCRCRCRCRCRC3EC1RC3E1G4CR1R5C1RCRCRCRCRCRC3EF1RF3F1L4N12F
5 MU."N51N50N51N50N51L4N53N50L1N48REL3N53GCE1G4AG1R3A#A1A#AA#AL4N48AG1RCL3N48ARA1RA3BL1N48BA3BL5N48N50N52L3""N48RN48RN48R4#AA1R3N51ER4RFRF3G1RGRGR4FE1R3N55FRF1RFRG3RFGL5N48BA""F1RFRFRFRFRFRF3FC1RC3E1G4CR1R5C1RCRCRCRCRCRC3EN41N36AFGBN38N43N40N36GEAN36
6 MU."N48BARA1RA3BL1N48DA3GL9N55L6N57L3N50BN50N53N57L5N55N52N48L3N50N52L5N53N52""GF3RF1RFRG3RF1RF3L5N52N50L3N49AGN53L6N53B3GBN50N53L5N52N48AB3N48L7N53""N40N45N41N36AFGBN38N43N36N40BN40AN40GN43N41N38AFDFGBN36N48N57N48N52N60N55N67N65N64N65N62
7 MU."N50N48L9N50R5CRCRCR3#AR1CA3GRC5RCRCR3#AR1CA3GCE1G4AG1R3A#A1A#AA#AL4N48""N54L9N55R5N34RN34RN34R3GRFERL5N34RN34RN34R3GRFER4RFRF3G1RGRGR4""N66N65N66N62L5N67N65N64N62C1RCRGRCRCRCRGRCRCRCRGRCRCRCRCRCRCRCRGRCRCRCRGRCRCRC3GC1RCRCRCRC3C1RC3E1G4CR1R5C1RCRCRC
8 MU."AG1RCL3N48GCE1G4AG1R3A#A1A#AA#AL4N48AG1RCL3N48AFA1L4N48N50L1N48R3N50L1N51N50N51N50N51L4N53N50L1N48REL3N53G""FE1R3N55ER4RFRF3G1RGRGR4FE1R3N55FR4R#AR#A3L1N48RN48RN48R4#AA1R3N51E""CRCRC3EC1RC3E1G4CR1R5C1RCRCRCRCRCRC3EF1RF3F1L4N12FR1R5F1RFRFRFRFRFRF3FC1
9 MU."CE1G4AG1R3A#A1A#AA#AL4N48AG1RCL3N48ARA1RA3BL1N48BA3BL5N48N50N52L3N48BARA1RA3BL1N48DA3GL9""R4RFRF3G1RGRGR4FE1R3N55FRF1RFRG3RFGL5N48BAGF3RF1RFRG3RF1RF3L5""C3E1G4CR1R5C1RCRCRCRCRCRC3EN41N36AFGBN38N43N40N36GEAN36N40N45N41N36AFGBN38N43
10MU."N55L6N57L3N50BN50N53N57L5N55N52N48L3N50N52L5N53N52N50N48L9N50R5CRCR3""N52N50L3N49AGN53L6N53B3GBN50N53L5N52N48AB3N48L7N53N54L9N55R5N34RN34""N36N40BN40AN40GN43N41N38AFDFGBN36N48N57N48N52N60N55N67N65N64N65N62N66N65N66N62L5N67N65N64N62C1RC3GC1RCRCRG3CC1
11MU."#AR1CA3GRR5RCRCR3#AR1CA3GCEG#G9#AN48L5N48C0RCR""G3RFERR5RN34RN34R3GRFECEG#D9FGG5L0N24RN24""CRCRCRCRCRCRCRCRC3GC1RCRC3GC1RC5N12C1RC3EG#G1N12N15N20C#D#GN36N39N36#G#DCN20N15N12#AN14N17N22DF#AN38N41N38#AFDN22N17N14N12N16N19CEGN36N40N43N40N36GECEGE5C0RC
12MU."CRCRC5""N24RN24RL5N24""CRCRC5

Autor:  lukz [ 25.04.2018, 19:36 ]
Předmět příspěvku:  Re: Obsah OPENING DATA

Nyní ještě podrobný výpis, jak se spustí hraní hudby pomocí strojového kódu. Vidíme, že pro každý z hudebních kanálů, číslovaných 0, 1, 2, se nastaví adresa s hudebnímy daty.
Kód:
f700 06 03     ld b,3   ; music wait
f702 df        rst 18h
f703 23        db 23h   ; music control routine
f704 3e 00     ld a,0   ; channel 0
f706 11 20 f7  ld de,0f720h ; data address
f709 df        rst 18h
f70a 21        db 21h   ; play on channel in A
f70b 3e 01     ld a,1   ; channel 1
f70d 11 48 f9  ld de,0f948h ; data address
f710 df        rst 18h
f711 21        db 21h   ; play on channel in A
f712 3e 02     ld a,2   ; channel 2
f714 11 40 fb  ld de,0fb40h ; data address
f717 df        rst 18h
f718 21        db 21h   ; play on channel in A
f719 06 01     ld b,1   ; start music playback
f71b df        rst 18h
f71c 23        db 23h   ; music control routine
f71d c9        ret
f71e 00        nop
f71f 00        nop

Autor:  Milsa [ 22.07.2018, 22:30 ]
Předmět příspěvku:  Re: Obsah OPENING DATA

Myslím, že ti tam chýbajú bodkočiarky.

A aby to bolo komplet, len doplním, že v OPENING DATA sa nechádza ešte rutina na hardvérový skrol obrazovky.

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/