MMBC

Evite v1 asm

Aug 11th, 2017
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "ti83pce.inc"
  2.  
  3.     .assume ADL=1
  4.     .db tExtTok, tAsm84CeCmp
  5.     .org userMem
  6.    
  7.     ; code starts here
  8.    
  9.     call _ClrScrnFull
  10.    
  11.     ld hl, 10
  12.    
  13. border_aff_loop:
  14.     dec l
  15.    
  16.     push hl
  17.    
  18.     ld (curRow), hl
  19.     ld hl, $08
  20.     ld (curCol), hl
  21.    
  22.     ld hl, timesign
  23.     call _PutS
  24.    
  25.     pop hl
  26.    
  27.     ld a, $0
  28.     cp a, l
  29.     jp nz, border_aff_loop
  30.    
  31.     call new_e1p
  32.     ld a, (e1posy) \ ld (curRow), a
  33.     ld a, (e1posx) \ ld (curCol), a
  34.     ld hl, exclamationsign
  35.     call _PutS
  36.    
  37.     call new_e2p
  38.     ld a, (e2posy) \ ld (curRow), a
  39.     ld a, (e2posx) \ ld (curCol), a
  40.     ld hl, exclamationsign
  41.     call _PutS
  42.    
  43.     ld a, (xpos)
  44.     ld (curCol), a
  45.     ld a, $9
  46.     ld (curRow), a
  47.     ld hl, Xsign
  48.     call _PutS
  49.    
  50. main_loop_start:
  51.     ld a, $6
  52.     call _DelayTenTimesAms
  53.    
  54.     di
  55.     ld hl, mpKeyRange
  56.     ld (hl), 2
  57.     xor a, a
  58. scan_wait:
  59.         cp a, (hl)
  60.         jr z, scan_wait
  61.     jp z, no_key
  62.    
  63.     ld a, (kbdG6)
  64.     cp a, kbdClear
  65.     jp z, main_loop_end
  66.    
  67.     ld a, (kbdG7)
  68.     cp a, kbdLeft
  69.     call z, moveLeft
  70.    
  71.     ld a, (kbdG7)
  72.     cp a, kbdRight
  73.     call z, moveRight
  74.    
  75. no_key:
  76.     ei
  77.    
  78.     ld a, $0 \ ld (curRow), a
  79.     ld a, $9 \ ld (curCol), a
  80.     ld hl, (score)
  81.     call _DispHL
  82.    
  83.     ld a, (e1posy) \ ld (curRow), a
  84.     ld a, (e1posx) \ ld (curCol), a
  85.     ld hl, whitespace
  86.     call _PutS
  87.     ld a, (e1posy)
  88.     inc a
  89.     ld d, a
  90.    
  91.     ld b, a
  92.     ld a, $9
  93.     cp a, b
  94.     jp nz, no_coll1
  95.    
  96.     ld a, (e1posx)
  97.     ld b, a
  98.     ld a, (xpos)
  99.     cp a, b
  100.     jp nz, no_coll1
  101.     jp main_loop_end
  102.    
  103. no_coll1:
  104.     ld a, d
  105.     ld (e1posy), a \ ld (curRow), a
  106.     ld b, a
  107.     ld a, $A
  108.     cp a, b
  109.     jp nz, continue_e1
  110.    
  111.     call new_e1p
  112.     ld hl, (score)
  113.     inc hl
  114.     ld (score), hl
  115.     ld a, (e1posy) \ ld (curRow), a
  116.     ld a, (e1posx) \ ld (curCol), a
  117.     ld hl, exclamationsign
  118.     call _PutS
  119.    
  120.     jp noc_e1
  121.    
  122. continue_e1:
  123.     ld a, (e1posx) \ ld (curCol), a
  124.     ld hl, exclamationsign
  125.     call _PutS
  126.  
  127. noc_e1:
  128.    
  129.     ld a, (e2posy) \ ld (curRow), a
  130.     ld a, (e2posx) \ ld (curCol), a
  131.     ld hl, whitespace
  132.     call _PutS
  133.     ld a, (e2posy)
  134.     inc a
  135.     ld d, a
  136.    
  137.     ld b, a
  138.     ld a, $9
  139.     cp a, b
  140.     jp nz, no_coll2
  141.    
  142.     ld a, (e2posx)
  143.     ld b, a
  144.     ld a, (xpos)
  145.     cp a, b
  146.     jp nz, no_coll2
  147.     jp main_loop_end
  148.    
  149. no_coll2:
  150.     ld a, d
  151.     ld (e2posy), a \ ld (curRow), a
  152.     ld b, a
  153.     ld a, $A
  154.     cp a, b
  155.     jp nz, continue_e2
  156.    
  157.     call new_e2p
  158.     ld hl, (score)
  159.     inc hl
  160.     ld (score), hl
  161.     ld a, (e2posy) \ ld (curRow), a
  162.     ld a, (e2posx) \ ld (curCol), a
  163.     ld hl, exclamationsign
  164.     call _PutS
  165.    
  166.     jp noc_e2
  167.    
  168. continue_e2:
  169.     ld a, (e2posx) \ ld (curCol), a
  170.     ld hl, exclamationsign
  171.     call _PutS
  172.    
  173. noc_e2:
  174.    
  175.     jp main_loop_start
  176.    
  177.     ; ---
  178.    
  179. main_loop_end:
  180.     ei
  181.     ; ---
  182.    
  183.     call _ClrScrnFull
  184.     ld a, $0 \ ld (curCol), a \ ld (curRow), a
  185.     ld hl, (score)
  186.     call _DispHL
  187.     call _NewLine
  188.    
  189.     ret
  190.  
  191.  
  192. moveLeft:
  193.     ld a, $9 \ ld (curRow), a
  194.     ld a, (xpos) \ ld (curCol), a
  195.     ld hl, whitespace
  196.     call _PutS
  197.     ld a, (xpos)
  198.     cp a, 0
  199.     jp z, noincl
  200.     dec a
  201. noincl:
  202.     ld (xpos), a \ ld (curCol), a
  203.     ld a, $9 \ ld (curRow), a
  204.     ld hl, Xsign
  205.     call _PutS
  206.     ret
  207.    
  208. moveRight:
  209.     ld a, $9 \ ld (curRow), a
  210.     ld a, (xpos) \ ld (curCol), a
  211.     ld hl, whitespace
  212.     call _PutS
  213.     ld a, (xpos)
  214.     cp a, 7
  215.     jp z, noincr
  216.     inc a
  217. noincr:
  218.     ld (xpos), a \ ld (curCol), a
  219.     ld a, $9 \ ld (curRow), a
  220.     ld hl, Xsign
  221.     call _PutS
  222.     ret
  223.    
  224. new_e1p:
  225.     call randpos
  226.     ld (e1posy), a
  227.     ld a, b
  228.     ld (e1posx), a
  229.     ret
  230.     ; ---
  231.  
  232. new_e2p:
  233.     call randpos
  234.     ld (e2posy), a
  235.     ld a, b
  236.     ld (e2posx), a
  237.     ret
  238.     ; ---
  239.    
  240. randpos:
  241.     call _Random
  242.     ld hl, 2
  243.     call _setxxxxop2
  244.     call _FPMult
  245.     call _convop1
  246.     push de
  247.     call _Random
  248.     ld hl, 8
  249.     call _setxxxxop2
  250.     call _FPMult
  251.     call _convop1
  252.     pop hl
  253.     ld a, l
  254.     ld b, e
  255.    
  256.     ret
  257.    
  258. RestoreKeyboard:
  259.     ld hl, mpKeyRange
  260.     xor a
  261.     ld (hl), a
  262.     inc l
  263.     ld (hl), 15
  264.     inc l
  265.     xor a
  266.     ld (hl), a
  267.     inc l
  268.     ld (hl), 15
  269.     inc l
  270.     ld a, 8
  271.     ld (hl), a
  272.     inc l
  273.     ld (hl), a
  274.     ret
  275.    
  276. whitespace:
  277.     .db " ", 0
  278.    
  279. timesign:
  280.     .db "*", 0
  281.    
  282. Xsign:
  283.     .db "X", 0
  284.  
  285. exclamationsign:
  286.     .db "!", 0
  287.    
  288. ; ALL VARS
  289.  
  290. kyleft:
  291.     .db 00h
  292.  
  293. kyright:
  294.     .db 00h
  295.  
  296. xpos:
  297.     .db 03h
  298.  
  299. e1posy:
  300.     .db 00h
  301.  
  302. e1posx:
  303.     .db 00h
  304.  
  305. e2posy:
  306.     .db 00h
  307.  
  308. e2posx:
  309.     .db 00h
  310. score:
  311.     .db 0000h
Advertisement
Add Comment
Please, Sign In to add comment