Aporte --- Macros para mac65

Para cualquier plataforma ATARI, computadores o consolas.

Aporte --- Macros para mac65

Notapor dogdark el Sab May 19, 2018 2:33 am

En este artículo, mencionaremos algunas macros que nos ayudaran en la escritura de nuestro código asm, con subrutinas de Basic.
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



Y en mac65

Código: Seleccionar todo
        *=$2000
        .INCLUDE #D:MABASIC.MAC



Ahora crearemos el documento de las macros con el nombre de

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ómo funcionan las macros, muy simple, volvamos nuevamente a nuestro documento principal llamado prueba1 y crearemos un ejemplo.

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


Explicamos el código.
*=$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


Bueno si tienen más ideas que aportar, son siempre bienvenidas.
Avatar de Usuario
dogdark
hard player
hard player
 
Mensajes: 372
Registrado: Dom Nov 12, 2006 1:01 pm
Ubicación: en todos lados

Re: Aporte --- Macros para mac65

Notapor BonesCollector el Dom May 20, 2018 12:24 am

y yo que solo puedo hacer ;,(

10 print "hola"
20 goto 10

buen aporte
Avatar de Usuario
BonesCollector
expert
expert
 
Mensajes: 3129
Registrado: Vie Nov 10, 2006 10:02 pm
Ubicación: Santiago de Chile

Re: Aporte --- Macros para mac65

Notapor dogdark el Mar May 22, 2018 5:53 am

En éste caso para grafica 0 de basic puedes hacer una macro de print

Código: Seleccionar todo
       .MACRO PRINT
       LDX #<%1
       LDY #>%1
       JSR $C642
       .ENDM



Y la aplicas

Código: Seleccionar todo
....

INICIO
         PRINT HOLA MUNDO
LOOP
        GOTO LOOP
......

Avatar de Usuario
dogdark
hard player
hard player
 
Mensajes: 372
Registrado: Dom Nov 12, 2006 1:01 pm
Ubicación: en todos lados


Volver a SOFTWARE Y JUEGOS ATARI

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado