6Fermer8
chickendudeLe 02/07/2013 à 19:00
Est-ce que tu utilises ion ? Peux-tu essayer avec une version nostub ? Je crois que pgmio_exec utilise cmdShadow, où ion a mit quelques routines pour nettoyer tout après avoir quitté le programme et il y a aussi la table de sauts pour les routines d'ion.

Mais c'est assez facile d'écrire ta propre routine d'input si tu utilises _getCSC. Pour un exemple, tu peux regarder le source de Phoenix (score12.asm, enter_name_loop) :
;ix = où sauver le string
enter_name_loop:
        call    GET_KEY
        or      a
        jr      z,enter_name_loop
        cp      KEY_CODE_DEL
        jr      z,backup
        cp      KEY_CODE_ENTER
        ret     z
        ld      c,a
        ld      a,10
        cp      b
        jr      z,enter_name_loop
        ld      hl,chartable-10
        ld      e,c
        ld      d,0
        add     hl,de
        ld      a,(hl)
        ld      (ix),a
        ROM_CALL(TX_CHARPUT) 
        inc     b
        inc     ix
        jr      enter_name_loop
backup: xor     a
        cp      b
        jr      z,enter_name_loop
        dec     b
        dec     ix
        ld      (ix),32
        ld      hl,CURSOR_COL
        dec     (hl)
        ld      a,32
        ROM_CALL(TX_CHARPUT)
        dec     (hl)
        jr      enter_name_loop

chartable:
        .db     ":WRMH."
        .db     "..0VQLG!..ZUPKFC"
        .db     "..YTOJEBX.>SNIDA"
        .db     ".12345.."
Il faudrait faire quelques petites modifications de style (par exemple, changer "ROM_CALL" par "call") parce que Phoenix a été écrit pour être compatible entre toutes les caltos z80. N'hésite pas à demander si tu as des questions smile