1. 21 Jul, 2017 2 commits
    • Robert Sprowson's avatar
      Debugger symmetry, assembler fixes, and add AArch32 ARMv8 instructions · 2789c2ee
      Robert Sprowson authored
      SRS changed to accept R13 as a synonym for SP.
      Fix stack imbalance in CHKCOPRO, CHKREG1 expected R14 & R1 to be stacked but only R1 was, so a copro number not starting CP
        CDP 5,0,C1,C2,C3
      for example led to a abort on instruction fetch when returning from CHKREG.
      The syntax help for STC and LDC was missing the <cpreg> source/dest register.
      Fix for LDREXH & STREXH rejecting odd numbered Rt. The check for -EXD was only looking at 1 of the 2 size bits in the output instruction, so -EX and -EXB allowed odd Rt, but -EXH inherited the checks intended for only -EXD.
      ARMv8: Added ISHLD/NSHLD/OSHLD/LD options to DMB & DSB; HLT #imm16; SEVL; CRC32; LDA[B|H]; LDAEX[B|H|D], STL[B|H]; STLEX[B|H|D].
      This completes the review of all the opcodes (see also BASIC-1_63).
      
      Tests/ARMv6v7/TestARMv8 has samples of the new opcodes in action.
      
      Version 1.69. Tagged as 'BASIC-1_69'
      2789c2ee
    • Robert Sprowson's avatar
      Avoid unpredictable behaviour on old ARMs · 8d0cec67
      Robert Sprowson authored
      Swapped IntVectorVectorOp order of $op registers to avoid Rd=Rm being unpredictable for MUL.
      8d0cec67
  2. 13 Jun, 2017 3 commits
    • Robert Sprowson's avatar
      Follow the ARM ARM for VFP opcode VDUP despite a tokens clash · 8aa04a28
      Robert Sprowson authored
      Earlier versions of the VFP assembler extensions cooked up VDPL as a way to dodge the problem of opcode VDUP being tokenised as VDUPRINT when used in its scalar or unconditional form (ie. VDUP.<size> <regs>).
      This can be handled with an exception in the tokeniser in a similar manner to MOVEQ and ORR in the conventional ARM instruction set.
      VFPLib: change the tables to use VDUP rather than VDPL.
      Lexical.s: watch out for specifically VDUP. and tokenise it as VDU followed by a P in memory.
      Assembler.s: watch out for token VDU followed by a P and take it to be VDUP.
      VFP.s: when matching, allow the token for VDU to expand as though VDU was seen, also, add support for backslash and REM comments (previously only semicolon was allowed).
      Tests/VFP/TestVFP: update the test case and 3 other failing tests from earlier fixes.
      Tests/Match/TokVDUP: brute force trial of all combinations of VDU and PRINT, to check only VDUP. is caught.
      
      Version 1.68. Tagged as ...
      8aa04a28
    • Robert Sprowson's avatar
      Macro and SWI swap outs · 2ebecdac
      Robert Sprowson authored
      Use uppercasing macros from Hdr:Macros rather than local copies.
      Use OS_NewLine instead of OS_WriteC 13+OS_WriteC 10.
      Simplify VFPGet4Char by rolling the loop the other way.
      2ebecdac
    • Robert Sprowson's avatar
      Tidy source to conventional columns · 1d7c3850
      Robert Sprowson authored
      Run through AsmTidy to make it more readable, aligned to columns 9 & 17.
      Builds the same binary, not tested.
      1d7c3850
  3. 03 Jun, 2017 1 commit
    • Jeffrey Lee's avatar
      Add "BASICVFP", a VFP version of BASIC64 · b3332e2b
      Jeffrey Lee authored
      Detail:
        See Doc/BASICVFP for overall design/specification
        File changes:
        - !Mk,fd7, !MkClean,fd7, !MkRom,fd7, Makefile - update build scripts to support BASICVFP target
        - Resources/UK/Messages - Add a few new messages
        - hdr/Definitions - Define BASICVFP register usage and a few utility macros
        - hdr/WorkSpace - Define BASICVFP workspace adjustments. Add a few asserts to check some workspace constraints are maintained.
        - s/* - Lots of changes to add support for BASICVFP variant of the module
      Admin:
        Tested on Raspberry Pi 1/2/3, BB-xM
      
      
      Version 1.67. Tagged as 'BASIC-1_67'
      b3332e2b
  4. 13 Apr, 2017 1 commit
    • Jeffrey Lee's avatar
      Restore old number formatting logic · db8c7df0
      Jeffrey Lee authored
      Detail:
        The BASIC64 number formatting code was found to be significantly different to the BASIC105 formatting code, and a potential source of compatibility issues due to the various bugs and quirks it seemed to contain
        To resolve this, the BASIC105 number formatting code has been resurrected and adapted to allow it to be used by both BASIC105 and BASIC64
        The formatting code still uses BCD internally, so accuracy will be the same as BASIC 1.65. It's just the formatting discrepancies (for both BASIC versions) which will have been affected.
        MAXDIGS has also been revised again; the +2 is no longer required (was a BASIC64 quirk), so BASIC105 is down to 11 (up from 10 in pre-1.65 versions) and BASIC64 has reverted to the historic value of 18 (which is technically one more than necessary)
        File changes:
        s/fp2 - Updated as described above
        Tests/Math/AtPercent,ffb - New test program which compares the E/F/G number formatting code against a (BASIC105-style) reference model for the number formatting implemented in BASIC
      Admin:
        Tested on Raspberry Pi
        Fixes issue reported on forums:
        https://www.riscosopen.org/forum/forums/4/topics/9199
      
      
      Version 1.66. Tagged as 'BASIC-1_66'
      db8c7df0
  5. 30 Mar, 2017 1 commit
    • Jeffrey Lee's avatar
      Increase accuracy of 5-byte float to string conversion · 99e7d120
      Jeffrey Lee authored
      Detail:
        This change rewrites the BASIC105 version of the FCONA routine so that it converts the value to FPA packed decimal format, with ~16 decimal digits of accuracy. To avoid adding an FPA dependency to BASIC105 this is done via a new, custom routine.
        Apart from improving the accuracy of the result, converting to packed decimal allows the rest of the function body to be shared with the BASIC64 variant of the routine.
        File changes:
        s/fp2 - Updated as above. New FACCtoBCD function added to perform the BCD/packed decimal conversion. MAXDIGS for BASIC105 increased to 11+2. Minor FRDFPEXPBIN optimisation.
      Admin:
        Tested on BB-xM
        Although the new FCONA implementation is known not to be fully accurate, testing with Test.Math.Decimal shows a marked improvement over the previous implementation, with ~100m random float -> string -> float conversions being performed without any loss of accuracy
      
      
      Version 1.65. Tagged as 'BASIC-1_65'
      99e7d120
  6. 20 Mar, 2017 1 commit
    • Jeffrey Lee's avatar
      Improve CALL tester · 78e98596
      Jeffrey Lee authored
      Detail:
        Tests/CALL,ffb:
        - Make compatible with (at least) RISC OS 3.1, for checking behaviour of old BASICs
        - Allow checking for stack usage
        - Mark fewer FPA registers as clobbered, to match the registers BASIC actually uses
        - Implement tests for the untested CALL routines
      Admin:
        Tested against current BASIC/BASIC64 and BASIC/BASIC64 1.05
      
      
      Version 1.64. Retagged as 'BASIC-1_64'
      78e98596
  7. 04 Mar, 2017 1 commit
    • Jeffrey Lee's avatar
      Fixes and improvements · 4fa98950
      Jeffrey Lee authored
      Detail:
        s/Expr - Clean up some confusing code relating to l-value address offsets in LOOKU5. The old code looked like it contained a bug for BASIC64 (two TEQs back-to-back), but the situations LOOKU5 is called in meant it was fine and the TEQs were actually unnecessary.
        s/HelpMsgs - Fix MSGPRNXXX and friends corrupting R1. Was causing LVAR to crash/malfunction when listing functions/procedures.
        s/Stmt2 - Fix rotated ellipses being completely broken in BASIC64. Looks like this has been broken forever (bug appears to be present in BASIC64 1.05, as supplied with RISC OS 3)
        s/fp2 - Increase MAXDIGS by one for BASIC64, to allow for accurate float -> string conversion for numbers of the form 0.0XXXX when using G format.
        s/fp2 - Rewrite BASIC64's string -> float conversion code. Although the old code was believed to be sufficiently accurate, excessive use of FPA instructions made it rather slow, and a poor fit for any future VFP version of BASIC (the code relied on extended precision for accuracy, which VFP lacks). The new version converts to packed decimal and then relies on FPEmulator to perform the decimal -> float conversion via LDFP (to mirror float -> string conversion via STFP). The reduction in FP instructions makes it many times faster than the original ("Decimal" test runs 5x faster)
        Tests/CALL,ffb, Tests/Math/Array,ffb, Tests/Math/Decimal,ffb, Tests/Math/ELLIPSE,ffb - Add a handful of new test programs.
      Admin:
        Tested on BB-xM
      
      
      Version 1.64. Tagged as 'BASIC-1_64'
      4fa98950
  8. 25 Jan, 2017 1 commit
    • Robert Sprowson's avatar
      Assembler encoding of MRS and MSR of banked register · 3c79de36
      Robert Sprowson authored
      The 'S' of SP was being picked up by CHKPSR as a possible match for SPSR, and setting bit 22 of the output opcode. For banked MRS and MSR this turned
        MRS R9,SP_hyp into MRS R9,SPSR_hyp
        MSR SP_hyp,R1 into MSR SPSR_hyp,R1
      rather than change CHKPSR to set bit 22 only when it was sure a PSR was seen, just clear the bit for the banked register case.
      Updated TestARMv6v7 to fewer mismatches, and eyeballed the remaining as being presentational only, rather than wrong encoding.
      Retagged as BASIC-1_63.
      3c79de36
  9. 24 Jan, 2017 1 commit
    • Robert Sprowson's avatar
      Assembler/Debugger round trip improvements · 70705e18
      Robert Sprowson authored
      Review of opcodes of the form
        OP<c> {#}imm
      this summarises the ones the BASIC assembler accepts:
        SVC #imm, SVC imm, SWI imm (Debugger emits SWI imm)
        DBG #imm, DGB imm          (Debugger emits DBG imm)
        SMC #imm, SMC imm, SMI imm (Debugger emits SMI imm)
        HVC #imm, HVC imm          (Debugger emits HVC imm)
        BKPT #imm, BKPT imm        (Debugger emits BKPT imm)
      Assembler.s: Add SMI as a synonym for SMC.
      CmdHelp: Add all the missing v6/v7 opcodes to the help.
      HelpMsgs.s: Split the terse yet huge assembler help (HELP [) into 3 to avoid needing 4k of stack just for the message token lookup.
      
      Version 1.63. Tagged as 'BASIC-1_63'
      70705e18
  10. 30 May, 2016 1 commit
    • Robert Sprowson's avatar
      Build fix · 438d5775
      Robert Sprowson authored
      For standalone builds wanting VFP assembler support, a dependency is needed on VFPData since there's no preceding resources phase. This dependency got trimmed in error in revision 4.19 of this file.
      Retagged as BASIC-1_62.
      438d5775
  11. 29 May, 2016 1 commit
  12. 28 May, 2016 1 commit
    • Jeffrey Lee's avatar
      Fix RISC OS 3.1 compatibility. Fix "Unknown keyword" error. · 3012d71b
      Jeffrey Lee authored
      Detail:
        s/Basic - Fix error generation for unknown keywords on the command line; MSGPRNXXX is a function, not a SWI
        s/HelpMsgs - Take account of the fact that under RISC OS 3.1 MsgTrans doesn't support tokenised messages, and so the [1B][01] control codes being used for inserting newlines will be left in place in the message output. Passing the message on to OS_PrettyPrint allows the tokens to be expanded, but only if we pass a sensible dictionary pointer (Old code was passing in the message pointer as the dictionary pointer, resulting in recursive expansion of the message and an eventual stack overflow)
      Admin:
        Tested PlingSystem build on RISC OS 3.1
      
      
      Version 1.62. Tagged as 'BASIC-1_62'
      3012d71b
  13. 01 Aug, 2015 1 commit
  14. 14 Apr, 2015 1 commit
    • Adrian Lees's avatar
      Extended assembler for ARMv6/v7 instructions · 871cde4f
      Adrian Lees authored
      Implemented scalar (non-VFP/NEON) instructions for ARMv6/v7 and a couple of omitted ARMv5 instructions in UAL syntax.
      Added documentary comments and minor performance tweaks to some existing code.
      Corrected stack imbalance in handling of memory moving when local DIMs in use.
      Preliminary test code for assembler instructions.
      
      Version 1.60. Tagged as 'BASIC-1_60'
      871cde4f
  15. 06 Jan, 2015 1 commit
    • Jeffrey Lee's avatar
      Makefile fix for s.VFPData · cd9dcba3
      Jeffrey Lee authored
      Detail:
        Makefile - Split the VFPData rule into two parts so that it's clear where s.VFPData comes from. Fixes amu throwing 'Don't know how to make ...' errors when doing repeated builds of PlingSystem.
      Admin:
        Tested with PlingSystem build
      
      
      Version 1.59. Retagged as 'BASIC-1_59'
      cd9dcba3
  16. 24 Sep, 2014 1 commit
    • Ben Avison's avatar
      Tweaks to permit BASIC to cross-compile · dd2286cc
      Ben Avison authored
      Detail:
        * Changed file paths to forms that also work when cross-compiling
        * Changed case of filenames so they match on case-sensitive filing systems
        * Makefile needs to use leading tabs
        * Escaped the '$' in 'BASIC$Crunch' (squashes a warning in new version of
          objasm - unrelated to cross-compilation)
      Admin:
        Cross-compiles OK with Norcroft tools, though asasm can't stomach the
        expressions BASIC uses. Checked it still builds with RISC OS Norcroft.
      
      Version 1.59. Not tagged
      dd2286cc
  17. 02 Jun, 2014 1 commit
    • Robert Sprowson's avatar
      Correction to register vetting · 1166bc9d
      Robert Sprowson authored
      Assembler.s revision 1.18 had a slight flaw in assembling
        LDR Rn,[R1] (or LDMIA Rn,{R1})
      would report a bad register because the closing bracket matched the test of being greater than '5' and so skipped the thorough check. So LDR Rn,[R1 ] was OK.
      Now, do a more thorough check to determine if the character following could be part of a variable name.
      
      Version 1.59. Not tagged
      1166bc9d
  18. 01 Jun, 2014 2 commits
    • Robert Sprowson's avatar
      Two parsing bug fixes · c405db68
      Robert Sprowson authored
      Lexical.s:
      Rework previous fixes (revision 1.5 and revision 1.4) for BPUT#TRACE,<number> confusing the MATCH routine.
      While revision 1.5 was better it failed to tokenise IF <expr> GOTO 1234 when the THEN is omitted.
      A review of all the keywords shows the only ones that take tokenisable line numbers are TRACE, RESTORE, ON, GOTO, GOSUB and of these only TRACE can be used in a function like manner.
      So, only apply the fix from revision 1.5 if it's a TRACE token.
      Fix from Martin Avison, fixes ticket #387.
      Added a test case in Tests/Match/TokTrace to assist.
      
      Assembler.s:
      Only consider SP or LR or PC to be referring to a register name if used in isolation (not as a substring of another word).
      While LR and PC aren't particularly common start of words in english, SP is, causing source code with such names to give a "Missing ," error.
      We adopt the same logic as for invalid 'R' named variables (eg. r17foo, r9bar) and attempt to find a variable with that name instead.
      Fixes ticket #386.
      
      Version 1.59. Tagged as 'BASIC-1_59'
      c405db68
    • Robert Sprowson's avatar
      Beef up the comments in MATCH routine · 6b8c3cf5
      Robert Sprowson authored
      Submission from Martin Avison. Not tagged.
      6b8c3cf5
  19. 29 Apr, 2014 1 commit
    • Ben Avison's avatar
      Tweak greeting message · b05a9c89
      Ben Avison authored
      Detail:
        The standard message printed when BASIC is entered as the current language
        ("ARM BBC BASIC V[I] version x.xx (C) Acorn 1989") wraps mid-year in
        40-column modes. This change avoids this problem by omiting the version
        number from the greeting.
      Admin:
        Tested on a Raspberry Pi booting into MODE 7
      
      Version 1.58. Tagged as 'BASIC-1_58'
      b05a9c89
  20. 01 Dec, 2013 5 commits
    • Robert Sprowson's avatar
      Have BASIC manage its own messages · eb6ee979
      Robert Sprowson authored
      For the standalone case BASIC[64] will now register its own resources into Resources/BASIC/BASIC[64]Msgs.
      For the ROM case BASIC[64] will share them in Resources/BASIC/Messages as before.
      This ensures that regardless of the order of loading, and the potential that a ROM and standalone version might be mixed, both ends up seeing the messages its expecting to see.
      Tested in a ROM build and softloaded on RISC OS 4.02.
      
      Version 1.57. Tagged as 'BASIC-1_57'
      eb6ee979
    • Robert Sprowson's avatar
      Fix bug misreporting ERL with external errors in immediate mode · bc0426c9
      Robert Sprowson authored
      Starting BASIC and hitting Escape would report an "Escape at line 4 billion" as the check of where an error occurred was over strict.
      Previously "above PAGE and not in 1st 256 bytes of OUTPUT" now "above &8000", this only lets through a few hundred more bytes anyway.
      Change unexpected ERL numbers to be -1 and -2 rather than -1 and 99999.
      Tagged as BASIC-1_57-pre4.
      bc0426c9
    • Robert Sprowson's avatar
      Improvement to externally visible errors · 108e57a1
      Robert Sprowson authored
      Failing to start BASIC due to lack of memory now uses a system unique error number, and an internationalised message.
      Doing QUIT<expr> where the expression exceeds the Sys$RCLimit also now uses a system unique error number.
      Internal error messages (eg. "Syntax error") are now passed via Service_Error for information. As with OSCLI, some extra registers are preset with BASIC's internal state which could be useful for debuggers.
      Tagged as BASIC-1_57-pre3.
      108e57a1
    • Robert Sprowson's avatar
      Non functional changes · a9a2b853
      Robert Sprowson authored
      Lined up some comments.
      Changed LNK filenames to be Unix style (thing.s rather than s.thing).
      Tagged as BASIC-1_57-pre2
      a9a2b853
    • Robert Sprowson's avatar
      Redo DO32BIT portions using central macros · b331633d
      Robert Sprowson authored
      When 32 bitted there weren't 26/32 neutral macros around, but can use them now there are allowing one common output binary for disc based BASIC.
      Some of the sneaky 26 bit code (eg. relying on address space wrapping at 64MB rather than explicitly clearing bits when computing a jump) adopt the safer 32 bit form even if that does cost 1 extra instruction.
      Tagged as BASIC-1_57-pre1
      b331633d
  21. 30 Nov, 2013 1 commit
    • Jeffrey Lee's avatar
      Fix NEON VMLA[L]/VMLS[L] scalar version using incorrect limits for Dm · 66630ce7
      Jeffrey Lee authored
      Detail:
        VFPLib/VFPLib - VMLA[L]/VMLS[L] scalar version definitions corrected to limit Dm to 0-7 for 16 bit datatypes and 0-15 for 32 bit datatypes
      Admin:
        Tested on BB-xM
        All NEON scalar multiply instructions now appear to limit Dm correctly
      
      
      Version 1.56. Tagged as 'BASIC-1_56'
      66630ce7
  22. 16 Nov, 2013 1 commit
    • Jeffrey Lee's avatar
      VFP/NEON assembler fixes · f00c01ec
      Jeffrey Lee authored
      Detail:
        Doc/VFPDoc:
        - Minor documentation update
        VFPLib/VFPLib:
        - Fixed VCVT (float and fixed, ASIMD) incorrectly accepting a condition code
        - Fixed VCVT (float and fixed, VFP) having incorrect syntax for singleword version
        - Fixed VCVT (float and integer, ASIMD) incorrectly accepting a condition code
        - Fixed VABA, VABAL, VABD, VABDL incorrectly listing I8, I16 and I32 as acceptable data types - should have been U8, U16, U32.
        - Fixed VBIF, VBIT, VBSL incorrectly accepting condition codes
        - Fixed VQABS not being supported
      Admin:
        Assembly tested and disassembly examined to test for correctness
      
      
      Version 1.55. Tagged as 'BASIC-1_55'
      f00c01ec
  23. 26 Apr, 2013 6 commits
    • Ben Avison's avatar
      Changed Basic module so it correctly reports ERL after an external abort. · 8d054d02
      Ben Avison authored
      Detail:
        There was a significant problem with Basic when external code is called using
        CALL, USR, SYS, or a *command (either directly or using OSCLI), and that code
        Aborts with Data Transfer, Undefined Instruction or Instruction Fetch. The
        Error Line (ERL) then given by Basic was often the last line of the program,
        rather than the Basic line containing the CALL, USR, SYS or *command.
      
        The problem was caused when the Basic LINE pointer in R12 (which points to
        the current line) was corrupted, and that is used by Basic to find the
        program line number (ERL) after an error. If R12 is outside the program, ERL
        was set to zero or the last line of the program, which was useless for
        problem diagnosis.
      
        After an Abort in a SYS, or in a module *Command (issued direct or via
        OSCLI), R12 is always corrupted. After an Abort in code executed from a CALL
        or USR then R12 is corrupted only if the called code changed it.
      
        In ...
      8d054d02
    • Ben Avison's avatar
      Error handling fix, part 4 · 3c189278
      Ben Avison authored
      Detail:
        The commands TWIN and TWINO are redundant, so have been removed and
        now give a 'Mistake' error. The tokenisation has not been changed. CALLEDNAME
        is now redundant, but the first byte is used as a QUIT flag, so it has not
        been changed. BasicTrans was also changed to remove references to TWIN, and
        say 'This command is no longer available'. Fixes line number of error when
        TWIN entered after Fix 1.
      Admin:
        Changes by Martin Avison
      
      Version 1.53. Not tagged
      3c189278
    • Ben Avison's avatar
      Error handling fix, part 3 · 47b01e16
      Ben Avison authored
      Detail:
        If r13 user if found to be invalid after an error, it is restored to
        the value for the last known error handler (as it was done if valid!).
      Admin:
        Changes by Martin Avison
      
      Version 1.53. Not tagged
      47b01e16
    • Ben Avison's avatar
      Error handling fix, part 2 · e5429860
      Ben Avison authored
      Detail:
        LINE pointer r12 is saved & restored when appropriate.
      
        R12 must only be restored after a CALL, USR, SYS, *Commands or OSCLI aborts.
        To ensure this, the use of the MEMM flag has been changed slightly.
      
        Before SYS, *Commands and OSCLI are executed there is already a flag set in
        MEMM of x01, indicating that memory may be movable. This is set back to x00
        after they have successfully completed, and after an error in Stmt2.MSGERR.
      
        1.  The one test of MEMM (in Basic.MOVEMEMORY) was for equality with x01.
            This has been changed to test only for bit 1, not the whole byte.
        2.  Before SYS, *Commands and OSCLI the MEMM flag is now set to x03 not x01.
        3.  MEMM is now additionally set to x02 before CALLed code (also used by USR)
            and unset afterwards.
        4.  Whenever MEMM bit 1 is set, r12 is saved in R12STOR in the workspace.
        5.  In the error handling code, r12 is restored IF bit 1 is set in MEMM.
      
        Thus r12 can only be restored when it had just been stored, and there has
        been an error in external code. So these changes should be safe!
      Admin:
        Changes by Martin Avison
      
      Version 1.53. Not tagged
      e5429860
    • Ben Avison's avatar
      Error handling fix, part 1 · bb88027a
      Ben Avison authored
      Detail:
        The line number reported if r12 is outside program code is now -1 if
        below the program, or 99999 if above. Note that this change should not be
        required if r12 is always restored by fix 2, but there can be other cases!
      Admin:
        Changes by Martin Avison
      
      Version 1.53. Not tagged
      bb88027a
    • Ben Avison's avatar
      Additional comments and whitespace changes · 82fdbef1
      Ben Avison authored
      Admin:
        Provided by Martin Avison, as part of his error handling changes in the
        following commits. This particular commit should build as binary identical
        to version 1.53.
      
      Version 1.53. Not tagged
      82fdbef1
  24. 18 Sep, 2012 2 commits
    • Robert Sprowson's avatar
      Correction to RMEnsure · 077e12aa
      Robert Sprowson authored
      Neither the module title nor the filename turned out to be right.
      Retagged as BASIC-1_53.
      077e12aa
    • Robert Sprowson's avatar
      Add an attempt to load ArmBE when EDIT keyword is used · 7d5192d5
      Robert Sprowson authored
      It may fail if not available, but so did 'EDIT'. This way if it is available at least the 'EDIT' command enters the editor.
      Note: this replaces the recommendation to load from ADFS::0.$.Modules.BasicEdit in the chapter "Editing BASIC files under RISC OS 2" in the BBC BASIC reference manual (!).
      
      Version 1.53. Tagged as 'BASIC-1_53'
      7d5192d5
  25. 09 Jul, 2012 1 commit
  26. 25 Mar, 2012 1 commit
    • Jeffrey Lee's avatar
      Fix min/max limits of NEON immediate shift instructions · 82a49575
      Jeffrey Lee authored
      Detail:
        VFPLib/VFPLib - Added "g" and "h" immediate constant types. Updated descriptions of existing types. Fixed VQSHL{U}, VSHL, VSHLL and VSLI to use the correct immediate types.
        s/VFP - Added support for the new immediate constant types. Fixed VFPop_imm6 masking the immediate value against (1<<bits)-1, causing the wrong constant to be encoded when imm==size
      Admin:
        Verified correct assembly/disassembly of all shift instructions, with min & max shift amounts
        (Assuming my disassembler is correct)
      
      
      Version 1.51. Tagged as 'BASIC-1_51'
      82a49575