17 bit Bios calls (Development Foros MSX)MSX Resource Center            
                       
English Nederlands Espa�ol Portugu�s Russian                  
 Noticias
   Página principal
  Almacén de noticias
  Temas de noticias

 Recursos
   Foros MSX
  Artículos
  Analisis
  Informe de ferias/RUs
  Álbum de fotos
  Ferias y encuentros
  Encuestas
  Enlaces
  Buscar

 Software
   Descargas
  Tienda Online

 MRC
   Quiénes somos
  Únete a nuestro equipo
  Donar
  Políticas
  Contacta con nosotros
  Enlázanos
  Estadísticas

 Buscar
 
  

  

 Login
 

Login

Contraseña




¿Aún no tienes una cuenta? ¡Conviértete en miembro del MSX Resource Center! ¡Únete a nosotros!.


 Estadísticas
 

Hay 54 invitados y 5 miembros en línea

Eres un usuario anónimo.
 

Foros MSX


Foros MSX

Development - 17 bit Bios calls

Ir a la página ( Página anterior 1 | 2 )
Autor

17 bit Bios calls

ARTRAG
msx master
Mensajes: 1802
Publicado: Noviembre 10 2005, 14:09   
ok. war is war


  macro SetWrite17 vram
  ld a,vram / #4000
  di
  out (99h),a
  ld a,14+128
  out (99h),a
  ld a, vram and #FF
  out (99h),a
  ld a,(vram and #3F) or 64
  out (99h),a
  ei
  endm

and
  macro SetWrite14 vram
  ld a, vram and #FF
  di
  out (99h),a
  ld a,(vram and #3F) or 64
  out (99h),a
  ei
  endm


GhostwriterP
msx addict
Mensajes: 320
Publicado: Noviembre 10 2005, 14:15   
Quote:

  macro SetWrite16 vram


Must actually be SetWrite14 then, right?
ARTRAG
msx master
Mensajes: 1802
Publicado: Noviembre 10 2005, 14:28   
Hit!

A nice variation

;
; ints must be disabled!
;
  macro SetWrite14 vram
  ld a, vram and #FF
  out (99h),a
  ld a,(vram and #3F) or 64
  out (99h),a
  endm



;
; ints must be disabled!
;
  macro SetWrite17 vram
  ld a,vram / #4000
  out (99h),a
  ld a,14+128
  out (99h),a
  SetWrite14 vram
  endm



norakomi
msx professional
Mensajes: 861
Publicado: Noviembre 10 2005, 14:49   
ok,
I will have to change all those Bios calls.
Damn !!


BiFi
msx guru
Mensajes: 3142
Publicado: Noviembre 10 2005, 18:27   
if you change ACPAGE (active page) on $FAF6 you can use the BIOS calls. ACPAGE is simply bit 16 and 17 for the 4-page screens and bit 17 for 2-page screens.
norakomi
msx professional
Mensajes: 861
Publicado: Noviembre 13 2005, 10:05   
cool,
thax Bifi !!!
WWW.BIFIGOOGLE.COM !!!
ARTRAG
msx master
Mensajes: 1802
Publicado: Noviembre 18 2005, 22:41   
Actually i did a mistake im my setwrite: those macros are bugfree

; vdp: send value in A to VDP register
; syntax:vdp reg#
; modifies:   A
; note:      **** INTERRUPTS MUST BE DISABLED ****
; (6 bytes/31 cycles)
;
    MACRO  vdp  reg
        out (vdpport1),a
        ld  a,reg or 010000000b
        out (vdpport1),a
        endm
;
; vdpw: send value to VDP register
; syntax:vdp reg#, value#
; modifies:   A
; note:      **** INTERRUPTS MUST BE DISABLED ****
;
    MACRO  vdpw  reg,value
        ld    a,value
        vdp   reg
        endm
;
; ints must be disabled!
;
    MACRO SetWrite14 vram
            ld a, vram and #FF          ;set bits 0-7
            out (vdpport1),a
            ld a,(vram/256 and #3F) or 64   ;set bits 8-13  + write access
            out (vdpport1),a
        endm
;
; ints must be disabled!
;
    MACRO SetWrite17 vram
          vdpw    14,vram / #4000     ;set bits 16-14
          SetWrite14 vram
          endm


; ram2vram17: copy RAM block to VRAM  (full 128Kb)
; syntax:r2v16e    <RAM addr>, <VRAM addr>, <number of bytes>
; modifies:   AF,HL,DE,BC
; note:      **** INTERRUPTS MUST BE DISABLED ****
;
       MACRO ram2vram17    ram,vram,num

        SetWrite17 vram        
        ld  de,num          ; 3/10
        ld  hl,ram          ; 3/10
        ld  c,vdpport0        ; 2/7

.loop   outi                    ; 2/16
        dec de                  ; 1/6
        ld  a,d                 ; 1/4
        or  e                   ; 1/4
        jp  nz,.loop            ; 3/10
        endm

; fillvram17: fill VRAM  (full 128Kb)
; syntax:r2v16e    <VRAM addr>, <number of bytes>, >value>
; modifies:   AF,HL,DE,C
; note:      **** INTERRUPTS MUST BE DISABLED ****
;
       MACRO fillvram17    vram,num,value

        SetWrite17 vram        
        ld  de,num          ; 3/10
        ld  c,vdpport0        ; 2/7

.loop   ld  a,value
        out (c),a
        dec de                  ; 1/6
        ld  a,d                 ; 1/4
        or  e                   ; 1/4
        jp  nz,.loop            ; 3/10
        endm


BiFi
msx guru
Mensajes: 3142
Publicado: Noviembre 19 2005, 07:34   
Quote:

cool,
thax Bifi !!!

You're welcome...

Quote:

WWW.BIFIGOOGLE.COM !!!

I wouldn't go THAT far, but thanks
norakomi
msx professional
Mensajes: 861
Publicado: Noviembre 21 2005, 16:54   

 
Ir a la página ( Página anterior 1 | 2 )
 







(c) 1994 - 2009 Fundación MSX Resource Center. MSX es una marca registrada de MSX Licensing Corporation