Page 2 of 4

Re: Need help fixing Oric 1

Posted: Wed Jul 01, 2020 2:32 am
by cslee_work
Maybe this is a clue. When the prompt is up (before it goes blank), it says "47870 BYTES FREE". I thought it's supposed to be "37631 BYTES FREE"
where's the extra coming from? The number is consistent.

Re: Need help fixing Oric 1

Posted: Wed Jul 01, 2020 6:59 am
by iss
cslee_work wrote: Wed Jul 01, 2020 2:32 am Maybe this is a clue. When the prompt is up (before it goes blank), it says "47870 BYTES FREE". I thought it's supposed to be "37631 BYTES FREE"
where's the extra coming from? The number is consistent.
47870 BYTES FREE are absolutely OK - simply you have BASIC ROM ver.: 1.0
37631 BYTES FREE are reported by BASIC ROM ver.: 1.1 and ver.: 1.1b (i.e. Atmos model).

Re: Need help fixing Oric 1

Posted: Wed Jul 01, 2020 7:58 am
by cslee_work
iss wrote: Wed Jul 01, 2020 6:59 am
cslee_work wrote: Wed Jul 01, 2020 2:32 am Maybe this is a clue. When the prompt is up (before it goes blank), it says "47870 BYTES FREE". I thought it's supposed to be "37631 BYTES FREE"
where's the extra coming from? The number is consistent.
47870 BYTES FREE are absolutely OK - simply you have BASIC ROM ver.: 1.0
37631 BYTES FREE are reported by BASIC ROM ver.: 1.1 and ver.: 1.1b (i.e. Atmos model).
Thanks for the confirmation

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 1:49 am
by cslee_work
Does anyone know if it's feasible to remove all 8 dram chips and replace it with one SRam chip like 62256. No it's faster and cheaper.
I think we can use Ras to latch address.

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 6:50 am
by cslee_work
OK. I have some updates. I was able to burn the debug ROM into an EEPROM with my hacked together Arduino EEPROM programmer

It boots into the diagnostic ROM. I says "RAM TEST PASSED". Then the screen goes blank just like the BASIC 1.0 ROM.
Without the screen, I don't know how to test anything else.

I suspect the ULA is dead. I have to wait for a replacement ULA.

Does anyone have any idea on what else to check?

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 7:14 am
by iss
cslee_work wrote: Thu Jul 02, 2020 1:49 am Does anyone know if it's feasible to remove all 8 dram chips and replace it with one SRam chip like 62256. No it's faster and cheaper.
I think we can use Ras to latch address.
Speaking technically - yes, it's possible such replacement - you'll need 2x 'LS374, 2x 62256, 1/3 'LS04 and lot of enthusiasm. Probably you should select SMD parts because with DIP packages there is a big risk to left the box open :!:
cslee_work wrote: Thu Jul 02, 2020 6:50 am I suspect the ULA is dead. I have to wait for a replacement ULA.
Does anyone have any idea on what else to check?
This is a pure guess... but:
Put the standard ROM and boot ORIC, after 5 secs when screen goes blank blindly type exactly this:

Code: Select all

POKE#BFDF,24
and press RETURN. This will change from PAL to NTSC and hopefully you'll get picture again. To switch to PAL again use:

Code: Select all

POKE#BFDF,26
+ RETURN, and probably after 5 secs the screen will go blank again. Post the result and we will see what can be done.

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 9:02 am
by cslee_work
iss, you are a genius. That worked.
However, when I got HIRES it goes blank again.
I poked the same #BFDF in HIRES and I brought back the screen in HIRES but the text is not visible in the bottom of the screen.
Going back to TEXT, needed the poke again.
I suspect I can hack the ROM for NTSC. There must be two places to change. One for TEXT and one for HIRES.
Is there an equivalent for the diag ROM?

Thanks. Making big progress.

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 10:28 am
by kenneth
The computer uses the 50Hz frequency for the screen, the POKE will set the ULA ship in the 60Hz mode video for US country, in the HIRES mode,I suppose that the routine will switch the ULA in the 50Hz mode because of random poxels. You must burn an Uvprom with a little code to switch the both resolution screen in the American mode.

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 12:21 pm
by Dbug
Why hack when the work was already done:
https://www.oric.org/software/roms_pour ... -2385.html
(You need to create an account to be able to download)

And yes, good catch, I totally missed that the machine was in the USA, so I guess the conversion device is managing to compensate for a while, and then loses sync, it's actually possible that if left running it would have displayed again, and then lost it again :)

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 12:30 pm
by iss
cslee_work wrote: Thu Jul 02, 2020 9:02 am I suspect I can hack the ROM for NTSC. There must be two places to change. One for TEXT and one for HIRES.
Exactly 2 places need to be changed $1E->$1C and $1A->$18. Here is why (from Dbug's Oric graphics in detail):

Code: Select all

24 or 25	Switch to TEXT mode (60 Hz)
26 or 27	Switch to TEXT mode (50 Hz)
28 or 29	Switch to HIRES mode (60 Hz)
30 or 31	Switch to HIRES mode (50 Hz)
Find the attached ROMs 1.0 and 1.1b for 50Hz and 60Hz.
oric-roms-50-60.zip
(50.52 KiB) Downloaded 212 times
cslee_work wrote: Thu Jul 02, 2020 9:02 am Is there an equivalent for the diag ROM?
It's @mikeb's work. He supplied the sources so it's possible to compile one for 60Hz
(of course it can be hacked in binary way too ;)).

