Entrar
¿Usuario nuevo? Regístrate
hispamsx · HispaMSX: comunidad hispana de MSX
? ¿Ya estás suscrito? Entrar en Yahoo!

Consejos de Yahoo! Grupos

¿Sabías que...?
Puedes determinar el orden de los mensajes. Pulsa el enlace en la columna correspondiente a la fecha. Tus preferencias serán guardadas y no tendrás que introducirlas de nuevo.

Mensajes

  Mensajes Ayuda
Avanzado
Philips 8280   Lista de mensajes  
Responder | Reenviar Mensaje #24417 de 24524 |
Re: [hispamsx] Philips 8280

Quizas te venga bien esto:



Org 100h
CALSLT: EQU 0001CH ;Inter slot call
EXBRSA: EQU 0FAF0H ;Slot address of BIOS (main) ROM
EXPTBL: EQU 0FCC1H ;Slot address of extended ROM
CHGMOD: EQU 0005FH
CHGET: EQU 0009FH ;SALIDA: A=Tecla pulsada
BEEP: EQU 000C0H

; call _ABRIR
; call _INI



LD A,8
LD (MODE),A
CALL CHGRP ;Screen 8

jp digiup

jp fin

CALL _LEERCAB

ld iy,0
LD BC,212 ;Lee n§ de lineas
FRAM:
PUSH BC

LD IX,Imagen
call _LEER ;Lee un frame

CALL WLINE
LD BC,100H ;AVANCE VERTICAL EN VRAM
ADD IY,BC
POP BC
DEC C ;AVANCE LINEA
LD A,0
OR C
JP NZ,FRAM ;HASTA ULTIMO FRAME


call _transmite

CALL CHTEXT
call _CERRAR
LD B,0
LD C,62H
CALL 5

ret


fIN:

; CALL BEEP
; CALL CHGET
; CALL BEEP


; CALL BEEP
; CALL CHGET
; CALL BEEP

call _digita


; call _delay
; cALL _IMPOSE_FULL
CALL _Digitize_View

call _Digitize_Set

; CALL BEEP
; CALL CHGET
; CALL BEEP


call _transmite

call _impose_off

;----------------------------------------------------------------------
;Modo Text
;----------------------------------------------------------------------
CALL CHTEXT

;----------------------------------------------------------------------
;Salir a Dos
;----------------------------------------------------------------------
TheEnd:
LD B,0
LD C,62H
CALL 5

ret
;----------------------------------------------------------------------
CHGRP:

DI
LD A,(MODE)
LD IY,(EXPTBL - 1)
LD IX,CHGMOD
CALL CALSLT
EI
RET

;----------------------------------------------------------------------
CHTEXT:
LD A,0
LD (MODE),A
CALL CHGRP
RET

;-----------------------------------------------------------------------------
; RENDER DE UNA LINEA
;-----------------------------------------------------------------------------
WLINE:
DI
LD C,99H

PUSH IY
POP HL

LD A,h
AND 11000000B ;2 BITS MAS ALTOS DE destino + 1 DE PAGINA

RL A
RL A
RL A

OUT (C),A ; 00000,a16,a15,a14
LD A,10001110B ;ESCRIBIR EN VDP R#14
OUT (C),A

LD A,l ;8 BITS MAS ALTOS DE destino
OUT (C),A ; a7,a6,a5,a4,a3,a2,a1
LD A,h
AND 00111111B ;6 bits MAS BAJOS DEL ALTO DE destino
ADD 01000000B ;COMANDO ESCRIBIR
OUT (C),A ; 0,0 (read), a13,a12,a11,a10,a9,a8

LD C,98H
LD A,255
LD B,A

VPOK:
LD A,(IX+0) ;LEE BYTE DEL BUFFER
OUT (C),A ;PONE BYTE EN PANTALLA
INC IX ;AVANZA BUFFER
DEC B ;AVANZA COLUMNA
LD A,0
OR B
JP NZ,VPOK ;HASTA ULTIMA COLUMNA
inc IX
LD A,(IX+0) ;LEE BYTE DEL BUFFER
OUT (C),A ;PONE BYTE EN PANTALLA
EI
RET

;----------------------------------------------------------------------



;----------------------------------------------------------------------
_INI:
ld de,mini
ld c,09h
call 05h
ret

;----------------------------------------------------------------------
_FIN:
ld de,mfin
ld c,09h
call 05h
ret

;----------------------------------------------------------------------
_Leem:
ld de,mlee
ld c,09h
call 05h
ret

;----------------------------------------------------------------------
_Leei:
ld de,mlei
ld c,09h
call 05h
ret

