Lightpen

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Turbo Computer Lightpen

Der Lightpen (zu deutsch: Lichtgriffel oder Lichtstift) ist ein optisches Eingabegerät, das einem Kugelschreiber ähnlich sieht. Es kann am C64 nur am Controlport 1 betrieben werden. Hält man ihn auf den Bildschirm oder Monitor, erkennt ein entsprechendes Programm die Position des Stifts und kann sie in Bildschirmkoordinaten umrechnen. Manche BASIC-Erweiterungen wie Simons' Basic enthalten Befehle für diesen Zweck (siehe unten). Das Funktionsprinzip basiert auf der Erkennung des Elektronenstrahls der Bildröhre, auf die der Lightpen gerichtet wird. Siehe auch Lightgun.
Hinweis: Wer heute einen Lightpen einsetzen möchte, sollte bedenken, dass also prinzipbedingt ein Lightpen mit modernen Bildschirmen wie TFT-Displays nicht funktioniert - dafür braucht es zwingend einen Monitor oder Fernseher mit Bildröhre.

Die Arbeit mit dem Lightpen war insbesondere bei Grafik- und Zeichenprogrammen nützlich, jedoch konnte sich der Lightpen nie gegenüber dem Joystick oder der Maus durchsetzen. Der Lightpen für Commodore-Computer wurde ab dem Jahr 1983 gebaut.


Firmen[Bearbeiten | Quelltext bearbeiten]

Schaltplan

Von folgenden Firmen wurden Lightpens hergestellt:

  • REX Datentechnik (REX 9541)
  • Conrad Electronic
  • Lindy
  • Cardco, Inc (VC-20, C64)
  • Futurehouse (Edumate Lightpen)
  • Amicron Ltd. (Microscirbe Lightpen)
  • Madison Computer (McPen Lightpen)
  • Koala Soft
  • Pixsticks
  • Inkwell Systems (170-C und 184-C für cc65)
  • Turbo Computer
  • Tech Sketch Inc
  • Pen-Datel
  • Stack 100, Stack Computer Services Ltd.
  • Trojan (C64/128, C16/116/Plus/4)


Software[Bearbeiten | Quelltext bearbeiten]

  • GEOS enthält auch einen Treiber für den Lightpen, wegen der halbierten horizontalen Auflösung ist er weniger für Grafikprogramme wie GeoPaint und GeoCanvas geeignet.
  • CAD-Master (Trojan) für C64/128/16/116 und Plus/4
  • FlexiDraw 5.0/5.5 (Inkwell Systems)
  • Koala Soft wie Koala Painter
  • Paintbox Package (Stack) mit zusätzliche Spiele Crossword Twister, Seek and Destroy, Draughts, Concentartion, Simon, Othello, Go-Go, Shuffler, Life, Lost in the Labrynth
  • Penmaster Art Package (Trojan) für C64/128
  • Picasso's Revenge (1986) von Progressive Peripherals & Software (USA); Box inlusive Lightpen.
  • BASIC-Programme der Cardriter 1 (Cardco, Inc, 1983) für VC-20 und C64: Introduction to the Light Pen, Pen Map, Fun With Numbers, Computer Literacy Quiz, Tic-Tac-Toe, Mailing List

Programmierung[Bearbeiten | Quelltext bearbeiten]

Das Signal des Lightpen liegt auf demselben Pin wie der Feuerknopf des Joysticks am Controlport 1 und ist mit dem Eingang "/LP" (Pin 9) des VIC verbunden. Die Positionen in x- und y-Richtung, bei der ein Lightpen-Impuls stattfand, befinden sich in den Registern 19 und 20 des VIC. Ein Taster kann mit Joy A0 verbunden sein.

Adresse Hex Adresse Dez Funktion Bemerkung
$D013 53267 X-Koordinate etwa halbe Auflösung des C64-Bildschirms in X-Richtung
$D014 53268 Y-Koordinate
$D019 53273 Interrupt Requests Bit 3: LPIRQ, IRQ vom Lightpen, 1 = aktiv
$D01A 53274 Interrupt Request Maske Bit 3: MLPI, 1 = ermöglicht das Auslösen des Interrupt in $D019

Beispielprogramm:[1]

100 POKE 53280,0: POKE 53281,1
105 P=1024: REM BASIS-ADRESSE DES BILDSCHIRMS
110 L=0: REM MIT L=1 WERDEN DIE PUNKTE NICHT GLEICH WIEDER GELOESCHT
120 PRINT CHR$(147)
130 FOR I = 1 TO 5
140 X=X+PEEK(53267)
150 Y=Y+PEEK(53268)
160 NEXT
200 X=INT((X/5-34)/3.8)
210 Y=INT((Y/5-49)/7.8)
300 IF X<0 THEN X=0
310 IF Y<0 THEN Y=0
320 IF Y>24 THEN Y=24
330 IF L=0 THEN POKE P,32
340 P=1024+X+40*Y
350 POKE 54272+P,5:POKE P,160
360 X=0:Y=0
370 GOTO 130

In anderen BASIC-Dialekten bzw. -Erweiterungen stehen entsprechende BASIC-Befehle zur Verfügung. Programmiertechnisch gibt es keine Unterschiede zur Lightgun.

Dialekt: Befehl:
BASIC 7.0 PEN(0) und PEN(1)
Simons Basic PENX, PENY
Super Expander 64 RPEN()
Supergrafik Programme: LIGHTPEN / LIGHTPEN-IRQ (bzw. entsprechende Routine)

Quellen[Bearbeiten | Quelltext bearbeiten]

  1. Bedienungsanleitung: Lightpen RTO 9520

Weblinks[Bearbeiten | Quelltext bearbeiten]