Micro UK101 Build

For discussing the 65xx hardware itself or electronics projects.
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

It runs OK on CBM BASIC V2 (using this statically recompiled version)
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

I've been trying and failing to get OSI basic to run nicely in emulation. Oddly, I could evaluate expressions but not get any numbered lines to be saved.

So, no confirmation from me, as yet. Sorry.
richarde
Posts: 3
Joined: 20 Dec 2009

Post by richarde »

micro_brain wrote:
[

Would anyone with an 8k BASIC installation care to try this out?

Code: Select all


 7 DIM CL$(71,24)
 8 FOR Y=0 TO 23:FOR X=0 TO 70
 9 CL$(X,Y)=CHR$(27)+"["+MID$(STR$(Y),2)+";"+MID$(STR$(X),2)+"H"
 10 PRINT ".";:NEXT X:PRINT:NEXT Y

It should print 24 rows of dots on the screen, each 71 chars long.
Some time ago I stumbled across Grant's Micro UK101 schematic too, but instead of building one I decided to do an emulation of it in Java including writing the 6502 core etc. This was quite a while ago now, and other than reviving it briefly to run some of Ed's 6502 test cases (successfully) it hasn't exactly been greatly stressed as a UK101.

Still, I entered your code and it runs fine if I configure the emulator to run with 32KBytes of RAM on start up. However, if I tell the machine that it's an 8K RAM box then I just get to see 13 '.'s followed by an 'ERROR IN 9' message and a return to BASIC.

Code: Select all

Micro UK101 C/W/M? 
MEMORY SIZE? 8192
TERMINAL WIDTH? 64

 7423 BYTES FREE

C O M P U K I T  U K 1 0 1

Personal Computer

8K Basic Copyright1979
OK
 7 DIM CL$(71,24)  
 8 FOR Y=0 TO 23:FOR X=0 TO 70  
 9 CL$(X,Y)=CHR$(27)+"["+MID$(STR$(Y),2)+";"+MID$(STR$(X),2)+"H"
  
 10 PRINT ".";:NEXT X:PRINT:NEXT Y  
RUN
.............
?OÍ ERROR IN  9
OK

Not sure that helps very much, but there you are. :?

bye

Rich
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

Rich
I don't suppose you could give it a spin with the OSI "fixed" ROMs as mentioned here could you?

micro_brain actually has a composite, I think, where only ROM3 is from OSI and the other ROMs are compukit.

Ed
(Edit: I notice the fixed ROM is credited to "Ed" - but that's not me!)
richarde
Posts: 3
Joined: 20 Dec 2009

Post by richarde »

Ed, all

Just tried with the BASIC3.rom replaced from the basfix02.zip file in your link.

Again, configuring as a 8KByte RAM machine the program fails and shows just 11 '.'s - so that looks like the same number of outer loop iterations that Micro_brain was seeing in hardware. The emulator returns to BASIC ok though:

Code: Select all

8K Basic Copyright1979
OK
 7 DIM CL$(71,24)  
 8 FOR Y=0 TO 23:FOR X=0 TO 70  
 9 CL$(X,Y)=CHR$(27)+"["+MID$(STR$(Y),2)+";"+MID$(STR$(X),2)+"H"
  
 10 PRINT ".";:NEXT X:PRINT:NEXT Y  

RUN
...........
?OÍ ERROR IN  9
OK
Configuring as a 32KByte RAM machine the program runs fine .

Configuring as a 16KByte RAM machine the program gets a long way through but then bombs out to BASIC with the 'ERROR IN 9' message as above.

The 16KByte run goes a lot slower than the 32KByte one. Both 'stutter' printing out lots of '.' and then pausing sporadically before continuing. The 16KByte one pauses a lot more often and eventually fails, so something related to garbage collection looks like a very likely culprit here.

Rich
User avatar
BigEd
Posts: 11464
Joined: 11 Dec 2008
Location: England
Contact:

Post by BigEd »

Excellent adventuring!

So, I think we're saying that CBM managed a complete fix, but this (post)OSI fix didn't quite manage it.

I think the pagetable articles and accompanying sources do detail all the fixes, but I haven't studied them, or built all the variations.

Cheers
Ed
micro_brain
Posts: 85
Joined: 31 Mar 2011

Post by micro_brain »

Well, I do wonder how much memory BASIC is allocating for each of the elements of CL$. Considering they only need 7 or 8 bytes each, it's likely that the DIM is a pretty greedy statement.

Being a UK101 of Grant's design, it has 32k of RAM (well, 31999 bytes to be precise). Ed's correct in his assumption that I hacked the OSI fix into the UK101 ROM that Grant supplied. Seems to work better than before, but like I said, it doesn't complete the outer loop.

Clearly all the stuttering is garbage collection going on at odd times.

I'd really love to have a C interpreter or dev environment on here, it'd give me much more control... In the meantime if anyone has an EhBasic ROM for the UK101 that'd be great. I can't quite work out how to get Lee's source working here (see my other thread in EhBASIC forum).


@Ed : Oh by the way, I scored a Beeb off ebay, but it was DOA. Power supply's chopper transformer is dead :( and I paid over the odds for it 'cause the seller said it'd been carefully looked after and worked. However he was very nice and refunded most of the money, so I have here another little project to get up & running. New transistor ordered, but in the meantime I've hooked up a 5v power supply to the board and it seems to be OK. Whey hey! Bargain.... :)
User avatar
BillO
Posts: 1038
Joined: 12 Dec 2008
Location: Canada

Post by BillO »

I built one of these a couple of years back. I can pull it out and test the program.

BTW, do not know if you solved your save and load yet, but Hyper Terminal can adjust for line and character delays. Just go into Properties, select the 'Settings' tab and click on the 'ASCII Setup' button. You see the parameters to change there.
Bill
User avatar
BillO
Posts: 1038
Joined: 12 Dec 2008
Location: Canada

Post by BillO »

Okay,

Ran This

Code: Select all

 7 DIM CL$(71,24)
 8 FOR Y=0 TO 23:FOR X=0 TO 70
 9 CL$(X,Y)=CHR$(27)+"["+MID$(STR$(Y),2)+";"+MID$(STR$(X),2)+"H"
 10 PRINT ".";:NEXT X:PRINT:NEXT Y
It stops at the 13th dot of the 12th line with X=13 and Y=11.
Bill
micro_brain
Posts: 85
Joined: 31 Mar 2011

Post by micro_brain »

BillO wrote:
I built one of these a couple of years back. I can pull it out and test the program.

BTW, do not know if you solved your save and load yet, but Hyper Terminal can adjust for line and character delays. Just go into Properties, select the 'Settings' tab and click on the 'ASCII Setup' button. You see the parameters to change there.
Hyper Terminal... isn't that for one of those quaint old PCs?

;)
User avatar
BigDumbDinosaur
Posts: 9428
Joined: 28 May 2009
Location: Midwestern USA (JB Pritzker’s dystopia)
Contact:

Post by BigDumbDinosaur »

micro_brain wrote:
Hyper Terminal... isn't that for one of those quaint old PCs?
Hyper-Term is still around, although seldom used these days. There are far better terminal emulators. We install Futuresoft's Dynacomm on the workstations we build that are to be used with host-based software running on UNIX or Linux.
x86?  We ain't got no x86.  We don't NEED no stinking x86!
User avatar
BillO
Posts: 1038
Joined: 12 Dec 2008
Location: Canada

Post by BillO »

micro_brain wrote:
Hyper Terminal... isn't that for one of those quaint old PCs?
;)
Indeed it is. I still use a PC with XP on it in my lab just because everything is available for it. There are way better TEs than Hyper Terminal, but it has the delay's needed for ASCII operation that these little projects need, it's there and it's plenty sufficient for the job...
Bill
micro_brain
Posts: 85
Joined: 31 Mar 2011

Post by micro_brain »

Yep, I've a PC running XP for much the same reason. I have just installed XP on my Mac under VMWare and I was very happy to discover that the cheap Chinese EEPROM burner works with it, so I reckon I should be able to ditch all the PC hardware. All my PCs are old, bulky, obsolete, slow and noisy anyway (plus they don't have much memory).
micro_brain
Posts: 85
Joined: 31 Mar 2011

IDENTITY CHANGE

Post by micro_brain »

Guys, I am going to start using a new identity on 6502.org. From now on, I will be using the forum account "jonb" as it seems better than "micro_brain" (dunno why I chose that one..).

Cheers

JonB
jonb
Posts: 104
Joined: 08 May 2011

Post by jonb »

Here I am .. ;)
Post Reply