| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- *****************************
- {IDF_TARGET_NAME} ROM console
- *****************************
- When an {IDF_TARGET_NAME} is unable to boot from flash ROM (and the fuse disabling it hasn't been blown), it boots into a rom console. The console
- is based on TinyBasic, and statements entered should be in the form of BASIC statements. As is common in the BASIC language, without a
- preceeding line number, commands entered are executed immediately; lines with a prefixed line number are stored as part of a program.
- Full list of supported statements and functions
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- System
- ------
- - BYE - *exits Basic, reboots and retries booting from flash*
- - END - *stops execution from the program, also "STOP"*
- - MEM - *displays memory usage statistics*
- - NEW - *clears the current program*
- - RUN - *executes the current program*
- IO, Documentation
- -----------------
- - PEEK( address ) - *get a 32-bit value from a memory address*
- - POKE - *write a 32-bit value to memory*
- - USR(addr, arg1, ..) - *Execute a machine language function*
- - PRINT expression - *print out the expression, also "?"*
- - PHEX expression - *print expression as a hex number*
- - REM stuff - *remark/comment, also "'"*
- Expressions, Math
- -----------------
- - A=V, LET A=V - *assign value to a variable*
- - +, -, \*, / - *Math*
- - <,<=,=,<>,!=,>=,> - *Comparisons*
- - ABS( expression ) - *returns the absolute value of the expression*
- - RSEED( v ) - *sets the random seed to v*
- - RND( m ) - *returns a random number from 0 to m*
- - A=1234 - * Assign a decimal value*
- - A=&h1A2 - * Assign a hex value*
- - A=&b1001 - *Assign a binary value*
- Control
- -------
- - IF expression statement - *perform statement if expression is true*
- - FOR variable = start TO end - *start for block*
- - FOR variable = start TO end STEP value - *start for block with step*
- - NEXT - *end of for block*
- - GOTO linenumber - *continue execution at this line number*
- - GOSUB linenumber - *call a subroutine at this line number*
- - RETURN - *return from a subroutine*
- - DELAY - *Delay a given number of milliseconds*
- Pin IO
- ------
- - IODIR - *Set a GPIO-pin as an output (1) or input (0)*
- - IOSET - *Set a GPIO-pin, configured as output, to high (1) or low (0)*
- - IOGET - *Get the value of a GPIO-pin*
- Example programs
- ~~~~~~~~~~~~~~~~
- Here are a few example commands and programs to get you started...
- Read UART_DATE register of uart0
- --------------------------------
- ::
- > PHEX PEEK(&h3FF40078)
- 15122500
- Set GPIO2 using memory writes to GPIO_OUT_REG
- ---------------------------------------------
- Note: you can do this easier with the IOSET command
- ::
- > POKE &h3FF44004,PEEK(&h3FF44004) OR &b100
- Get value of GPIO0
- ------------------
- ::
- > IODIR 0,0
- > PRINT IOGET(0)
- 0
- Blink LED
- ---------
- Hook up an LED between GPIO2 and ground. When running the program, the LED should blink 10 times.
- ::
- 10 IODIR 2,1
- 20 FOR A=1 TO 10
- 30 IOSET 2,1
- 40 DELAY 250
- 50 IOSET 2,0
- 60 DELAY 250
- 70 NEXT A
- RUN
- Credits
- ~~~~~~~
- The ROM console is based on "TinyBasicPlus" by Mike Field and Scott Lawrence, which is based on "68000 TinyBasic" by Gordon Brandly
|