Micro UK101 Build

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

Post by BigEd »

BillO wrote:
... 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.
Thanks for this tip - I was looking for these and didn't find them. I thought I'd visited all the config options, but evidently not.
User avatar
BillO
Posts: 1038
Joined: 12 Dec 2008
Location: Canada

Post by BillO »

In case anyone might be interested, I now have the following running on my 'modified' micro-UK101 board

UK101 (Microsoft) 8K BASIC
EhBASIC
Tiny BASIC

I have been also thinking about giving SYM-1 BASIC a shot too.
Bill
micro_brain
Posts: 85
Joined: 31 Mar 2011

Post by micro_brain »

BillO wrote:
In case anyone might be interested, I now have the following running on my 'modified' micro-UK101 board

UK101 (Microsoft) 8K BASIC
EhBASIC
Tiny BASIC

I have been also thinking about giving SYM-1 BASIC a shot too.
Ah.. you modified the 6850 logic to free up some address space for the slightly bigger basics?

I have not yet had time for this, sorry to say. I have acquired a BBC Micro and a FIGnition board (this is not 6502 but it is somewhat inspired by Grant's pages on the Jupiter Ace).

Linky link if you're interested : https://sites.google.com/site/libby8dev/fignition
zx80nut
Posts: 65
Joined: 04 Jan 2012

Post by zx80nut »

Hi.

I know this thread is a bit old, but I happened to stumble on it while searching for something.

I've scanned through this thread and I notice there were a couple of issues/queries.

I have now swapped the + and - on one of the 22uF caps on the wiring diagram so that + is to the +V pin and - is to Vcc as raised in this thread (this was correct on the schematic). Appologies, Lee, if I missed that eMail regarding the error - it is corrected now :)

Regarding the 22uF caps....
The "Original" MAX232 chips required a minimum of 10uF, with recommended 22uF for them.
The newer devices work on 1uF, or 0.1uF for the MAX202 (from what I recall). Please check the data sheet for the chip that you are using and use whatever is recommended.

If there are any other issues/errors, please let me know and I willl update.

Regards.

Grant

http://home.micros.users.btopenworld.co ... uk101.html

...please refresh the page in the browser in case the change has not been picked up.
zx80nut
Posts: 65
Joined: 04 Jan 2012

Post by zx80nut »

One more thing...
I also notice that there are problems loading and saving, and the suggestion for adding delays.

As mentioned above, I also used Hyperterm, and set the option to delay a certain amount of time after sending a CR. Setting this to, say, 1 second should give the 6502 BASIC interpreter enough time to come back to the prompt before needing to process the next line being sent.

There should be no problem in capturing the output from the board and "saving" it on the PC as the PC should be quick enough and should have a reasonable buffer.

