Cómo generar tipo de letra diferente en Basic? ¿y ASM?

Pagina 1/4
| 2 | 3 | 4

Door celeroncillo

Expert (87)

afbeelding van celeroncillo

23-06-2011, 18:11

Hola, me gustaría crearme un nuevo tipo de letras tanto para Basic como para ensamblador, actualmente estoy definiendo cada caracter con poke desde basic, por ejemplo:

para la A (caracter 65)

VPOKE 2048+65*8+0,&B00110000
VPOKE 2048+65*8+1,&B01111000
VPOKE 2048+65*8+2,&B11001100
VPOKE 2048+65*8+3,&B11001100
VPOKE 2048+65*8+4,&B11001100
VPOKE 2048+65*8+5,&B11111100
VPOKE 2048+65*8+6,&B11001100
VPOKE 2048+65*8+7,&B11001100

pero me imagino que hay una forma mas fácil, rápida o mejor, ¿con DATA?. Por otro lado y si es posible me gustaría que fuera multicolor.
Y en ensamblador?, si lo creo con DATA, lo puedo pasar facilmente a ensamblador?, en basic me "defiendo", poco, pero en ASM voy mas perdido que un niño de 4 años conectando un video Beta, apenas he conseguido escribir algo en pantalla con ASMSX, pero eso sí con la typo de MSX.

Ya he preguntado sobre esto en Karoshi, pero... a ver si hay mas sugerencias u opciones.

Muchas gracias

Aangemeld of registreer om reacties te plaatsen

Van Warchild

Paragon (1271)

afbeelding van Warchild

23-06-2011, 18:54

Pues creo que sí, que si usas un bucle FOR-NEXT y DATA's tendrás que teclear menos. Incluso puedes usar algun editor de sprites para MSX1 que hay por ahí de los que después te vuelcan las DATA's en un archivo ya que son lo mismo, patrones de 8x8. Sobre el color, en Screen 1 se podía dar un color al caracter y otro al fondo pero en grupos de 8 caracteres. En screen 0 creo que no es posible, al menos de forma sencilla desde el basic seguro que no...

Van celeroncillo

Expert (87)

afbeelding van celeroncillo

23-06-2011, 19:30

Muchas gracias Warchild, lo del Screen 0 (modo solo texto), no tenía dudas, respecto a hacerlo con data, lo he intentado, pero no se donde cometo el error, estoy en Screen 1 y en Screen 2 e intento hacer texto a 2 colores, alguna sugerencia (ejemplo) para hacerlo correctamente?.
Un saludo

Van MsxKun

Paladin (924)

afbeelding van MsxKun

23-06-2011, 20:23

Bueno, si vas a usar Screen 2, dibuja las letras en tu editor grafico preferido, crea un BMP y convierte con BMP2MSX Smile Grabas el fichero a .SC2 y ya tienes tiles con letras (y de colores). desde el BASIC lo cargas con BLOAD"filero",S (si tienes disco..)

Van e_sedes

Expert (112)

afbeelding van e_sedes

23-06-2011, 21:06

O para definir tiles (que es lo que es una fuente de texto) puedes usar el ICVGM303. Es más cómodo y puedes salvar como datas.

Van celeroncillo

Expert (87)

afbeelding van celeroncillo

23-06-2011, 21:16

MsxKun, pero esta opción no me funciona en Screen 1, no?, y vaya, ya que voy a hacerme unas (Tiles), me gustaría poderlas utilizar en estos modos, en cualquier caso, como puedo asignar que si yo hago un print"Hola" me los escriba con esas tiles cargadas con ,S?.
Por otro lado e_sedes, no encuentro ICVGM303 san google no me ayuda, podrías tu....
Gracias

Van Warchild

Paragon (1271)

afbeelding van Warchild

24-06-2011, 00:02

Mini ejemplo para hacerlo con DATA's:

10 FOR I=[primer byte del primer caracter a redefinir] TO [último byte del último caracter a redefinir]
20 FOR J=0 TO 7: READ A:VPOKE I+J,A:NEXT J
30 NEXT I
40 DATA ...
50 DATA ...
...