;----------------------------------------------------------------------
_ABRIR:
ld c,43h
ld de,fiche
ld a,%00000001
call 05h
or a
jp nz,_error
ld a,b
ld (Handle),a
ret

;----------------------------------------------------------------------
_LEER:
ld a,(handle)
ld b,a
ld c,48h
ld de,buffer
ld hl,256
call 05h
or a
jp nz,_error
ret

;----------------------------------------------------------------------
_LEERcab:
ld a,(handle)
ld b,a
ld c,48h
ld de,buffer
ld hl,07h
call 05h
or a
jp nz,_error
ret

;----------------------------------------------------------------------
_CERRAR:
ld c,45h
ld a,(handle)
ld b,a
or a
jp nz,_error
ret

;----------------------------------------------------------------------
_ERROR:
ld de,merror
ld c,09h
call 05h
; CALL CHTEXT
JP FIN
ret ;Salir

;----------------------------------------------------------------------
_Transmite:
DI
LD C,99H


ld hl,0

LD A,h
AND 11000000B ;2 BITS MAS ALTOS DE destino + 1 DE PAGINA

RL A
RL A
RL A

OUT (C),A ; 00000,a16,a15,a14
LD A,10001110B ;ESCRIBIR EN VDP R#14
OUT (C),A

LD A,l ;8 BITS MAS ALTOS DE destino
OUT (C),A ; a7,a6,a5,a4,a3,a2,a1
LD A,h
AND 00111111B ;6 bits MAS BAJOS DEL ALTO DE destino
; ADD 00000000B ;COMANDO LEER
OUT (C),A ; 0,0 (read), a13,a12,a11,a10,a9,a8


; ld c,90h
; ld a,0
; out (c),a

ld iy,0
ld de,54272

_buc01:


_esp1: ;IF NOT((INP(&H90)AND &B10)=&B10) THEN GOTO 90
ld c,90h
in a,(c)
and 10b
jp z,_esp1 ;Espera ACK (RECIBIDO)



LD C,98H
IN A,(C) ;TOMA BYTE DE PANTALLA


ld c,91h
out (c),a ;Prepara dato


ld c,90h ;Envia dato (ENVIA ACK)
ld a,1
out (c),a


_esp2: ;IF ((INP(&H90)AND &B10)=&B10) THEN GOTO 120
in a,(c)
and 10b
jp nz,_esp2 ;Espera no ACK (RECIBIDO)


out (c),a ;Quita ACK

dec de

xor a
OR d
JP NZ,_buc01
XOR A
OR e
JP NZ,_buc01
EI
ret

;----------------------------------------------------------------------
_VPEEK:

LD C,98H
IN A,(C) ;COJE BYTE DE PANTALLA
RET

;----------------------------------------------------------------------
_VPOKE:
LD C,99H

PUSH IY
POP HL

LD A,h
AND 11000000B ;2 BITS MAS ALTOS DE destino + 1 DE PAGINA

RL A
RL A
RL A

OUT (C),A ; 00000,a16,a15,a14
LD A,10001110B ;ESCRIBIR EN VDP R#14
OUT (C),A

LD A,l ;8 BITS MAS ALTOS DE destino
OUT (C),A ; a7,a6,a5,a4,a3,a2,a1
LD A,h
AND 00111111B ;6 bits MAS BAJOS DEL ALTO DE destino
ADD 01000000B ;COMANDO ESCRIBIR
OUT (C),A ; 0,0 (read), a13,a12,a11,a10,a9,a8

LD C,98H
LD A,255
OUT (C),a ;PONE BYTE EN PANTALLA
RET

;----------------------------------------------------------------------
_impose_full:
DI
LD C,F7H
LD A,10111111B
OUT (C),A

;40 VDP(9)=VDP(9) AND &HDF OR &H10
LD C,9BH
LD A,00001000B
OUT (C),A
IN A,(C)
AND cFH ;dfh
OR 10H
LD C,99H
OUT (C),A
LD A,10001000B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A

;41 VDP(10)=(VDP(10) AND &B11001111)OR &B00110000
LD C,9BH
LD A,00001001B
OUT (C),A
IN A,(C)
AND 11001111B
OR 00110000B
LD C,99H
OUT (C),A
LD A,10001001B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A

LD C,99H
LD A,FFH
OUT (C),A
LD A,10000111B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A

EI
RET

;----------------------------------------------------------------------
_Digitize_view:
DI
;60 'A=VDP(8)
;61 'VDP(8)=VDP(8) OR 32

luup2:
LD C,99H
LD A,00H
OUT (C),A

LD C,9BH
LD A,00001111B
OUT (C),A

LD C,99H
IN A,(C)

and 01000000B
jp z,luup2


;70 VDP(7)=255
; LD C,99H
; LD A,FFH
; OUT (C),A
; LD A,10000111B ;ESCRIBIR EN VDP R#8 VDP(9)
; OUT (C),A

;80 VDP(0)=VDP(0) OR &H40
LD C,9BH
LD A,00000000B
OUT (C),A
IN A,(C)
OR 40H
LD C,99H
OUT (C),A
LD A,10000000B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A

EI
RET

;----------------------------------------------------------------------
_digitize_set:
DI
;110 VDP(0)=VDP(0) AND &HBF
LD C,9BH
LD A,00000000B
OUT (C),A
IN A,(C)
AND BFH
LD C,99H
OUT (C),A
LD A,10000000B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A

;120 VDP(7)=255
; LD C,99H
; LD A,FFH
; OUT (C),A
; LD A,10000111B ;ESCRIBIR EN VDP R#8 VDP(9)
; OUT (C),A



;130 B=VDP(8)
luup1:
LD C,99H
LD A,00H
OUT (C),A

LD C,9BH
LD A,00001111B
OUT (C),A

LD C,99H
IN A,(C)

and 01000000B
jp z,luup1



;131 'VDP(8)=VDP(8) AND 223

;140 VDP(7)=0
LD C,99H
LD A,0
OUT (C),A
LD A,10000111B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A
EI
RET

;----------------------------------------------------------------------
_impose_off:
DI
;170 OUT(&HF7),&HFF
LD C,F7H
LD A,FFH
OUT (C),A

;180 VDP(9)=VDP(9) AND &HEF
LD C,9BH
LD A,00001000B
OUT (C),A
IN A,(C)
AND EFH
LD C,99H
OUT (C),A
LD A,10001000B ;ESCRIBIR EN VDP R#8 VDP(9)
OUT (C),A

EI
RET

;----------------------------------------------------------------------
_DIGITA:
DI
LD C,9BH
LD A,00001001B
OUT (C),A
IN A,(C)
AND 11001111B
OR 00100000B
LD C,99H
OUT (C),A
LD A,10001001B ;ESCRIBIR EN VDP R#9 VDP(10)
OUT (C),A

LD C,F7H
LD A,10111111b
OUT (C),A ;Sync Extern

LD C,99H
LD A,FFH
OUT (C),A
LD A,10000111B ;ESCRIBIR EN VDP R#7 (Color)
OUT (C),A

LD C,F6H
LD A,10111111b
OUT (C),A

; vdp(8)
luup:
LD C,99H
LD A,00H
OUT (C),A

LD C,9BH
LD A,00001111B
OUT (C),A

LD C,99H
IN A,(C)

and 01000000B
jp z,luup



; call _delay


LD C,9BH
LD A,00000000B
OUT (C),A
IN A,(C)
or 01000000b
LD C,99H
OUT (C),A
LD A,10000000B
OUT (C),A

EI
RET

;----------------------------------------------------------------------
;----------------------------------------------------------------------

DigiUp:
LD A,(F3E6H)
PUSH AF
LD BC,FF07H
CALL VDPI

LD A,(FFEBH)
AND CFH
OR 10H
LD B,A
LD C,09H
CALL VDPI

LD A,(FAF7H)
AND 3FH
OR 80H
OUT (F7H),A

IMPSON:
LD A,(FFE7H)
OR 32H
LD B,A
LD C,08H
CALL VDPI

TESTEC:
CALL digiti
jp envio
LD IX,009CH
LD IY,(FCC0H)
CALL 001CH
JP Z,TESTEC

LEETEC:
LD IX,009FH
LD IY,(FCC0H)
CALL 001CH
PUSH AF

CALL VSCAN

LD A,(FFE7H)
AND EFH
LD B,A
LD C,08H
CALL VDPI

POP AF
CP 20H
JP Z,LEETEC

AND DFH

CP 1BH
JP Z,IMPSON

LD A,(FAF7H)
OUT (F7H),A

LD A,(FFEBH)
AND CFH
LD B,A
LD C,09H
CALL VDPI

LD A,(FFE7H)
AND FDH
LD B,A
LD C,08H
CALL VDPI

POP BC
LD C,07H
CALL VDPI

LD IX,00D2H
LD IY,(FCC0H)
CALL 001CH

RET


envio:
push af
push bc
push de
push ix
push iy
call _Transmite
pop iy
pop ix
pop de
pop bc
pop af
jp IMPSON


DIGITI:
CALL VSCAN

LD A,(F3DFH)
OR 40h
LD B,A
LD C,00H
CALL VDPI

CALL VSCAN

LD A,(F3DFH)
AND bfh
LD B,A
LD C,00H
CALL VDPI

VSCAN: CALL SC1
AND 40H
JP Z,VSCAN

VSCA2:
CALL SC1
AND 40H
JP NZ,VSCA2
RET

SC1:
LD A,02H
DI
OUT (99H),A
LD A,8fh
OUT (99H),A
EX (SP),HL
EX (SP),HL
IN A,(99H)
EX AF,AF'
XOR A
OUT (99H),A
LD A,8FH
OUT (99H),A
EI
EX AF,AF'
RET

VDPI:
LD A,B
DI
OUT (99H),A
LD A,C
AND 3FH
OR 80H
OUT (99H),A
EI
LD D,B
LD A,C
LD B,00H
CP 08H
JP NC,GUAR1
LD HL,F3DFH
JP GUAR2

GUAR1:
CP 18H
RET NC
LD HL,FFDFH

GUAR2:
ADD HL,BC
LD (HL),D
RET



;----------------------------------------------------------------------
;----------------------------------------------------------------------
_delay:
ld c,255

delbuc:
dec c
LD A,0
OR C
JP NZ,delbuc ;HASTA ULTIMO FRAME

ret

;-----------------------------------------------------------------------------
; VARIABLES
;-----------------------------------------------------------------------------

Handle: ds 1
EOFich: db 0
Fiche: db "carlos1.pic",0
Mini: db "Abierto.",13,10,"$"
Mlee: db "lee.",13,10,"$"
Mlei: db "leido.",13,10,"$"
Merror: db "Error." ,13,10,"$"
Mfin: db "Cerrado." ,13,10,"$"

MODE: DB 0

BUFFER:
IMAGEN: Ds 256


Es muy antiguo, si no me equivoco este era el programa que digitalizaba
y luego enviaba por el puerto paralelo.


Un saludo.




mohai escribió:
> Buenas,
>
> alguien tiene bien explicados y con ejemplos (a ser posible), los comandos
> BASIC y las funciones de captura y superposicion del MSX-2 ?
>
> En el manual del 8280 se comentan "por encima" con un par de ejemplos muuuy
> pobres, la verdad.
>
> Un fallo (que yo haya visto) es que no se comenta para nada el segundo
> parámetro del comando COPY SCREEN, ni en que influyen los colores de borde,
> ni que hay que hacer para digitalizar una pantalla completa sin problemas...
>
> Tambien me vale la esplicacioin de los registros del VDP necesarios y el
> puerto F9.
>
> salu2,
> IvI
>
>
> [Se han eliminado los trozos de este mensaje que no contenían texto]
>
>
>


______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com




Mié, 27 de Mayo, 2009 6:16 pm

sdcdsg
Sin conexión Sin conexión
Enviar mensaje Enviar mensaje

Reenviar Mensaje #24417 de 24524 |
Desplegar mensajes Autor Ordenar por fecha

Buenas, alguien tiene bien explicados y con ejemplos (a ser posible), los comandos BASIC y las funciones de captura y superposicion del MSX-2 ? En el manual...
mohai
mohai34
Sin conexión Enviar mensaje
27 de Mayo, 2009
3:54 pm

Quizas te venga bien esto: Org 100h CALSLT: EQU 0001CH ;Inter slot call EXBRSA: EQU 0FAF0H ;Slot address of BIOS (main) ROM ...
Carlos de Santa-Ana G...
sdcdsg
Sin conexión Enviar mensaje
27 de Mayo, 2009
6:18 pm

110 ON STOP GOSUB 210 120 STOP ON 130 SCREEN 8 140 COLOR,,255 150 SET VIDEO 1 160 COPY SCREEN 170 TIME=0 180 IF INKEY$="" GOTO160 190 IF TIME<4 GOTO 190 200 IF...
Carlos de Santa-Ana G...
sdcdsg
Sin conexión Enviar mensaje
27 de Mayo, 2009
6:28 pm

Gracias! Es algo para comenzar. En realidad lo que quería hacer es un programa sencillo para digitalizar, pero hojeando el manual vi lo mal explicados que ...
mohai
mohai34
Sin conexión Enviar mensaje
28 de Mayo, 2009
1:43 pm
Avanzado

Copyright © 2009 Yahoo! Todos los derechos reservados.
Política de Privacidad Actualizada - Condiciones del servicio - Directrices - Ayuda