Advertisement
taylorza

NextBASIC Inline Assembler NEX Demo

Jun 1st, 2024 (edited)
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | Source Code | 0 0
  1. #program asmsprnex
  2. 10 RUN AT 3
  3. 20 SAVE "asmsprnex.bas"
  4. 30 BANK NEW %o: REM code bank
  5. 40 BANK NEW %s: REM sprite bank
  6. 50 LOAD "c:/demos/nextbasic/basicsprites/dksprite.spr" BANK %s
  7. 60 .asm
  8. 70 ; bank %o,,1 ;Code in bank %o, clear the bank
  9. 80 ; org $c000 ; assemble to run at $c000
  10. 90 ;start
  11. 100 ;
  12. 110 ;;Load sprite data
  13. 120 ; nextreg $54,%s*2 ;Bring in sprite pages @ $8000
  14. 130 ; nextreg $55,%s*2+1 ; we don't need both pages, but...
  15. 140 ; xor a ;A=0 (index of 1st sprite pattern)
  16. 150 ; ld bc,$303b ;Sprite pattern index port
  17. 160 ; out (c),a ; start with pattern 0
  18. 170 ; ld hl,$8000 ;Point to sprite pattern data
  19. 180 ; ld b,0 ;256 byte (16x16) pattern data
  20. 190 ; ld c,$5b ;Sprite pattern load port
  21. 195 ;; Above could be 'ld bc,$005b'
  22. 200 ; otir ;Write pattern data to FPGA
  23. 210 ;
  24. 220 ;;Show sprite
  25. 230 ; nreg $15,%01000001 ;Enable sprites
  26. 240 ; nreg $34,0 ;Select sprite 0
  27. 250 ; nreg $35,156 ;X=156
  28. 260 ; nreg $36,112 ;Y=112
  29. 270 ; nreg $37,0 ;Sprite attributes
  30. 280 ; nreg $38,%10000000 ;Sprite visible, pattern 0
  31. 290 ; jr $
  32. 300 ;
  33. 310 ; ds 128
  34. 320 ;stack
  35. 330 ;
  36. 340 ;;NEX generation
  37. 350 ; bank %s ;Force SAVENEX to include bank %s
  38. 351 ; ; in the NEX file
  39. 352 ;;Write the NEX file, emitting all the banks and
  40. 353 ;; configuring the startup PC, SP and entry bank
  41. 360 ; savenex "asmspr.nex",start,stack,,%o
  42.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement