Latest version of BeebEm

discuss bbc micro and electron emulators (including mame) here!
julie_m
Posts: 587
Joined: Wed Jul 24, 2019 9:53 pm
Location: Derby, UK
Contact:

Re: Latest version of BeebEm

Post by julie_m »

I'm still running BeebEm 0.0.13, because that was the only thing I could persuade to build on Linux. Is there anything newer out there?
chrisn
Posts: 980
Joined: Sat Apr 19, 2014 12:31 pm
Location: UK
Contact:

Re: Latest version of BeebEm

Post by chrisn »

I don't know, my own focus is on the Windows version, although I sometimes wonder how feasible it would be to port it to Linux.
Atom / BBC B with Music 5000/4000/2000 / Electron / A3000 / Master 128
derek
Posts: 258
Joined: Thu May 07, 2015 8:31 pm
Location: Sunny Runcorn, UK
Contact:

Re: Latest version of BeebEm

Post by derek »

Hi,

While I like to compile all Linux software from source, the Windows verdion of BeebEm runs perfectly under Wine.
Regards,

Derek
chrisn
Posts: 980
Joined: Sat Apr 19, 2014 12:31 pm
Location: UK
Contact:

Re: Latest version of BeebEm

Post by chrisn »

BeebEm 4.19 for Windows is now available at https://github.com/stardot/beebem-windo ... s/tag/4.19

Here are the main changes in this version:
  • Fixed NMOS 6502 instructions 6B (ARR imm) and EB (SBC imm).
  • Fixed timings for instructions 83 (SAX (zp,X)), 8F (SAX abs), B3 (LAX (zp),Y), and BB (LAS abs,Y).
  • Fixed 65C12 instruction timings for ADC and SBC in decimal mode, ASL, LSR, ROL, ROR, and BRA.
  • Added keyboard shortcuts for changing text-to-speech reading rate. Enable text output reader by default when text-to-speech is enabled.
  • Fixed crash in the debugger, where sideways RAM does not contain a normal ROM image.
  • Fixed Econet source code cross-compatibility issue.
  • Serial and tape emulation improvements:
    • Fixed serial transmit state: Writing a master reset to the ACIA control register should stop transmitting data. This was causing extra bytes to be written to UEF files when saving to tape.
    • The Tape Control dialog Record button now always prompts the user to create a new UEF file, rather than appending to the currently open UEF file. This change also fixes a bug where the button would do nothing if a CSW file was loaded.
    • Opening the Tape Control dialog no longer causes Block? or Data? errors during loading.
    • The BeebEm version number is now stored in UEF tape files.
  • Fixed Master real time clock year handling. The year is stored as the last two digits. Removed the "Master 128 RTC Y2K Adjust" option. Note that the Master MOS still displays years as 19xx, but will accept any century when setting the time using `TIME$`.
  • Added debugger support for the BBC Master real-time clock and CMOS RAM.
  • Added a new Music 5000 disk image (M5000-4.ssd) that uses a different copy protection patch, to fix the staff editor.
  • Added ZipFile project, to create BeebEm.zip distribution. The project runs a Perl script, so requires a working Perl installation.
  • The Write Protect On Load menu option is now also applied to files loaded from the command line.
  • Improved the Disc Export dialog, which now detects and avoids using file names that are not valid on the host filesystem. The dialog box allows you to double-click an entry to rename files.
  • The BeebEm window on Windows 11 is now drawn with rounded corners disabled.
Atom / BBC B with Music 5000/4000/2000 / Electron / A3000 / Master 128
garfield
Posts: 547
Joined: Mon Jan 03, 2005 1:38 am
Contact:

Re: Latest version of BeebEm

Post by garfield »

thanks!
User avatar
flaxcottage
Posts: 5718
Joined: Thu Dec 13, 2012 8:46 pm
Location: Derbyshire
Contact:

Re: Latest version of BeebEm

Post by flaxcottage »

Just upgraded to 4.18 yesterday, so for me a very quick upgrade. :lol:

One query, though ... Is HFE support going to be added in the future?
- John

Check out the Educational Software Archive at www.flaxcottage.com
chrisn
Posts: 980
Joined: Sat Apr 19, 2014 12:31 pm
Location: UK
Contact:

Re: Latest version of BeebEm

Post by chrisn »

flaxcottage wrote: Mon May 01, 2023 7:44 pm One query, though ... Is HFE support going to be added in the future?
I would like to add this, yes, but I don't have any immediate plans, I'm currently looking at the serial port and tape emulation. With limited time to work on it, it's too easy for me to lose track of where I'm up to if there's any complexity :(
Atom / BBC B with Music 5000/4000/2000 / Electron / A3000 / Master 128
User avatar
Diminished
Posts: 1235
Joined: Fri Dec 08, 2017 9:47 pm
Contact:

Re: Latest version of BeebEm

Post by Diminished »

hoglet wrote: Thu Jun 23, 2022 3:06 pmLooking at a disassembly of OS 0.10, the code after the CRC is different:

Code: Select all

    JSR .saveChecksumToTape                             ; save checksum to TAPE

.saveFinalTwoBytes
    JSR .saveByteAToTapeInternal                        ;
    INC .fsGotACharacterToReadOrWriteFlag               ;
    JSR .saveByteAToTapeInternal                        ;
    JSR .resetACIA                                      ;
and

Code: Select all

; ***************************************************************************************
.saveByteAToTapeInternal
    LDA #12                                             ;
    STA .verticalSyncCounter                            ; set to 12 vsyncs
-
    BIT .fsGotACharacterToReadOrWriteFlag               ;
    BMI +                                               ; if (byte written) then branch
    BIT .verticalSyncCounter                            ; check vertical sync counter
    BPL -                                               ; if (not timeout) then branch (loop back)
    JSR .checkForEscapeDuringCassetteOperation          ;
    BMI .saveByteAToTapeInternal                        ;

+
    ; byte is now read / written
    PHP                                                 ; store flags
    LDA #0                                              ; A=0
    STA .fsGotACharacterToReadOrWriteFlag               ; clear flag, we no longer have a byte
    PLP                                                 ; recall flags
    RTS 
So I think the behavoiur of this is well worth someone investigating.

Dave
Exhuming this year-old post, I have recently been trying to implement saving-to-tape in B-Em. (This has rapidly devolved into a complete mess.)

However, the code is good enough to enable adjusting the pipelining of the ACIA transmission such that the master reset cancels the two bytes of duplicated CRC with MOS 1.2 (as it does on hardware). With this configuration, you can then switch B-Em to MOS 0.1 and try saving to tape, whereupon you do indeed get a single byte of duplicated CRC as was observed in 6% of the UEF files on Stairway.

In light of this (and other evidence), I am now completely confident that the occurrence of a single duplicated CRC byte in a minority of real-world Beeb tapes is a consequence of the use of MOS 0.1 to save those tapes.

This is actually rather cool IMO, as it makes it possible to identify which commercial tapes were saved using MOS 0.1 (I am not sure if there was a way of determining this previously). It may also provide a hint as to which titles are compatible with 0.1.
User avatar
vanekp
Posts: 1413
Joined: Thu Nov 30, 2000 7:09 am
Location: The Netherlands
Contact:

Re: Latest version of BeebEm

Post by vanekp »

That's interesting, I always wondered how some tapes had a duplicate CRC byte and other did not.
Regards Peter.
Post Reply

Return to “8-bit acorn emulators”