EDIT: Here is the 60Hz diag ROM.
diag-108j-60.rom.zip
(3.38 KiB) Downloaded 212 times

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 2:21 pm
by Chema
Nice catch!

One question. Couldn't the conversion device be configured to accept the 50Hz RGB signal? Patching the ROM has some inconveniences. If you use an Eprom you need another hack to be able to have external see devices which want to disable the internal ROM. That means disc controllers and probably Erebus too.

And even if Erebus worked, it will use its own ROM at 50Hz...

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 3:51 pm
by mikeb
iss wrote: Thu Jul 02, 2020 12:30 pm I suspect I can hack the ROM for NTSC. There must be two places to change. One for TEXT and one for HIRES.
Which ROM? The Oric/Atmos one for general use or the diag ROM? I didn't do a 60Hz version of the Diag ROM as I have no 60Hz-capable monitor here, and as you probably realise, the 60Hz thing in a real Oric is a bit of a half-attempt, you can change the mode to 60Hz with Escape codes, but every time you change text/hires, it cancels that back to 50Hz. So much for "internationalization" :)
iss wrote: Thu Jul 02, 2020 12:30 pm It's @mikeb's work. He supplied the sources so it's possible to compile one for 60Hz
(of course it can be hacked in binary way too ;)).
I don't recall posting the sources, how did that happen!? ;)

I just had a quick look ... if you changed two places, both are "LDA #<something> STA #BFDF" (text first, hires second) then you probably found them both :)

Code: Select all

U_MODE          = $18           ; Attribs 24-31, OR first with any comb of next 2
U_MODE_HIRES    = $04           ; Or Text
U_MODE_50HZ     = $02           ; Or 60 Hz

        ; Select text mode, clear screen, copyright message
ULA_text_clear:
        LDA     #U_MODE|U_MODE_50HZ     ; 50Hz text mode selector
        STA     $BFDF                   ; Ensure that it is seen whether in text/hires

        LDA     #' '            ; Space character
        STA     U_TSCREEN       ; Into first character of screen
        LDX     #$1D
        JSR     block_move      ; then call memcpy to wipe text screen

        LDA     #NM_COPY                ; (Copyright string)
        LDX     #$00                    ; Col 0 Offset along status line
        LDY     #$00                    ; Row 0
        JSR     text_write              ; Put on status line

        RTS
        ; Select hires mode, clear screen, copyright message
        
ULA_hires_clear:
        LDA     #U_MODE|U_MODE_50HZ|U_MODE_HIRES ; 50Hz hires mode selector
        STA     $BFDF                   ; Ensure that it is seen whether in text/hires

        LDA     #$40            ; Blank Hires
        STA     U_HSCREEN       ; Into first cell of screen
        LDX     #$23
        JSR     block_move      ; then call memcpy to wipe hires screen.

        LDA     #' '            ; Space character
        STA     U_TSCRROW25     ; Into first character of screen
        LDX     #$29
        JSR     block_move      ; then call memcpy to wipe text screen (3 lines)

        LDA     #NM_COPY                ; (Copyright string)
        LDX     #$01                    ; Col 1 Offset along text line
        LDY     #25                     ; Row 25
        JSR     text_write              ; Put on screen

        RTS



Back to the original problem, the ULA isn't dead if it's still producing video signals -- the fact that the monitor/adapter is blanking out is not the ULA's fault. As you've discovered, the adaptor is being very hard-line about wanting 60Hz. So if it can be convinced that other TV standards exist, then you should be able to work with regular Oric/Atmos/Diag ROMS :)

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 7:16 pm
by cslee_work
Thanks for everyone's help. I'll try the 60Hz ROMS and report back.

I hope I can hack the Erebus ROM too when I get it.

As for the adapter, I will try the hack to put an ESP8266 to enable the extra settings menu. ( https://tomdalby.com/other/gbs8200.html )

On a slight off tangent, where can I get a reset button to fit the footpront of the ORIC1 board.


thanks for everyone's help.

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 10:14 pm
by kenneth
About the Erebus device, the Atmos Rom which is in the chip 27c512 is the same, only the Cload routine is modified.

Re: Need help fixing Oric 1

Posted: Thu Jul 02, 2020 11:32 pm
by cslee_work
kenneth wrote: Thu Jul 02, 2020 10:14 pm About the Erebus device, the Atmos Rom which is in the chip 27c512 is the same, only the Cload routine is modified.
Is the chip socketed?