6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Sep 28, 2024 9:24 pm

All times are UTC




Post new topic Reply to topic  [ 14 posts ] 
Author Message
 Post subject: Acorn System 1
PostPosted: Tue Jun 01, 2004 6:39 pm 
Offline

Joined: Wed Apr 28, 2004 3:58 pm
Posts: 12
Has anyone here used one of these?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Jun 02, 2004 10:00 am 
Offline

Joined: Tue Mar 09, 2004 3:43 pm
Posts: 44
Location: Bristol, UK
Yes! I built one for my school electronics lab in 1978. We used it for the computing part of the Electronic Systems 'A' level syllabus. That is, for the more advanced exams that 16-18 year olds take, if they don't choose to leave school at 16.

Anyway, we wired the Acorn up to various lights and switches. Some of the project work was based on it, too. We had a Commodore PET 2001 for the BASIC programming, as well.

I have an Acorn System Three at home, which is an expanded System One. There's a fairly poor photo of them on this page:

http://www.gifford.co.uk/~coredump/acorn.htm

Looks like the thumbnails don't link to the main pictures properly. I'd better fix that!


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Jun 02, 2004 5:30 pm 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
I found an emulation of a system one a while back when I was surfing around.

http://www.cary.demon.co.uk/acorn/acornEmulator.html

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Jun 02, 2004 9:32 pm 
Offline

Joined: Wed Apr 28, 2004 3:58 pm
Posts: 12
coredump wrote:
Yes! I built one for my school electronics lab in 1978. We used it for the computing part of the Electronic Systems 'A' level syllabus. That is, for the more advanced exams that 16-18 year olds take, if they don't choose to leave school at 16.


Quite surprisingly (being a mere -2 years old then), I actually built a System 1 in about 1992 (when I was 12!) that my father bought and never bothered to put together. Hand assembling code was not much fun however so as far as I got was flashing the dots on the rather naff LED display :-P

coredump wrote:
I have an Acorn System Three at home, which is an expanded System One. There's a fairly poor photo of them on this page:


They are extremely rare. I owned a System 5 (basically a 6U high System 2/3/4 variant with a 6502 CPU card) but regretably sold it on ebay in 1999.

On the subject of Acorn machines, apart from this PC (used for internet stuffs), I still use a BBC Master Turbo that I've had since 1987 as my "main workstation". It has an inline assembler in the BASIC interpreter which is simply unmatchable on any other platform.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Jun 02, 2004 9:45 pm 
Offline

Joined: Tue Mar 09, 2004 3:43 pm
Posts: 44
Location: Bristol, UK
Well, I had a bit of a think about it, and I rekon I built it in 1979 actually. We got the PET first, then the Acorn came the year after. I think the idea was to allow the boys to use the Acorn in project work, and the teachers were worried that we might damage the (expensive) PET somehow.

Do take a look at my UK101 page, BTW:

http://www.gifford.co.uk/~coredump/uk101.htm

It's another 6502-based machine that I built from a kit. I still use it for odd little hacks, like connecting a Super Nintendo joypad to a 6522 chip.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Jun 03, 2004 6:50 am 
Offline
User avatar

Joined: Thu Mar 11, 2004 7:42 am
Posts: 362
scratchmonkey wrote:
On the subject of Acorn machines, apart from this PC (used for internet stuffs), I still use a BBC Master Turbo that I've had since 1987 as my "main workstation". It has an inline assembler in the BASIC interpreter which is simply unmatchable on any other platform.


I'd love to hear about how the assembler worked or at least how to use it. Even just a short example, with forward & backward branches (was there some form of assembler labels?) would be great.

One of the things I like about Forth is that it's easy to combine Forth and assembly. In BASIC, I've never seen (or been able to think up) a good way of combining it with assembly. Normally, you had to pre-assemble the code and put in it DATA statements, which was usually pretty slow and took a lot of extra space. Sometimes you could pull tricks by hiding the object code in string literals or REM statements, but LIST would usually barf when it got to the object code. Either way, it was a pretty inelegant solution.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Jun 03, 2004 4:19 pm 
Offline

Joined: Tue Mar 09, 2004 3:43 pm
Posts: 44
Location: Bristol, UK
I don't remember exactly how the BBC Micro did in-line assembler, because I never really did much programming on the BBC. However, IIRC, you had to use the BASIC to make two passes over the code, usually with a FOR..NEXT loop. Then, you could use BASIC variables as labels (somehow) and you used one special BASIC variable as the assembler's "current address".

Try doing a web search for "BBC Micro documentation project".


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Jun 03, 2004 5:29 pm 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
You enter 6502 assembler by enclosing it between square brackets like this.
Code:
10 OSWRCH=&FFEE
20 [OPT 3:LDA #ASC("*"):LDX #10:.loop JSR OSWRCH:DEX:BNE loop]

You have to set the BASIC variable P% to contain the origin for the generated code will be put. The OPT directive controls listing output (bit 0) and error reporting (bit 2). A fullstop defines a label which becomes a BASIC variable containing the current origin value. To resolve forward references you normally wrote your code in a FOR loop which assembled if OPT 0 on the first pass and OPT 3 on the second.
Code:
10 FOR PASS=0 TO 3 STEP 3
20 P%=&2000:[OPT PASS
30 NOP:NOP:NOP
40 ]:NEXT

The second release of BBC BASIC added features to allow you to optionally use O% as the address for the generated code (so you can assemble code for one location but store the generated code somewhere else) as well as directives for output data (EQUB, etc.)

The OPT directive was also useful for generating macros by calling a function which assembled some code and returned the current OPT value
Code:
10 FOR PASS=0 TO 3 STEP 3
20 P%=&2000:[OPT PASS
30 OPT FNLoadXY(&1234)
40 ]:NEXT:END
1000 DEF FNLoadXY(VAL)
1010 [LDX #VAL MOD 256:LDY #VAL DIV 256]
1020 =PASS

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Thu Jun 03, 2004 7:29 pm 
Offline

Joined: Wed Apr 28, 2004 3:58 pm
Posts: 12
Not only macros but conditional assembly. Very powerful! I actually wrote something a while ago that automatically optimised itself for 6502 or 65C102 processors depending on it's execution environment.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Jun 04, 2004 6:14 am 
Offline
User avatar

Joined: Thu Mar 11, 2004 7:42 am
Posts: 362
Thanks everybody! I found a lot of interesting information on the web. It's certainly much more flexible than pre-assembling. Was it reasonably fast, or were there noticable delays if you assembled something that wasn't short? Anyone know if it tokenized the bracketed text (things like JSR, NOP, or whatever else) or if it just stored it like a string (as ASCII characters)?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Jun 04, 2004 5:43 pm 
Offline

Joined: Wed Apr 28, 2004 3:58 pm
Posts: 12
The start and end assembly brackets, OPT and USR keywords are all tokenised and the rest is stored in text format.

It was quite fast - if your program is only about 1-200 ops then you probably won't notice it assemble. I've not assembled huge blocks of code larger than that (i usually use it to speed up stuff in BASIC rather than solely ASM).


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Jun 04, 2004 7:35 pm 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
I used it for a few small routines but most of my 6502 coding was done with either SystemAde, a ROM based assembler that assembled files and later the Acorn Assembler (with its strange mnemonics LDAIM, STAZX).

Quite a few BBC games were writen using the BASIC assembler. You used MODE 7 (Teletext) to maximise the amount of RAM and moved the BASIC start address up to where the graphics screen would be when the game was running (PAGE=&3000). Then you assembled the game directly into its target location (somewhere between $E00 and $3000) depending on whether the disk operating system would be active.

If you track down the source code for Elite (probably one of the best ever BBC games) you can see how they used this technique.

PS. Do you have the acorn assembler for the second 6502? I've misplaced my copy.

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Jun 04, 2004 9:25 pm 
Offline

Joined: Wed Apr 28, 2004 3:58 pm
Posts: 12
Unfortunately not. I have a 65C102 internal second processor in my machine which uses HiBasic via the tube for the assembler. You might be able to get a ROM image from http://bbc.nvg.org/ and blow it however if you have an EPROM programmer.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Jun 04, 2004 10:57 pm 
Offline

Joined: Tue Mar 09, 2004 3:43 pm
Posts: 44
Location: Bristol, UK
BitWise wrote:
If you track down the source code for Elite (probably one of the best ever BBC games) you can see how they used this technique.


The Elite home page is here:

http://www.iancgbell.clara.net/elite/index.htm

and the source code can be found by following the link (bottom right) to "Elite Archives". Ian Bell, one of the original authors, owns the site.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to: