No te preocupes jitursan,estoy probando varias utilidades y creo que podre pasarlo a wav
te comento mañana resultados ^^
Gracias!
EDITO: de hecho ya tengo el .wav Dame unos minutos y lo pruebo ^^
EDITO DE NUEVO: Nada...que no hay forma de cargarlo...no me da ni el "Found:" Me da a mi que es problema mio por la conversion del Bin al Wav...en fin,mañana seguire
Una version "en un fichero".
10 CLS
20 I=&HE000: ' Cambiar para reubicar el programa en memoria
30 READ A$
40 IF A$<>"FIN" THEN POKE I,VAL("&H"+A$):GOTO 30
50 DEFUSR=I
60 J1=STICK(1):A=USR(0)
70 LOCATE 0,0
80 B$=BIN$(A)RINT J1;LEFT$("00000000",8-LEN(B$))+B$
90 GOTO 60
100 DATA FE,00,E0,EB,E0,00,E0,21,07,E0,22,9A
110 DATA F3,C9,FE,02,C0,F3,3E,0F,D3,A0,DB,A2
120 DATA E6,AF,5F,D3,A1,3E,0E,D3,A0,DB,A2,32
130 DATA E7,E0,3E,0F,D3,A0,7B,F6,10,D3,A1,3E
140 DATA 0E,D3,A0,DB,A2,32,E8,E0,3E,0F,D3,A0
150 DATA 7B,D3,A1,F6,10,D3,A1,E6,EF,D3,A1,F6
160 DATA 10,D3,A1,3E,0E,D3,A0,DB,A2,32,E9,E0
170 DATA 3E,0F,D3,A0,7B,E6,EF,D3,A1,3E,0E,D3
180 DATA A0,DB,A2,32,EA,E0,3E,0F,D3,A0,7B,F6
190 DATA 10,D3,A1,E6,EF,D3,A1,FB,2E,00,3A,E8
200 DATA E0,E6,0C,20,09,3A,E8,E0,E6,10,20,02
210 DATA CB,C5,3A,E7,E0,E6,10,20,02,CB,CD,3A
220 DATA E7,E0,E6,20,20,02,CB,D5,3A,E9,E0,E6
230 DATA 0F,20,09,3A,EA,E0,E6,04,20,02,CB,DD
240 DATA 3A,E9,E0,E6,0F,20,09,3A,EA,E0,E6,02
250 DATA 20,02,CB,E5,3A,E9,E0,E6,0F,20,09,3A
260 DATA EA,E0,E6,01,20,02,CB,ED,3A,E8,E0,E6
270 DATA 0C,20,09,3A,E8,E0,E6,20,20,02,CB,F5
280 DATA 3A,E9,E0,E6,0F,20,09,3A,EA,E0,E6,08
290 DATA 20,02,CB,FD,26,00,22,F8,F7,C9,00,00
300 DATA 00,00,FIN
He dejado los 4 0s al final del fichero ya que no he mirado el programa para ver si se usan sin inicilializar.
Sería mucho pedir un listado ASM?
Ahm, y muy buen trabajo!!!!
Un saludo
P.D.: Lo he hecho ahora en un momento y no lo he probado, pero "en teoria" deberia funcionar perfectamente.
Otra cosa. Yo que tu Pablibiris le pediria un lector de SD a Padial.....YA!!! jejejeje. No se como podía "vivir sin el" antes....
Buenas!
He tecleado este ultimio programa y me da un Syntax error en la linea 60.Concretamente en lo de "A=USR(0)"
Gracias por el peacho programa!
Tenéis que quitar los 7 primeros datos del DATA, ya que son la cabecera del fichero, no son código ejecutable. O la otra opción es hacer que I=&HE007. Pero NO hagáis las dos cosas a la vez, ¿vale?
Así debería funcionar correctamente, siempre que el código sea correcto, claro. De otra forma, estáis tratando de ejecutar la cabecera del fichero, que no es código ejecutable.
Haced lo que dice pitpan
Los 4 últimos 0's tampoco es necesario que se incluyan en el listado de DATA's.
Aquí os dejo una versión algo más optimizada; pero que de momento todavía no soporta escoger el puerto a leer:
Y el código fuente:
OUTPUT MDSTRIG.BIN DAC: EQU $F7F8 DB $FE DW MAIN DW ENDPROGRAM DW MAIN ORG $E000 MAIN: cp 2 ret nz ; Lee el puerto de joystick y almacena ; los estados en las variables. di ld hl,status1 ld c,#A2 ld d,15 ld a,d out (#A0),a in a,(c) and 10101111b ld e,a out (#A1),a ld a,14 out (#A0),a ini ld a,d out (#A0),a ld a,e or 00010000b out (#A1),a ld a,14 out (#A0),a ini ld a,d out (#A0),a ld a,e out (#A1),a or 00010000b out (#A1),a and 11101111b out (#A1),a or 00010000b out (#A1),a ld a,14 out (#A0),a ini ld a,d out (#A0),a ld a,e and 11101111b out (#A1),a ld a,14 out (#A0),a ini ld a,d out (#A0),a ld a,e or 00010000b out (#A1),a and 11101111b out (#A1),a ei ld l,0 ld de,status2 ld a,(de) ; Comprueba boton A and 00001100b jr nz,noA ld a,(de) and 00010000b jr nz,noA set 0,l noA: dec de ld a,(de) ; Comprueba boton B and 00010000b jr nz,noB set 1,l noB: ld a,(de) ; Comprueba boton C and 00100000b jr nz,noC set 2,l noC: inc de inc de ld a,(de) ; Comprueba boton X and 00001111b jr nz,noX inc de ld a,(de) dec de and 00000100b jr nz,noX set 3,l noX: ld a,(de) ; Comprueba boton Y and 00001111b jr nz,noY inc de ld a,(de) dec de and 00000010b jr nz,noY set 4,l noY: ld a,(de) ; Comprueba boton Z and 00001111b jr nz,noZ inc de ld a,(de) dec de and 00000001b jr nz,noZ set 5,l noZ: dec de ld a,(de) ; Comprueba boton START and 00001100b jr nz, noSTART ld a, (de) and 00100000b jr nz,noSTART set 6,l noSTART: inc de ld a,(de) ; Comprueba boton MODE and 00001111b jr nz,noMODE inc de ld a,(de) and 00001000b jr nz,noMODE set 7,l noMODE: ld h,0 ld (DAC),hl ret status1: DB 0 status2: DB 0 status3: DB 0 status4: DB 0 ENDPROGRAM: equ $ END
Por cierto, ahora el BASIC es así:
10 CLS 20 BLOAD"MDSTRIG.BIN":DEFUSR=&HE000 30 J1=STICK(1):B=USR0(0) 40 LOCATE 0,0 50 B$=BIN$(B):PRINT J1;LEFT$("00000000",8-LEN(B$))+B$ 60 GOTO 30
Creo que es mejor que el usuario decida a que USRn se le asigna la rutina en lugar de asignar yo a capón la 0.
Si alguien quiere entretenerse mejorándolo o modificándolo, ¡adelante!
Aggggh! Porque al compilarlo con el EditPlus usando la plantilla de ASM Z80 me da error? :_(
Bueno voy a usar la SD Padial (que la tengooo!) lo unico que no tengo muy claro como usarla para estos proposios..pero bueno,ire probando ^^
EDITO: Bien,ya me ha funcionado
Ahora el problema es que solo me marca la cruceta y los dos botones,pero el resto de botones no Supongo que será problema del Pad,y no del programa
Lo acabo de probar con un auténtico MSX y funciona igualito que en el openMSX, o sea, bien
Los pads que adapto son de 7 botones (y curiosamente el 8 está; pero cubierto por la carcasa ) y funcionan todos.
Hay que tener en cuenta por temas de compatibilidad que los botones A y B de los pads MSX corresponden a los B y C de los adaptados; así que cuando se use la compatibilidad joymega es cuestión de usar los botones que correspondan.
Ahora el problema es que solo me marca la cruceta y los dos botones,pero el resto de botones no Sad Supongo que será problema del Pad,y no del programa
¿Estas seguro de que lo has adaptado correctamente?, aunque no es muy difícil uno puede liarse con tanto cable para aquí y para allá.
¿Funcionaría con un mando de PSX con el adaptador de Calamar?
Me acuerdo que hace poco se retocó el tema de los controles en el parche del Vampire killer haciendo que saltara con el segundo botón, pues molaría que se pudiera probar que el F1 "pausa" pasara a ser un tercer botón del pad.
http://www.msx.org/forum/msx-talk/hardware/msx-game-pad-less-5
El mio lo tengo adaptado segun ese post...supuestamente deberia de funcionar los otros botones,pero ya me da a mi que no :(
Sólo funciona con la adaptación oficial Joymega, que es la única soportada por openMSX y tiene algún que otro juego ya parcheado (Firehawk, Vampire Killer). Algunos mensajes más atrás ya se indicó la página oficial: Como usar un joystick de MegaDrive de 3 o 6 botones en un MSX.
Se da la circunstancia de que esos exactamente son los pads que me he adaptado y garantizo que funcionan de lujo (como ya dije, sólo 7 de los 8 botones, claro) :)