Recovered ROM.

discussion of games, software, hardware & emulators relating to the Acorn Atom
Post Reply
Prime
Posts: 2554
Joined: Sun May 31, 2009 11:52 pm
Contact:

Recovered ROM.

Post by Prime » Fri Jun 08, 2018 12:08 pm

Here's a rom dumped from an Atom at the ABUG south last weekend.

Not sure what it is, it was labeled "splicer" and seems to be in basic, there was a card with it that said something like ?18=#A0 then run.
splicer1.zip
(2.64 KiB) Downloaded 17 times
Cheers

Phill.

bprosman
Posts: 181
Joined: Sun Mar 29, 2015 10:27 pm
Contact:

Re: Recovered ROM.

Post by bprosman » Sun Jun 10, 2018 1:12 pm

Seem to be used to drive an ignition coil or something :

Code: Select all

  REM------------------
  REM OUTPUT ON PB7
  REM------------------
  DIM A(1)
  REM ARRAY POINTERS
  GOSUB 400
  REM--ASSEMBLE
 
 P.""
  P."INPUT DURATION AND FREQUENCY"'
  P. "OF EACH SPARK"''
 ( INPUT"NUMBER OF STEPS"S
 2 IF S<1 GOTO 10
 7 P.'
 < DIM TT(S),HH(S),GG(S),FF(S)
 F FOR I=1 TO S
 P P."frequency step ",I' 
 U INPUT"TIME (MS) "N
 V IF N<0 GOTO 85
 Z TT(I)=N*2
 [ REM------------------------
 ] REM** FF(I)=FREQUENCY
 ^ REM** TT(I)=BURST DURATION
 _ REM** HH(I)=PERIOD LOW BYTE
 ` REM** GG(I)=PERIOD HIGH BYTE
 a REM------------------------
 d INPUT"FREQUENCY (HZ) "N;IF N<1 GOTO 100        
 n FF(I)=N
 x P.'
 – NEXT I
   GOSUB 5000
 ª GOTO 210
 ¯ P.""
 ´ P."TO RUN------------R"''
 ¾ P."TO CHANGE TIME----T"''
 È P."TO CHANGE FREQ.---F"''
 Ê P."TO RESTART--------S"''
 Í P."TO DISPLAY STEPS--D"''
 Ò INPUT"COMMAND"$A
 Ü IF $A= "T"GOTO 230
 á GOTO 250
 æ GOSUB 3000
 ð GOTO 210 
 ú IF $A="F" GOTO 260
 ÿ GOTO 280
 GOSUB 3500
 GOTO 210
 IF $A="R" GOTO 290
 GOTO 310
" GOSUB 4000
, GOTO 210
6 IF $A="D" GOTO 330
; IF $A="Q" END
@ IF $A="S" GOTO 10
E GOTO 175
J GOSUB 5000
T GOTO 210
 REM-----------------------
 REM SPARKER ASSY ROUTINES
‘ REM-----------------------
š DIM LL(2);P=#8500
œ REM---------------------------------
 REM #8400 = STEP NO.
ž REM #841X = FREQ LOW  BYTE , STEP X
Ÿ REM #842X = FREQ HIGH BYTE , STEP X
  REM---------------------------------
¤[
®:LL0 LDA @#FF
¸     STA #B803
     LDA @0
Ì     STA #B801
Ö     LDA @#C0
à     STA #B80B
ê     LDX #8400
ô     LDA #840F,X 
þ     STA #B806
     LDA #841F,X 

     STA #B805
     RTS
:LL1 LDA @0
&     STA #B80B
0     LDA @#FF
:     STA #B801
D     RTS
N]
X RETURN
b REM-----------------
d REM #B801 = PORT A
f REM #B803 = DDR A
h REM #B805 = T1LL
j REM #B806 = T1CH
l REM #B80B = ACR
v REM-----------------
¸ REM-------------
¹ REM CHANGE TIME
º REM-------------
ô INPUT"WHICH TIME STEP TO CHANGE "I
þ IF (I>S OR I<1) GOTO 3060
 INPUT"WHAT TO "N
 IF N<0 GOTO 3080 
 TT(I)=N*2
& GOSUB 5000
0 RETURN

¬ REM-------------

­ REM CHANGE FREQ

® REM-------------

è INPUT"WHICH FREQ STEP TO CHANGE "I

ò IF (I>S OR I<1) GOTO 3560

ü INPUT"FREQUENCY (HZ) "N
 IF N<1 GOTO 3580
 FF(I)=N
 REM--PASS OVER NEW HEAT1
L GOSUB 5000
V RETURN
  REM-------------
¡ REM RUN SPARKER
¢ REM-------------
ª P=0
Ò FOR I=1 TO S
× P=P+TT(I)
Ü ?#8400=I
æ LINK LL0
ç REM--START SPARK (I) 
ð FOR J=0 TO TT(I) 
ú NEXT J
 LINK LL1
 REM--STOP SPARK (I)
 NEXT I
 P.'"PLEASE WAIT FOR SPARKER TO COOL"'
 P=P*12
 F.I=1 TO P;N.
 P."READY"'
 RETURN
ˆ REM----------
‰ REM DISPLAY
Š REM----------
’ P.""
¦P."     STEP TIME(MS) FREQ(HZ)"' 
°P."     ======================"' 
º FOR I=1 TO S  
Ä N=((10000000/FF(I))-35)/20
É GG(I)=N/256;HH(I)=N-256*GG(I)
Î ?(#841F+I)=GG(I);?(#840F+I)=HH(I)
Ø P. I,TT(I)/2,FF(I)'
â NEXT I
ì RETURN
ö END
ÿR
 

Post Reply