::: Area #102 (BBC Echo) Message: #1292 (Read 9 times, has 0 replies, 4984 bytes) Date : Mon May 18 11:37:10 1998 From : Jonathan Graham Harston of fidonet#2:254/27 To : All Subject: Subject: Running a BBC Without A Keyboard SS> Can anyone tell me the connections required to run a BBCB without a SS> keyboard attached? Wow, I'd been thinking about this for some time. I was musing on just this point as I was downloading my mail & messages. I was twiddling a screwdriver to pop off a case to do some testing. SS> I presume some electrical jiggling is required to prevent it sulking SS> when you power up witout a kb. No, you can't electically jiggle anything. When you power up with no keyboard, the startup links are 'read' as being all set, so you get Osbyte255 set to 0. This makes the Beeb start up in mode 0, fast floppy speed, boot up, network priority if DNFS fitted. SS> I intend to run several BBCB motherboards (for a control application SS> using the user/analogue ports) linked via econet, so the econet port SS> can be used to send any commands required, and removing kb's makes for a SS> smaller overall system case. That's similar to what I'm plannng. I going to use a Keyboardless Beeb as a sort of process server on my network. Then I can implement an approximation to Unix's at command - 'at 04:00 run $.MailServ.Process'. Anyway... When you switch on a networked Beeb with no keyboard it effectively forces it into mode 0 and then does a *I AM BOOT. This is all ok if you have a server running. You would do the following: When a client logs on as BOOT make it run some program that checks if the machine is one of your keyboardless clients. You could do this by looking at the station number - make them have numbers within a set range. Eg, if thay are stations 40,41,42,43 then you could do something like: IF EconetStation%>=40 AND EconetStation%<=43 THEN CHAIN "NoKbd" or whatever. Alternatively (and probably a better method), read the startup option (Osbyte255) and if it is 0, then no keyboard is present. The advantage of this is that you can test you software on a keyboardful (?) station, and simulate unplugging the keyboard with *FX255,0 then . IF FNbyte(255,0,255)=0 THEN CHAIN "NoKbd" DEFFNbyte(A%,X%,Y%)=((USR&FFF4)AND&FF00)DIV256 I would probably instead of calling NoKbd log on as another user, eg *I AM NoKbd or something or *I AM BkGndDemon. A problem I can see with this is that I want to have my Beeb on the same wall socket as the server. It takes the server (SJ MDFS) about 5 seconds to get into Online mode. Before this I'm sure the Beeb will have timed out or received a 'Fileserver offline' error. I could fix this with some sort of electrical delay mechanism. If you're not going to have a server, the Beebs just communicate to each other via the network, you need to do something different. You still need to get them to do something on startup to run the program. If I assume that this will be in Rom, you don't need to fetch it from disk, you just need to start up and enter your application (presumably as the highest priority Language rom). Or, if you are going to store it on disk and fetch it from there you need to do a Shift-Break from disk to get it. I think what I'd do is write a small rom (or add some code to a rom-based application) that checks the startup option, and then changes it to something that will do what you want. On service call 1 (Absolute workspace size request) do: .Serv1 PHA LDA &28F:\ We can only be running in the I/O processor, so it is sort-of legal to read Osbyte255 directly BNE Serv1NoZero LDA #NewStartup STA &28F .Serv1NoZero PLA NewStartUp would be, say, &FF to do nothing,. ie drop into the highest priority language, or &F7 to boot from disk. The full range is as follows: b7: DNFS priority: 1=DFS, 0=NFS b6: HADFS drive 1 access: 1=internal, 0=external b5-b4: disk speed select: 11=slowest, 00=fastest b3: Reverse Shift/Break: 1=Shift-Break boots, 0=Break boots b2-b0: Startup screen mode Putting some code in rom would help with the timeout problems described above. I'm going to do some fuller testing of this. I have occasionally seen a keyboardless Beeb just hang with the cursor in the top lefthand corner of the screen doing nothing. However, it's managed to get into MODE 0, so it must have read the kaybaord links by the time it's got there. I'd be interested in following up what you're working on. J.G.Harston (JGH BBC PD Library) Expertise in: BBC+Master / Z80+6502 / CoPro+Tubes / Econet / SJ Servers Walkley / Planning / Environment / Highways / Transport / Devolution 70 Camm Street, Walkley, SHEFFIELD S6 3TR -+-+- Herder of cats http://homepages.nildram.co.uk/~amilton/walkley.htm (( Anti-UCE address added by Arcade, not by me )) --- ARCbbs RISC OS [1.64á32c] * Origin: Arcade - The Definitive Acorn BBS +44 181 655 4412 (2:254/27)