::: Area #102 (BBC Echo) Message: #1293 (Read 1 time, has 0 replies, 3492 bytes) Date : Wed May 20 11:50:55 1998 From : Jonathan Graham Harston of fidonet#2:254/27 To : All Subject: Subject: Running a BBC Without A Keyboard JGH> I'm going to do some fuller testing of this. I have occasionally JGH> seen a keyboardless Beeb just hang with the cursor in the top JGH> lefthand corner of the screen doing nothing. However, it's managed JGH> to get into MODE 0, so it must have read the kaybaord links by the JGH> time it's got there. Following up my own posting, I've done a bit of testing. With the 8 BBCs I have here, I unplugged the keyboards and switched them on. They did the following: 6 of them: went into MODE 0, blank screen, cursor in the top corner 2 of them: went into MODE 0, displayed BBC Computer... etc. and tried to do a Shift-Break (I haven't tested the Master or Compacts yet) Of the six that just sat there, if I carefully plugged the keyboard back in, they then displayed BBC Computer... etc and tried to do a Shift-Break (from Network if it was fitted). All eight machines are issue 7. Investigating the Reset routine, the keyboard links are read here: ; Read keyboard links DA10 INX ;X=9 DA11 TXA ;A=X DA12 JSR &F02A ;interrogate keyboard DA15 CPX #&80 ;for keyboard links 9-2 and CTRL key (1) DA17 ROR &FC ;rotate MSB into bit 7 of &FC DA19 TAX ;get back value of X for loop DA1A DEX ;decrement it DA1B BNE &DA11 ;and if >0 do loop again ; on exit if Carry set link 3 made ;link 2 = bit 0 of &FC and so on ;if CTRL pressed bit 7 of &FC=1 ;X=0 ; Read from keybaord F02A LDY #&03 ;stop Auto scan F02C STY &FE40 ;by writing to system VIA F02F LDY #&7F ;set bits 0 to 6 of port A to input on bit 7 ;output on bits 0 to 6 F031 STY &FE43 ; F034 STX &FE4F ;write X to Port A system VIA F037 LDX &FE4F ;read back &80 if key pressed (M set) F03A RTS ;and return I can't see anything here that would stop the machine with no keyboard, Further along, though, is: ; A=&7F DA77 CLI ;briefly allow interrupts to clear anything pending DA78 SEI ;disallow again N.B. All VIA IRQs are disabled DA79 BIT &FC ;if bit 6=1 then JSR &F055 (normally 0) DA7B BVC &DA80 ;else DA80 DA7D JSR &F055 ;F055 JMP (&FDFE) probably causes a BRK unless ;hardware there redirects it. This vector is to allow plug-in hardware to redirect the Reset routine by forcing an interupt on Reset. If unplugging they keyboard leaves the keystrobe interupt line enabled, then this will for a call to the vector. With no hardware to direct it, it will probably hang. Which is what is happening. So, holding the keystrobe line high should do it. A 4.7k resistor between pin 14 (CA2) and pin 15 (+5v) should do it. As these are adjacent pins, you can make a little carrier from a two-pin molex plug to just plug onto the pins. I'll investigate and follow up. 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)