Las macros son simple subrutinas para mac65, que permiten a través de comandos, poder ejecutar líneas de código sin tener que volver a escribir una y otra vez, ya que la macro realiza este proceso por nosotros y también puede ejecutar un trabajo que para nosotros puede ser complejo y que se nos puede olvidar o enredarnos más de una vez.
Basic, que es un traductor de código de máquina y muy fácil de usar, procesa estas subrutinas y las traspasa en forma automática para nosotros, pero al querer trabajar en asm, a nosotros los que poco conocemos de assembler se nos hace muy complicado poder llegar a concretar lo que queremos.
Acá les dejo algunas macros que nos permiten programar en assembler con código de basic, y las explicaciones respectivas.
Lo primero que tenemos que tener claro, es en que editor vamos a trabajar, si utilizaremos el editplus para hacerlo en el computador o en mac65 directamente desde el atari, acá mostraremos las dos formas de cómo se puede anexar la macro.
Lo primero que crearemos será el documento principal que lo llamaremos
prueba1.asx (editpus)
prueba1.mac (mac65)
para anexar nuestras macros lo haremos de la siguiente manera
Código: Seleccionar todo
*=$2000
.INCLUDE #MABASIC.ASX
Código: Seleccionar todo
*=$2000
.INCLUDE #D:MABASIC.MAC
MABASIC.ASX (editplus)
MABASIC.MAC(mac65)
y vamos generando las macros, acá les dejo algunas para que peguen en MABASIC
Código: Seleccionar todo
;MACROS BASIC
;
;MACRO POKE
.MACRO POKE
LDA #%2
STA %1
.ENDM
;
;MACRO POSITION
.MACRO POSITION
LDA #%1
STA 85
LDA #%2
STA 84
.ENDM
;
;MACRO GOSUB
.MACRO GOSUB
JSR %1
.ENDM
;
;MACRO GOTO
.MACRO GOTO
JMP %1
.ENDM
;
;MACRO RETURN
.MACRO RETURN
RTS
.ENDM
Código: Seleccionar todo
*=$2000
.OPT NO LIST
.INCLUDE #D:MABASIC.MAC
.OPT LIST
;ejemplo con macros
INICIO
;LLAMAMOS A LA SUBRUTINA POKE
POKE 710,0
LOOP
GOTO LOOP
*=$2E0
.WORD INICIO
*=$2000 posicion de la pagina de donde comenzara a ejecer.
.OPT NO LIST no permite que se muestre en pantalla el listado al compilar
.INCLUDE #D:MABASIC.MAC en elcaso de mac65 nos incluye el código a la hoja actual.
INICIO Label donde se iniciará el proceso
POKE 710,0 subrutina que coloca la pantalla en negro
LOOP Label para generar un ciclo cerrado
GOTO LOOP salta a la posición que queremos.
para ensamblar los codigos
editplus CONTROL+1
en mac65 ASM,,#D:PRUEBA.EXE
y quedaria algo asi
en editplus
Código: Seleccionar todo
*=$2000
.OPT LIST
;ejemplo con macros
INICIO
;LLAMAMOS A LA SUBRUTINA POKE
POKE 710,0
M LDA #%2
M STA %1
LOOP
GOTO LOOP
JMP %1
*=$2E0
.WORD INICIO