Advertisement
Guest User

Video_Game.ASM

a guest
Dec 19th, 2012
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.89 KB | None | 0 0
  1. ;---------------------------------------------------;
  2. ; Name: Video_Game.ASM ;
  3. ; Use: DTI's Video Game On A PIC ;
  4. ;---------------------------------------------------;
  5. ; Copyright: (C)2012 DTI ;
  6. ; Dysfunctional Technologies, Inc. ;
  7. ; All Rights Reserved ;
  8. ;---------------------------------------------------;
  9. ; Author: Timothy S. Carlson ;
  10. ; Dysfunctional Technologies, Inc. ;
  11. ; Date: December 12, 2012 ;
  12. ; Version: V1.00 ;
  13. ;---------------------------------------------------;
  14. ;---------------------------------------------------;
  15. #DEFINE _VIDEO_GAME.ASM_ ;
  16. #DEFINE _MAIN_MODULE_ ;
  17. ;---------------------------------------------------;
  18.  
  19. ;---------------------------------------------------;
  20. ; Includes ;
  21. ;---------------------------------------------------;
  22. #INCLUDE Common.INC ;
  23. ;---------------------------------------------------;
  24.  
  25. ;---------------------------------------------------;
  26. ; Macros ;
  27. ;---------------------------------------------------;
  28. DELAY MACRO DTIME ;
  29. MOVLW DTIME ;
  30. MOVWF DTemp ;
  31. ;
  32. NOP ;
  33. NOP ;
  34. DECFSZ DTemp, F ;
  35. GOTO $-3 ;
  36. ENDM ;
  37. ;
  38. SET_SIGNAL MACRO COLOR ;
  39. MOVFW PORTA ;
  40. ANDLW VIDEO_MASK ;
  41. IORLW COLOR ;
  42. MOVWF PORTA ;
  43. ENDM ;
  44. ;---------------------------------------------------;
  45.  
  46. ;---------------------------------------------------;
  47. ; Defines ;
  48. ;---------------------------------------------------;
  49. #DEFINE RBUTT_1 H'01' ;
  50. #DEFINE RBUTT_1_BIT 0 ; GPIO 0 - PIN 7
  51. #DEFINE RBUTT_2 H'02' ;
  52. #DEFINE RBUTT_2_BIT 1 ; GPIO 1 - PIN 6
  53. #DEFINE LBUTT_2 H'04' ;
  54. #DEFINE LBUTT_2_BIT 2 ; GPIO 2 - PIN 5
  55. #DEFINE LBUTT_1 H'08' ;
  56. #DEFINE LBUTT_1_BIT 3 ; GPIO 3 - PIN 4
  57. ;
  58. #DEFINE VIDEO_1 H'10' ; 1K ohm
  59. #DEFINE VIDEO_1_BIT 4 ; GPIO 5 - PIN 2
  60. #DEFINE VIDEO_0 H'20' ; 470 ohm
  61. #DEFINE VIDEO_0_BIT 5 ; GPIO 4 - PIN 3
  62. ;
  63. #DEFINE VIDEO_MASK H'CF' ;
  64. #DEFINE WHITE_MASK B'11011111' ;
  65. #DEFINE COLOR_WHITE (VIDEO_0 + VIDEO_1) ;
  66. #DEFINE GRAY_MASK B'10111111' ;
  67. #DEFINE COLOR_GRAY VIDEO_0 ;
  68. #DEFINE BLACK_MASK B'10011111' ;
  69. #DEFINE COLOR_BLACK VIDEO_1 ;
  70. #DEFINE COLOR_SYNC 0 ;
  71. #DEFINE MAX_LINES 255 ;
  72. ;---------------------------------------------------;
  73.  
  74. ;---------------------------------------------------;
  75. USER_DATA1 UDATA H'020' ;
  76. ;---------------------------------------------------;
  77. Temp1 res 1 ; 20
  78. DTemp res 1 ; 21
  79. DL_Count res 1 ; 22
  80. Line_Data res 4 ; 23-26
  81. Bit_Count res 1 ; 27
  82. Ball_X res 1 ; 28
  83. Ball_Y res 1 ; 29
  84. Ball_Dir_X res 1 ; 2A
  85. Ball_Dir_Y res 1 ; 2B
  86. Paddle_1_Y res 1 ; 2C
  87. Paddle_2_Y res 1 ; 2D
  88. Score_1 res 1 ; 2E
  89. Score_2 res 1 ; 2F
  90. ;---------------------------------------------------;
  91. USER_DATA2 UDATA_SHR H'070' ;
  92. ;---------------------------------------------------;
  93. Buffer res 16 ; 70-7F
  94. ;---------------------------------------------------;
  95.  
  96. ;---------------------------------------------------;
  97. RESET_VECT CODE H'000' ;
  98. ;---------------------------------------------------;
  99. CALL _Initialize_System ;
  100. NOP ;
  101. NOP ;
  102. GOTO _MAIN ;
  103. ;---------------------------------------------------;
  104.  
  105. ;---------------------------------------------------;
  106. USER_CODE CODE ;
  107. ;---------------------------------------------------;
  108. _MAIN: ;
  109. ;---------------------------------------------------;
  110. GOTO _Next_Frame ;
  111. ;---------------------------------------------------;
  112.  
  113. ;---------------------------------------------------;
  114. _Next_Frame: ;
  115. ;---------------------------------------------------;
  116. CALL _Update_Ball ;
  117. CALL _Update_Paddles ;
  118. CALL _Blank_Half_Line ;
  119. CALL _Update_Score_1 ;
  120. CALL _Update_Score_2 ;
  121. CALL _Inverted_Half_Line ;
  122. CALL _Inverted_Half_Line ;
  123. CALL _Inverted_Half_Line ;
  124. NOP ;
  125. NOP ;
  126. CALL _Inverted_Sync_2us ;
  127. DELAY 41 ;
  128. BANKSEL TRISA ;
  129. BCF TRISA, 2 ;
  130. BANKSEL PORTA ;
  131. BCF PORTA, 2 ;
  132. NOP ;
  133. BSF PORTA, 2 ;
  134. BANKSEL TRISA ;
  135. BSF TRISA, 2 ;
  136. BANKSEL MEMORY ;
  137. NOP ;
  138. NOP ;
  139. NOP ;
  140. NOP ;
  141. NOP ;
  142. NOP ;
  143. NOP ;
  144. NOP ;
  145. NOP ;
  146. NOP ;
  147. NOP ;
  148. NOP ;
  149. NOP ;
  150. NOP ;
  151. NOP ;
  152. NOP ;
  153. NOP ;
  154. NOP ;
  155. NOP ;
  156. NOP ;
  157. SET_SIGNAL COLOR_BLACK ;
  158. NOP ;
  159. NOP ;
  160. NOP ;
  161. NOP ;
  162. NOP ;
  163. NOP ;
  164. NOP ;
  165. NOP ;
  166. CALL _Blank_Half_Line ;
  167. CALL _Blank_Half_Line ;
  168. CALL _Blank_Half_Line ;
  169. CALL _Blank_Half_Line ;
  170. CALL _Blank_Half_Line ;
  171. ;
  172. CALL _Blank_Line ;
  173. CALL _Blank_Line ;
  174. CALL _Blank_Line ;
  175. CALL _Blank_Line ;
  176. CALL _Blank_Line ;
  177. CALL _Blank_Line ;
  178. CALL _Blank_Line ;
  179. CALL _Blank_Line ;
  180. CALL _Blank_Line ;
  181. CALL _Blank_Line ;
  182. CALL _Blank_Line ;
  183. CALL _Blank_Line ;
  184. CALL _Blank_Line ;
  185. CALL _Blank_Line ;
  186. CALL _Blank_Line ;
  187. CALL _Blank_Line ;
  188. CALL _Blank_Line ;
  189. CALL _Blank_Line ;
  190. CALL _Blank_Line ;
  191. CALL _Blank_Line ;
  192. CALL _Blank_Line ;
  193. CALL _Data_Lines ;
  194. CALL _Blank_Line ;
  195. CALL _Blank_Line ;
  196. CALL _Blank_Line ;
  197. CALL _Blank_Line ;
  198. CALL _Blank_Line ;
  199. CALL _Blank_Line ;
  200. CALL _Blank_Line ;
  201. CALL _Blank_Line ;
  202. ;
  203. GOTO _Next_Frame ;
  204. ;---------------------------------------------------;
  205. ;
  206. ;---------------------------------------------------;
  207. _Data_Lines: ;
  208. ;---------------------------------------------------;
  209. NOP ;
  210. CLRF DL_Count ;
  211. ;
  212. _DL_Next_Line: ;
  213. CALL _Sync_4us ;
  214. ;
  215. MOVLW 32 ;
  216. MOVWF Bit_Count ;
  217. ;
  218. MOVFW DL_Count ;
  219. ANDLW H'FC' ;
  220. ADDLW H'10' ;
  221. MOVWF FSR1L ;
  222. MOVLW H'20' ;
  223. MOVWF FSR1H ;
  224. MOVIW 0[INDF1] ;
  225. MOVWF Line_Data + 0 ;
  226. MOVIW 1[INDF1] ;
  227. MOVWF Line_Data + 1 ;
  228. MOVIW 2[INDF1] ;
  229. MOVWF Line_Data + 2 ;
  230. MOVIW 3[INDF1] ;
  231. MOVWF Line_Data + 3 ;
  232. DELAY 7 ;
  233. NOP ;
  234. NOP ;
  235. NOP ;
  236. NOP ;
  237. ; NOP ;
  238. ; NOP ;
  239. ;
  240. _DL_Next_Bit: ;
  241. BTFSC Line_Data + 0, MSB ;
  242. BSF PORTA, VIDEO_0_BIT ;
  243. BTFSS Line_Data + 0, MSB ;
  244. BCF PORTA, VIDEO_0_BIT ;
  245. RLF Line_Data + 3, F ;
  246. RLF Line_Data + 2, F ;
  247. RLF Line_Data + 1, F ;
  248. RLF Line_Data + 0, F ;
  249. NOP ;
  250. ; NOP ;
  251. DECFSZ Bit_Count, F ;
  252. GOTO _DL_Next_Bit ;
  253. SET_SIGNAL COLOR_BLACK ;
  254. DELAY 4 ;
  255. NOP ;
  256. NOP ;
  257. ;
  258. INCF DL_Count, F ;
  259. MOVLW H'E0' ;
  260. XORWF DL_Count, W ;
  261. BTFSS STATUS, Z ;
  262. GOTO _DL_Next_Line ;
  263. ;
  264. RETURN ;
  265. ;---------------------------------------------------;
  266.  
  267. ;---------------------------------------------------;
  268. _Delay_30us: ;
  269. ;---------------------------------------------------;
  270. MOVLW 32 ;
  271. MOVWF DTemp ;
  272. ;
  273. NOP ;
  274. NOP ;
  275. NOP ;
  276. NOP ;
  277. DECFSZ DTemp, F ;
  278. GOTO $-5 ;
  279. ;
  280. NOP ;
  281. ; NOP ;
  282. ; NOP ;
  283. ; NOP ;
  284. ; NOP ;
  285. ;
  286. RETURN ;
  287. ;---------------------------------------------------;
  288.  
  289. ;---------------------------------------------------;
  290. _Delay_60us: ;
  291. ;---------------------------------------------------;
  292. MOVLW 66 ;
  293. MOVWF DTemp ;
  294. ;
  295. NOP ;
  296. NOP ;
  297. NOP ;
  298. NOP ;
  299. DECFSZ DTemp, F ;
  300. GOTO $-5 ;
  301. ;
  302. NOP ;
  303. ; NOP ;
  304. RETURN ;
  305. ;---------------------------------------------------;
  306.  
  307. ;
  308. ;---------------------------------------------------;
  309. _Sync_2us: ;
  310. ;---------------------------------------------------;
  311. SET_SIGNAL COLOR_SYNC ;
  312. NOP ;
  313. NOP ;
  314. NOP ;
  315. NOP ;
  316. NOP ;
  317. NOP ;
  318. NOP ;
  319. NOP ;
  320. NOP ;
  321. NOP ;
  322. NOP ;
  323. NOP ;
  324. SET_SIGNAL COLOR_BLACK ;
  325. RETURN ;
  326. ;---------------------------------------------------;
  327.  
  328. ;---------------------------------------------------;
  329. _Inverted_Sync_2us: ;
  330. ;---------------------------------------------------;
  331. SET_SIGNAL COLOR_BLACK ;
  332. NOP ;
  333. NOP ;
  334. NOP ;
  335. NOP ;
  336. NOP ;
  337. NOP ;
  338. NOP ;
  339. NOP ;
  340. NOP ;
  341. NOP ;
  342. NOP ;
  343. NOP ;
  344. SET_SIGNAL COLOR_SYNC ;
  345. RETURN ;
  346. ;---------------------------------------------------;
  347.  
  348. ;---------------------------------------------------;
  349. _Sync_4us: ;
  350. ;---------------------------------------------------;
  351. SET_SIGNAL COLOR_SYNC ;
  352. NOP ;
  353. NOP ;
  354. NOP ;
  355. NOP ;
  356. NOP ;
  357. NOP ;
  358. NOP ;
  359. NOP ;
  360. NOP ;
  361. NOP ;
  362. NOP ;
  363. NOP ;
  364. NOP ;
  365. NOP ;
  366. NOP ;
  367. NOP ;
  368. NOP ;
  369. NOP ;
  370. NOP ;
  371. NOP ;
  372. NOP ;
  373. NOP ;
  374. NOP ;
  375. NOP ;
  376. NOP ;
  377. NOP ;
  378. NOP ;
  379. NOP ;
  380. SET_SIGNAL COLOR_BLACK ;
  381. RETURN ;
  382. ;---------------------------------------------------;
  383.  
  384. ;---------------------------------------------------;
  385. _Blank_Line: ;
  386. ;---------------------------------------------------;
  387. CALL _Sync_4us ;
  388. CALL _Delay_60us ;
  389. RETURN ;
  390. ;---------------------------------------------------;
  391.  
  392. ;---------------------------------------------------;
  393. _Inverted_Half_Line: ;
  394. ;---------------------------------------------------;
  395. CALL _Inverted_Sync_2us ;
  396. CALL _Delay_30us ;
  397. RETURN ;
  398. ;---------------------------------------------------;
  399.  
  400. ;---------------------------------------------------;
  401. _Blank_Half_Line: ;
  402. ;---------------------------------------------------;
  403. CALL _Sync_2us ;
  404. CALL _Delay_30us ;
  405. RETURN ;
  406. ;---------------------------------------------------;
  407.  
  408. ;---------------------------------------------------;
  409. _Update_Score_1: ;
  410. ;---------------------------------------------------;
  411. CALL _Sync_2us ;
  412. ;
  413. _US1_Clear_Score: ;
  414. MOVLW H'10' ;
  415. MOVWF FSR1L ;
  416. MOVLW H'20' ;
  417. MOVWF FSR1H ;
  418. ;
  419. CLRW ;
  420. MOVWI 0[INDF1] ;
  421. MOVWI 4[INDF1] ;
  422. MOVWI 8[INDF1] ;
  423. MOVWI 12[INDF1] ;
  424. MOVWI 16[INDF1] ;
  425. ;
  426. _US1_Draw_Score: ;
  427. SWAPF Score_1, W ;
  428. ANDLW H'0F' ;
  429. MOVWF Temp1 ;
  430. ADDWF Temp1, F ;
  431. ADDWF Temp1, F ;
  432. ADDWF Temp1, F ;
  433. ADDWF Temp1, F ;
  434. MOVLP HIGH CHARACTER_TABLE_L1 ;
  435. MOVFW Temp1 ;
  436. ADDLW LOW CHARACTER_TABLE_L1 ;
  437. BTFSC STATUS, C ;
  438. INCF PCLATH, F ;
  439. CALLW ;
  440. MOVWI 0[INDF1] ;
  441. MOVLP HIGH CHARACTER_TABLE_L1 ;
  442. MOVFW Temp1 ;
  443. ADDLW 1 ;
  444. ADDLW LOW CHARACTER_TABLE_L1 ;
  445. BTFSC STATUS, C ;
  446. INCF PCLATH, F ;
  447. CALLW ;
  448. MOVWI 4[INDF1] ;
  449. MOVLP HIGH CHARACTER_TABLE_L1 ;
  450. MOVFW Temp1 ;
  451. ADDLW 2 ;
  452. ADDLW LOW CHARACTER_TABLE_L1 ;
  453. BTFSC STATUS, C ;
  454. INCF PCLATH, F ;
  455. CALLW ;
  456. MOVWI 8[INDF1] ;
  457. MOVLP HIGH CHARACTER_TABLE_L1 ;
  458. MOVFW Temp1 ;
  459. ADDLW 3 ;
  460. ADDLW LOW CHARACTER_TABLE_L1 ;
  461. BTFSC STATUS, C ;
  462. INCF PCLATH, F ;
  463. CALLW ;
  464. MOVWI 12[INDF1] ;
  465. MOVLP HIGH CHARACTER_TABLE_L1 ;
  466. MOVFW Temp1 ;
  467. ADDLW 4 ;
  468. ADDLW LOW CHARACTER_TABLE_L1 ;
  469. BTFSC STATUS, C ;
  470. INCF PCLATH, F ;
  471. CALLW ;
  472. MOVWI 16[INDF1] ;
  473. ;
  474. MOVFW Score_1 ;
  475. ANDLW H'0F' ;
  476. MOVWF Temp1 ;
  477. ADDWF Temp1, F ;
  478. ADDWF Temp1, F ;
  479. ADDWF Temp1, F ;
  480. ADDWF Temp1, F ;
  481. MOVLP HIGH CHARACTER_TABLE_L2 ;
  482. MOVFW Temp1 ;
  483. ADDLW LOW CHARACTER_TABLE_L2 ;
  484. BTFSC STATUS, C ;
  485. INCF PCLATH, F ;
  486. CALLW ;
  487. MOVWF DTemp ;
  488. MOVIW 0[INDF1] ;
  489. IORWF DTemp, W ;
  490. MOVWI 0[INDF1] ;
  491. MOVLP HIGH CHARACTER_TABLE_L2 ;
  492. MOVFW Temp1 ;
  493. ADDLW 1 ;
  494. ADDLW LOW CHARACTER_TABLE_L2 ;
  495. BTFSC STATUS, C ;
  496. INCF PCLATH, F ;
  497. CALLW ;
  498. MOVWF DTemp ;
  499. MOVIW 4[INDF1] ;
  500. IORWF DTemp, W ;
  501. MOVWI 4[INDF1] ;
  502. MOVLP HIGH CHARACTER_TABLE_L2 ;
  503. MOVFW Temp1 ;
  504. ADDLW 2 ;
  505. ADDLW LOW CHARACTER_TABLE_L2 ;
  506. BTFSC STATUS, C ;
  507. INCF PCLATH, F ;
  508. CALLW ;
  509. MOVWF DTemp ;
  510. MOVIW 8[INDF1] ;
  511. IORWF DTemp, W ;
  512. MOVWI 8[INDF1] ;
  513. MOVLP HIGH CHARACTER_TABLE_L2 ;
  514. MOVFW Temp1 ;
  515. ADDLW 3 ;
  516. ADDLW LOW CHARACTER_TABLE_L2 ;
  517. BTFSC STATUS, C ;
  518. INCF PCLATH, F ;
  519. CALLW ;
  520. MOVWF DTemp ;
  521. MOVIW 12[INDF1] ;
  522. IORWF DTemp, W ;
  523. MOVWI 12[INDF1] ;
  524. MOVLP HIGH CHARACTER_TABLE_L2 ;
  525. MOVFW Temp1 ;
  526. ADDLW 4 ;
  527. ADDLW LOW CHARACTER_TABLE_L2 ;
  528. BTFSC STATUS, C ;
  529. INCF PCLATH, F ;
  530. CALLW ;
  531. MOVWF DTemp ;
  532. MOVIW 16[INDF1] ;
  533. IORWF DTemp, W ;
  534. MOVWI 16[INDF1] ;
  535. ;
  536. DELAY 16 ;
  537. NOP ;
  538. NOP ;
  539. ; NOP ;
  540. ; NOP ;
  541. ; NOP ;
  542. ; NOP ;
  543. RETURN ;
  544. ;---------------------------------------------------;
  545.  
  546. ;---------------------------------------------------;
  547. _Update_Score_2: ;
  548. ;---------------------------------------------------;
  549. CALL _Sync_2us ;
  550. ;
  551. _US2_Clear_Score: ;
  552. MOVLW H'13' ;
  553. MOVWF FSR1L ;
  554. MOVLW H'20' ;
  555. MOVWF FSR1H ;
  556. ;
  557. CLRW ;
  558. MOVWI 0[INDF1] ;
  559. MOVWI 4[INDF1] ;
  560. MOVWI 8[INDF1] ;
  561. MOVWI 12[INDF1] ;
  562. MOVWI 16[INDF1] ;
  563. ;
  564. _US2_Draw_Score: ;
  565. SWAPF Score_2, W ;
  566. ANDLW H'0F' ;
  567. MOVWF Temp1 ;
  568. ADDWF Temp1, F ;
  569. ADDWF Temp1, F ;
  570. ADDWF Temp1, F ;
  571. ADDWF Temp1, F ;
  572. MOVLP HIGH CHARACTER_TABLE_R1 ;
  573. MOVFW Temp1 ;
  574. ADDLW LOW CHARACTER_TABLE_R1 ;
  575. BTFSC STATUS, C ;
  576. INCF PCLATH, F ;
  577. CALLW ;
  578. MOVWI 0[INDF1] ;
  579. MOVLP HIGH CHARACTER_TABLE_R1 ;
  580. MOVFW Temp1 ;
  581. ADDLW 1 ;
  582. ADDLW LOW CHARACTER_TABLE_R1 ;
  583. BTFSC STATUS, C ;
  584. INCF PCLATH, F ;
  585. CALLW ;
  586. MOVWI 4[INDF1] ;
  587. MOVLP HIGH CHARACTER_TABLE_R1 ;
  588. MOVFW Temp1 ;
  589. ADDLW 2 ;
  590. ADDLW LOW CHARACTER_TABLE_R1 ;
  591. BTFSC STATUS, C ;
  592. INCF PCLATH, F ;
  593. CALLW ;
  594. MOVWI 8[INDF1] ;
  595. MOVLP HIGH CHARACTER_TABLE_R1 ;
  596. MOVFW Temp1 ;
  597. ADDLW 3 ;
  598. ADDLW LOW CHARACTER_TABLE_R1 ;
  599. BTFSC STATUS, C ;
  600. INCF PCLATH, F ;
  601. CALLW ;
  602. MOVWI 12[INDF1] ;
  603. MOVLP HIGH CHARACTER_TABLE_R1 ;
  604. MOVFW Temp1 ;
  605. ADDLW 4 ;
  606. ADDLW LOW CHARACTER_TABLE_R1 ;
  607. BTFSC STATUS, C ;
  608. INCF PCLATH, F ;
  609. CALLW ;
  610. MOVWI 16[INDF1] ;
  611. ;
  612. MOVFW Score_2 ;
  613. ANDLW H'0F' ;
  614. MOVWF Temp1 ;
  615. ADDWF Temp1, F ;
  616. ADDWF Temp1, F ;
  617. ADDWF Temp1, F ;
  618. ADDWF Temp1, F ;
  619. MOVLP HIGH CHARACTER_TABLE_R2 ;
  620. MOVFW Temp1 ;
  621. ADDLW LOW CHARACTER_TABLE_R2 ;
  622. BTFSC STATUS, C ;
  623. INCF PCLATH, F ;
  624. CALLW ;
  625. MOVWF DTemp ;
  626. MOVIW 0[INDF1] ;
  627. IORWF DTemp, W ;
  628. MOVWI 0[INDF1] ;
  629. MOVLP HIGH CHARACTER_TABLE_R2 ;
  630. MOVFW Temp1 ;
  631. ADDLW 1 ;
  632. ADDLW LOW CHARACTER_TABLE_R2 ;
  633. BTFSC STATUS, C ;
  634. INCF PCLATH, F ;
  635. CALLW ;
  636. MOVWF DTemp ;
  637. MOVIW 4[INDF1] ;
  638. IORWF DTemp, W ;
  639. MOVWI 4[INDF1] ;
  640. MOVLP HIGH CHARACTER_TABLE_R2 ;
  641. MOVFW Temp1 ;
  642. ADDLW 2 ;
  643. ADDLW LOW CHARACTER_TABLE_R2 ;
  644. BTFSC STATUS, C ;
  645. INCF PCLATH, F ;
  646. CALLW ;
  647. MOVWF DTemp ;
  648. MOVIW 8[INDF1] ;
  649. IORWF DTemp, W ;
  650. MOVWI 8[INDF1] ;
  651. MOVLP HIGH CHARACTER_TABLE_R2 ;
  652. MOVFW Temp1 ;
  653. ADDLW 3 ;
  654. ADDLW LOW CHARACTER_TABLE_R2 ;
  655. BTFSC STATUS, C ;
  656. INCF PCLATH, F ;
  657. CALLW ;
  658. MOVWF DTemp ;
  659. MOVIW 12[INDF1] ;
  660. IORWF DTemp, W ;
  661. MOVWI 12[INDF1] ;
  662. MOVLP HIGH CHARACTER_TABLE_R2 ;
  663. MOVFW Temp1 ;
  664. ADDLW 4 ;
  665. ADDLW LOW CHARACTER_TABLE_R2 ;
  666. BTFSC STATUS, C ;
  667. INCF PCLATH, F ;
  668. CALLW ;
  669. MOVWF DTemp ;
  670. MOVIW 16[INDF1] ;
  671. IORWF DTemp, W ;
  672. MOVWI 16[INDF1] ;
  673. ;
  674. DELAY 13 ;
  675. ; NOP ;
  676. ; NOP ;
  677. ; NOP ;
  678. ; NOP ;
  679. ; NOP ;
  680. RETURN ;
  681. ;---------------------------------------------------;
  682.  
  683. ;---------------------------------------------------;
  684. _Update_Ball: ;
  685. ;---------------------------------------------------;
  686. CALL _Sync_2us ;
  687. _UB_Check_Stationary: ;
  688. ; BTFSC Ball_X, MSB ;
  689. ; GOTO _UB_Clear_Ball ;
  690. ; BSF Ball_X, MSB ;
  691. ; DELAY 22 ;
  692. ; GOTO _UB_Draw_Ball ;
  693. ;
  694. ; CLRW ;
  695. ; XORWF Ball_Dir_X, W ;
  696. ; BTFSS STATUS, Z ;
  697. ; GOTO _UB_Clear_Ball ;
  698. ; CLRW ;
  699. ; XORWF Ball_Dir_Y, W ;
  700. ; BTFSS STATUS, Z ;
  701. ; GOTO _UB_Clear_Ball ;
  702. ; DELAY 23 ;
  703. ; GOTO _UB_Draw_Ball ;
  704. ;
  705. _UB_Clear_Ball: ;
  706. ; BCF Ball_X, MSB ;
  707. MOVFW Ball_Y ;
  708. ADDWF Ball_Y, W ;
  709. ADDWF Ball_Y, W ;
  710. ADDWF Ball_Y, W ;
  711. ADDLW H'2C' ;
  712. MOVWF FSR1L ;
  713. RRF Ball_X, W ;
  714. MOVWF Temp1 ;
  715. RRF Temp1, F ;
  716. RRF Temp1, W ;
  717. ANDLW H'1F' ;
  718. ADDWF FSR1L, F ;
  719. MOVLW H'20' ;
  720. MOVWF FSR1H ;
  721. CLRF INDF1 ;
  722. ; MOVFW Ball_X ;
  723. ; ANDLW H'07' ;
  724. ; MOVWF Temp1 ;
  725. ; MOVLW H'00' ;
  726. ; XORWF Temp1, W ;
  727. ; BTFSC STATUS, Z ;
  728. ; BCF INDF1, 7 ;
  729. ; MOVLW H'01' ;
  730. ; XORWF Temp1, W ;
  731. ; BTFSC STATUS, Z ;
  732. ; BCF INDF1, 6 ;
  733. ; MOVLW H'02' ;
  734. ; XORWF Temp1, W ;
  735. ; BTFSC STATUS, Z ;
  736. ; BCF INDF1, 5 ;
  737. ; MOVLW H'03' ;
  738. ; XORWF Temp1, W ;
  739. ; BTFSC STATUS, Z ;
  740. ; BCF INDF1, 4 ;
  741. ; MOVLW H'04' ;
  742. ; XORWF Temp1, W ;
  743. ; BTFSC STATUS, Z ;
  744. ; BCF INDF1, 3 ;
  745. ; MOVLW H'05' ;
  746. ; XORWF Temp1, W ;
  747. ; BTFSC STATUS, Z ;
  748. ; BCF INDF1, 2 ;
  749. ; MOVLW H'06' ;
  750. ; XORWF Temp1, W ;
  751. ; BTFSC STATUS, Z ;
  752. ; BCF INDF1, 1 ;
  753. ; MOVLW H'07' ;
  754. ; XORWF Temp1, W ;
  755. ; BTFSC STATUS, Z ;
  756. ; BCF INDF1, 0 ;
  757. ;
  758. _UB_Update_Ball_X: ;
  759. ; MOVLW 0 ;
  760. ; XORWF Ball_Dir_X, W ;
  761. ; BTFSC STATUS, Z ;
  762. ; GOTO _UB_Update_Ball_Y ;
  763. ;
  764. MOVFW Ball_Dir_X ; Update Ball X Position
  765. ADDWF Ball_X, F ;
  766. ;
  767. _UB_Update_Ball_X_Min: ;
  768. MOVLW 0 ;
  769. XORWF Ball_X, W ;
  770. BTFSS STATUS, Z ;
  771. GOTO _UB_Update_Ball_X_Max ;
  772. MOVLW 1 ;
  773. MOVWF Ball_Dir_X ;
  774. ;
  775. INCF Score_2, F ;
  776. MOVFW Score_2 ;
  777. ANDLW H'0F' ;
  778. XORLW H'0A' ;
  779. BTFSS STATUS, Z ;
  780. GOTO _UB_Update_Ball_X_Max ;
  781. MOVFW Score_2 ;
  782. ANDLW H'F0' ;
  783. ADDLW H'10' ;
  784. MOVWF Score_2 ;
  785. MOVLW H'A0' ;
  786. XORWF Score_2, W ;
  787. BTFSC STATUS, Z ;
  788. CLRF Score_2 ;
  789. ;
  790. _UB_Update_Ball_X_Max: ;
  791. MOVLW 31 ;
  792. XORWF Ball_X, W ;
  793. BTFSS STATUS, Z ;
  794. GOTO _UB_Update_Ball_Y ;
  795. MOVLW -1 ;
  796. MOVWF Ball_Dir_X ;
  797. ;
  798. INCF Score_1, F ;
  799. MOVFW Score_1 ;
  800. ANDLW H'0F' ;
  801. XORLW H'0A' ;
  802. BTFSS STATUS, Z ;
  803. GOTO _UB_Update_Ball_Y ;
  804. MOVFW Score_1 ;
  805. ANDLW H'F0' ;
  806. ADDLW H'10' ;
  807. MOVWF Score_1 ;
  808. MOVLW H'A0' ;
  809. XORWF Score_1, W ;
  810. BTFSC STATUS, Z ;
  811. CLRF Score_1 ;
  812. ;
  813. _UB_Update_Ball_Y: ;
  814. ; MOVLW 0 ;
  815. ; XORWF Ball_Dir_Y, W ;
  816. ; BTFSC STATUS, Z ;
  817. ; GOTO _UB_Paddle_Detect ;
  818. ;
  819. MOVFW Ball_Dir_Y ; Update Ball Y Position
  820. ADDWF Ball_Y, F ;
  821. ;
  822. _UB_Update_Ball_Y_Min: ;
  823. MOVLW 0 ;
  824. XORWF Ball_Y, W ;
  825. BTFSS STATUS, Z ;
  826. GOTO _UB_Update_Ball_Y_Max ;
  827. MOVLW 1 ;
  828. MOVWF Ball_Dir_Y ;
  829. ;
  830. _UB_Update_Ball_Y_Max: ;
  831. MOVLW 47 ;
  832. XORWF Ball_Y, W ;
  833. BTFSS STATUS, Z ;
  834. GOTO _UB_Paddle_Detect ;
  835. MOVLW -1 ;
  836. MOVWF Ball_Dir_Y ;
  837. ;
  838. _UB_Paddle_Detect: ;
  839. _UB_Paddle_Detect_Left: ;
  840. MOVLW -1 ;
  841. XORWF Ball_Dir_X, W ;
  842. BTFSS STATUS, Z ;
  843. GOTO _UB_Paddle_Detect_Right ;
  844. ;
  845. MOVLW 2 ;
  846. XORWF Ball_X, W ;
  847. BTFSS STATUS, Z ;
  848. GOTO _UB_Draw_Ball ;
  849. ;
  850. MOVFW Paddle_1_Y ;
  851. SUBWF Ball_Y, W ;
  852. BTFSS STATUS, C ;
  853. GOTO _UB_Draw_Ball ;
  854. MOVFW Paddle_1_Y ;
  855. ADDLW 8 ;
  856. SUBWF Ball_Y, W ;
  857. BTFSC STATUS, C ;
  858. GOTO _UB_Draw_Ball ;
  859. MOVLW 1 ;
  860. MOVWF Ball_Dir_X ;
  861. GOTO _UB_Draw_Ball ;
  862. ;
  863. _UB_Paddle_Detect_Right: ;
  864. MOVLW 1 ;
  865. XORWF Ball_Dir_X, W ;
  866. BTFSS STATUS, Z ;
  867. GOTO _UB_Draw_Ball ;
  868. ;
  869. MOVLW 29 ;
  870. XORWF Ball_X, W ;
  871. BTFSS STATUS, Z ;
  872. GOTO _UB_Draw_Ball ;
  873. ;
  874. MOVFW Paddle_2_Y ;
  875. SUBWF Ball_Y, W ;
  876. BTFSS STATUS, C ;
  877. GOTO _UB_Draw_Ball ;
  878. MOVFW Paddle_2_Y ;
  879. ADDLW 8 ;
  880. SUBWF Ball_Y, W ;
  881. BTFSC STATUS, C ;
  882. GOTO _UB_Draw_Ball ;
  883. MOVLW -1 ;
  884. MOVWF Ball_Dir_X ;
  885. ;
  886. _UB_Draw_Ball: ;
  887. MOVFW Ball_Y ;
  888. ADDWF Ball_Y, W ;
  889. ADDWF Ball_Y, W ;
  890. ADDWF Ball_Y, W ;
  891. ADDLW H'2C' ;
  892. MOVWF FSR1L ;
  893. RRF Ball_X, W ;
  894. MOVWF Temp1 ;
  895. RRF Temp1, F ;
  896. RRF Temp1, W ;
  897. ANDLW H'1F' ;
  898. ADDWF FSR1L, F ;
  899. MOVLW H'20' ;
  900. MOVWF FSR1H ;
  901. MOVFW Ball_X ;
  902. ANDLW H'07' ;
  903. MOVWF Temp1 ;
  904. MOVLW H'00' ;
  905. XORWF Temp1, W ;
  906. BTFSC STATUS, Z ;
  907. BSF INDF1, 7 ;
  908. MOVLW H'01' ;
  909. XORWF Temp1, W ;
  910. BTFSC STATUS, Z ;
  911. BSF INDF1, 6 ;
  912. MOVLW H'02' ;
  913. XORWF Temp1, W ;
  914. BTFSC STATUS, Z ;
  915. BSF INDF1, 5 ;
  916. MOVLW H'03' ;
  917. XORWF Temp1, W ;
  918. BTFSC STATUS, Z ;
  919. BSF INDF1, 4 ;
  920. MOVLW H'04' ;
  921. XORWF Temp1, W ;
  922. BTFSC STATUS, Z ;
  923. BSF INDF1, 3 ;
  924. MOVLW H'05' ;
  925. XORWF Temp1, W ;
  926. BTFSC STATUS, Z ;
  927. BSF INDF1, 2 ;
  928. MOVLW H'06' ;
  929. XORWF Temp1, W ;
  930. BTFSC STATUS, Z ;
  931. BSF INDF1, 1 ;
  932. MOVLW H'07' ;
  933. XORWF Temp1, W ;
  934. BTFSC STATUS, Z ;
  935. BSF INDF1, 0 ;
  936. ;
  937. DELAY 18 ;
  938. NOP ;
  939. NOP ;
  940. NOP ;
  941. NOP ;
  942. RETURN ;
  943. ;---------------------------------------------------;
  944.  
  945. ;---------------------------------------------------;
  946. _Update_Paddles: ;
  947. ;---------------------------------------------------;
  948. CALL _Sync_2us ;
  949. ;
  950. _UP_Clear_Paddles: ;
  951. MOVFW Paddle_1_Y ;
  952. ADDWF Paddle_1_Y, W ;
  953. ADDWF Paddle_1_Y, W ;
  954. ADDWF Paddle_1_Y, W ;
  955. ADDLW H'2C' ;
  956. MOVWF FSR1L ;
  957. MOVLW H'20' ;
  958. MOVWF FSR1H ;
  959. CLRW ;
  960. MOVWI 0[INDF1] ;
  961. MOVWI 4[INDF1] ;
  962. MOVWI 8[INDF1] ;
  963. MOVWI 12[INDF1] ;
  964. MOVWI 16[INDF1] ;
  965. MOVWI 20[INDF1] ;
  966. MOVWI 24[INDF1] ;
  967. MOVWI 28[INDF1] ;
  968. ;
  969. MOVFW Paddle_2_Y ;
  970. ADDWF Paddle_2_Y, W ;
  971. ADDWF Paddle_2_Y, W ;
  972. ADDWF Paddle_2_Y, W ;
  973. ADDLW H'2F' ;
  974. MOVWF FSR1L ;
  975. MOVLW H'20' ;
  976. CLRW ;
  977. MOVWI 0[INDF1] ;
  978. MOVWI 4[INDF1] ;
  979. MOVWI 8[INDF1] ;
  980. MOVWI 12[INDF1] ;
  981. MOVWI 16[INDF1] ;
  982. MOVWI 20[INDF1] ;
  983. MOVWI 24[INDF1] ;
  984. MOVWI 28[INDF1] ;
  985. ;
  986. ;_UP_P1_Fire: ;
  987. ; CLRW ;
  988. ; XORWF Ball_Dir_X, W ;
  989. ; BTFSS STATUS, Z ;
  990. ; GOTO _UP_P1_Up ;
  991. ; CLRW ;
  992. ; XORWF Ball_Dir_Y, W ;
  993. ; BTFSS STATUS, Z ;
  994. ; GOTO _UP_P1_Up ;
  995. ; BTFSS PORTA, LBUTT_1_BIT ;
  996. ; GOTO _UP_P1_Up ;
  997. ; BTFSS PORTA, LBUTT_2_BIT ;
  998. ; GOTO _UP_P1_Up ;
  999. ; BANKSEL TRISA ;
  1000. ; BCF TRISA, LBUTT_2_BIT ; Set as OUTPUT
  1001. ; BANKSEL PORTA ;
  1002. ; BSF PORTA, LBUTT_2_BIT ; Set HIGH
  1003. ; BTFSS PORTA, LBUTT_1_BIT ;
  1004. ; GOTO _UP_P1_Up ;
  1005. ; BCF PORTA, LBUTT_2_BIT ; Set LOW
  1006. ; BTFSC PORTA, LBUTT_1_BIT ;
  1007. ; GOTO _UP_P1_Up ;
  1008. ; MOVLW 1 ;
  1009. ; MOVWF Ball_Dir_X ;
  1010. ;; MOVWF Ball_Dir_Y ;
  1011. ; ;
  1012. _UP_P1_Up: ;
  1013. ; BANKSEL PORTA ;
  1014. ; BSF PORTA, LBUTT_1_BIT ;
  1015. ; BSF PORTA, LBUTT_2_BIT ;
  1016. ; BANKSEL TRISA ;
  1017. ; BSF TRISA, LBUTT_1_BIT ;
  1018. ; BSF TRISA, LBUTT_2_BIT ;
  1019. ; BANKSEL MEMORY ;
  1020. CLRW ;
  1021. XORWF Paddle_1_Y, W ;
  1022. BTFSC STATUS, Z ;
  1023. GOTO _UP_P1_Down ;
  1024. BTFSS PORTA, LBUTT_1_BIT ;
  1025. DECF Paddle_1_Y, F ;
  1026. _UP_P1_Down: ;
  1027. MOVLW 40 ;
  1028. XORWF Paddle_1_Y, W ;
  1029. BTFSC STATUS, Z ;
  1030. GOTO _UP_P2_Up ;
  1031. BTFSS PORTA, LBUTT_2_BIT ;
  1032. INCF Paddle_1_Y, F ;
  1033. _UP_P2_Up: ;
  1034. MOVLW 0 ;
  1035. XORWF Paddle_2_Y, W ;
  1036. BTFSC STATUS, Z ;
  1037. GOTO _UP_P2_Down ;
  1038. BTFSS PORTA, RBUTT_1_BIT ;
  1039. DECF Paddle_2_Y, F ;
  1040. _UP_P2_Down: ;
  1041. MOVLW 40 ;
  1042. XORWF Paddle_2_Y, W ;
  1043. BTFSC STATUS, Z ;
  1044. GOTO _UP_Draw_Paddles ;
  1045. BTFSS PORTA, RBUTT_2_BIT ;
  1046. INCF Paddle_2_Y, F ;
  1047. ;
  1048. _UP_Draw_Paddles: ;
  1049. MOVFW Paddle_1_Y ;
  1050. ADDWF Paddle_1_Y, W ;
  1051. ADDWF Paddle_1_Y, W ;
  1052. ADDWF Paddle_1_Y, W ;
  1053. ADDLW H'2C' ;
  1054. MOVWF FSR1L ;
  1055. MOVLW H'20' ;
  1056. MOVWF FSR1H ;
  1057. MOVLW H'40' ;
  1058. MOVWI 0[INDF1] ;
  1059. MOVWI 4[INDF1] ;
  1060. MOVWI 8[INDF1] ;
  1061. MOVWI 12[INDF1] ;
  1062. MOVWI 16[INDF1] ;
  1063. MOVWI 20[INDF1] ;
  1064. MOVWI 24[INDF1] ;
  1065. MOVWI 28[INDF1] ;
  1066. ;
  1067. MOVFW Paddle_2_Y ;
  1068. ADDWF Paddle_2_Y, W ;
  1069. ADDWF Paddle_2_Y, W ;
  1070. ADDWF Paddle_2_Y, W ;
  1071. ADDLW H'2F' ;
  1072. MOVWF FSR1L ;
  1073. MOVLW H'20' ;
  1074. MOVWF FSR1H ;
  1075. MOVLW H'02' ;
  1076. MOVWI 0[INDF1] ;
  1077. MOVWI 4[INDF1] ;
  1078. MOVWI 8[INDF1] ;
  1079. MOVWI 12[INDF1] ;
  1080. MOVWI 16[INDF1] ;
  1081. MOVWI 20[INDF1] ;
  1082. MOVWI 24[INDF1] ;
  1083. MOVWI 28[INDF1] ;
  1084. ;
  1085. DELAY 27 ;
  1086. ; NOP ;
  1087. ; NOP ;
  1088. ; NOP ;
  1089. ; NOP ;
  1090. ; NOP ;
  1091. RETURN ;
  1092. ;---------------------------------------------------;
  1093.  
  1094. ;---------------------------------------------------;
  1095. _Initialize_System: ;
  1096. ;---;-----------------------------------------------;
  1097. ; Initialize Hardware ;
  1098. ;-----------------------------------------------;
  1099. BANKSEL OSCCON ;
  1100. MOVLW B'11110000' ; 32Mhz
  1101. MOVWF OSCCON ;
  1102. ;
  1103. BANKSEL OSCSTAT ; Wait for
  1104. IS1:MOVFW OSCSTAT ; high speed
  1105. ANDLW H'79' ; oscillator
  1106. XORLW H'59' ; to be
  1107. BTFSS STATUS, Z ; stable and
  1108. GOTO IS1 ; locked
  1109. ;
  1110. BANKSEL ANSELA ;
  1111. CLRF ANSELA ; ALL I/O as digital
  1112. ;
  1113. BANKSEL LATA ;
  1114. CLRF LATA ;
  1115. ;
  1116. BANKSEL TRISA ;
  1117. CLRF TRISA ;
  1118. BCF TRISA, VIDEO_0_BIT ; Set as OUTPUT
  1119. BCF TRISA, VIDEO_1_BIT ; Set As OUTPUT
  1120. BSF TRISA, LBUTT_1_BIT ; Set as INPUT
  1121. BSF TRISA, LBUTT_2_BIT ; Set as INPUT
  1122. BSF TRISA, RBUTT_1_BIT ; Set as INPUT
  1123. BSF TRISA, RBUTT_2_BIT ; Set as INPUT
  1124. ;
  1125. BANKSEL PORTA ;
  1126. CLRF PORTA ;
  1127. BCF PORTA, VIDEO_0_BIT ; Set LOW
  1128. BCF PORTA, VIDEO_1_BIT ; Set LOW
  1129. BSF PORTA, LBUTT_1_BIT ; Set HIGH
  1130. BSF PORTA, LBUTT_2_BIT ; Set HIGH
  1131. BSF PORTA, RBUTT_1_BIT ; Set HIGH
  1132. BSF PORTA, RBUTT_2_BIT ; Set HIGH
  1133. ;
  1134. BANKSEL INTCON ;
  1135. CLRF INTCON ;
  1136. ;
  1137. BANKSEL OPTION_REG ;
  1138. CLRF OPTION_REG ;
  1139. ;
  1140. ;-----------------------------------------------;
  1141. ; Initialize Video Buffer ;
  1142. ; Copy image from EEPROM into buffer memory ;
  1143. ;-----------------------------------------------;
  1144. BANKSEL MEMORY ;
  1145. MOVLW H'10' ;
  1146. MOVWF FSR1L ;
  1147. MOVLW H'20' ;
  1148. MOVWF FSR1H ;
  1149. MOVLW H'E0' ;
  1150. MOVWF Temp1 ; 224 bytes
  1151. BANKSEL EEADR ;
  1152. CLRF EEADR ;
  1153. _IS_IVB: ;
  1154. BANKSEL EECON1 ;
  1155. BSF EECON1, RD ;
  1156. MOVFW EEDAT ;
  1157. INCF EEADR, F ;
  1158. BANKSEL MEMORY ;
  1159. MOVWF INDF1 ;
  1160. INCF FSR1L, F ;
  1161. DECFSZ Temp1, F ;
  1162. GOTO _IS_IVB ;
  1163. ;
  1164. ;-----------------------------------------------;
  1165. ; Initialize Memory ;
  1166. ;-----------------------------------------------;
  1167. BANKSEL MEMORY ;
  1168. MOVLW 0 ;
  1169. MOVWF Score_1 ;
  1170. MOVLW 0 ;
  1171. MOVWF Score_2 ;
  1172. MOVLW 20 ;
  1173. MOVWF Paddle_1_Y ;
  1174. MOVLW 20 ;
  1175. MOVWF Paddle_2_Y ;
  1176. MOVLW 2 ;
  1177. MOVWF Ball_X ;
  1178. MOVLW 23 ;
  1179. MOVWF Ball_Y ;
  1180. MOVLW 1 ;
  1181. MOVWF Ball_Dir_X ;
  1182. MOVLW 1 ;
  1183. MOVWF Ball_Dir_Y ;
  1184. ;
  1185. ;-----------------------------------------------;
  1186. ; Initialize Other Subsystems ;
  1187. ;-----------------------------------------------;
  1188. ;
  1189. RETURN ;
  1190. ;---------------------------------------------------;
  1191.  
  1192. ;---------------------------------------------------;
  1193. ; Numeric Characters (0-9) Scan Line Data ;
  1194. ;---------------------------------------------------;
  1195. ;CHARACTER_TABLE_LEFT CODE H'600' ;
  1196. ;---------------------------------------------------;
  1197. CHARACTER_TABLE_L1: ;
  1198. ;---------------------------------------------------;
  1199. DT B'01000000', B'10100000', B'10100000', B'10100000', B'01000000'
  1200. DT B'01000000', B'11000000', B'01000000', B'01000000', B'11100000'
  1201. DT B'11000000', B'00100000', B'01000000', B'10000000', B'11100000'
  1202. DT B'11000000', B'00100000', B'01000000', B'00100000', B'11000000'
  1203. DT B'10100000', B'10100000', B'11100000', B'00100000', B'00100000'
  1204. DT B'11100000', B'10000000', B'11000000', B'00100000', B'11000000'
  1205. DT B'01100000', B'10000000', B'11000000', B'10100000', B'01000000'
  1206. DT B'11100000', B'00100000', B'01000000', B'10000000', B'10000000'
  1207. DT B'01000000', B'10100000', B'01000000', B'10100000', B'01000000'
  1208. DT B'01000000', B'10100000', B'01100000', B'00100000', B'11000000'
  1209. ;---------------------------------------------------;
  1210. CHARACTER_TABLE_L2: ;
  1211. ;---------------------------------------------------;
  1212. DT B'00000100', B'00001010', B'00001010', B'00001010', B'00000100'
  1213. DT B'00000100', B'00001100', B'00000100', B'00000100', B'00001110'
  1214. DT B'00001100', B'00000010', B'00000100', B'00001000', B'00001110'
  1215. DT B'00001100', B'00000010', B'00000100', B'00000010', B'00001100'
  1216. DT B'00001010', B'00001010', B'00001110', B'00000010', B'00000010'
  1217. DT B'00001110', B'00001000', B'00001100', B'00000010', B'00001100'
  1218. DT B'00000110', B'00001000', B'00001100', B'00001010', B'00000100'
  1219. DT B'00001110', B'00000010', B'00000100', B'00001000', B'00001000'
  1220. DT B'00000100', B'00001010', B'00000100', B'00001010', B'00000100'
  1221. DT B'00000100', B'00001010', B'00000110', B'00000010', B'00001100'
  1222. ;---------------------------------------------------;
  1223. ;CHARACTER_TABLE_RIGHT CODE H'700' ;
  1224. ;---------------------------------------------------;
  1225. CHARACTER_TABLE_R1: ;
  1226. ;---------------------------------------------------;
  1227. DT B'00100000', B'01010000', B'01010000', B'01010000', B'00100000'
  1228. DT B'00100000', B'01100000', B'00100000', B'00100000', B'01110000'
  1229. DT B'01100000', B'00010000', B'00100000', B'01000000', B'01110000'
  1230. DT B'01100000', B'00010000', B'00100000', B'00010000', B'01100000'
  1231. DT B'01010000', B'01010000', B'01110000', B'00010000', B'00010000'
  1232. DT B'01110000', B'01000000', B'01100000', B'00010000', B'01100000'
  1233. DT B'00110000', B'01000000', B'01100000', B'01010000', B'00100000'
  1234. DT B'01110000', B'00010000', B'00100000', B'01000000', B'01000000'
  1235. DT B'00100000', B'01010000', B'00100000', B'01010000', B'00100000'
  1236. DT B'00100000', B'01010000', B'00110000', B'00010000', B'01100000'
  1237. ;---------------------------------------------------;
  1238. CHARACTER_TABLE_R2: ;
  1239. ;---------------------------------------------------;
  1240. DT B'00000010', B'00000101', B'00000101', B'00000101', B'00000010'
  1241. DT B'00000010', B'00000110', B'00000010', B'00000010', B'00000111'
  1242. DT B'00000110', B'00000001', B'00000010', B'00000100', B'00000111'
  1243. DT B'00000110', B'00000001', B'00000010', B'00000001', B'00000110'
  1244. DT B'00000101', B'00000101', B'00000111', B'00000001', B'00000001'
  1245. DT B'00000111', B'00000100', B'00000110', B'00000001', B'00000110'
  1246. DT B'00000011', B'00000100', B'00000110', B'00000101', B'00000010'
  1247. DT B'00000111', B'00000001', B'00000010', B'00000100', B'00000100'
  1248. DT B'00000010', B'00000101', B'00000010', B'00000101', B'00000010'
  1249. DT B'00000010', B'00000101', B'00000011', B'00000001', B'00000110'
  1250. ;---------------------------------------------------;
  1251.  
  1252. ;---------------------------------------------------;
  1253. EEPROM_DATA CODE H'F000' ;
  1254. ;---------------------------------------------------;
  1255. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1256. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1257. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1258. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1259. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1260. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1261. DE B'11111111', B'11111111', B'11111111', B'11111111'
  1262. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1263. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1264. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1265. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1266. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1267. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1268. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1269. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1270. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1271. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1272. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1273. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1274. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1275. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1276. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1277. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1278. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1279. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1280. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1281. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1282. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1283. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1284. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1285. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1286. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1287. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1288. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1289. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1290. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1291. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1292. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1293. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1294. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1295. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1296. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1297. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1298. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1299. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1300. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1301. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1302. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1303. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1304. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1305. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1306. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1307. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1308. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1309. DE B'00000000', B'00000000', B'00000000', B'00000000'
  1310. DE B'11111111', B'11111111', B'11111111', B'11111111'
  1311. ;---------------------------------------------------;
  1312.  
  1313. ;---------------------------------------------------;
  1314. END ;
  1315. ;---------------------------------------------------;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement