Advertisement
EugeneBB

atari antic F display list

Oct 19th, 2023
1,507
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; ANTIC F 320x192 + Wide Bit -> 256x192
  2. ; Display List
  3.  
  4.     org $2000
  5.  
  6. SDLSTL = $0230 ; Display List starting address
  7. screen = $4000 ; Screen buffer
  8. scrru  = screen + 31 ; Right Up Corner
  9. scrld  = screen + 191 * 32 ; Left Down Corner
  10. scrrd  = screen + 191 * 32 + 31 ; Right Down Corner
  11. NP32chr = 61  ; Narrow playfield (32 bytes/chars)
  12. SDMCTL  = $022F ; https://atariwiki.org/wiki/Wiki.jsp?page=SDMCTL
  13. blank8 = $70 ; 8 blank lines
  14. anticF = $F  ; ANTIC F mode
  15. lms    = $40 ; Load memory scan
  16. jvb    = $41 ; Jump while vertical blank
  17.  
  18. ; Color registers
  19. cr_BG  = 710 ; screen background
  20.  
  21. ; Load Display List
  22.     mwa #dlist SDLSTL
  23.  
  24. ; Main
  25.     lda #0
  26.     sta cr_BG ; set screen backgroud to BLACK
  27.     lda #NP32chr
  28.     sta SDMCTL ; set 32 byte wide screen
  29.  
  30.     lda #$FF
  31.     sta screen
  32.     sta scrld
  33.     sta scrrd
  34.     sta scrru ; set 4 "points" of screen square corners up left/right and down left/right
  35.  
  36.     jmp *
  37.  
  38. ; Display List
  39.  
  40. dlist
  41.     .byte blank8, blank8, blank8
  42. ; $4000 address border (start of screen memory)
  43.     .byte anticF + lms, <screen, >screen
  44.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  45.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  46.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  47.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  48.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  49.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  50.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  51.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  52.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  53.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  54.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  55.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  56.     .byte anticF, anticF, anticF, anticF
  57. ; $5000 address border (start of screen memory in new 4K block)
  58. ; to calculate this line -> 4096*5=20480, this is 124 screen line of 32 byte per line
  59. ; below this line 125 screen line starts and use +lms and 2 bytes address of new screen
  60. ; position of $5000
  61.     .byte anticF + lms, <($5000), >($5000)
  62.     .byte anticF, anticF, anticF, anticF, anticF, anticF
  63.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  64.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  65.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  66.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  67.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  68.     .byte anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF, anticF
  69.     .byte anticF, anticF
  70.     .byte jvb, <dlist, >dlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement