Home > CBM > BASIC > Keywords > Rreg
180 Subpages: (divide), (equal), (less), (minus), (more), (multiply), (plus), (power), Abs, And, Append, Asc, Atn, Auto, Backup, Bank, Begin, Bend, Bload, Boot, Box, Bsave, Bump, Catalog, Char, Chr, Circle, Close, Clr, Cmd, Collect, Collision, Color, Concat, Cont, Copy, Cos, Data, Dclear, Dclose, Dec, Def, Delete, Dim, Directory, Dispose, Dload, Do, Dopen, Draw, Ds, Ds string, Dsave, Dverify, El, Else, End, Envelope, Er, Err, Exit, Exp, Fast, Fetch, Filter, Fn, For, Fre, Get, Get num, Getkey, Go, Gosub, Goto, Graphic, Gshape, Header, Help, Hex, If, Input, Input num, Instr, Int, Joy, Key, Left, Len, Let, List, Load, Locate, Log, Loop, Mid, Monitor, Movspr, New, Next, Not, Off, On, Open, Or, Paint, Peek, Pen, Pi, Play, Pointer, Poke, Pos, Pot, Print, Print num, Pudef, Quit, Rclr, Rdot, Read, Record, Rem, Rename, Renumber, Restore, Resume, Return, Rgr, Right, Rlum, Rnd, Rspcolor, Rsppos, Rsprite, Run, Rwindow, Save, Scale, Scnclr, Scratch, Sgn, Sin, Sleep, Slow, Sound, Spc, Sprcolor, Sprdef, Sprite, Sprsav, Sqr, Sshape, St, Stash, Step, Stop, Str, Swap, Sys, Tab, Tan, Tempo, Then, Ti, Ti string, To, Trap, Troff, Tron, Until, Using, Usr, Val, Verify, Vol, Wait, While, Width, Window, Xor

KeywordAbbreviationToken (hex)Version(s)Classification
RREGR{Shift+R}FE 097.0Command and Statement

 
Syntax 
RREG [ registerA ] [ , [ registerX ] [ , [ registerY ] [ , [ registerP ] ] ] ]
 
ParametersTypeLegal Value(s)Default ValueNote(s)
registerAnumeric variable name
any non-reserved
 
registerX numeric variable name 
any non-reserved 
  
registerY numeric variable name 
any non-reserved 
 
registerP numeric variable name any non-reserved   
 
ReturnsTypeLegal Value(s)Default ValueNote(s)
registerAUnsigned byte
0 to 255
 
registerX Unsigned byte 0 to 255  
registerY Unsigned byte 0 to 255  
registerP Unsigned byte 0 to 255   
 
 
Purpose 
Retrieve CPU registers after the last SYS command/statment.
 
 
Remarks 
This statement is interesting because it acts like a function!  Every other BASIC function takes a parameter enclosed in parentheses "(" and ")" and returns a single value.  With RREG, however, parentheses are forbidden and you may retrieve zero to four values.  The value(s) returned depend on the state of CPU after the most recent BOOT or SYS; on power-up, the "results" are defined as zero (i.e., the value(s) you get if no BOOT nor SYS was ever executed.)
 
Together with SYS, this may be used to calculate a value with a machine-language program in memory (either RAM or ROM).  In this sense, it is similar to USR.  However USR returns a single floating pointing number, while this can only return a byte(s).  Although BANK is important for SYS, it is not important for RREG.
 
Attempts to specify a reserved variable name as a parameter will generate SYNTAX ERROR.  Trying to use a string variable generates TYPE MISMATCH ERROR. 
 
It has no practical use except as a companion to SYS and (rarely) BOOT, which are very machine-specific; so effectively this statement is non-portable.  As such, there are no "real" examples.  However a few trivial ones are shown to demonstrate syntax.
 
Examples:
PRINT RREG(A)

?SYNTAX ERROR 
READY.
A = 1 : PRINT A
 1

READY.
RREG A

READY.
PRINT A
 0

READY.
RREG ,X,Y

READY.
RREG A,,Y

READY.
RREG

READY.
 
 
Compare With 
 
See Also 
BOOT, SYS
© H2Obsession, 2014