Duda FourSpriter

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Responder
K.O.D.
Jack The Nipper
Mensajes: 115
Registrado: Mar Sep 30, 2008 8:45 am
Ubicación: Valencia

Duda FourSpriter

Mensaje por K.O.D. » Sab Ago 13, 2016 5:20 pm

Hola, estoy tocando un poco el FourSpriter, en la versión corregida del Tutorial de na_th_an (https://tcyr.wordpress.com/tutoriales/) y me pasan un par de cosas.

Lo he ensamblado con el pasmo (org 63000, como la versión 2.0), sacado la tabla de entradas, etc. He pillado el listado de la demo que va en un snapshot en la versión 2.0 y tras sacar el charset, el listado que corre en esa versión es este:

Código: Seleccionar todo

   1 CLEAR 62999
   3 LOAD "fsp2demo.fnt" CODE 64600
   4 LOAD "fsp20.bin" CODE 63000
  10 POKE 63000,1
  20 POKE 63006,0 : POKE 63007,1 : POKE 63008,2 : POKE 63009,3
  30 POKE 63042,7 : POKE 63043,6 : POKE 63044,6 : POKE 63045,6
  40 POKE 63050,1
  50 POKE 63056,16 : POKE 63057,17 : POKE 63058,18 : POKE 63059,19
  60 POKE 63092,6 : POKE 63093,4 : POKE 63094,4 : POKE 63095,4
  70 POKE 63100,0 : POKE 63150,0
 100 CLS : FOR I=0 TO 175 STEP 8 : PLOT 0,0 : DRAW PAPER INT(RND*8); INK INT(RND*8); 255,I : PLOT 255,175 : DRAW PAPER INT(RND*8); INK INT(RND*8); -255,-I : NEXT I
 110 LET PX=5 : LET PY=10 : LET EX=25 : LET EY=10
 120 LET EMX=1 : LET EMY=1
 130 POKE 63002,PX : POKE 63003,PY : POKE 63004,PX : POKE 63005,PY
 140 POKE 63052,EX : POKE 63053,EY : POKE 63054,EX : POKE 63055,EY
 150 RANDOMIZE USR 63204
 180 GO SUB 9998
 190 POKE 23658,8
 200 IF INKEY$ ="O" THEN IF PX>0 THEN LET PX=PX-1 : POKE 63006,8 : POKE 63007,9 : POKE 63008,10 : POKE 63009,11
 210 IF INKEY$ ="P" THEN IF PX<30 THEN LET PX=PX+1 : POKE 63006,0 : POKE 63007,1 
: POKE 63008,2 : POKE 63009,3
 220 IF INKEY$ ="Q" THEN IF PY>0 THEN LET PY=PY-1
 230 IF INKEY$ ="A" THEN IF PY<22 THEN LET PY=PY+1
 240 IF INKEY$ =" " THEN GO SUB 9999 : STOP
 250 LET EX=EX+EMX : IF EX=0 OR EX=30 THEN LET EMX=-EMX
 260 LET EY=EY+EMY : IF EY=0 OR EY=22 THEN LET EMY=-EMY
 300 POKE 63002,PX : POKE 63003,PY
 310 POKE 63052,EX : POKE 63053,EY
 320 RANDOMIZE USR 63446
 330 GO TO 200
9997 STOP
9998 POKE 23606,88 : POKE 23607,251 : RETURN
9999 POKE 23606,0 : POKE 23607,60 : RETURN
He retocado las lineas 150 y 320, que según la tabla de entradas son los únicos cambios entre ambas versiones (ambas con org 63000) y en la 2.1 el programa funciona, pero los caracteres no son los que deberían. Todo lo demás funciona bien. Y no sé por qué demonios puede ser, es algo relacionado con el charset y sus posiciones en memoria, creo.

Igual lo tengo delante ¿alguna pista?

Un saludo.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: Ahrefs [Bot] y 7 invitados