CAMBIAR L”ADREÇA DE LA PILA I TORNAR AL BASIC MSX

imatge de lagasetamsx

Voldria agrair en Pere de la seva invitació a publicar en aquest blog. M’he trobat l’accés tancat a totes les pàgines oficials del msx. Si la que estàs pensant, també. M’han esborrat publicacions, o prohibit l’accés. També qualsevol web que estàs pensant, també aquesta. Sincerament crec que des de la nostra llengua mai rebutjaríem un altre llengua, per la senzilla raó que com ho hem patit, no volem aquest mal per ningú sigui qui sigui.

El primer article que exposo ve del dubte que tinc. Des de BASIC si cridem rutina en codi màquina que canvia posició de la pila (STACK) i després volem tornar al BASIC (RET) pot tenir conseqüències desastroses.

Exemple:

ld sp,0f380h

1/ per que pot haver situat la pila STACK a una adreça prohibida pel BASIC

2/ per que les dades anteriors del BASIC que tenia la pila s’han perdut

És resol 1/ amb la següent adreça:

F674 STKTOP TOP LOCATION TO BE USED FOR THE STACK

F675

font:

https://www.msx.org/wiki/System_variables,_code_%26_hooks_in_RAM_after_boot

farem des de BASIC:

PRINT HEX$(PEEK(&HF674))

99

PRINT HEX$(PEEK(&HF675))

DB

Ara ja sabem que l’adreça màxima de la pila és &HDB99.

És resol 2/ copiant les dades antigues de la pila a la nova posició.

Suposem que decidim que copiem &H1A quantitat de dades a la pila nova.

Tenim,

&HDB99 - &H001A =&HDB7F , aquí ens quedarà la pila quan haguem copiat &H1A quantitat de dades.

La rutina en assemblador asMSX és aquesta:

RUTINA:

ld b,01Ah

ld hl,0DB7Fh

COPYSP: pop de

ld [hl],e

inc hl

ld [hl],d

inc hl

djnz COPYSP

ld sp,0DB7Fh

ret

Enquesta

¿Quin lloc identifiqueu inmediatament amb el MSX? Algunes propostes:
Hipercor Meridiana
0%
Edificis alts de Hipercor Meridiana
0%
Passeig de Fabra i Puig
0%
Continente Mataró
0%
Ronda Sant Antoni
0%
Corte Inglès Plaça Catalunya
0%
Mercat de Sant Antoni
0%
Cotxeres Sants
0%
Gràcia, Fontana
50%
Torre Mena, Lefià, Badalona
0%
Sabadell
0%
Tarragona
0%
Madrid
0%
Sevilla
0%
Zaragossa
0%
Shizuoka ken, Japó
0%
Japò
0%
Altres...
50%
Vots totals: 2

Comentaris recents