[abc80] externt tangentbord till abc80

Anders Jansson andj at hem.utfors.se
Mon Aug 31 11:16:17 PDT 2015


Teckeninläsningen är inte helt interruptbaserad. Interruptet anger bara att en ny tangent tryckts ned och kollar om det är ctrl-c. Själva teckeninläsningen pollas med inp(56) i en loop som sätter tidsfördröjning om tangenten hålls nedtryckt. Jag tror alla teckeninläsningar sker på samma ställe. Man skulle kunna lägga sig i klockinterruptet och kolla om återhoppet är vid teckeninläsningen, och isåfall lägga ett tecken i register A och ändra återhoppsadressen till efter inp(56).

Ett eget tangentbordsinterrupt är väl inte så användbart om man måste trycka på en tangent för att det ska triggas? Om det kan triggas av inp(56) är det kanske en annan femma, och det verkar faktiskt gå att fixa! PIOn är normalt i control mode. Om man istället sätter den i input mode och trycker på en tangent så rasslar tecknet in utan fördröjning. Anledningen är nog att varje inp(56) triggar tangentbordsinterruptet som då anger att en ny tangent tryckts ned och teckeninläsningen plockar det då direkt utan tidsfördröjning. Sätter man interruptmasken att ge interrupt om någon bit är noll så borde det bli interrupt för varje inp(56) utom ascii 255 vilket är en udda tangenttryckning (ctrl-<).

