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 >
Wrap
RISC OS BBC BASIC V Source
|
1993-06-14
|
2KB
|
80 lines
> VIDC1
> (c) Ace 1990
> This program rejects any contradiction that FULL HORIZONTAL HARDWARE
> SCROLLING isn't possible on the Archimedes.
assem
init_screen
init_scroll
"OS_Word",22,osword
A%=&8c:B%=b_start%:
change
#A%=&90:B%=b_start%+176:
change
(-98)
scroll_right :
(-67)
scroll_left :
(-80)
write_base(-704) :
(-105)
write_base(704) :
assem
code% &100,L% -1
pass%=8
P%=code%
[opt pass%
;r0=register
;r1=value
.change
swi "XOS_EnterOS"
mov r2,#&3400000
mov r0,r0,lsl#24
orr r0,r0,r1,lsl#14
str r0,[r2]
teqp pc,#0
movnv r0,r0
movs pc,r14
.osword
dcb 3
dcd 0
, align
.vdu_var
dcd 0
dcd 0
init_screen
*Mode127
2,2)"H A R D W A R E S C R O L L T E S T"
2,4)"This program is an example how to use"
2,5)"the VIDC to produce BOTH vertical and"
2,6)"HORIZONTAL hardware scrolling."
2,8)"Use the following keys to scroll the"
2,9)"screen:"
2,10)" Z - scroll left"
2,11)" X - scroll right"
2,12)" / - scroll down"
2,13)" ' - scroll up"
init_scroll
b_start%=56
s_start%=0
!vdu_var=150
vdu_var!4=-1
"OS_ReadVduVariables",vdu_var,vdu_var
s_len%=!vdu_var
scroll_left
b_start%-=1
b_start%<48
b_start%+=8
write_base(16)
scroll_right
b_start%+=1
b_start%>64
b_start%-=8
write_base(-16)
write_base(add%)
s_start%+=add%
s_start%<0
s_start%>=s_len%
s_start%+=
(add%)*-s_len%
osword!1=s_start%