home *** CD-ROM | disk | FTP | other *** search
/ ftp.uni-stuttgart.de/pub/systems/acorn/ / Acorn.tar / Acorn / acornet / fun / mags / hl-03-93.arc / !HL-03_93_Examples_VIDC1 (.txt) < prev    next >
RISC OS BBC BASIC V Source  |  1993-06-14  |  2KB  |  80 lines

  1.  > VIDC1
  2.  > (c) Ace 1990
  3.  > This program rejects any contradiction that FULL HORIZONTAL HARDWARE
  4.  > SCROLLING isn't possible on the Archimedes.
  5. assem
  6. init_screen
  7. init_scroll
  8.  "OS_Word",22,osword
  9. A%=&8c:B%=b_start%:
  10.  change
  11. #A%=&90:B%=b_start%+176:
  12.  change
  13. (-98)  
  14. scroll_right     :
  15. (-67)  
  16. scroll_left      :
  17. (-80)  
  18. write_base(-704) :
  19. (-105) 
  20. write_base(704)  :
  21. assem
  22.  code% &100,L% -1
  23.  pass%=8 
  24. P%=code%
  25. [opt     pass%
  26. ;r0=register
  27. ;r1=value
  28. .change
  29. swi     "XOS_EnterOS"
  30. mov     r2,#&3400000
  31. mov     r0,r0,lsl#24
  32. orr     r0,r0,r1,lsl#14
  33. str     r0,[r2]
  34. teqp    pc,#0
  35. movnv   r0,r0
  36. movs    pc,r14
  37. .osword
  38. dcb     3
  39. dcd     0
  40. ,    align
  41. .vdu_var
  42. dcd     0
  43. dcd     0
  44. init_screen
  45. *Mode127
  46. 2,2)"H A R D W A R E   S C R O L L   T E S T"
  47. 2,4)"This program is an example how to use"
  48. 2,5)"the VIDC to produce BOTH vertical and"
  49. 2,6)"HORIZONTAL hardware scrolling."
  50. 2,8)"Use the following keys to scroll the"
  51. 2,9)"screen:"
  52. 2,10)"    Z - scroll left"
  53. 2,11)"    X - scroll right"
  54. 2,12)"    / - scroll down"
  55. 2,13)"    ' - scroll up"
  56. init_scroll
  57. b_start%=56
  58. s_start%=0
  59. !vdu_var=150
  60. vdu_var!4=-1
  61.  "OS_ReadVduVariables",vdu_var,vdu_var
  62. s_len%=!vdu_var
  63. scroll_left
  64. b_start%-=1
  65.  b_start%<48 
  66.   b_start%+=8
  67. write_base(16)
  68. scroll_right
  69. b_start%+=1
  70.  b_start%>64 
  71.   b_start%-=8
  72. write_base(-16)
  73. write_base(add%)
  74. s_start%+=add%
  75.  s_start%<0 
  76.  s_start%>=s_len% 
  77.  s_start%+=
  78. (add%)*-s_len%
  79. osword!1=s_start%
  80.