home *** CD-ROM | disk | FTP | other *** search
- ********************************
- *áááááááááááááááááááááááááááááá*
- *áMERLIN128áMACROáLIBRARYáááááá*
- *áBYáAHIMSADUTAáááááááááááááááá*
- *áááááááááááááááááááááááááááááá*
- ********************************
- *átOáUSEáTHISáLIBRARY,áJUSTáDELETEáTHEáCOMMENTáLINES
- *áANDáSAVEáASá"MACRO.S"
- *átHEN,áINáYOURáPROGRAM,áUSEáTHEáPSEUDOáOP
- *ááááááááuseááá"MACRO.S"
- *áTOáLOADáIN.ááyOUáWILLáPROBABLYáALSOáWANTáTOáUSEáTHE
- *áPSEUDOáOPS:
- exp off
- tr on
- *áTOáMAKEáAáMOREáREADABLEáPRINTOUT.
- *===============================
- *áCR
- *
- *áUSE:
- *áááEQUIVALENTáTOábasic'Sáprintchr$(13)
- *áPREP:
- *áááCHROUT=$FFD2áINáEQUATES
- *áSYNTAX:
- *áááááááááCR
- *
- cr mac
- lda #13
- jsr chrout
- <<<
- *-------------------------------
- *áLYZ
- *
- *áUSE:
- *áááLOADáYáREGISTERáWITHáZERO
- *áSYNTAX:
- *ááááááááLYZ
- *
- lyz mac
- ldy #0
- <<<
- *-------------------------------
- *áLXZ
- *
- *áUSE:
- *áááLOADáXáREGISTERáWITHáZERO
- *áSYNTAX:
- *ááááááááLXZ
- *
- lxz mac
- ldx #0
- <<<
- *-------------------------------
- *áLAZ
- *
- *áUSE:
- *áááLOADáACCUMULATORáWITHáZERO
- *áSYNTAX:
- *ááááááááLAZ
- *
- laz mac
- lda #0
- <<<
- *-------------------------------
- *áSAVY
- *
- *áUSE:
- *áááSAVEáYáREGISTER
- *áPREP:
- *áááVARIABLEá"YTEMP",áPREFERABLYáINáZEROáPAGE
- *áSYNTAX:
- *ááááááááSAVY
- *
- savy mac
- sty ytemp
- <<<
- *-------------------------------
- *áSAVX
- *
- *áUSE:
- *áááSAVEáXáREGISTER
- *áPREP:
- *áááVARIABLEá"XTEMP",áPREFERABLYáINáZEROáPAGE
- *áSYNTAX:
- *ááááááááSAVX
- *
- savx mac
- stx xtemp
- <<<
- *-------------------------------
- *áSAVA
- *
- *áUSE:
- *áááSAVEáAáREGISTER
- *áPREP:
- *áááVARIABLEá"ATEMP",áPREFERABLYáINáZEROáPAGE
- *áSYNTAX:
- *ááááááááSAVA
- *
- sava mac
- sta atemp
- <<<
- *-------------------------------
- *áRESY
- *
- *áUSE:
- *áááRESTOREáYáREGISTERá(AFTERáUSINGáSAVY)
- *áPREP:
- *áááVARIABLEá"YTEMP"
- *áSYNTAX:
- *ááááááááRESY
- *
- resy mac
- ldy ytemp
- <<<
-
- *-------------------------------
- *áRESX
- *
- *áUSE:
- *áááRESTOREáXáREGISTERá(AFTERáUSINGáSAVX)
- *áPREP:
- *áááVARIABLEá"XTEMP"áINáZPAGE
- *áSYNTAX:
- *ááááááááRESX
- *
- resx mac
- ldx xtemp
- <<<
- *-------------------------------
- *áRESA
- *
- *áUSE:
- *áááRESTOREáAáREGISTERá(AFTERáUSINGáSAVA)
- *áPREP:
- *áááVARIABLEá"ATEMP"
- *áSYNTAX:
- *ááááááááRESA
- *
- resa mac
- lda atemp
- <<<
- *-------------------------------
- *áSET
- *
- *áUSE:
- *áááSETSáZPAGEáPOINTERSáTOáMEMáADDRESS
- *áPREP:
- *áááZPAGEáPOINTERSá&áMEMáADDRESSáINáEQUATES
- *áSYNTAX:
- *ááááááááSETááá(MEMáADDRESS);(ZPáPOINTER)
- *áEXAMPLE:
- *ááááááááSETáááMENU;POINTER1
- *
- set mac
- lda #<]1
- sta ]2
- lda #>]1
- sta ]2+1
- <<<
- *-------------------------------
- *áPOKE
- *
- *áUSE:
- *áááPOKESáAáVALUEáTOáMEMáADDRESS
- *áSYNTAX:
- *ááááááááPOKEá(ADDRESS);(VALUE)
- *áEXAMPLE:
- *ááááááááPOKEá$1300;#$FF
- *
- poke mac
- lda ]2
- sta ]1
- <<<
- *-------------------------------
- *áPEEK
- *
- *áUSE:
- *áááPEEKSáAáVALUEáFROMáADDRESS,áRESULTSáINáACCUMULATOR
- *áSYNTAX:
- *ááááááááPEEKá(ADDRESS)
- *áEXAMPLE:
- *ááááááááPEEKá$1300
- *
- peek mac
- lda ]1
- <<<
- *-------------------------------
- *áADD
- *
- *áUSE:
- *áááADDSáAáVALUEáAá2-BYTEáSETáOFáPOINTERS
- *áSYNTAX:
- *ááááááááADDááá(VALUE);(POINTERS)
- *áEXAMPLE:
- *ááááááááADDáááTEMP;POINTER1
- *
- add mac
- clc
- lda ]2
- adc ]1
- sta ]2
- lda ]2+1
- adc #0
- sta ]2+1
- <<<
- *-------------------------------
- *áPRINT
- *
- *áUSE:
- *áááOUTPUTSáTEXTáTOáCURRENTáDEVICE
- *áPREP:
- *áááCHROUT=$FFD2áINáEQUATES
- *áSYNTAX:
- *ááááááááPRINTá(TEXT)
- *áEXAMPLE:
- *ááááááááPRINTá'wHICHáMENUáITEM'
- *
- print mac
- savy
- jmp ]start
- ]text txt ]1
- hex 0d00
- ]start lyz
- ]loop lda ]text,y
- beq ]end
- jsr chrout
- iny
- bne ]loop
- ]end resy
- <<<
- *-------------------------------
- *áFAST
- *
- *áUSE:
- *áááEQUIVALENTáTOábasic'Sáfast
- *áSYNTAX:
- *ááááááááfast
- *
- fast mac
- lda $d030
- ora #%00000001
- sta $d030
- <<<
- *-------------------------------
- *áSLOW
- *
- *áUSE:
- *áááEQUIVALENTáTOábasic'Sáslow
- *áSYNTAX:
- *ááááááááslow
- *
- slow mac
- lda $d030
- and %11111110
- sta $d030
- <<<
- *-------------------------------
- *áBLOAD
- *
- *áUSE:
- *áááEQUIVALENTáTOábasic'Sábload
- *áPREP:
- *áááSETBNK=$FF68,áSETLFS=$FFBA,áSETNAM=$FFBD
- *áááLOAD=$FFD5áINáEQUATES
- *áSYNTAX:
- *ááááááábloadá'(FILENAME)';(BANK);(LOADáADDRESS)
- *áEXAMPLE:
- *ááááááábloadá'SPRITES';0;$0E00
- *
- bload mac
- jmp ]start
- ]fname txt ]1
- ]start lda ]start-]fname
- ldx #<]fname
- ldy #>]fname
- jsr setnam
- lda #]2
- tax
- jsr setbnk
- lda #0
- tay
- ldx #8
- jsr setlfs
- lda #0
- ldx #<]3
- ldy #>]3
- jsr load
- <<<
- *-------------------------------
- *áBSAVE
- *
- *áUSE:
- *áááEQUIVALENTáTOábasic'Sábsave
- *áPREP:
- *áááSETBNK=$FF68,áSETLFS=$FFBA,áSETNAM=$FFBD
- *áááSAVE=$FFDBáINáEQUATES
- *ááá2-BYTEáPOINTERáINáZPAGEá("pointer")
- *áSYNTAX:
- *ááááááábsaveá'(FILENAME)';(BANK);(START);(END+1)
- *áEXAMPLE:
- *ááááááábsaveá'SPRITES';0;$0E00;1000
- *
- bsave mac
- jmp ]start
- ]fname txt '@0:'
- txt ]1
- ]start lda #<]3
- sta pointer
- lda #>]3
- sta pointer+1
- lda ]start-]fname
- ldx #<]fname
- ldy #>]fname+1
- jsr setnam
- lda #]2
- tax
- jsr setbnk
- lda #0
- tay
- ldx #8
- jsr setlfs
- lda #pointer
- ldx #<]4
- ldy #>]4
- jsr save
- <<<
- *-------------------------------
- *áCLS
- *
- *áUSE:
- *áááCLEARSáTHEáSCREEN
- *áPREP:
- *áááCHROUT=$FFD2áINáEQUATES
- *áSYNTAX:
- *ááááááááCLS
- *
- cls mac
- lda #147
- jsr chrout
- <<<
- *-------------------------------
- *áRING
- *
- *áUSE:
- *áááRINGSáTHEáBELL;áSAMEáASáprintchr$(7)
- *áPREP:
- *áááCHROUT=$FFD2áINáEQUATES
- *áSYNTAX:
- *ááááááááRING
- *
- ring mac
- lda #7
- jsr chrout
- <<<
- *-------------------------------
- *áWAIT
- *
- *áUSE:
- *áááSAMEáASábasic'Sáwait
- *ááá(WAITSáFORáANáADDRESSáTOáBEáAáSPECIFICáVALUE)
- *áSYNTAX:
- *ááááááááWAITá(ADDRESS);(VALUE)
- *áEXAMPLE:
- *ááááááááWAITá$D0;#1
- *
- wait mac
- ]loop lda ]1
- cmp ]2
- bne ]loop
- <<<
- *-------------------------------
- *áSLEEP
- *
- *áUSE:
- *áááCREATESáAáDELAY
- *áSYNTAX:
- *áááááááSLEEPá(VALUE)
- *áEXAMPLE:
- *áááááááSLEEPá#$20
- *
- sleep mac
- lda $d030
- pha
- slow
- ldy ]1
- ]loop1 ldx #0
- ]loop2 inx
- bne ]loop2
- dey
- bne ]loop1
- pla
- sta $d030
- <<<
- *-------------------------------
- *áGETKEY
- *
- *áUSE:
- *áááWAITSáUNTILáISáKEYáISáPRESSED
- *áSYNTAX:
- *áááááááGETKEY
- *
- getkey mac
- poke $d0;#0
- ]loop lda $d0
- beq ]loop
- <<<
- *===============================