Guest User

Untitled

a guest
Nov 20th, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.96 KB | None | 0 0
  1. @0x00
  2.  
  3. ORIGIN = 0xFF8D
  4.  
  5. ==Start==
  6. LDA #1 ; start counting at 1
  7. {
  8. PHA ; save A
  9. JSR Fib
  10. CMP 0x0200 ; if fib(A)>fib(A-1), stop
  11. BCC BR
  12. STA 0x0200
  13. JSR Printn
  14. JSR Newline
  15. PLA ; restore A
  16. ADC #1 ; increase A by 1
  17. JMP RE
  18. }
  19. {JMP RE}
  20.  
  21. ==Fib==
  22. LDX #1
  23. LDY #0
  24. {
  25. CMP #2
  26. BCC BR
  27. SBC #1 ; decrement A
  28. PHA ; save A
  29. TXA ; set A to X
  30. STY 0x0201 ; add Y to A
  31. CLC
  32. ADC 0x0201
  33. STX 0x0201 ; set Y to X
  34. LDY 0x0201
  35. TAX ; set X to A
  36. PLA ; restore A
  37. JMP RE
  38. }
  39. TXA
  40. RTS
  41.  
  42. ==Printn==
  43. {
  44. PHA ; save A
  45. LSR A ; divide A by 10...
  46. STA 0x0201
  47. LSR A
  48. ADC 0x0201
  49. ROR A
  50. LSR A
  51. LSR A
  52. ADC 0x0201
  53. ROR A
  54. ADC 0x0201
  55. ROR A
  56. LSR A
  57. LSR A
  58. BEQ BR ; stop if A = 0
  59. JSR Printn ; recursively call Printn
  60. }
  61. PLA ; restore A
  62. {
  63. CMP #10 ; break if A < 10
  64. BCC BR
  65. SBC #10 ; subtract 10 from A
  66. JMP RE ; and loop
  67. }
  68. ORA #0x30 ; ASCII code for '0'
  69. STA 0x7c00 ; print digit
  70. RTS
  71.  
  72. ==Newline==
  73. LDA #13
  74. STA 0x7c00
  75. RTS
  76.  
  77. ==Irq==
  78. RTI
  79.  
  80. @0xFFFC
  81. DATA Start
  82. DATA Irq
Add Comment
Please, Sign In to add comment