ZX BASIC:MSX

From BorielWiki
Jump to: navigation, search

References

Library

for now, this is merelly about a small sketch of the msx1/2 (also 2+) msx-basic command used, and their z80 assembly similars - they are not accuraced and may need fixes and improvements.

  • cls - cls
   call 0x00c3     #-cls
  • color
 sub msxcolor(v_ink as ubyte, v_paper as ubyte, v_border as ubyte):
 poke $F3E9,v_ink
 poke $F3EA,v_paper
 poke $F3EB,v_border
 end sub
  • vpoke
 sub msx1vpoke(v_address as uinteger,v_value as uinteger)
 asm
 ld h,(ix+5)
 ld l,(ix+4)
 ld a,(ix+6)
 call $004D
 end asm
 end sub
 sub msx2vpoke(v_address as uinteger,v_value as uinteger)
 asm
 ld h,(ix+5)
 ld l,(ix+4)
 ld a,(ix+6)
 call $0177
 end asm
 end sub
  • vpeek - v_value= vpeek (v_address)
   ld hl,v_address
   call 0x004A    #-rdvrm
   ld v_value,a
  • screen - screen v_screenmode,v_spritemode,v_click,v_printflag,v_?,v_?,v_?,v_?,v_?,v_?
   ld a,v_screenmode;call 0x005F     #- chgmod
   #- ld bc,0xE201:call WRTVDP - v_spritemode - ????
   ld (0xF3DB),v_click    #- cliksw
   ld (0xF416),v_prtflg    #- printflag
  • width - width v_width
   if (v_screenmode=0) then:
        ld (0xF3AE),v_width
        ld (0xF3B0),v_width
        end if
   if (v_screenmode=1) then:
        ld (0xF3AF),v_width
        ld (0xF3B0),v_width
        end if
  • sprite$ - sprite$(v_spriteindex)=s_spritebitpmap$
   ld hl,(s_spritebitpmap$)
   ld de,0x3800+(v_spriteindex*32)
   ld bc,32
   call 0x005c   #- ldirvm
  • putsprite - putsprite(v_id,v_x,v_y,v_layer,v_colour) - i don't know how to put sprites in screens 5 to 12
   vpoke (0x1B00+(v_id*4)+0 ),v_y
   vpoke (0x1B00+(v_id*4)+1 ),v_x
   vpoke (0x1B00+(v_id*4)+2 ),v_layer
   vpoke (0x1B00+(v_id*4)+3 ),v_colour
  • cls (msx2) - cls
   ld ix,0x0115    #- cls (subrom)
   call 0x015C     #- subrom
  • setpage (msx2) - setpage v_dpage,v_apage (?)
   ld [0xFAF5],v_dpage    #- dppage
   ld [0xFAF6],v_apage    #- acpage
   ld ix,0x013D    #- setpag (subrom)
   call 0x015C     #- subrom
  • palette (gfx9000)
 sub msxgfx9kpalette(tidx as ubyte,tpr as ubyte,tpg as ubyte,tpb as ubyte):
 '- this code seems not acuraced yet
 out $64,14
 out $63,(tidx mod 64)*4
 out $61,tpr
 out $61,tpg
 out $61,tpb
 end sub
  • screen (gfx9000)
 sub msxgfx9kscreen(tscm6 as ubyte,tscm7 as ubyte):
 '- this code seems not acuraced yet
 out $64,6
 out $63,tscm6
 out $64,7
 out $63,tscm7
 out $67,1
 end sub
  • vpoke (gfx9000)
 sub msxgfx9kvpoke(tadr as udouble, tvl as ubyte):
 '- this code seems not acuraced yet
 out $64,0
 tvou=tadr band 255:tvou=int(tvou/256)
 out $63,tvou
 tvou=tadr band 255:tvou=int(tvou/256)
 out $63,tvou
 tvou=tadr band 255:tvou=int(tvou/256)
 out $63,tvou
 out $60,tvl
 end sub
Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox
Translate
Google AdSense