/A.J


  ----- Original Message ----- 
  From: juhasz at abc.se 
  To: Anders Jansson ; ABC80 at abc80.org ; Göran Åhling 
  Sent: Sunday, August 30, 2015 4:21 PM
  Subject: SV: [abc80] externt tangentbord till abc80


  En sak som kan rädda dig är tiden... som du skriver nedan så (eftersom avläsningen är interruptbaserad) behöver man ju bara "fuldriva" ledningarna en ytterst kort stund för att få in tecken. Då kanske man undviker att steka pion ändå? Effekt*tid=värme....  Funkar inte med spel som använder inp(56) men ändå....

   

  En annan lösning skulle kunna vara att ställa om pions interruptvektor till nåt annat än 58 och ha en egen rutin där... de där interruptbaserade musikprogrammen gör ju så, och även basicii.cod (den har int adress 90 upptäckte jag)

   

  R

   

  Ingen som sitter på en asm800-diskimage va!? ;)

   

  Skickades från E-post för Windows 10

   

   


  Från: Anders Jansson
  Skickat: den 30 augusti 2015 14:27
  Till: ABC80 at abc80.org;Göran Åhling
  Ämne: Re: [abc80] externt tangentbord till abc80

   

   

  Jag är mest intresserad av att ta in tecken utan moddar. Roberts ide om en

  bluetooth-adapter till tangentbordskontakten var i och för sig kul, inte

  minst om tangentbordet är paj. Parallellkoppling med open collector

  funkar däremot inte eftersom tangentbordet driver signalerna låga även när

  man inte trycker på en tangent.

   

  Den där alternativa teckeninläsningen gäller bara när man trycker ned

  piltangenten. Används t.ex. vid ED-kommandot där piltangenten ger tecken

  från den rad man editerar.

   

  Hälsn.

  A.J

   

   

  ----- Original Message ----- 

  From: "Göran Åhling" <goran at eadc.se>

  To: <abc80 at abc80.org>

  Sent: Saturday, August 29, 2015 2:08 PM

  Subject: Re: [abc80] externt tangentbord till abc80

   

   

  Ledsen att jag skriver utan att ha satt mig in exakt i Era funderingar...

   

  Inte kollat schema etc.

   

  MEN.

   

  Normalt när man vill göra "Wired-OR" så använder man i TTL-tekniken

  kretsar med "Open Collector" - dvs IC-krestar som bara kan sänka, men

  inte driva.

  Sedan sätter man ett externt "pull-up"-motstånd för varje signal.

   

  Man kan så ha flera "sänkande ingångar" till samma signal (t.ex. inre

  och yttre tangentbord). Effekten är dock att om någon av drivarna sänker

  signalen så blir den låg, dvs om man samtidigt trycker en inre tangent

  och skickar in en extern så blir det rappakalja...

   

  Kontentan är alltså en fundering på om man kan byta drivare i

  tangentbordet från en med "Push-pull" till en med "OC", och sätta dit

  pull-up-motstånd till 5V.

   

  Jag har pga en flytt alla mina schemor etc nerpackade och väl instuvade

  i ett förråd, och det en tid frammåt också :-(

   

  MVH

   

  Göran Åhling

   

  Den 2015-08-29 kl. 13:43, skrev Anders Jansson:

  > Hej,

  > 

  > Jag testade att belasta kontakten på tangentbordet med motstånd till jord

  > och fick ca 40 mA vid 1.5V. Spänningsfallet i 74LS04 är då 3.5V så vi har

  > P=40mA*3.5V=140mW per utgång i värsta fall. Den ena 74LS04 matar 6

  > signaler

  > så det blir ca 0.85W. Hög ut från PIOn och låg från tangentbordet gav

  > ungefär samma resultat, ca 1.3V. Drivförmågan verkar förresten vara ganska

  > symmetrisk men en ingång drar betydligt mer om den är låg (-0.4 mA)

  > jämfört

  > med hög (20µA).  Här finns lite data på drivförmåga som jag nu i onödan

  > verifierat https://www.fairchildsemi.com/application-notes/AN/AN-319.pdf

  > 

  > Utan tangentbordet inkopplat flyter signalerna. Det verkar gå att

  > detektera

  > detta genom att sätta en utgång och sedan växla till ingång och läsa

  > tillbaks bitvärdet och se att det stämmer för både hög och låg. I och med

  > att man bara testar 1 pinne och dessutom en mycket kort stund så är det

  > väl

  > ett snällt test.

  > 

  > Om man nöjer sig med att injicera tecken mjukvarumässigt i BASIC-tolken

  > eller var det nu kan passa, hur går det då efter BYE? I Stockmans

  > disassemblering indikeras en alternativ teckeninläsning via en pekare på

  > adress 65019. Jag har testat lite grann men inget händer. Finns Stockmans

  > rapport inscannad förresten? Annars kan jag nog fixa det.

  > 

  > /A.J

  > 

  > 

  > ----- Original Message ----- From: "Anders Jansson" <andj at hem.utfors.se>

  > To: "H. Peter Anvin" <hpa at zytor.com>; <ABC80 at abc80.org>

  > Sent: Wednesday, August 19, 2015 12:17 AM

  > Subject: Re: [abc80] externt tangentbord till abc80

  > 

  > 

  >> Hmm, jag tror jag ska koppla bort tangentbordet vid dessa

  >> experiment. Signalerna från tangentbordet drivs hela tiden av 2 st 74LS04

  >> till 0 eller 4 volt. Med PIOn som utgång driver den också hela tiden.

  >> Hittar

  >> inga data på drivförmågan hos PIOn men hög signal från tangentbordet och

  >> låg

  >> från PIOn ger ca 1.5 volt. Det är väl inte är riktigt snällt även om det

  >> tycks funka.

  >> 

  >> Tangentborden är förresten lite olika bestyckade. På en del saknas ett

  >> par

  >> IC-kretsar. Den ena (Z5) är rätt stor (2x12 pin) och ser ut som ett ROM.

  >> Den

  >> har flera ledare skurna och blir rätt varmt, så det verkar ju som en

  >> förbättrad version att inte ha den monterad.

  >> 

  >> /A.J

  >> 

  >> 

  >> ----- Original Message ----- From: "H. Peter Anvin" <hpa at zytor.com>

  >> To: "Anders Jansson" <andj at hem.utfors.se>; <ABC80 at abc80.org>

  >> Sent: Thursday, July 30, 2015 9:57 AM

  >> Subject: Re: [abc80] externt tangentbord till abc80

  >> 

  >> 

  >>> On 07/28/2015 02:22 PM, H. Peter Anvin wrote:

  >>>> 

  >>>> Jag skrev ett program som gör precis detta på 80-talet.

  >>>> 

  >>> 

  >>> Det enda jag inte vet är om det går att skada det fysiska tangentbordet

  >>> och/eller PIO-kretsen med detta.  Jag *tror* inte att det är fallet, men

  >>> jag är inte 100% säker.

  >>> 

  >>> -hpa

  >>> 

  >>> 

  >> 

  > 

  > _______________________________________________

  > ABC80 mailing list

  > ABC80 at abc80.org

  > http://www.abc80.org/mailman/listinfo/abc80

   

  _______________________________________________

  ABC80 mailing list

  ABC80 at abc80.org

  http://www.abc80.org/mailman/listinfo/abc80

   

  _______________________________________________

  ABC80 mailing list

  ABC80 at abc80.org

  http://www.abc80.org/mailman/listinfo/abc80

   

   


More information about the ABC80 mailing list