By adding the delay after CR in hyperterm (can't remember the exact option - it was a while ago), I had no problem in loading in fairly large programs from the PC into the board with no problems. You may need to experiment a bit to see the minimum delay time needed - I can't remember exactly what I set it to.

Regards.

Grant
zx80nut
Posts: 65
Joined: 04 Jan 2012

Post by zx80nut »

I've also updated the microUK101 page to cover the changes that may be needed for the newer MAX232, although the Texas Instruments site says there is no problem using 22uF. The page was published back in 1998, so 22uF were common in 232 circuits at that time.

From the TI KB site now...

Problem:
On the MAX232 can I use 22uF for all the capacitors?

Solution:
You should have no problem having a bigger capacitor than recommended. Initial charging will be delayed due to the charging of bigger capacitor, once it is charged, it should be the same operation as from 1 uF. Our recommendation is for the lowest possible size of the capacitor in the data sheet. The purpose of these capacitors are to hold charge for the charge pump circuits inside the device.



Grant
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

richarde wrote:
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.
That is to be expected, the program needs just over 17K of free RAM to complete successfully.

Seeing this again reminds me that I always intended to change string arrays to only use three bytes per descriptor element not four as it does. All the parts seem to be in place but I never implemented it. Doing so would mean the BASIC program would complete on a 16K machine and print another 300 '.'s before running out of memory on an 8K machine.

Lee.
zx80nut
Posts: 65
Joined: 04 Jan 2012

Post by zx80nut »

The code does run on the 32K microUK101 but stalls periodically - sometimes for about a minute or so (didn't time it). Go away and have a cup of tea then come back - it completes (eventually)! :wink:
No idea what happens internally in that minute of silence - maybe someone with an emulator can trace?

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

31999 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
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................

OK
leeeeee
In Memoriam
Posts: 347
Joined: 30 Aug 2002
Location: UK
Contact:

Post by leeeeee »

Quote:
No idea what happens internally in that minute of silence - maybe someone with an emulator can trace?
It's garbage collecting the 1800 elements of CL$(). The more non zero length strings there are to collect the longer it takes.

Lee.
sjgray
Posts: 29
Joined: 15 Aug 2009

Post by sjgray »

BillO wrote:
In case anyone might be interested, I now have the following running on my 'modified' micro-UK101 board

UK101 (Microsoft) 8K BASIC
EhBASIC
Tiny BASIC

I have been also thinking about giving SYM-1 BASIC a shot too.
If you can share them I can upload them to osiweb.org. We've been doing a lot of scanning and archiving of manuals, roms and stuff lately. Osiweb seems to be the central place for all things OSI and UK101. We are currently working on a replacement floppy paddle board with data separator to allow standard floppy drives to be connected.

Steve
Steve
jonb
Posts: 104
Joined: 08 May 2011

Post by jonb »

zx80nut wrote:
The code does run on the 32K microUK101 but stalls periodically - sometimes for about a minute or so (didn't time it). Go away and have a cup of tea then come back - it completes (eventually)! :wink:
No idea what happens internally in that minute of silence - maybe someone with an emulator can trace?

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

31999 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
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................
.......................................................................

OK
This is odd. I am using the ROM image from your site but as originally posted mine never completes. It could be that there is an error somewhere on my board that is causing loss of memory. But, if that were the case, wouldn't it report other than 31999 bytes free at cold boot?
User avatar
ptorric
Posts: 85
Joined: 13 Feb 2005
Contact:

Post by ptorric »

garbage collection
zx80nut
Posts: 65
Joined: 04 Jan 2012

Post by zx80nut »

I haven't traced how the memory test is done - it's probably quite simple and may not pick up every error - or maybe the ROM image that was burnt is dodgy somewhere - just guesses. If your message is the same as me then the 32K is found, though. It took many minutes to complete. How long did you leave it?

Regards.

Grant.
User avatar
dclxvi
Posts: 362
Joined: 11 Mar 2004

Post by dclxvi »

Assuming EhBASIC and Applesoft use the same garbage collector, much faster garbage collectors have been written. There's one in Apple Assembly Line. ProDOS (specifically BASIC.SYSTEM) has one. I don't if it would take major or minor surgery to adapt one for EhBASIC, but I'll blindly guess there'd be a not-insignificant amount effort involved, if anyone's feeling particularly ambitious.

I never wrote or typed in or used an Applesoft program that was string-intensive enough for garbage collection to be an issue, so I don't really have any firsthand experience, but by all accounts garbage collection was just brutally slow. If memory serves, it could take 15 minutes or half an hour or so (at 1 MHz).
zx80nut
Posts: 65
Joined: 04 Jan 2012

Post by zx80nut »

Hi.

I have just tried this on another computer that I knocked up, this time a 6809 running Microsoft BASIC. Again, 32K RAM ( http://searle.hostei.com/grant/6809/Simple6809.html )

The exact same program actually fails completely with the version ported by Microsoft to the 6809...

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
RUN

.............................

?OS ERROR IN 9
OK
As you can see, it appears garbage collection doesn't kick in automatically (but see below) with this version. So, the 1979 6502 version in the UK101 actually performs better than the 1982 6809 version !
The version of BASIC that I used above was CoCo Color BASIC 1.2 / Extended BASIC 1.1. I also tried it on a Dragon 32 (real machine) and got exactly the same error at the same point (the Dragon is virtually a clone of the CoCo, but I wanted to make sure my ROM mods hadn't affected anything).

So, it isn't just this version that has problems - other versions may be worse.

To get the above working on the 6809 I had to reserve some space, so I typed "CLEAR 15000" before running - much better, and run to end the same way as on the UK101 - pausing occasionally then resuming.

So, there appears not to be an "error" with the UK101 BASIC, merely an inefficient way of doing the grabage collection which existed in later versions of Microsoft BASIC as well.


Grant.
Post Reply