• BASIC-52 INSTRUCTION SET SUMMARY

    7 days ago 0 comments

    COMMANDS             STATEMENTS           OPERATORS
    RUN                  BAUD                 ADD (+)
    CONT                 CALL                 DIVIDE (/)
    LIST                 CLEAR                EXPONENTIATION (**)
    LIST#                CLEAR(S&I)           MULTIPLY (*)
    LIST@ (V1.1)         CLOCK(1&0)           SUBTRACT (-)
    NEW                  DATA                 LOGICAL AND (.AND.)
    NULL                 READ                 LOGICAL OR (.OR.)
    RAM                  RESTORE              LOGICAL X-OR (.XOR.)
    ROM                  DIM                  LOGICAL NOT (.OR.)
    XFER                 DO-WHILE             ABS( )
    PROG                 DO-UNTIL             INT( )
    PROG1                END                  SGN( )
    PROG2                FOR-TO-STEP          SQR( )
    PROG3 (V1.1)         NEXT                 RND
    PROG4 (V1.1)         GOSUB                LOG( )
    PROG5 (V1.1)         RETURN               EXP( )
    PROG6 (V1.1)         GOTO                 SIN( )
    FPROG                ON-GOTO              COS( )
    FPROG1               ON-GOSUB             TAN( )
    FPROG2               IF-THEN-ELSE         ATN( )
    FPROG3 (V1.1)        INPUT                =, >, >=, <, <=, <>
    FPROG4 (V1.1)        LET                  ASC( )
    FPROG5 (V1.1)        ONERR                CHR( )
    FPROG6 (V1.1)        ONEX1                CBY( )
                         ONTIME               DBY( )
                         PRINT                XBY( )
                         PRINT#               GET
                         PRINT@ (V1.1)        IE
                         PH0.                 IP
                         PH0.#                PORT1
                         PH0.@ (V1.1)         PCON
                         PH1.                 RCAP2
                         PH1.#                T2CON
                         PH1.(@ (V1.1)        TCON
                         PGM (V1. 1 )         TMOD
                         PUSH                 TIME
                         POP                  TIMER0
                         PWM                  TIMER1
                         REM                  TIMER2
                         RETI                 XTAL
                         STOP                 MTOP
                         STRING               LEN
                         UI(1&0)              FREE
                         U0(1&0)              PI
                         LD@ (V1. 1 )
                         ST@ (V1. 1 )
                         IDLE (V1.1)
                         RROM (V1. 1 )

  • Calculating speed of light with BASIC-52

    03/04/2026 at 06:46 0 comments

    Let us calculate the speed of light from permittivity of free space and permeability of free space.

    ε0 = 8.8541878188(14)×10−12 F⋅m−1

    μ0 = 1.25663706127(20)×10−6 N⋅A−2

    10     REM CALCULATE SPEED OF LIGHT
    20    MUZERO=1.2566370612720E-6
    30    EPZERO=8.854187818814E-12
    60    C=1/SQR(MUZERO*EPZERO)
    70     PRINT " SPEED OF LIGHT c = ",C,"m/s"
    80     END

    Or we can simply write directly as

    10     REM CALCULATE SPEED OF LIGHT
    20    C=1/SQR(1.2566371E-6*8.8541878E-12)
    30     PRINT " SPEED OF LIGHT  c = ",C,"m/s"
    40     END

    READY
    >RUN

     SPEED OF LIGHT  c =  2.9979245 E+8 m/s

    READY
    >

    10     REM CALCULATE SPEED OF LIGHT
    20    MUZERO=1.2566370612720E-6
    30    EPZERO=8.854187818814E-12
    40    rem X=MUZERO*EPZERO
    50    rem Y=SQR(X)
    60    C=1/SQR(muzero*epzero)
    70     PRINT " SPEED OF LIGHT = ",C, "m/s"
    80     END
    90 rem MUZERO = 1.2566370612720e-6
    100 rem EPZERO = 8.854187818814e-12
    110 rem MUZERO * EPZERO = 1.1126500560584764552371408e-17
    120 rem SQR(MUZERO * EPZERO) = 3.3356409519888024891312226903836e-9
    130 rem C = 29,97,92,457.99934552707422964167902

     The above is comparison data between BASIC-52 and MS Windows calculator results.

    10     REM CALCULATE SPEED OF LIGHT
    20    MUZERO=PI*4E-7
    30    EPZERO=8.854187818814E-12
    60    C=1/SQR(MUZERO*EPZERO)
    70     PRINT " SPEED OF LIGHT = ",C,"m/s"
    80     END

    The above uses constant PI directly and gives only 2m error.

    READY
    >RUN
    
     SPEED OF LIGHT =  2.9979246 E+8 m/s

  • rMQR generator and Scanner

    01/27/2026 at 11:33 0 comments

    HACKADAY
    rMQR HACKADAY

    Few simple and effective available free resources for generating rMQR code generation and decoding.

    The following site supports online rMQR, MicroQR, QRcode generation. The source code also available in Github. It is based on RUST  implementation

    You can try to encode your message into a barcode at  HERE

    Python based rMQR code generation implementation is available for online generation

    You can try it at HERE

    This site provides multiple type barcode generation. You can generate rMQR, MicroQR, QRcode, tQR, EAN13, EAN8, UPCA, CODE39, CODE93, NW7 and ITF type of barcodes. This site also provides image decoding or camera decoding.

    Qrean wasm demo

    Terry Burton's post script based barcode generator supports plenty of barcode types including rMQR code.

    You can try the online barcode generator HERE

    SMARTPHONE SCANNER:

    currently few smartphone apps available for decoding the rMQR. The official Denso site suggest the following app. It is available for both iOS and Android version.

    The android version is available from Google Play

    The iOS version is available from the App Store

    This App can scan using smartphone camera or photos and images stored in your gallery.  This App expects much higher border around the code to decode.

    The other App which supports for smartphone is Scandit

    The DEMO version available for Android and iOS

    The Scandit Demo app supports the rMQR by selecting ANY CODE option on the GUI of the main screen. This app just scans and displays the result and we can copy the scanned message. But the DEMO app doesn't capable of generating the code.