38 Synth snare 40 Synth low tom (also 41) 41 Synth tom high (also 43) 44 Bass (also 45) 46 Rim shot (also 51) 47 Tom tom 4 48 Tom tom 3 49 Snare (also 52) 50 Tom tom 2 53 Tom tom 1 54 Hand clap 55 Cow bell 56 Shaker 57 Hi-hat (closed) 59 Hi-hat (opened) 60 Ride 61 Splash 63 Crash 64 Conga low 65 Conga high (also 66) 67 Bongo low 68 Bongo high 72 Castanet 73 Claves 74 Agogo low 75 Agogo high
address contents 0006H address of vdp READ port 0007H address of vdp WRITE port 002DH MSX version (0 = MSX1, 1 = MSX2) 409BH address of "warm boot" BASIC interpreter F323H address of disk error-routine FAF8H slot-address of sub-ROM FB21H info on connected disk-drive FC4AH startaddress of system memory FCC1H slot-address of main-ROM FFA7H info on diskdrive connections anything different from C9H means a connection is made
(FCB3H) LSB start-X (FCB4H) MSB start-X (FCB5H) LSB start-Y (FCB6H) MSB start-Y (BC) destination-X (DE) destination-Y DOTLINE : 58FCH BOXLIN : 5912H DOBOXF : 58C1H PSET : 57F5H (X = (BC), Y = (DE)) PAINT : (color = (A), X = (BC), Y = (DE)) init: CALL 0129H, CALL 59E3H .pa e.g. copying (0,0)-(255,99) to (0,100) ORG 0F562H SX DS 2 SY DS 2 DX DS 2 DY DS 2 NX DS 2 NY DS 2 CDUMMY DS 1 ARG DS 1 L_OP DS 1 ; ; ORG ???? ; BLTVV EQU 0191H EXTROM EQU 015FH LD HL,0 LD (SX),HL ; source is (0,0) LD (SY),HL LD (DX),HL ; destination is (0,100) LD L,100 LD (DY),HL LD HL,255-0+1 LD (NX),HL LD HL,99-0+1 LD (NY),HL XOR A LD (ARG),A LD (L_OP),A LD HL,0F562H LD IX,BLTVV CALL EXTROM . . . 0195H BLTVM copy RAM to VRAM 0199H BLTMV copy VRAM to RAM 019DH BLTVD copy disk to VRAM 01A1H BLTDV copy VRAM to disk 01A5H BLTMD copy disk to RAM 01A9H BLTDM copy RAM to disk filenames are used as follows: LD HL,fn_ptr LD (FNPTR),HL
byte 0: a4 a3 a2 a1 a0 G2 G1 G0 byte 1: b4 b3 b2 b1 b0 B1 G4 G3 byte 2: c4 c3 c2 c1 c0 R2 R1 R0 byte 3: d4 d3 d2 d1 d0 B0 R4 R3the RED value is determined by R4 R3 R2 R1 R0
the brightness of a pixel, relative to the basic color pallet, is set by the upper 5 bits of each byte (a4-0 to d4-0).
0 zwart 3 cyaan 8 OnTab II 28 rood 30 homofiel roze 32 legergroen 64 OnTab III 70 Texels zondagsblad blauw 73 grijs I 76 diarree beige 97 OnTab IV 146 grijs II 156 WK oranje 176 OnTab I 224 groen 255 wit
knalgeel turquoise paars olijfgroen lila smaragd pimpelpaars opaal gebrande oker beige marine blauw vuurrood kobaltblauw okergeel ultramarijn delfts blauw oud roze
POKE 32770,128 LIST POKE 32769,1...
type variabele ruimte in per teken per dim. per element ieder geval extra extra extra alfan.var. 6 1 alfan.array-var 6 1 2 3 num.int.var. 5 enkelv.pr.var. 7 dubbelv.pr.var. 11 int.array-var 6 2 2 enk.array-var 6 2 2 dub.array-var 6 2 2
2B: b7+b6 = frequentie interrupt: 1=50 Hz, 0 = 60 Hz b5+b4 = datum format 0=y-m-d 1=m-d-y 2=d-m-y b3 = soort karaktergenerator 0=japans 1=intern. 2C: b7-b4 = versie van de BASIC b3-b0 = soort toetsenbord 0 jap. 1 int. 2 frans 3 UK 4 duits (DIN)
LD HL,800H ; beginadres kleurentabel in VRAM LD BC,F0H ; lengte kleurentabel (24*80)/8 LD A,0 ; alles op nul... CALL FILVRM ; zetten (begin,lengte,data=HL,BC,A) LD DE,(F7F8H) ; regel*10 ophalen INC HL ; HL mag 2049 worden (begint dan x=8) ADD HL,DE ; en optellen bij regel*10 LD B,9 ; 9 bytes lang (x=8 - x=80) LD A,255 ; alle bits aanzetten CALL WRTVRM ; van de kleuren van die 8 tekens INC HL ; volgende 8 tekens DJNZ -8 ; etcetera LD C,13 ; =vdp(14) let op! LD B,16 ; =16*tijd aan + tijd uit (10=dus aan) CALL 47H ; naar vdp schrijven LD C,12 ; =vdp(13) voor kleuren LD B,4FH ; =voorgrond*16+achtergrond CALL 47H ; en skrijven RET ; en truch maar weer.Dit is een routinetjen voor de bekende menukeuze a la appleworks, met een inverse balk als cursor. Je kan de beginpositie (hoeveel tekens hij niet moet inversen dus) instellen bij de eerste INC HL. Zoals hij nu staat slaat hij dus 1*8 tekens over. Dan kan je de lengte ook nog instellen (groepjes van 8) in de daaropvolgende LD B,?. Je kan het ook laten knipperen maar dat is niet aan te raden. De kleuren van balk (achtergrond) en tekst in de balk is ook vrijelijk in te stellen. Ook leuk is bijv. de achtergrond hetzelfde te houden, zodat je de balk zelf niet ziet maar de tekst bijvoorbeeld kleur 13 (magenta) te geven. Of de normale tekstkleur op geel zetten (color 10,4,4) en dan in de menukeuze de tekstkleur op 15 zetten. Dit is veroooniiicaaaaaa! Knipperen doe je dus in de aangegeven regel, waarbij de getallen staan voor 1/5 seconde. LD B,63H laat de balk dus 6/5 seconde kleuren volgens vdp(13), en dan 3/5 seconde de normale kleur.
MB
A = 0 - 13 POKE &HF923,(A+2+2*(A<2))*4 VDP(2)=a+2+2*(A<2)