Advertisement
Guest User

NTSC_Interface.INC V1.00

a guest
Dec 30th, 2012
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.66 KB | None | 0 0
  1. ;---------------------------------------------------;
  2. ; Name: NTSC_Interface.INC ;
  3. ; Use: NTSC Interface Include File ;
  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 30, 2012 ;
  12. ; Version: V1.00 ;
  13. ;---------------------------------------------------;
  14. ; Description: Equates, Defines, Global / External ;
  15. ; Support for NTSC_Interface.ASM ;
  16. ;---------------------------------------------------;
  17. ; Code is specific to the PIC12F1840! ;
  18. ;---------------------------------------------------;
  19. #DEFINE _DEBUG_VSYNC_ TRUE ;
  20. #DEFINE _AUDIO_ENABLED_ TRUE ;
  21. ;---------------------------------------------------;
  22.  
  23. ;---------------------------------------------------;
  24. ; Macros ;
  25. ;---------------------------------------------------;
  26. VDELAY MACRO DTIME ;
  27. ;-----------------------------------------------;
  28. ; The time munger used EVERYWHERE ;
  29. ;-----------------------------------------------;
  30. MOVLW DTIME ;
  31. MOVWF VTemp ;
  32. DECFSZ VTemp, F ;
  33. GOTO $-1 ;
  34. ;-----------------------------------------------;
  35. ENDM ;
  36. ;
  37. ;-----------------------------------------------;
  38. DO_BIT MACRO THISBIT, NOPS ;
  39. ;-----------------------------------------------;
  40. ; Sets the DAC either WHITE or BLACK ;
  41. ; Does a specified delay in NOPs ;
  42. ;-----------------------------------------------;
  43. MOVFW PORTA ;
  44. ANDLW ~VIDEO_0 ;
  45. BTFSC INDF1, THISBIT ;
  46. IORLW VIDEO_0 ;
  47. MOVWF PORTA ;
  48. #IF (THISBIT == 0) ;
  49. ADDFSR FSR1, 1 ;
  50. #ENDIF ;
  51. #IF NOPS > 0 ;
  52. NOP ;
  53. #ENDIF ;
  54. #IF NOPS > 1 ;
  55. NOP ;
  56. #ENDIF ;
  57. #IF NOPS > 2 ;
  58. NOP ;
  59. #ENDIF ;
  60. #IF NOPS > 3 ;
  61. NOP ;
  62. #ENDIF ;
  63. #IF NOPS > 4 ;
  64. NOP ;
  65. #ENDIF ;
  66. #IF NOPS > 5 ;
  67. NOP ;
  68. #ENDIF ;
  69. #IF NOPS > 6 ;
  70. NOP ;
  71. #ENDIF ;
  72. #IF NOPS > 7 ;
  73. NOP ;
  74. #ENDIF ;
  75. #IF NOPS > 8 ;
  76. NOP ;
  77. #ENDIF ;
  78. #IF NOPS > 9 ;
  79. NOP ;
  80. #ENDIF ;
  81. ;-----------------------------------------------;
  82. ENDM ;
  83. ;
  84. ;-----------------------------------------------;
  85. SET_DAC2BIT MACRO COLOR ;
  86. ;-----------------------------------------------;
  87. ; Sets the 2bit DAC to the desired color ;
  88. ; Both bits are done at once, or else some weird;
  89. ; transitions on the DAC can be seen. Okay if ;
  90. ; just colors (WHITE, GRAY, BLACK), but if a ;
  91. ; sync pulse shows up out context, it can really;
  92. ; mess up the video timings ;
  93. ;-----------------------------------------------;
  94. MOVFW PORTA ;
  95. ANDLW ~(VIDEO_0 | VIDEO_1) ;
  96. IORLW COLOR ;
  97. MOVWF PORTA ;
  98. ;-----------------------------------------------;
  99. ENDM ;
  100. ;
  101. ;-----------------------------------------------;
  102. #DEFINE SIG_2US 2 ;
  103. #DEFINE SIG_4US 4 ;
  104. #DEFINE SIG_30US 30 ;
  105. #DEFINE SIG_60US 60 ;
  106. ;-----------------------------------------------;
  107. ;
  108. ;-----------------------------------------------;
  109. START_TIMING MACRO SIG_LEN, VID_STATE ;
  110. ;-----------------------------------------------;
  111. #IF (SIG_LEN == SIG_2US) ;
  112. MOVLW ~((SIG_LEN * 2) + 2) ;
  113. #ENDIF ;
  114. #IF (SIG_LEN == SIG_4US) ;
  115. MOVLW ~((SIG_LEN * 4) - 3) ;
  116. #ENDIF ;
  117. #IF (SIG_LEN == SIG_30US) ;
  118. MOVLW ~((SIG_LEN * 4) - 11) ;
  119. #ENDIF ;
  120. #IF (SIG_LEN == SIG_60US) ;
  121. MOVLW ~((SIG_LEN * 4) - 9) ;
  122. #ENDIF ;
  123. MOVWF Vid_Timing ;
  124. ;
  125. #IF (VID_STATE == 0) ;
  126. BTFSC PORTA, VIDEO_1_BIT ;
  127. #ELSE ;
  128. BTFSS PORTA, VIDEO_1_BIT ;
  129. #ENDIF ;
  130. GOTO $-1 ;
  131. #IF (SIG_LEN == SIG_60US) ;
  132. AUDIO_PROC ;
  133. #ENDIF ;
  134. ;-----------------------------------------------;
  135. ENDM ;
  136. ;
  137. ;-----------------------------------------------;
  138. DEBUG_VSYNC_PULSE MACRO ;
  139. ;-----------------------------------------------;
  140. ; If _DEBUG_VSYNC_ is enabled, it will produce a;
  141. ; pulse on the GPIO2 pin for debugging purposes.;
  142. ; This pulse is mainly to measure the time (in ;
  143. ; ms) and frequency of a single video frame. ;
  144. ;-----------------------------------------------;
  145. #IF _DEBUG_VSYNC_ ;
  146. BANKSEL TRISA ;
  147. BCF TRISA, 2 ;
  148. BANKSEL PORTA ;
  149. BCF PORTA, 2 ;
  150. NOP ;
  151. BSF PORTA, 2 ;
  152. BANKSEL TRISA ;
  153. BSF TRISA, 2 ;
  154. BANKSEL MEMORY ;
  155. #ENDIF ; _DEBUG_VSYNC_ ;
  156. ;-----------------------------------------------;
  157. ENDM ;
  158. ;
  159. ;-----------------------------------------------;
  160. AUDIO_PROC MACRO ;
  161. ;-----------------------------------------------;
  162. ; This handles the sound generation. Sounds are ;
  163. ; produced by toggling GPIO1 at the BEGINNING of;
  164. ; each 60us line during the BACK PORCH/BLANKING ;
  165. ; time. If it is toggled during ALL 60us lines, ;
  166. ; you get a high frequency (around 7800hz). If ;
  167. ; every other 60us line, the frequency is lower.;
  168. ; This procedure is NOT run during VERTICAL SYNC;
  169. ; time to keep AUDIO from altering the timings ;
  170. ; of the video, causing distortions of the image;
  171. ; on the screen. In order to keep the video ;
  172. ; timings the same, no matter what path is taken;
  173. ; in the audio code, NOPs are padded so that ;
  174. ; each path takes the same number of cycles. ;
  175. ;-----------------------------------------------;
  176. #IF (_AUDIO_ENABLED_ == TRUE) ;
  177. BTFSC Video_Status, VERTICAL_SYNC_BIT ;
  178. GOTO $+16 ;
  179. BTFSS Video_Status, AUDIO_ENABLED_BIT ;
  180. GOTO $+16 ;
  181. DECFSZ Audio_Count, F ;
  182. GOTO $+16 ;
  183. MOVFW Audio_Reload ;
  184. MOVWF Audio_Count ;
  185. MOVLW AUDIO ;
  186. XORWF PORTA, F ;
  187. DECFSZ Audio_Dur_LO, F ;
  188. GOTO $+16 ;
  189. DECFSZ Audio_Dur_HI, F ;
  190. GOTO $+16 ;
  191. BCF Video_Status, AUDIO_ENABLED_BIT ;
  192. BSF PORTA, AUDIO_BIT ;
  193. GOTO $+16 ;
  194. NOP ;
  195. NOP ;
  196. NOP ;
  197. NOP ;
  198. NOP ;
  199. NOP ;
  200. NOP ;
  201. NOP ;
  202. NOP ;
  203. NOP ;
  204. NOP ;
  205. NOP ;
  206. NOP ;
  207. NOP ;
  208. NOP ;
  209. #ELSE ;
  210. NOP ;
  211. NOP ;
  212. NOP ;
  213. NOP ;
  214. NOP ;
  215. NOP ;
  216. NOP ;
  217. NOP ;
  218. NOP ;
  219. NOP ;
  220. NOP ;
  221. NOP ;
  222. NOP ;
  223. NOP ;
  224. NOP ;
  225. NOP ;
  226. NOP ;
  227. #ENDIF ; (_AUDIO_ENABLED_ == TRUE) ;
  228. ;-----------------------------------------------;
  229. ENDM ;
  230. ;
  231. ;-----------------------------------------------;
  232. PLAY_SOUND MACRO FREQUENCY, DURATION ;
  233. ;-----------------------------------------------;
  234. ; This will play a sound of a specified ;
  235. ; frequency for a specified duration ;
  236. ; The lower the frequency number, the higher ;
  237. ; the frequency. Duration is also a function ;
  238. ; of the frequency number, so if frequency goes ;
  239. ; up, adjust the duration down. ;
  240. ;-----------------------------------------------;
  241. ; NOTE that a FREQUENCY of 0 is treated as a ;
  242. ; frequency of 256. 0<=Freq<=255. The count is ;
  243. ; decremented BEFORE it is checked to be 0, so ;
  244. ; starting with 0 will dec, see 255, continue ;
  245. ; loop. Just so you are warned. ;
  246. ;-----------------------------------------------;
  247. #IF (_AUDIO_ENABLED_ == TRUE) ;
  248. MOVLW FREQUENCY ;
  249. MOVWF Audio_Count ;
  250. MOVWF Audio_Reload ;
  251. MOVLW LOW DURATION ;
  252. MOVWF Audio_Dur_LO ;
  253. MOVLW HIGH DURATION ;
  254. MOVWF Audio_Dur_HI ;
  255. BSF Video_Status, AUDIO_ENABLED_BIT ;
  256. ;-----------------------------------------------;
  257. #ENDIF ; (_AUDIO_ENABLED_ == TRUE) ;
  258. ENDM ;
  259. ;---------------------------------------------------;
  260.  
  261. ;---------------------------------------------------;
  262. ; Defines ;
  263. ;---------------------------------------------------;
  264. ; 2bit DAC definitions. The 2bit DAC is just a ;
  265. ; pair of resistors on two GPIOs, which feeds ;
  266. ; the VIDEO out. ;
  267. ;-----------------------------------------------;
  268. #IF (_AUDIO_ENABLED_ == TRUE) ;
  269. #DEFINE AUDIO H'02' ;
  270. #DEFINE AUDIO_BIT 1 ; GPIO 1 - PIN 6
  271. #ENDIF ; (_AUDIO_ENABLED_ == TRUE) ;
  272. ;
  273. #DEFINE VIDEO_1 H'10' ; 1K ohm
  274. #DEFINE VIDEO_1_BIT 4 ; GPIO 4 - PIN 3
  275. #DEFINE VIDEO_0 H'20' ; 470 ohm
  276. #DEFINE VIDEO_0_BIT 5 ; GPIO 5 - PIN 2
  277. ;
  278. #DEFINE COLOR_WHITE (VIDEO_0 + VIDEO_1) ;
  279. #DEFINE COLOR_BLACK VIDEO_1 ;
  280. #DEFINE COLOR_GRAY VIDEO_0 ;
  281. #DEFINE COLOR_SYNC 0 ;
  282. ;---------------------------------------------------;
  283. ; Bit definitions for Video_Status ;
  284. ;---------------------------------------------------;
  285. #DEFINE VERTICAL_SYNC H'01' ;
  286. #DEFINE VERTICAL_SYNC_BIT 0 ;
  287. #DEFINE OE_FIELD H'02' ;
  288. #DEFINE OE_FIELD_BIT 1 ;
  289. #IF (_AUDIO_ENABLED_ == TRUE) ;
  290. #DEFINE AUDIO_ENABLED H'80' ;
  291. #DEFINE AUDIO_ENABLED_BIT 7 ;
  292. #ENDIF ; (_AUDIO_ENABLED_ == TRUE) ;
  293. ;-----------------------------------------------;
  294. ;
  295. ;-----------------------------------------------;
  296. ; There are 192 lines created during _Data_Lines;
  297. ; However, because of memory limitations, I ;
  298. ; cannot allocate enough memory for the video ;
  299. ; buffer. So - I do have enough memory for 48 ;
  300. ; lines - 1/4 of 192 - so we display each line ;
  301. ; of data 4 times. ;
  302. ;-----------------------------------------------;
  303. #DEFINE MAX_LINES 48 ; DON'T EXCEED 48
  304. ;-----------------------------------------------;
  305. ; Make certain NUM_LINES is an even number so ;
  306. ; all of the math works out properly. Make sure ;
  307. ; NOT to exceed the MAX_LINES value. And don't ;
  308. ; change NUM_LINES for less than 9 - that's the ;
  309. ; paddle height, so that will probably break it.;
  310. ; But then - the paddle height is adjustable ;
  311. ; with just changing a define (below), so - who ;
  312. ; knows! ;
  313. ;-----------------------------------------------;
  314. #DEFINE NUM_LINES 48 ; DON'T EXCEED 48
  315. ;-----------------------------------------------;
  316. ;
  317. ;-----------------------------------------------;
  318. ; Just a bunch of hardcoded starting points, ;
  319. ; sizes, and bit-munching stuff for the various ;
  320. ; graphics. ;
  321. ;-----------------------------------------------;
  322. ; I use the PIC's LINEAR MEMORY scheme to create;
  323. ; a contiguous video buffer. Grab the MicroChip ;
  324. ; documentation and read up. Then go search on ;
  325. ; the web for some docs that will really explain;
  326. ; it for you. ;
  327. ;-----------------------------------------------;
  328. #DEFINE VIDEO_BUFFER_START H'2030' ;
  329. #DEFINE SCREEN_HEIGHT NUM_LINES ;
  330. #DEFINE SCREEN_WIDTH 32 ; 4 bytes * 8 bits ;
  331. ;---------------------------------------------------;
  332.  
  333. ;---------------------------------------------------;
  334. IFDEF _NTSC_INTERFACE.ASM_ ;
  335. ;---------------------------------------------------;
  336. ; Global Data (in NTSC_Interface.ASM) ;
  337. GLOBAL VSync_Count ;
  338. GLOBAL Vid_Timing ;
  339. GLOBAL Video_Status ;
  340. #IF (_AUDIO_ENABLED_ == TRUE) ;
  341. GLOBAL Audio_Count ;
  342. GLOBAL Audio_Reload ;
  343. GLOBAL Audio_Dur_LO ;
  344. GLOBAL Audio_Dur_HI ;
  345. #ENDIF ; (_AUDIO_ENABLED_ == TRUE) ;
  346. ; Global Routines (in NTSC_Interface.ASM) ;
  347. GLOBAL _NTSC_Initialize_Subsystem ;
  348. GLOBAL _NTSC_Video ;
  349. GLOBAL _BLACK_2us_SYNC_30us_LINE ;
  350. GLOBAL _BLACK_4us_SYNC_30us_LINE ;
  351. GLOBAL _INVERTED_30us_SYNC_4us_LINE ;
  352. GLOBAL _BLACK_2us_SYNC_60us_LINE ;
  353. GLOBAL _BLACK_4us_SYNC_60us_LINE ;
  354. GLOBAL _BLACK_4us_SYNC_60us_LINE_BPorch ;
  355. GLOBAL _WHITE_4us_SYNC_60us_LINE ;
  356. GLOBAL _NTSC_Clear_Screen ;
  357. ; External Routines (in the user code) ;
  358. EXTERN _NTSC_Blank_Line_10 ;
  359. EXTERN _NTSC_Blank_Line_11 ;
  360. EXTERN _NTSC_Blank_Line_12 ;
  361. EXTERN _NTSC_Blank_Line_13 ;
  362. EXTERN _NTSC_Blank_Line_14 ;
  363. EXTERN _NTSC_Blank_Line_15 ;
  364. EXTERN _NTSC_Blank_Line_16 ;
  365. EXTERN _NTSC_Blank_Line_17 ;
  366. EXTERN _NTSC_Blank_Line_18 ;
  367. EXTERN _NTSC_Blank_Line_19 ;
  368. EXTERN _NTSC_Blank_Line_20 ;
  369. EXTERN _NTSC_Blank_Line_21 ;
  370. EXTERN _NTSC_Blank_Line_22 ;
  371. EXTERN _NTSC_Blank_Line_23 ;
  372. EXTERN _NTSC_Blank_Line_24 ;
  373. EXTERN _NTSC_Blank_Line_25 ;
  374. EXTERN _NTSC_Blank_Line_26 ;
  375. EXTERN _NTSC_Blank_Line_27 ;
  376. EXTERN _NTSC_Blank_Line_28 ;
  377. EXTERN _NTSC_Blank_Line_29 ;
  378. EXTERN _NTSC_Blank_Line_30 ;
  379. EXTERN _NTSC_Blank_Line_31 ;
  380. EXTERN _NTSC_Blank_Line_32 ;
  381. EXTERN _NTSC_Blank_Line_33 ;
  382. EXTERN _NTSC_Blank_Line_34 ;
  383. EXTERN _NTSC_Blank_Line_35 ;
  384. EXTERN _NTSC_Blank_Line_36 ;
  385. EXTERN _NTSC_Blank_Line_37 ;
  386. EXTERN _NTSC_Blank_Line_38 ;
  387. EXTERN _NTSC_Blank_Line_39 ;
  388. EXTERN _NTSC_Blank_Line_40 ;
  389. EXTERN _NTSC_Blank_Line_41 ;
  390. EXTERN _NTSC_Blank_Line_42 ;
  391. EXTERN _NTSC_Blank_Line_43 ;
  392. EXTERN _NTSC_Blank_Line_44 ;
  393. EXTERN _NTSC_Blank_Line_237 ;
  394. EXTERN _NTSC_Blank_Line_238 ;
  395. EXTERN _NTSC_Blank_Line_239 ;
  396. EXTERN _NTSC_Blank_Line_240 ;
  397. EXTERN _NTSC_Blank_Line_241 ;
  398. EXTERN _NTSC_Blank_Line_242 ;
  399. EXTERN _NTSC_Blank_Line_243 ;
  400. EXTERN _NTSC_Blank_Line_244 ;
  401. EXTERN _NTSC_Blank_Line_245 ;
  402. EXTERN _NTSC_Blank_Line_246 ;
  403. EXTERN _NTSC_Blank_Line_247 ;
  404. EXTERN _NTSC_Blank_Line_248 ;
  405. EXTERN _NTSC_Blank_Line_249 ;
  406. EXTERN _NTSC_Blank_Line_250 ;
  407. EXTERN _NTSC_Blank_Line_251 ;
  408. EXTERN _NTSC_Blank_Line_252 ;
  409. EXTERN _NTSC_Blank_Line_253 ;
  410. EXTERN _NTSC_Blank_Line_254 ;
  411. EXTERN _NTSC_Blank_Line_255 ;
  412. EXTERN _NTSC_Blank_Line_256 ;
  413. EXTERN _NTSC_Blank_Line_257 ;
  414. EXTERN _NTSC_Blank_Line_258 ;
  415. EXTERN _NTSC_Blank_Line_259 ;
  416. EXTERN _NTSC_Blank_Line_260 ;
  417. EXTERN _NTSC_Blank_Line_261 ;
  418. EXTERN _NTSC_Blank_Line_262 ;
  419. ;---------------------------------------------------;
  420. ELSE ;
  421. ;---------------------------------------------------;
  422. ; External Data (in NTSC_Interface.ASM) ;
  423. EXTERN VSync_Count ;
  424. EXTERN Vid_Timing ;
  425. EXTERN Video_Status ;
  426. #IF (_AUDIO_ENABLED_ == TRUE) ;
  427. EXTERN Audio_Count ;
  428. EXTERN Audio_Reload ;
  429. EXTERN Audio_Dur_LO ;
  430. EXTERN Audio_Dur_HI ;
  431. #ENDIF ; (_AUDIO_ENABLED_ == TRUE) ;
  432. ; External Routines (in NTSC_Interface.ASM) ;
  433. EXTERN _NTSC_Initialize_Subsystem ;
  434. EXTERN _NTSC_Video ;
  435. EXTERN _NTSC_Clear_Screen ;
  436. EXTERN _BLACK_2us_SYNC_30us_LINE ;
  437. EXTERN _BLACK_4us_SYNC_30us_LINE ;
  438. EXTERN _INVERTED_30us_SYNC_4us_LINE ;
  439. EXTERN _BLACK_2us_SYNC_60us_LINE ;
  440. EXTERN _BLACK_4us_SYNC_60us_LINE ;
  441. EXTERN _BLACK_4us_SYNC_60us_LINE_BPorch ;
  442. EXTERN _WHITE_4us_SYNC_60us_LINE ;
  443. ; Global Routines (in the user code) ;
  444. GLOBAL _NTSC_Blank_Line_10 ;
  445. GLOBAL _NTSC_Blank_Line_11 ;
  446. GLOBAL _NTSC_Blank_Line_12 ;
  447. GLOBAL _NTSC_Blank_Line_13 ;
  448. GLOBAL _NTSC_Blank_Line_14 ;
  449. GLOBAL _NTSC_Blank_Line_15 ;
  450. GLOBAL _NTSC_Blank_Line_16 ;
  451. GLOBAL _NTSC_Blank_Line_17 ;
  452. GLOBAL _NTSC_Blank_Line_18 ;
  453. GLOBAL _NTSC_Blank_Line_19 ;
  454. GLOBAL _NTSC_Blank_Line_20 ;
  455. GLOBAL _NTSC_Blank_Line_21 ;
  456. GLOBAL _NTSC_Blank_Line_22 ;
  457. GLOBAL _NTSC_Blank_Line_23 ;
  458. GLOBAL _NTSC_Blank_Line_24 ;
  459. GLOBAL _NTSC_Blank_Line_25 ;
  460. GLOBAL _NTSC_Blank_Line_26 ;
  461. GLOBAL _NTSC_Blank_Line_27 ;
  462. GLOBAL _NTSC_Blank_Line_28 ;
  463. GLOBAL _NTSC_Blank_Line_29 ;
  464. GLOBAL _NTSC_Blank_Line_30 ;
  465. GLOBAL _NTSC_Blank_Line_31 ;
  466. GLOBAL _NTSC_Blank_Line_32 ;
  467. GLOBAL _NTSC_Blank_Line_33 ;
  468. GLOBAL _NTSC_Blank_Line_34 ;
  469. GLOBAL _NTSC_Blank_Line_35 ;
  470. GLOBAL _NTSC_Blank_Line_36 ;
  471. GLOBAL _NTSC_Blank_Line_37 ;
  472. GLOBAL _NTSC_Blank_Line_38 ;
  473. GLOBAL _NTSC_Blank_Line_39 ;
  474. GLOBAL _NTSC_Blank_Line_40 ;
  475. GLOBAL _NTSC_Blank_Line_41 ;
  476. GLOBAL _NTSC_Blank_Line_42 ;
  477. GLOBAL _NTSC_Blank_Line_43 ;
  478. GLOBAL _NTSC_Blank_Line_44 ;
  479. GLOBAL _NTSC_Blank_Line_237 ;
  480. GLOBAL _NTSC_Blank_Line_238 ;
  481. GLOBAL _NTSC_Blank_Line_239 ;
  482. GLOBAL _NTSC_Blank_Line_240 ;
  483. GLOBAL _NTSC_Blank_Line_241 ;
  484. GLOBAL _NTSC_Blank_Line_242 ;
  485. GLOBAL _NTSC_Blank_Line_243 ;
  486. GLOBAL _NTSC_Blank_Line_244 ;
  487. GLOBAL _NTSC_Blank_Line_245 ;
  488. GLOBAL _NTSC_Blank_Line_246 ;
  489. GLOBAL _NTSC_Blank_Line_247 ;
  490. GLOBAL _NTSC_Blank_Line_248 ;
  491. GLOBAL _NTSC_Blank_Line_249 ;
  492. GLOBAL _NTSC_Blank_Line_250 ;
  493. GLOBAL _NTSC_Blank_Line_251 ;
  494. GLOBAL _NTSC_Blank_Line_252 ;
  495. GLOBAL _NTSC_Blank_Line_253 ;
  496. GLOBAL _NTSC_Blank_Line_254 ;
  497. GLOBAL _NTSC_Blank_Line_255 ;
  498. GLOBAL _NTSC_Blank_Line_256 ;
  499. GLOBAL _NTSC_Blank_Line_257 ;
  500. GLOBAL _NTSC_Blank_Line_258 ;
  501. GLOBAL _NTSC_Blank_Line_259 ;
  502. GLOBAL _NTSC_Blank_Line_260 ;
  503. GLOBAL _NTSC_Blank_Line_261 ;
  504. GLOBAL _NTSC_Blank_Line_262 ;
  505. ;---------------------------------------------------;
  506. ENDIF ;
  507. ;---------------------------------------------------;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement