User`s manual

8-11
170 READ A
180 POKE X,A
190 NEXT X
192 '
194 ' ******* CLEAR SCREEN & PRINT NUMBERS 1 THRU 100 *******
196 '
200 CLS
205 PRINT TAB(15);"WHITE-OUT USER ROUTINE": PRINT
210 FOR X=1 TO 100
220 PRINT X;
225 A$=INKEY$: IF A$="@" THEN END
230 NEXT X
240 '
250 ' ******* JUMP TO WHITE-OUT SUBROUTINE *******
260 '
270 X=USR (0)
280 FOR X=1 TO 1000: NEXT X 'DELAY LOOP
290 GOTO 200
300 '
310 ' ******* DATA IS DECIMAL CODE FOR HEX PROGRAM *******
320 '
330 DATA 33,0,60,54,191,17,1,60,1,255,3,237,176,201
RUN the program. An equivalent BASIC white out routine takes a long time
by comparison!
Listed below is an assembled machine-language routine that will accept the
argument from the USR call in BASIC, left-shift it one position, and return
the result to BASIC.
00100 ;
00110 ; SHIFT FUNCTION
00120 ;
00130 ; MACHINE CODE PROGRAM TO LEFT SHIFT
00140 ; AN ARGUMENT SENT FROM BASIC AND RETURN
00150 ; THE RESULT BACK TO BASIC
00160 ;
7D00 00170 ORG 7D00H
00180 ;
00190 ; EQUATES AND ENTRY POINTS
00200 ;
0A7F 00210 GETARG EQU 0A7FH ;GET ARGUMENT FROM BASIC
0A9A 00220 PUTANS EQU 0A9AH ;RETURN ANSWER TO BASIC
00230 ;
7D00 CD7F0A 00240 SHIFT CALL GETARG ;GET NUMBER FROM BASIC