Click Here To Go To The Your Computer Archive

Written By Alan Wagstaff

Cover Art
Click Here To Enlarge Loading Screen

Loading Screen
Click Here To Enlarge Opening Screen

Opening Screen
Click Here To Enlarge Screenshot

Game Screenshot

Scroll Roles

Alan Wagstaff, Scotton, North Yorkshire

This assembly-language program enables interesting effects to be obtained in Mode 7. Any section of the screen display can be scrolled left or right, disappearing and reappearing on the other side. Any number of such sections or windows can be effective simultaneously. Each window is defined in terms of normal printing co-ordinates.

After keying in the listing, save it on tape and then run it. The machine code will be assembled, starting at address C00 hex. This can be changed if desired - see line 30. New should then be entered, followed by the Basic program which i~ to make use of the machine code.

Alternatively, the Basic program and the assembly listing could be merged into one single program. The assembly language uses integer variables R%, Q%, L%, W%. The Basic program should not alter these.

The machine code is accessed from Basic by using the CALL command.

CALL R% will rotate a window to the right
CALL L% rotates to the left
CALL Q% causes the window to disappear to the right.
CALL W% disappears to the left.

Each CALL command must pass four parameters, all integer variables, which have previously had values allocated to them. For example:

CALL R%, X1%, X2%, Y1%, Y2%

will rotate to the right a section of screen display between X1% and X2%, left to right, and between Y1% and Y2%, top to bottom. The assembly language listing consists of four routines, Q%, lines 50 to 240, R%, lines 250 to 460, W%, lines 480 to 670, and L%, lines 680 to 890. Lines pertaining to any unwanted routine need not be entered.

Line 470 and lines 900 onward must be retained. Line 470 is the exit back to the Basic program and lines 900 onwards contain two subroutines, Paras and Add.

The subroutine Paras obtains the four parameters from a block starting at 600 hex - see page 214 of the User Guide - and places them on zero page where the machine code can manipulate them.

The subroutine Add adds multiples of 40 to HIMEM to move to the correct line of the display. The short Basic program can be entered to demonstrate the capabilities of the machine code.