home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / canada-remote-systems / c128 / utils / macrol.seq < prev    next >
Encoding:
Text File  |  2019-04-13  |  6.0 KB  |  408 lines

  1. ********************************
  2. *áááááááááááááááááááááááááááááá*
  3. *áMERLIN128áMACROáLIBRARYáááááá*
  4. *áBYáAHIMSADUTAáááááááááááááááá*
  5. *áááááááááááááááááááááááááááááá*
  6. ********************************
  7. *átOáUSEáTHISáLIBRARY,áJUSTáDELETEáTHEáCOMMENTáLINES
  8. *áANDáSAVEáASá"MACRO.S"
  9. *átHEN,áINáYOURáPROGRAM,áUSEáTHEáPSEUDOáOP
  10. *ááááááááuseááá"MACRO.S"
  11. *áTOáLOADáIN.ááyOUáWILLáPROBABLYáALSOáWANTáTOáUSEáTHE
  12. *áPSEUDOáOPS:
  13.  exp off
  14.  tr on
  15. *áTOáMAKEáAáMOREáREADABLEáPRINTOUT.
  16. *===============================
  17. *áCR
  18. *
  19. *áUSE:
  20. *áááEQUIVALENTáTOábasic'Sáprintchr$(13)
  21. *áPREP:
  22. *áááCHROUT=$FFD2áINáEQUATES
  23. *áSYNTAX:
  24. *áááááááááCR
  25. *
  26. cr mac
  27.  lda #13
  28.  jsr chrout
  29.  <<<
  30. *-------------------------------
  31. *áLYZ
  32. *
  33. *áUSE:
  34. *áááLOADáYáREGISTERáWITHáZERO
  35. *áSYNTAX:
  36. *ááááááááLYZ
  37. *
  38. lyz mac
  39.  ldy #0
  40.  <<<
  41. *-------------------------------
  42. *áLXZ
  43. *
  44. *áUSE:
  45. *áááLOADáXáREGISTERáWITHáZERO
  46. *áSYNTAX:
  47. *ááááááááLXZ
  48. *
  49. lxz mac
  50.  ldx #0
  51.  <<<
  52. *-------------------------------
  53. *áLAZ
  54. *
  55. *áUSE:
  56. *áááLOADáACCUMULATORáWITHáZERO
  57. *áSYNTAX:
  58. *ááááááááLAZ
  59. *
  60. laz mac
  61.  lda #0
  62.  <<<
  63. *-------------------------------
  64. *áSAVY
  65. *
  66. *áUSE:
  67. *áááSAVEáYáREGISTER
  68. *áPREP:
  69. *áááVARIABLEá"YTEMP",áPREFERABLYáINáZEROáPAGE
  70. *áSYNTAX:
  71. *ááááááááSAVY
  72. *
  73. savy mac
  74.  sty ytemp
  75.  <<<
  76. *-------------------------------
  77. *áSAVX
  78. *
  79. *áUSE:
  80. *áááSAVEáXáREGISTER
  81. *áPREP:
  82. *áááVARIABLEá"XTEMP",áPREFERABLYáINáZEROáPAGE
  83. *áSYNTAX:
  84. *ááááááááSAVX
  85. *
  86. savx mac
  87.  stx xtemp
  88.  <<<
  89. *-------------------------------
  90. *áSAVA
  91. *
  92. *áUSE:
  93. *áááSAVEáAáREGISTER
  94. *áPREP:
  95. *áááVARIABLEá"ATEMP",áPREFERABLYáINáZEROáPAGE
  96. *áSYNTAX:
  97. *ááááááááSAVA
  98. *
  99. sava mac
  100.  sta atemp
  101.  <<<
  102. *-------------------------------
  103. *áRESY
  104. *
  105. *áUSE:
  106. *áááRESTOREáYáREGISTERá(AFTERáUSINGáSAVY)
  107. *áPREP:
  108. *áááVARIABLEá"YTEMP"
  109. *áSYNTAX:
  110. *ááááááááRESY
  111. *
  112. resy mac
  113.  ldy ytemp
  114.  <<<
  115.  
  116. *-------------------------------
  117. *áRESX
  118. *
  119. *áUSE:
  120. *áááRESTOREáXáREGISTERá(AFTERáUSINGáSAVX)
  121. *áPREP:
  122. *áááVARIABLEá"XTEMP"áINáZPAGE
  123. *áSYNTAX:
  124. *ááááááááRESX
  125. *
  126. resx mac
  127.  ldx xtemp
  128.  <<<
  129. *-------------------------------
  130. *áRESA
  131. *
  132. *áUSE:
  133. *áááRESTOREáAáREGISTERá(AFTERáUSINGáSAVA)
  134. *áPREP:
  135. *áááVARIABLEá"ATEMP"
  136. *áSYNTAX:
  137. *ááááááááRESA
  138. *
  139. resa mac
  140.  lda atemp
  141.  <<<
  142. *-------------------------------
  143. *áSET
  144. *
  145. *áUSE:
  146. *áááSETSáZPAGEáPOINTERSáTOáMEMáADDRESS
  147. *áPREP:
  148. *áááZPAGEáPOINTERSá&áMEMáADDRESSáINáEQUATES
  149. *áSYNTAX:
  150. *ááááááááSETááá(MEMáADDRESS);(ZPáPOINTER)
  151. *áEXAMPLE:
  152. *ááááááááSETáááMENU;POINTER1
  153. *
  154. set mac
  155.  lda #<]1
  156.  sta ]2
  157.  lda #>]1
  158.  sta ]2+1
  159.  <<<
  160. *-------------------------------
  161. *áPOKE
  162. *
  163. *áUSE:
  164. *áááPOKESáAáVALUEáTOáMEMáADDRESS
  165. *áSYNTAX:
  166. *ááááááááPOKEá(ADDRESS);(VALUE)
  167. *áEXAMPLE:
  168. *ááááááááPOKEá$1300;#$FF
  169. *
  170. poke mac
  171.  lda ]2
  172.  sta ]1
  173.  <<<
  174. *-------------------------------
  175. *áPEEK
  176. *
  177. *áUSE:
  178. *áááPEEKSáAáVALUEáFROMáADDRESS,áRESULTSáINáACCUMULATOR
  179. *áSYNTAX:
  180. *ááááááááPEEKá(ADDRESS)
  181. *áEXAMPLE:
  182. *ááááááááPEEKá$1300
  183. *
  184. peek mac
  185.  lda ]1
  186.  <<<
  187. *-------------------------------
  188. *áADD
  189. *
  190. *áUSE:
  191. *áááADDSáAáVALUEáAá2-BYTEáSETáOFáPOINTERS
  192. *áSYNTAX:
  193. *ááááááááADDááá(VALUE);(POINTERS)
  194. *áEXAMPLE:
  195. *ááááááááADDáááTEMP;POINTER1
  196. *
  197. add mac
  198.  clc
  199.  lda ]2
  200.  adc ]1
  201.  sta ]2
  202.  lda ]2+1
  203.  adc #0
  204.  sta ]2+1
  205.  <<<
  206. *-------------------------------
  207. *áPRINT
  208. *
  209. *áUSE:
  210. *áááOUTPUTSáTEXTáTOáCURRENTáDEVICE
  211. *áPREP:
  212. *áááCHROUT=$FFD2áINáEQUATES
  213. *áSYNTAX:
  214. *ááááááááPRINTá(TEXT)
  215. *áEXAMPLE:
  216. *ááááááááPRINTá'wHICHáMENUáITEM'
  217. *
  218. print mac
  219.  savy
  220.  jmp ]start
  221. ]text txt ]1
  222.  hex 0d00
  223. ]start lyz
  224. ]loop lda ]text,y
  225.  beq ]end
  226.  jsr chrout
  227.  iny
  228.  bne ]loop
  229. ]end resy
  230.  <<<
  231. *-------------------------------
  232. *áFAST
  233. *
  234. *áUSE:
  235. *áááEQUIVALENTáTOábasic'Sáfast
  236. *áSYNTAX:
  237. *ááááááááfast
  238. *
  239. fast mac
  240.  lda $d030
  241.  ora #%00000001
  242.  sta $d030
  243.  <<<
  244. *-------------------------------
  245. *áSLOW
  246. *
  247. *áUSE:
  248. *áááEQUIVALENTáTOábasic'Sáslow
  249. *áSYNTAX:
  250. *ááááááááslow
  251. *
  252. slow mac
  253.  lda $d030
  254.  and %11111110
  255.  sta $d030
  256.  <<<
  257. *-------------------------------
  258. *áBLOAD
  259. *
  260. *áUSE:
  261. *áááEQUIVALENTáTOábasic'Sábload
  262. *áPREP:
  263. *áááSETBNK=$FF68,áSETLFS=$FFBA,áSETNAM=$FFBD
  264. *áááLOAD=$FFD5áINáEQUATES
  265. *áSYNTAX:
  266. *ááááááábloadá'(FILENAME)';(BANK);(LOADáADDRESS)
  267. *áEXAMPLE:
  268. *ááááááábloadá'SPRITES';0;$0E00
  269. *
  270. bload mac
  271.  jmp ]start
  272. ]fname txt ]1
  273. ]start lda ]start-]fname
  274.  ldx #<]fname
  275.  ldy #>]fname
  276.  jsr setnam
  277.  lda #]2
  278.  tax
  279.  jsr setbnk
  280.  lda #0
  281.  tay
  282.  ldx #8
  283.  jsr setlfs
  284.  lda #0
  285.  ldx #<]3
  286.  ldy #>]3
  287.  jsr load
  288.  <<<
  289. *-------------------------------
  290. *áBSAVE
  291. *
  292. *áUSE:
  293. *áááEQUIVALENTáTOábasic'Sábsave
  294. *áPREP:
  295. *áááSETBNK=$FF68,áSETLFS=$FFBA,áSETNAM=$FFBD
  296. *áááSAVE=$FFDBáINáEQUATES
  297. *ááá2-BYTEáPOINTERáINáZPAGEá("pointer")
  298. *áSYNTAX:
  299. *ááááááábsaveá'(FILENAME)';(BANK);(START);(END+1)
  300. *áEXAMPLE:
  301. *ááááááábsaveá'SPRITES';0;$0E00;1000
  302. *
  303. bsave mac
  304.  jmp ]start
  305. ]fname txt '@0:'
  306.  txt ]1
  307. ]start lda #<]3
  308.  sta pointer
  309.  lda #>]3
  310.  sta pointer+1
  311.  lda ]start-]fname
  312.  ldx #<]fname
  313.  ldy #>]fname+1
  314.  jsr setnam
  315.  lda #]2
  316.  tax
  317.  jsr setbnk
  318.  lda #0
  319.  tay
  320.  ldx #8
  321.  jsr setlfs
  322.  lda #pointer
  323.  ldx #<]4
  324.  ldy #>]4
  325.  jsr save
  326.  <<<
  327. *-------------------------------
  328. *áCLS
  329. *
  330. *áUSE:
  331. *áááCLEARSáTHEáSCREEN
  332. *áPREP:
  333. *áááCHROUT=$FFD2áINáEQUATES
  334. *áSYNTAX:
  335. *ááááááááCLS
  336. *
  337. cls mac
  338.  lda #147
  339.  jsr chrout
  340.  <<<
  341. *-------------------------------
  342. *áRING
  343. *
  344. *áUSE:
  345. *áááRINGSáTHEáBELL;áSAMEáASáprintchr$(7)
  346. *áPREP:
  347. *áááCHROUT=$FFD2áINáEQUATES
  348. *áSYNTAX:
  349. *ááááááááRING
  350. *
  351. ring mac
  352.  lda #7
  353.  jsr chrout
  354.  <<<
  355. *-------------------------------
  356. *áWAIT
  357. *
  358. *áUSE:
  359. *áááSAMEáASábasic'Sáwait
  360. *ááá(WAITSáFORáANáADDRESSáTOáBEáAáSPECIFICáVALUE)
  361. *áSYNTAX:
  362. *ááááááááWAITá(ADDRESS);(VALUE)
  363. *áEXAMPLE:
  364. *ááááááááWAITá$D0;#1
  365. *
  366. wait mac
  367. ]loop lda ]1
  368.  cmp ]2
  369.  bne ]loop
  370.  <<<
  371. *-------------------------------
  372. *áSLEEP
  373. *
  374. *áUSE:
  375. *áááCREATESáAáDELAY
  376. *áSYNTAX:
  377. *áááááááSLEEPá(VALUE)
  378. *áEXAMPLE:
  379. *áááááááSLEEPá#$20
  380. *
  381. sleep mac
  382.  lda $d030
  383.  pha
  384.  slow
  385.  ldy ]1
  386. ]loop1 ldx #0
  387. ]loop2 inx
  388.  bne ]loop2
  389.  dey
  390.  bne ]loop1
  391.  pla
  392.  sta $d030
  393.  <<<
  394. *-------------------------------
  395. *áGETKEY
  396. *
  397. *áUSE:
  398. *áááWAITSáUNTILáISáKEYáISáPRESSED
  399. *áSYNTAX:
  400. *áááááááGETKEY
  401. *
  402. getkey mac
  403.  poke $d0;#0
  404. ]loop lda $d0
  405.  beq ]loop
  406.  <<<
  407. *===============================
  408.