home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1990 September / 64er_Magazin_90-09_1990_Markt__Technik_de_Side_A.d64 / hamdem1.src < prev    next >
Text File  |  2022-10-26  |  4KB  |  434 lines

  1.  
  2. :pws m 2
  3. lda #<@0
  4. sta @1
  5. lda #>@0
  6. sta @1+1
  7. /
  8. :add m 2
  9. clc
  10. lda @0
  11. adc #<@1
  12. sta @0
  13. lda @0+1
  14. adc #>@1
  15. sta @0+1
  16. /
  17. :adb mf 2
  18. clc
  19. lda @0
  20. adc #<@1
  21. sta @0
  22. bcc adbc1
  23. inc @0+1
  24. clc
  25. :adbc1
  26. /
  27. :sbb mf 2
  28. sec
  29. lda @0
  30. sbc #<@1
  31. sta @0
  32. bcs sbbc1
  33. dec @0+1
  34. :sbbc1
  35. /
  36. :sub m 2
  37. sec
  38. lda @0
  39. sbc #<@1
  40. sta @0
  41. lda @0+1
  42. sbc #>@1
  43. sta @0+1
  44. /
  45. :dxp m 1
  46. dex
  47. bpl @0
  48. /
  49. :ixb m 2
  50. inx
  51. cpx #@0
  52. bne @1
  53. /
  54. :dxn m 1
  55. dex
  56. bne @0
  57. /
  58. :ixn m 1
  59. inx
  60. bne @0
  61. /
  62. :dyp m 1
  63. dey
  64. bpl @0
  65. /
  66. :iyb m 2
  67. iny
  68. cpy #@0
  69. bne @1
  70. /
  71. :dyn m 1
  72. dey
  73. bne @0
  74. /
  75. :iyn m 1
  76. iny
  77. bne @0
  78. /
  79. :bae m 2
  80. cmp #@0
  81. beq @1
  82. /
  83. :ban m 2
  84. cmp #@0
  85. bne @1
  86. /
  87. :bxe m 2
  88. cpx #@0
  89. beq @1
  90. /
  91. :bxn m 2
  92. cpx #@0
  93. bne @1
  94. /
  95. :bye m 2
  96. cpy #@0
  97. beq @1
  98. /
  99. :byn m 2
  100. cpy #@0
  101. bne@@1
  102. /
  103. :lsy m 2
  104. lda (@0),y
  105. sta (@1),y
  106. /
  107. :inw mf 1
  108. inc @0
  109. bne inwc1
  110. inc @0+1
  111. :inwc1
  112. /
  113. :dew mf 1
  114. dec @0
  115. lda @0
  116. cmp #$ff
  117. bne dewc1
  118. dec @0+1
  119. :dewc1
  120. /
  121. :r m 0
  122. rts
  123. /
  124. :com mf 2  ;if p1>=p2l then sec
  125. lda @0+1   ;
  126. cmp @1+1   ;
  127. beq mccs   ;
  128. jmp ecomm  ;
  129. :mccs      ;
  130. lda @0     ;
  131. cmp @1
  132. :ecomm
  133. /
  134.  
  135. :mov m 2
  136. lda @0
  137. sta @1
  138. /
  139.  
  140. :put m 2
  141. lda #@0
  142. sta @1
  143. /
  144.  
  145. :prt m 1
  146. ldx #<@0
  147. ldy #>@0
  148. jsr ptext
  149. /
  150.  
  151. :lxy m 1
  152. ldx #<@0
  153. ldy #>@0
  154. /
  155.  
  156. :stconv=$8c00 ;graphic data
  157.  
  158. :bmap=$6000+24
  159. :vr0=$4000+3
  160. :crb=$8000+3
  161. :cr=$d800+3
  162. :p1l=$61
  163. :p1h=$62
  164. :p2l=$63
  165. :p2h=$64
  166. :p3l=$65
  167. :p3h=$66
  168. :p4l=$67
  169. :p4h=$68
  170. :p5l=$69
  171. :p5h=$6a
  172. :p6l=$6b
  173. :p6h=$6c
  174.  
  175. :ia=$6d
  176. :cnt1=$6e
  177. :cnt2=$6f
  178. :cnt3=$70
  179.  
  180. org $8400
  181. jsr $c000
  182. ldx #0
  183. stx p2l
  184. stx p3l
  185. put >vr0,p2h
  186. put >stconv,p3h
  187. :epl1
  188. ldy #0
  189. lda (p3l),y
  190. ban $ea,epc1
  191. iny
  192. lda (p3l),y
  193. sta p1h
  194. iny
  195. lda (p3l),y
  196. sta p1l
  197. :epl2
  198. lda #0
  199. sta (p2l),x
  200. inw p2l
  201. dew p1l
  202.  
  203. lda p1h
  204. bne epl2
  205. lda p1l
  206. bne epl2
  207. adb p3l,2
  208. jmp epc3
  209. :epc1
  210. sta (p2l),y
  211. inw p2l
  212. :epc3
  213. inw p3l
  214. lda p3l
  215. ban $ff,epl1
  216. lda p3h
  217. ban $8f,epl1
  218.  
  219. ldx #0
  220. :hupl
  221. lda crb,x
  222. sta cr,x
  223. lda crb+256,x
  224. sta cr+256,x
  225. lda crb+512,x
  226. sta cr+512,x
  227. lda crb+768,x
  228. sta cr+768,x
  229. ixn hupl
  230.  
  231. :cop456
  232.  
  233. lda #0
  234. sta ofvl
  235. sta ofbl
  236. sta ofbh
  237. :cpl6
  238. put 3,cnt2
  239. :cpl5
  240. lda cnt2
  241. asl
  242. tax
  243. clc
  244. lda icsv,x
  245. adc ofvl
  246. sta p2l
  247. lda icsv+1,x
  248. adc #0
  249. sta p2h
  250.  
  251. lda icsc,x
  252. adc ofvl
  253. sta p3l
  254. lda icsc+1,x
  255. adc #0
  256. sta p3h
  257.  
  258. lda icsb,x
  259. adc ofbl
  260. sta p1l
  261. lda icsb+1,x
  262. adc ofbh
  263. sta p1h
  264.  
  265. jsr coi
  266.  
  267. dec cnt2
  268. bpl cpl5
  269. adb ofbl,64
  270. clc
  271. lda ofvl
  272. adc #8
  273. sta ofvl
  274. cmp #32
  275. bcc cpl6
  276.  
  277. lda #$ff
  278. sta $d401+14
  279. lda #$80
  280. sta $d404+14
  281.  
  282. :ral1
  283. lda #25
  284. sta cnt1
  285. pws vr0,p1l
  286. pws cr,p2l
  287. :ral4
  288. ldy #0
  289. :ral3
  290. ldx #8
  291. :ral2
  292. lda (p1l),y
  293. jsr gnc
  294. sta (p1l),y
  295. clc
  296. lda p1h
  297. adc #4
  298. sta p1h
  299. dxn ral2
  300.  
  301. sub p1l,$2000
  302. lda (p2l),y
  303. jsr gnc
  304. sta (p2l),y
  305. iyb 37,ral3
  306.  
  307. adb p1l,40
  308. adb p2l,40
  309.  
  310. dec cnt1
  311. bne ral4
  312. jmp ral1
  313.  
  314. :gnc
  315. stx cnt3
  316. sta cnt2
  317. lsr
  318. lsr
  319. lsr
  320. lsr
  321. jsr igt
  322. asl
  323. asl
  324. asl
  325. asl
  326. sta p3l
  327. lda cnt2
  328. and #$f
  329. jsr igt
  330. ora p3l
  331. ldx cnt3
  332. r
  333.  
  334. :igt
  335. tax
  336. lda $d41b
  337. and #3
  338. beq tab0
  339. bae 1,tab1
  340. bae 2,tab2
  341. lda ctab3,x
  342. r
  343. :tab0
  344. lda ctab0,x
  345. r
  346. :tab1
  347. lda ctab1,x
  348. r
  349. :tab2
  350. lda ctab2,x
  351. r
  352.  
  353. :coi
  354. put 6,cnt1
  355. pws 320+bmap,p4l
  356. pws 40+vr0,p5l
  357. pws 40+cr,p6l
  358.  
  359. :cpl4
  360. ldx #8
  361. :cpl3
  362.  
  363. ldy #7
  364. :cpl1
  365. lsy p4l,p1l
  366. dyp cpl1
  367.  
  368. ldy #0
  369. lda #8
  370. sta ia
  371. :cpl2
  372. lsy p5l,p2l
  373. clc
  374. lda p5h
  375. adc #4
  376. sta p5h
  377. lda p2h
  378. adc #4
  379. sta p2h
  380. dec ia
  381. bne cpl2
  382.  
  383. lsy p6l,p3l
  384.  
  385. sub p5l,$1fff
  386. sub p2l,$1fff
  387. inw p3l
  388. inw p6l
  389. adb p1l,8
  390. adb p4l,8
  391.  
  392. dxn cpl3
  393.  
  394. add p4l,320-64
  395. add p1l,320-64
  396. add p3l,40-8
  397. add p6l,40-8
  398. add p5l,40-8
  399. add p2l,40-8
  400.  
  401. dec cnt1
  402. beq *+5
  403. jmp cpl4
  404.  
  405. rts
  406.  
  407. :icsb
  408. w 01*320+bmap
  409. w 07*320+bmap
  410. w 13*320+bmap
  411. w 19*320+bmap
  412. :icsv
  413. w 01*40+vr0
  414. w 07*40+vr0
  415. w 13*40+vr0
  416. w 19*40+vr0
  417. :icsc
  418. w 01*40+cr
  419. w 07*40+cr
  420. w 13*40+cr
  421. w 19*40+cr
  422.  
  423. :ofvl b 0
  424. :ofbl b 0
  425. :ofbh b 0
  426.  
  427.          ;0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
  428. :ctab0 b $0,$1,$4,$f,$2,$8,$9,$7,$5,$b,$e,$9,$2,$7,$a,$f
  429. :ctab1 b $0,$1,$c,$3,$4,$a,$b,$d,$a,$6,$8,$9,$4,$d,$5,$3
  430. :ctab2 b $0,$1,$4,$f,$c,$5,$6,$7,$e,$b,$5,$6,$2,$7,$8,$3
  431. :ctab3 b $0,$1,$2,$3,$c,$e,$9,$d,$8,$9,$e,$b,$c,$d,$8,$f
  432.  
  433.  
  434.