TRACKERS MOONBLASTER NL 08

From MSX MUSIC WIKI
Revision as of 15:36, 20 January 2018 by Kumokosi (talk | contribs) (Created page with "==GEBRUIK IN EIGEN PROGRAMMA'S== ===Gebruik in BASIC=== Om de MoonBIaster muziek in BASIC te kunnen gebruiken is hel noodzakelijk dat eerst de BASIC-driver ingeladen wordt....")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

GEBRUIK IN EIGEN PROGRAMMA'S

Gebruik in BASIC

Om de MoonBIaster muziek in BASIC te kunnen gebruiken is hel noodzakelijk dat eerst de BASIC-driver ingeladen wordt. Deze driver staat op de Music disk onder de naam MBDRV.BIN. Deze wordt opgestart met het commando BLOAD MBDRV.BIN ,R. Omdat de driver het geheugengebied boven &HDAOO gebruikt moet voor het opstarten van de driver het commando CLEAR 200C&HD9FF gegeven worden om ervoor te zorgen dat het BASIC programma deze grens niet overschrijdt. Als dit gebeurd is heeft u enkele extra BASIC commandofs tot uw beschikking. Hieronder een overzicht:

CALL MBKLOAD("samplekitnaam")

Dit commando zorgt ervoor dat er een samplekit ingeladen wordt en dat deze in het MSX-AUDIO RAM wordt gezet. Let op: dit commando gebruikt de geheugenbank met de song als buffer, dus de inhoud hiervan zal worden gewist!

CALL MBMLOAD("songnaam")

Hiermee kunt u een MoonBIaster song inladen. Deze song wordt ingeladen op het ingestelde adres in de ingestelde geheugenbank. Let erop dat alleen USER-files juist ingeladen en afgespeeld zullen worden.

CALL MBCHIP(chipnr)

Stelt de gewenste soundchip in waar de muziek op afgespeeld moet worden: 0 MSX-AUDIO 1 MSX-MUSIC 2 of hoger STEREO (MSX-AUDIO en MSX-MUSIC) CALL MBBANK(banknr) Stelt de geheugenbank van de memory mapper in waarin de song staat die afgespeeld moet worden, of waarin een song ingeladen moet worden. Werkt alleen als er geen muziek speelt. Een geheugenbank van de memory mapper is 16 kB groot. Meestal zal voor banknr de waarde 3 worden genomen. Het maximale banknr is athankelijk van de hoeveelheid geheugen in uw computer.

CALL MBADDR(adres)

Stelt het geheugenadres in waar de song staat of waarop een song ingeladen moet worden. Zorg ervoor dat de gehele song tussen de adressen &H8000 en &HC000 staaL Werkt alleen als er geen muziek speelt.

CALL MBPLAY

Speelt een song af op de ingestelde soundchip. De plaats van de song in het geheugen is bepaald met bovenstaande commando's.

CALL MBSTOP

Stopt het spelen van een song.

CALL MBCONT

Gaat verder met het spelen van een song na een pauze. Werkt dus alleen correct na een MBHALT commando.

CALL MBHALT

Pauzeert een song. Dit is bijvoorbeeld handig hij laden. Geef voor het laden een _MBHALT, en als het laden afgelopen is kunt u de muziek weer verder laten gaan met een _MBCONT.

CALL MBVER

Geeft huidige versienummer van de BASIC-driver weer op het beeldscherm. Tevens kunnen door de BASIC-programmeur nog diverse geheugenadressen uitgelezen worden: PEEK(&HDA00)=Ingestelde soundchip met MBCHIP commando. PEEK(&HDA01)=Status: 0 = speelt niet, 255 = speelt wel. PEEK(&HDA02) = Ingestelde geheugenbank met MBBANK commando. PEEK(&HDA03)+256*PEEK(&HDA04> = Ingestelde geheugenadres met MBADDR commando. Om de werking van de commando's goed (e kunnen beg rij pen staat er een voorbeeldprogramma op de Music Disk onder de naam "BASIC.BAS". In dit programma zullen met uitzondering van het MBVER commando alle commando's gebruikl worden.

Gebruik in machinetaal

Voor de machinetaalprogrammeurs staan er twee source-codes op de Music disk. Dit zijn MBPLAY.SRC en MBLOADER.SRC. De eerste van de twee is de daadwerkelijke playroutine en de tweede is een programma om de MoonBIaster songs en drumkits in te laden en te kijken welke soundchips in de computer aanwezig zijn en deze zonodig te initialiseren. De sources zijn geschreven voor de DevPac-80 assembler (GEN80), maar kunnen eenvoudig ook in andere assemblers ingeladen worden. Enkele labels zijn in allehei de sources gebruikt. Hier wordt natuurlijk hetzelfde geheugen adres mee bedoeld, dus bij samenvoeging dienen deze verwijderd te worden. Enkele korte opmerkingen die van belang zijn voor de ML-programmeurs:

- De song kan gecruncht in het geheugen blijven staan. Het decrunchen gebeurt tijdens het afspelen.
- Het beginadres van de song en de memory-mapperbank kunnen ingesteld worden. De playroutine zorgt er dan zelf voor dat het schakelen van banken juist verloopt.
- Als er gebruik wordt gemaakt van PSG-drums zal hiervoor alleen PSG-kanaal A gebruikt worden. Er is duidelijk aangegeven waar de PSG wordt aangestuurd zodat dil eenvoudig gewijzigd kan worden.
- De playroutine werkt zowel onder Z80 als R800 mode, maar er mag

niet tijdens het spelen van de song van processor worden gewisseld! BIJ de STRMUS routine word! gekeken welke processor op dat moment aktief is en de playroutine zonodig automatisch aangepast. Overige uitleg staat vermeld in de sources zelf.