Esto al menos para Screen 0 ó 1 te puede servir. Sobre Screen 2 y tiles poco te puedo aportar yo, que me estoy peleando ahora con los copys y los set pages y esas cosas en Screen 5, que parece un modo algo más "facilón" que Screen 2, al menos para mi nivel...

Van assembler

Champion (378)

afbeelding van assembler

24-06-2011, 08:24

10 SCREEN 2
20 FOR A=ASC("A") TO ASC("C")
30 FOR B=0 TO 7
40 READ C$
50 VPOKE A*8+B,VAL("&B"+LEFT$(C$,8))
60 VPOKE 8192+A*8+B,VAL("&H"+RIGHT$(C$,2))
70 NEXT
80 NEXT
90 VPOKE 6144,ASC("A")
100 VPOKE 6145,ASC("B")
110 VPOKE 6146,ASC("C")
120 GOTO 120
130 DATA 0011000021
131 DATA 0100100031
132 DATA 0100100041
133 DATA 0100100051
134 DATA 1100110061
135 DATA 1011010071
136 DATA 1000010081
137 DATA 0000000001
140 DATA 1011000061
141 DATA 1100100071
142 DATA 1001000081
143 DATA 1110000091
144 DATA 10001000a1
145 DATA 10001000b1
146 DATA 11110000c1
147 DATA 0000000001
148 DATA 0000000001
150 DATA 0111000081
151 DATA 1000100071
152 DATA 1000000061
153 DATA 1000000051
154 DATA 1000000041
156 DATA 1000100031
157 DATA 0111010021
158 DATA 0000000001

Van e_sedes

Expert (112)

afbeelding van e_sedes

24-06-2011, 10:39

http://www.reocities.com/newcoleco/tools.html
Ahí tienes el susodicho y algunas cosas más. El programa está pensado para Coleco, pero como el VDP es el mismo, pues eso.

Van MsxKun

Paladin (924)

afbeelding van MsxKun

24-06-2011, 14:43

MsxKun, pero esta opción no me funciona en Screen 1, no?

No, es desde SC2 parriba... Pero como decias tambien SC2...
No se si el ICVGM tenia para SC1 o el NMSXTILES, que tambien iba bien.
En Screen 2 no podras hacer un print, pero se vpokea en la vram y listo.
El orden de los caracteres es el que ves si haces:

10 cls
20 screen 1
30 width 32
40 for i=0 to 255
50 vpoke 6144+i,i
60 next
70 goto 70

Van celeroncillo

Expert (87)

afbeelding van celeroncillo

25-06-2011, 18:05

Hola, gracias a todos, por vuestras propuestas. Se acerca mas a lo que quiero lo que propone assembler, pero continúa sin hacer lo que quiero. Os pongo un ejemplo en basic para ver si es posible. Por cierto e_sedes Gracias por el link.

10 SCREEN 2
15 open "GRP:"AS #1
20 FOR A=65 TO 65
30 FOR B=0 TO 7
40 READ C$
50 VPOKE A*8+B,VAL("&B"+LEFT$(C$,8))
60 VPOKE 8192+A*8+B,VAL("&H"+RIGHT$(C$,2))
70 NEXT
80 NEXT
90 VPOKE 6144,ASC("A")
100 PRESET (1,70)
116 PRINT #1,"QUIERO QUE ESTA A SALGA COMO LA DEFINIDA EN DATA"
120 FOR P=0 TO 1000:NEXT P
130 DATA 0011000010
131 DATA 0111100010
132 DATA 1100110010
133 DATA 1100110010
134 DATA 1100110010
135 DATA 1111110080
136 DATA 1100110010
137 DATA 1100110010
140 SCREEN 0
150 VPOKE 2048+65*8+0,&B00110000
160 VPOKE 2048+65*8+1,&B01111000
170 VPOKE 2048+65*8+2,&B11001100
180 VPOKE 2048+65*8+3,&B11001100
190 VPOKE 2048+65*8+4,&B11001100
200 VPOKE 2048+65*8+5,&B11111100
210 VPOKE 2048+65*8+6,&B11001100
220 VPOKE 2048+65*8+7,&B11001100
230 PRINT "AHORA ESTO ES OTRA COSA EN SCREEN 0, Y ES LO QUE ME GUSTARIA EN SCREEN 1 Y 2"
1000 GOTO 1000

Pagina 1/4
| 2 | 3 | 4