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 |
| Keyword | Abbreviation | Token (hex) | Version(s) | Classification | | RREG | R{Shift+R} | FE 09 | 7.0 | Command and Statement |
RREG [ registerA ] [ , [ registerX ] [ , [ registerY ] [ , [ registerP ] ] ] ] | Parameters | Type | Legal Value(s) | Default Value | Note(s) | | registerA | numeric 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 | | |
| Returns | Type | Legal Value(s) | Default Value | Note(s) | | registerA | Unsigned byte | 0 to 255 | | | | registerX | Unsigned byte | 0 to 255 | | | | registerY | Unsigned byte | 0 to 255 | | | | registerP | Unsigned byte | 0 to 255 | | |
Retrieve CPU registers after the last SYS command/statment. 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.
|
|