Skip to main content

Full text of "TI Revue Special Collection"

See other formats


-DM 5,50 / ÖS 46 / SRF 5,50 







DasMagazin 

für 77 99-4A 













Nr. 8/86-August 














































































Grüß Gott - 

Guten Tag 

& 

Der neue „Computer'' aus den USA scheint nun 
doch langsam Formen anzunehmen. Fest steht 
mittlerweile, daß es dieses Ding nur als Karte für die 
P-Box gehen wird. Daran angeschlossen wird eine 
„normale" IBM- Tastatur. Die restlichen Daten sind 
inzwischen bekannt. Die bisherigen Modute sollen 
al/s, in ausgelesener Form laufen. Assemblerpro¬ 
gramme sollen zu 95% kompatibel sein. Die ersten 
Muster des Gerätes sollen schon ausgeliefert sein. 
Soweit die „offiziellen " Meldungen darüber aus den 
USA. Inoffiziellen Meldungen zufolge, d.h. von 
Messebesuchern, die das Gerat schon gesehen haben, 
soll es aber auch noch eine ganze Menge Probleme 
mit der Kompatibilität zu bisherigen Programmen 
geben. 

Genug der Gerüchte, kommen wir zu bekannten 
Neuheiten: In den USA sind einige 512 KByte 
RAM ErWeiterungen neu auf den Markt gekom¬ 
men. Auch ein Steuerungssystem zur Fernbedie¬ 
nung von Lampen usw. über den TI 99/4A ist dort 
neu. Das dürfte hierzulande, bedingt durch die 
VDE- Vorschriften, aber wohl keine Chance haben. 
Bis zum nächsten Monat die besten Grüße von 
Eurem Tl-REVUE-Team 

Nicht vergessen: Seid Ihr mit dem Heft zufrieden, 
sagt es weiter, seid Ihr unzufrieden, sagt es uns. 

Und: Jeden Dienstag von 15 bis 19 Uhr stehen 
Ihnen unsere Lesertelefone zur Verfügung. Für 
technische und Assembler-Fragen Tel. 0731/33220 
und zu den Listings bzw. Fragen zu den Abonne¬ 
ments und dem Kassettenservice Tel. -Nummer 
089/1298013. {Nicht am 29.7.!) 


ACHTUNG - DISKETTENBESTELLER!!! 


Wie sagt ein deutsches Sprichwort so schön: „Platz ist 
in der kleinsten Hütte“. Leider haben Sprichworte 
und Redensarten einen gravierenden Nachteil: Sie sind 
nicht immer ganz zutreffend, schon gar nicht, wenn es 
um den Speicherplatz einer TI-Diskette geht. 

Da die meisten User das Original-Laufwerk besitzen, 
müssen auch wir in der Redaktion mit den mageren 
90 KB einer einseitigen Diskette mit einfacher Dichte 
rechnen, obwohl unsere Controller durchaus auch 
180 KB schreiben uns lesen können. 

Durch das Super-Programmangebot dieser Ausgabe 
(alleine zwei Adventure-Spiele mit zwei, bzw. drei 
Teilen) reichten uns die 90 KB nicht ganz aus, um alle 
Programme, einschließlich der Listings aus dem 
Service-Teil, auf einer Diskette unterzubringen? 

Also was tun? 

Zwei Disketten für DM 50,— anzubieten erschien uns 
als der schlechtere Weg für unsere User, dies würde den 
Geldbeutel doch etwas zu sehr belasten. Deshalb ent¬ 
schlossen wir uns schweren Herzens, beim Disketten¬ 
service dieser Ausgabe auf ein Listing aus dem Service¬ 
teil (M-Lader) zu verzichten. 

Im Kassettenangebot sind alle Programme aus dem 
Listingteü enthalten. Selbstverständlich wurden die 
einzelnen Teile der Adventures direkt hintereinander 
abgespeichert, so daß beim Laden keinerlei Probleme 
entstehen. Dabei solltet Ihr Eure P-Box aber ausgeschal¬ 
tet lassen und nur das XB-Modul verwenden. 

Der Kassetten-Service 


TI 99/4A 



PERIPHERIE 


RS 232 Karte (Oriq T!) 

RS 232 Karte [Aironic) 

32 «-Karte (Atronicli 
Disccantroller PSDD {Atronid 
□ isccontroller OSDD {Corcantp) 
P-Code Karte {Qrig, TI) 

Compact Peripherie System CPS 
mit 1 Diskettenlaufwerk DSDD 
+ 10 Disketten 
CPS 99 mit 2 Diskettenlauf¬ 
werken DSDD +10 Disketten 
Diskettenlaufwerk.intern DSDD 
(Epson) mit Einbausau 
Externe 256 «-Erweiterung 
Externe 32 K-Erweiterung 
Externe 32 « Erweiterung 
batteriegepuflert 
Externe 32 « Erweiterung mit 
1 Centromcschnitistelle 
Externe 32 «-Erweiterung mit 
Centronicschnittstelle + Drucker- 
kabel + Epsondrucker IX 30 
dto, + Epsondrucker FX 85 

dttL + Stardrucker 
Gemini-10X 

dtm + Stardrucker NL 10 
Sprachsynthesizer 
Mod ulfix pan der 3fach 
RGB-Modulator 

Akustikkoppler Dataphon 5 21 d 
+ externe V 24 Schnittstelle 
+ Vertu n du mjs kabel 
Ak, O-itapbon S 21 d + Kabel für 
RS 232 Karte 
TI Maus anschluSfertig 
Fernbedienung (Orig, TI) 
Joysiickinter.face+ 2 Joysticks 
Quickshot H 

MBX-Spr ach Steuer ein heit + 
Baseball mod ul ansc hl unfertig 
Grafiktablett Supersketch + Dig 
Dug * Defender + Statistik 


379/ 

239, 

299, 

449, 

499/ 

699/ 


99 


1399,- 

1749 - 

399 - 
589 - 
199— 

239,- 

263,- 


199 ,-, 
279 - 
169,- 
179,- 
259 - 
253,- 
299 - 
149- 
35 ,^ 
je 39- 


1193/ 

1699/ 

359, 

1259, 

189/ 

125/ 

179, 


539 - 

299 ,- 
295,- 
65- 

39- 

349- 

199,- 


MODULSOFTWARE 

Extended Basic (dt. Wachbau) 

Extended Basic 11 Plus 
Mini Memory (Orig, TI) 

Editor/Assembler {32 K notw.) 

T1 -Weiter (32 « notw.) 

Multiplan {32 K norw.) 

TI Logo II {32 K notwj 
Oisktixer {hfavarane? 

Terminal Emulator II 
Conneci four, Attack 
Alpiner,, Car Wars r Chishulm Trail, 
Othello, Invaders, Munch Man je 39,— 
Blackjack, Fathom, Hopper, Dig 
Dug, üetender, Soccer, Parsec je 49- 
Congo Bonga, Burgertrme, Espial, 
Mounsweefrer, Treasure Island, Big 
fuot, Mictüsurgenn, Statistik je 59,- 

Star Treck, Tunnels of doom, Music 
Maker, Jungle Hunt, Muon Patrol, 
Donkey Kong, Protektor \\ je 69 — 
Buck Rogers, Return to Pirate's Isle, 
Adventuremodul, Video Chess je 75 
Popeye, Pole Position, Shamus, 
Datenverwalrung + Analyse je 79,- 

Videq Chess + Defender + Dig 
Dug + Attack t Fathom nur 175,— 
Donkey Kong + Statistik nur 
Defender + Munch Man + Soccer 
Microsiirgean + Treasure Island 
Congo Bongo + Gurgertime 

BÜCHER 

Editor/Assembler Handbuch du 
TI Basic & Extended Basic dt. 

Mini Memory Spezial dt, 

TMS 9900 Asseinblerhandbuch für 

das Mini Memory dt. 

Tf 93/4 A Intern dt. 


99- 


98,- 


55,- 


D1SKETTEN- UND 
CASSETTENSOFTWARE 

Preisliste mit Gesamt über sicht erhalten 
Sie gegen Zusendung eines Freiumschla 
ges (Kennwort: T1-99/4 A) 


Versandkostenpauschale {Warenwert bis 1000 ~ DM / darüber: 
Vorauskasse (8,-/20,- DM), Nachnahme (11,20/23,20 DM), 
Ausland (18,—/30,— DM), Lieferung nur gegen NN oder 
Vorauskasse; Ausfand nur Vorauskasse. Preisliste (Computertyp 
angeben) gegen Zusendung eines Freiumscfilages* 

CSV RIEGERT 

Schloßhofstr. 5, 7324 Rechberhausen, Tel. 07161/52 


IMPRESSUM 


TI'REVUE, die Zeitschrift für 
den TI PC und TI 99/4A er¬ 
scheint monatlich in der 
ÄKTUELL-G RUPPE, Elisa 
belhstraße 1, 8044 Lohhof. 
Redaktion: Senator-Presse- 
Service. 

Verantwortlich für den Inhalt: 
Heiner Martin. 

Verantwortlich für Anzeigen: 
Bruno Redasa 
Verantwortlich für Listings: 
Hartmut König. 

Alle: Postfach 1107, 8044 
Lohhof. Anfragen bitte nur 
schriftlich. 

Druck: Maier und Söhne 
Es gilt die Honorarliste des 
Verlages. Für unaufgefordert 
eingesandte Manuskripte und 
Listings keine Haftung. 

Bei Einsendung von Texten, 
Fotos und Programmträgern 
erteilt der Autor dem Verlag 
die Genehmigung für einen 


einmaligen Abdruck sowie 
die Aufnahme in den Pro¬ 
gramm-Service nach den 

Verlags'Sätzen und überträgt 
dem Verlag das Copyright! 

Alle in dieser Zeitschrift 
veröffentlichten Beitrage sind 
urheberrechtlich geschützt. 
Jedwede Verwertung ist unter¬ 
sagt. Nachdruck nur mit aus¬ 
drücklicher schriftlicher 
Zustimmung des Verlages. 

Namentlich gezeichnete 
Artikel geben nicht un¬ 
bedingt die Meinung der 
Redaktion wieder. 

Kein Anspruch auf Lieferung 
bei Ausfall durch höhere 
Gewalt. 

Gerichtsstand: München 
Geschäftsführer: Werner E. 


Abo- und KassettemService: 
Henny Rose Seiht 
©by TI/CBM Verlag 
SPS und Autoren, ' 


2 































DIALOG 



Assemblerprogramme 
im Image-Format editieren? 
Nützliche Disketten- 
Hinweise 

Screen-Offset in X-Basic 
GPLLNK vom Titelbild 
aus aufrufbar? 

Mehr Speicherplatz 
als 24 K — möglich? 

X-Basic defekt? 

Unbekannte Unter¬ 
programme im 

Disc-Kontroller! ab Seite 4 


TEST & TECHNIK 


Plotter — selbst gebaut — 

Teil II ab Seite 7 


Proportionalsteuerung für 
Joysticks ab Seite 62 


SERIE & SERVICE 


Assembler: 
User Defined 


Interrupt 

ab Seite 

6 

Tips & Tricks: 

Call Load 

auf Seite 

10 

M-Lader: 

Besser programmieren 

ab Seite 

10 

Tastatur: 

So können Sie diese 
abfragen 

ab Seite 

17 

Börse: 

Zum Suchen 
und Finden 

ab Seite 

58 







■- 


LISTINGS 


Wizard Castle: 

Ein spannendes Adventure — 
Befreien Sie die Königs¬ 
tochter aus dem 

Zauberschloß ab Seite 18 


Bomb: 

Fangen Sie Ede, 

den Bomben leger ab Seite 26 


Puzzle: 

Bevor Ihnen die Gesichtszüge 
entgleisen, sollten 

Sie handeln! ab Seite 35 


MIC: 

Nicht nur ein Informations¬ 
katalog über Disk-Inhalte — 
weit gefehlt! ab Seite 38 


Bisher konnte die Tastatur 
nicht abgefragt werden, 
TI-REVUE schildert, wie 

es möglich ist. 
Ab Seite 17 


Chichen Itza: 

Das Super-Adventure, vor dem 
auch die Redaktion der TI- 
REVUE kapitulierte! Und Sie? 
Vorsicht, werfen Sie Ihren 
Joystick nicht an die Wand, 
der kann nichts dafür! ab Seite 43 


Integral: 

Nutzen Sie die Rechen¬ 
genauigkeit Ihres TI.(Davon 
träumen heute noch Besitzer 
anderer Computer¬ 
marken) ab Seite 57 




Wir lassen den TI-USER nicht im Stich! 


□tlönic 


Hardware-Software-Zubehör * 


Bücher viele Titel 


Das komplette Angebot für den 
II 99/4A-Besitzer 










Zubehör z B, Disketten Drucker Papier Kabel 


. .■ <■- 










■ 


e" ■ -■ ?• •’> f ■ ■- ■ r 






Software 

Professionelle 

und 

Spidte-Software 


1 

u r : • - *-J ■ 




FORDERN SIE DIE PREISLISTE AN! 

Der ATRONIC-Service löst (fast) alle Probleme 




für denTI-Besüzer 


Hardware 

CPS 99, Disk'Station 


Schnittstellen 

Disk'Controller 

Drucker 




■rJvVfeP: RAM £>naM Hä 

, CPf 

atro n ic - P rodu kte 


direkt bei: atronic - Meiendorfer Weg 7 * 2000 Hamburg 73 ■ Tel. 0 40 / 6 78 93 08-09 Tx. 2 174 031 


3 



























































DIALOG 


ASSEMBLERPRO¬ 
GRAMME IM PRO¬ 
GRAMM IMAGE 
FORMAT EDITIEREN 


Texas Instruments brach¬ 
te, noch kurz vor dem 
Produktionsstop des 
TI-99/4A, die Program¬ 
miersprache TI-Forth auf 
den Markt. Können Sie 
mir sagen, wo man diese 
kaufen kann und worin 
der Unterschied zu dem 
ebenfalls erhältlichen 
TEX-Forth besteht? 
Weiterhin möchte ich Sie 
bitten, mir mitzuteilen, 
ob es eine Möglichkeit 
gibt, Assemblerprogram¬ 
me, die im Programm 
Image Format abgespei¬ 
chert sind, zu editieren 
und zu ändern? 

Roland Kurz, 

N iirnberg 

T 

Texas Instruments hat 
das unter dem Namen 
TI-Forth veröffentlichte 
Forth nicht mehr selbst 
herausgebracht. Nach 
der Einstellung der Pro¬ 
duktion des Homecom¬ 
puters verkaufte TI die 
Rechte an die Firma 
Texcomp. Diese Firma 
brachte dieses dann unter 
dem Namen TEX-Forth 
auf den Markt. Käuflich 
ist es hier bei einigen 
Händlern, die auch in der 
TI-REVUE annoncieren. 
Selbstverständlich ist es 
auch möglich, Assembler¬ 
programme, die im Pro¬ 
gramm Image Format 
stehen, zu editieren. 

Der einzige Hasenfuß 
Hegt bei einem entspre¬ 
chenden Programm, das 
dabei unumgänglich ist. 

In den USA gibt es von 
der Fa. Millers Graphics 
jetzt neu solch ein Pro¬ 
gramm. Bis dieses jedoch 
hach Deutschland ge¬ 
langt, wird wohl noch 
einige Zeit vergehen. 

NÜTZLICHE 
DISKETTEN HINWEISE 


doch der Verdacht auf, 
daß dieser Artikel eine 
Übersetzung des Bedie¬ 
ner Manuals des Disk- 
Fixer Moduls ist. Dies ist 
jedoch nicht der Haupt¬ 
grund meines Schreibens. 
Vielmehr betrifft mein 
Schreiben die Lücken, die 
der Beitrag ließ. Es sind 
keine gravierenden Män¬ 
gel, zumal in der Kürze 
des Beitrages natürlich 
nicht alle Aspekte des 
Diskettenbetriebssystem 
behandelt werden konn¬ 
ten. 

Nun die einzelnen Punkte 
Sektor 0: Die Bedeutung 
des Strings ‘DSK‘ ist fol¬ 
gendermaßen: Diese drei 
Bytes werden nach dem 
Initialisieren zusammen 
mit dem Sektor 0, dessen 
Bitmap durch den Verify- 
Vorgang aktualisiert wur¬ 
de, auf die Diskette ge¬ 
schrieben. Sie geben die 
Information, ob eine Dis¬ 
kette überhaupt initiali¬ 
siert ist. Verändert man 
eines dieser Bytes, so 
wird der Error ‘Diskette 
nicht initialisiert 1 ausge- 



Ich möchte Ihnen als 
erstes für den Beitrag 
‘Disketten unters Hemd 

geschaut 1 aus Heft 6/86 

danken. Es kommt je* 


Sektor 2—33: Es ist nur 
teilweise richtig, daß die¬ 
se Sektoren nur für den 
Diskettenkatalog (den 
File-Descriptor Sektoren 
oderauch EDS) reserviert 
sind. Sind alle weiteren 
Sektoren der Diskette be¬ 
legt, so werden diese 
ebenfalls zur Datenspei¬ 
cherung verwendet. Be¬ 
nötigt der Computer, 
nachdem diese FDS be¬ 
legt sind, noch weitere 
FDS, so verwendet er den 
Sektor, der direkt vor 
dem neu abgespeicherten 
File steht. Der entspre¬ 
chende Sektor wird zwar 
im Sektor 1 erwähnt, je¬ 
doch geht er meiner Mei¬ 
nung nach in der Block- 
Link unter. 

Bei einigen Beispielen 
wurde die Tl-Unart aufge¬ 
griffen. Die Bits 2, 4, 6 

sind immer Null. Das Bit 
0 gibt an, ob es sich um 
einen Datenfile (das Bit 
ist gleich 0) oder um ei¬ 
nen Program-File (das 
Bit ist gesetzt), handelt. 
Die Bytes > 12 und > 13 
gehören zusammen, da 
sonst die Belegung eines 


Files auf maximal >FF 
Sektoren begrenzt wür¬ 
de. Als einziger wichtiger 
Punkt ist dabei zu sagen, 
daß diese vertauscht 
werden müssen, um die 
Länge des Files heraus¬ 
zufinden. 

Bei der Block-Link (auch 
Cluster-)Map ist zu sagen, 
daß der Sektor-Offset 
von Block zu Block fort¬ 
laufend ist. 

Christopher Winter, 
Obertshausen 

Vielen Dank für Ihre hilf¬ 
reichen Tips zur Verwen¬ 
dung eines Disketten 
Editors. Es ist jedoch 
noch zu bemerken, daß es 
inzwischen eine verhält¬ 
nismäßig große Anzahl 
von solchen Hilfsprogram¬ 
men gibt. Das Disk-Fixer- 
Modul ist bei weitem 
nicht das einzige, ihr 
Brief stellt jedoch einen 
hilfreichen Nachtrag zu 
dem von Ihnen genann¬ 
ten Beitrag dar. 


SCREEN-OFFSET 
IN X-BASIC 


■ 

Ich versuche ein Assem¬ 
blerprogramm, das ich für 
den Editor/Assembler ge¬ 
schrieben habe, für 
X-Basic umzuschreiben. 
Dabei habe ich bei einer 
Unterroutine größere 
Probleme: Um die Anlei¬ 
tung in X-Basic auszuge¬ 
ben, benötigt man, um 
ein Zeichen auf den Bild¬ 
schirm zu bringen, einen 
Screen-Offset von >60. 
Mir gelingt es jedoch 
nicht, den Offset zu den 
Zeichen dazu zu addieren. 
Können Sie mir sagen, 
wie diese Unterroutine in 
Assembler aussieht? 

Mike Rohrmoser, 

Essen 

Zu Ihrem Problem ist zu 
bemerken, daß Sie mit 
den schon integrierten 
Unterprogrammen VMBW 
und VMBR nicht sehr 
weit kommen. 

Eine Möglichkeit wäre 

VS BW, welche jedoch sehr 
langsam ist. Also bleibt 
dann nur die folgende 
Lösung, da sie in der Ge- 


sch windigkeit am besten 
abschneidet: 

L LI RO, >10 * Bild¬ 
schirmadresse laden, wenn 
0, dann CLR RO L I RI, 
HE LP1 * Poin ter zum 
Text laden 

LI R2,778 * Anzahl der 
zu übertragenden Bytes 
BL % VB TW * Sprung zum 
Unterprogramm 
* Hier weiteres Programm 
XBTW ORI R0>4000 

SW PB RO 
MOVB R0,@> 
SWPB RO 
MO VB ROM 
>8C02 * VDP- 
Adresse 
geschrieben 

XB TWL MO VB *R j+ ftg 

Ai R0,>6000 * 
Offset in Byte addieren 

MOVBROM 
>8C00 
DEC R2 
JNE XB TWL 
RT 

Dies ist die ganze Hexerei. 


GPLLNK VOM TITEL¬ 
BILD AUS AUFRUFEN 


Wir sind ein kleiner Tl- 
Club, der sich hauptsäch¬ 
lich mit der Erstellung 
neuer Module beschäftigt. 
Unser größtes Problem 
ist das Aufrufen der 
Unterroutine GPLLNK 
vom Titelbild aus. Wir 
haben die Unterroutinen 
aus dem E/A-Modu! in 
die Speichererweiterung 
ausgelesen, so daß ein 
Aufruf über REF möglich 
ist. Alle Unterprogramme, 
wie z.B. VMBW und 
DSRLNK, laufen ein wand 
frei. Allein GPLLNK be¬ 
reitet Schwierigkeiten, 

Es wäre nett, wenn Sie uns 
helfen könnten, unser 
Problem zu lösen. 

TI/99 Club, 

Peter Vorwerk, 

Pinneberg 

Die Unterroutine GPL LNl 
ist sehr stark von dem 
Modul abhängig, für wel¬ 
ches sie geschrieben wur¬ 
de. So wie im E/A -Modu! 
als auch im Minimem be- I 
steht das GPLLNK nicht 
nur aus einem reinen 
Assemblerteil, sondern 
beinhaltet noch GPL - 

Routinen. Das X-Basic 


4 





























GPLLNK, das im Assem¬ 
bler Sonderheft verwen¬ 
det wurde, trickst ein 
wenig. Es verwendet als 
Rücksprungadresse von 
GPL den eigentlichen Ein¬ 
sprungspointer des CALL 
LINK Aufrufes, nur wird 
dieser Pointer ' umgebo¬ 
gen ' Uns ist zwar eine 
reine ROM Version be¬ 
kannt, jedoch können wir 
diese aus urheberrecht¬ 
lichen Gründen nicht ver¬ 
öffentlichen. Einen Tip 
können wir Ihnen aber 
geben: Diese Routine ist 
im deutschen FOR TH - 
Modul programmiert. 


MEHR SPEICHERPLATZ 
ALS 24 K 
ANSCHLIESSBAR 


Ich habe mich entschlos¬ 
sen, Ihnen endlich alle 
meine angesammeiten Fra¬ 
gen zum TI-99 zu stellen. 
Ich habe sie Ihnen in 
Form einer Liste zusam- 
mertgefaßt: 

1. Gibt es lur den TI ein 
Programm bzw. Modul, 
mit dem ich richtige Bil¬ 
der erstellen kann? 

2. Gibt es die Möglich¬ 
keit, daß dem TI mehr als 
nur 24 K (wie bei der 

32 K-Erweiterung) zur 
Verfügung stehen? 

3. ist es normal, daß nach 
längerem Einschalten 
mein TI sich am Modul¬ 
schacht stark erhitzt? 

4. Welchen Befehl muß 
ich eingeben, um den 
Bildschirm im laufenden 
Programm ausdrucken 
zu lassen? 

5. Ist es normal, daß ein 
X-Basic Programm nach 
dem Abschalten der P- 
ßox gelöscht ist? 

6. Ist es möglich, fremde 
Basic-Dialekte dem TI 
anzupassen, wenn ja, 
wie? 

Thomas Nowak, 

Berlin 

Wir werden versuchen, 
alle Ihre Fragen zu beant¬ 
worten: 

1. Ein Grafikprogramm 
mit den von Ihnen ge¬ 
nannten Eigenschaften, 

den Ti Artist, hatten wir 
gerade in der TI-REVUE 
5/86 vorges teilt. 


2. Der TMS9900 kann di¬ 
rekt nur 24 K adressieren. 
Mit besonderen Erweite¬ 
rungen sind aber mehr 
durchaus möglich. 

3. Die Erwärmung am 
Modufport ist durchaus 
normal, da sich darunter 
der Spannungsregler befin¬ 
det. Dieser erwärmt nach 
einiger Betriebszeit die 
schwarze Fläche, 

4. Wenn Sie einen Bild¬ 
schirmausdruck erstellen 
wollen, so benötigen Sie 
dazu eine Hardcopyrouti¬ 
ne. Diese sind aber von 
Drucker zu Drucker ver¬ 
schieden. Einige Routinen 
zu verschiedenen Druk- 
kertypen haben wir in der 
Ti-REVUE schon veröf¬ 
fentlicht. 

5. Nach dem Abschalten 
der P-Box muß ein X- 
Basic Programm verloren 
sein, da es sich in der 
RAM-Erweiterung befin¬ 
det. Schaltet man den 
Strom der P-Box ab, so 
bekommt die RAM-Erwei¬ 
terung ebenfalls keinen 
Strom mehr. Dadurch 
wird das Programm ge¬ 
löscht. 

6. Basic-Programme ande¬ 
rer Dialekte müssen Sie 
wohl oder übel'überset¬ 
zenDas heißt, Sie müs¬ 
sen alle Befehle, die der 
Ti nicht kennt, umschrei¬ 
ben. 


X-BASIC DEFEKT 


Ich wollte ein Programm 
zum Erstellen von Texten 
in 32 Zeilen zu je 28 
Zeichen schreiben. Doch 
schon beim Eingabepro¬ 
gramm bin ich gescheitert. 
Die ersten 24 Zeilen einzu¬ 
geben, funktioniert fehler¬ 
los. Will man jedoch die 
letzten 8 Zeilen eingeben, 
so nimmt der TI nur 
noch die Cursor-Tasten 
an. Was ist da falsch? 

Liegt es an meinem X- 
Basic oder am CPS99? 

Die Programmzeilen sehen 
folgendermaßen aus: 

140 FOR D=] TO 8 :: 

ACCFPT 

AT (D,l): A$(D+24) :: 
NEXTD 

Die Abspeicherroutine 
scheint zu funktionieren, 
auch die letzten 8 AS 


(D)’s. Doch beim Abspei¬ 
chern schneidet der TI 
immer an beliebigen Stel¬ 
len Wörter ab. 

Woran liegt das? Das 
Listing sieht folgender¬ 
maßen aus: 

100 CALL CLEAR 
110DIM A$(32) 

120 FOR D=1 TO 32 
130 IFD 25THEN 

Z=D ELSE Z=D—24 
140 IF D=25 THEN CALL 
CLEAR 

150 ACCEPT AT(Z,1) 
:A$(D) 

160 NEXT D 
170 DISPLAY AT(14,1): 
“DATEINAME: 
DSK1.SEITE“ 

180 ACCEPT AT(14,17) 
SIZE (—10):N$ 

190 OPEN 

#1 :“DSK1.“NS , OUTPUT. 
FIXED 30 

200 FOR D=1 TO 32 
210 PRINT #1 :A$CD) 

220 NEXTD 
230 CLOSE #1 
240 GOTO 100 
Ich hoffe, Sie können mir 
bei meinem Problem wei¬ 
terhelfen. 

Joachim Venekens, 

Mayen 

Zuerst zu ihrem zweiten 
Problem, das Sie anspra- 
chen: Verwenden Sie bei 
Ihrer Datei die Atribute 
INTERNAL, OUTPUT. 
FIXED 30. Ohne das 
INTERNAL liest der Com¬ 
puter beim Wiedereinle¬ 
sen nur bis zu einem Tren¬ 
nungszeichen, z.B. Kom¬ 
ma. Der Rest wird abge¬ 
schnitten. 

ihr erstes Problem ist et¬ 
was heikel. Um Sie im 
Voraus zu beruhigen: An 
ihren Geräten stimmt al¬ 
les. im ACCEPT A T von 
Ti scheint offensichtlich 
ein Fehler vorzuliegen: 
Verwendet man als Ziel¬ 
variable ein Datenfeld, 
in Ihrem Fall A$(D), 
so treten zwei Fälle auf: 
Das ACCEPT A T funktio¬ 
niert fehlerlos, solange 
man absolute Werte der 
Variablen zuteilt, z.B. A$ 
(3) oder man eine reine 
Variable verwendet, z.B. 
A${D). 

Der zweite Fall ist der, bei 
dem der Fehler auf tritt. 
Steht in den Klammern 
des Datenfeldes ein Term, 


bei Ihnen A$(D+24), so 
nimmt der Computer kein 
Zeichen mehr an. Gibt 
man nun aber über 
VAL!DA TE an, welche 
Zeichen er nehmen darf, so 
funktioniert altes schein¬ 
bar fehlerlos. Komisch 
wird es erst, wenn man 
mehr als 256 Zeichen ein¬ 
gibt. Das ACCEPT AT 
akzeptiert so viele Zei¬ 
chen, wie man will. In 
dem String werden • aber 
nur die ersten 256 gespei¬ 
chert. Gibt man mehr Zei¬ 
chen ein als auf den 
Bildschirm passen und 
drückt dann ENTER, so 
kann ein Systemabsturz 
die Folge sein. 


UNBEKANNTE UN fER- 
PROGRAMME IM 
DISKCONTROLLER 


Seit Sie in der Juni-Aus¬ 
gabe der TI-REVUE auf 
die Unterprogramme des 
Diskcontrollers eingegan¬ 
gen sind, habe ich einige 
Fragen an Sie. Wie ich 
feststellte, sind im 
EPROM des Diskcon- 
trollers noch weitere Un¬ 
terprogramme enthalten. 
Die Programme ‘0110‘ 
und ‘0116‘ sind mir ein 
Begriff. Dennoch lassen 
mich die Unterprogram¬ 
me ‘0111 bis ‘0115‘ im 
Unklaren. 

Michael Kovar, 

Berlin 

Der Disk-Controller ist 
von uns noch nicht voll¬ 
ständig analysiert wor¬ 
den, so daß wir ihnen nur 
grobe Anhaltspunkte ge¬ 
ben können. 

'011V dient zum 'roh'- 
formatieren. Die Sektoren 
0 und 1 werden dabei 
nicht geschrieben. Die 
weiteren Unterprogram¬ 
me enthalten das Andern 
von Dateinamen und 
Löschen von Dateien. 
Weiter sind zwei Unter¬ 
programme vorhanden, 
die das block weise Lesen 
und Speichern von Da¬ 
teien ertauben. Wir wer¬ 
den aber darauf noch in 
der TI-REVUE zurück¬ 
kommen. 


5 




























ASSEMBLER 



In der letzten Zeit erreichten mich 
einige Anfragen nach dem User- 
defined Interrupt des TI 99/4A. 

Mit dieser Funktion scheint es einige 
Schwierigkeiten zu geben, so daß 
wir uns heute einmal näher damit 
beschäftigen wollen. 

Im Gegensatz zu einigen anderen 
Prozessoren, die auch ein Software* 
mäßiges Aufrufen eines Interruptes 
erlauben (was ja aber eigentlich nur 
eine besondere Form eines Unter¬ 
programmaufrufes ist), gibt es beim 
TMS 9900 nur den Hardware-Inter¬ 
rupt, d.h., eine bestimmte Steuer¬ 
leitung sagt dem Prozessor, daß er, 
sobald möglich, die Ausführung des 
normalen Programms unterbricht 
und eine besondere Interrupt-Rou¬ 
tine ausführt. 

Beim TI 99/4A wird ein Interrupt 
nun von verschiedenen Komponen¬ 
ten ausgelöst. Einmal benutzt die 
, Kassettenroutine Interrupts zur 
Steuerung der Baud-Rate, dann 
können externe Erweiterungen (z.B. 
Druckerschnittstellen) Interrupts 
auslösen und dann gibt der Video- 
Prozessor alle 5 Ostei Sekunde einen 
> Interrupt an den Prozessor. Die er¬ 
sten beiden Möglichkeiten interes¬ 
sieren uns hier nicht, denn sie haben 
mit dem User-del'ined Interrupt 
nichts zu tun. 

Erkennt der TMS 9900 einen Inter¬ 
rupt, führt er im Betriebssystem die 
dafür vorgesehene Routine aus (im 
Betriebssystem ab >0900). In die¬ 
ser wird nun erst einmal geprüft, um 
welchen Interrupt es sich handelt. 
Wie gesagt, interessiert uns hier nur 
der VDP-Interrupt. Dabei wird nun 
das Interrupt-Flag Byte auf >83C2 
geprüft und je nach dessen Wert wer¬ 
den die einzelnen Routinen für die 
automatische Spritebewegung, die 
Soundlistensteuerung und für die 
Abfrage der Quittaste ausgeführt. 
Anschließend wird noch der Screen- 
timeout-Zähler erhöht und eine 
Kopie des VDP-Statusregisters auf 
>83D4 gelegt. Jetzt folgt das Inter¬ 
essante: Es wird die Speicherstelle 
>83C4 abgefragt. Ist der Inhalt 0, 
geschieht gar nichts und der Inter¬ 


rupt wird beendet, ist diese ungleich 
0, wird der Inhalt als Adresse einer 
auszuführenden Routine behandelt 
und diese über BL angesprungen. 
Übrigens erfolgt dies völlig unab¬ 
hängig vom Wert des Interrupt- 
Flag Bytes, d.h., ein User-defined 
Interrupt kann darüber nicht ab- 
geschaltet werden. 

Um also während jedes Interruptes 
auch eine selbstbestimmte Inter¬ 
rupt-Routine auszuführen, müssen 
wir die Speicherstelie mit einem 
Pointer auf den Beginn unserer 
Routine legen. Dies geschieht aus 
dem Basic (bzw. natürlich Ex- 
tended Basic) mit Hilfe eines ein¬ 
fachen Programms: 

* Aufruf mit CALL LINK 
(“INTER“) 

DEF INTER 

INTER LI R1 ,PNTR 

MOV RI ,a>83C4 
B a>0070 

Dabei brauchen wir, weil nur ein 
einziges Register benötigt wird, 
nicht extra einen eigenen Workspace 
zu bestimmen. PNTR ist dabei der 
Pointer zum Beginn der Routine. 
Wenn die selbstgeschriebene Inter¬ 
ruptroutine nicht mehr ausgeführt 
werden soll, wird der Pointer wie¬ 
der mit folgendem Programm 

•Aufruf mit CALL LINK 
(“CLRINT“) 

DEF CLRINT 

CLRINT CLR a>83C4 

a>0070 

Wie gesagt, das ist nicht der Rück¬ 
sprung für die Interruptroutine, son¬ 
dern es wird dann nicht mehr ausge¬ 
führt. 

Jetzt brauchen wir aber zuerst noch 
eine kleine Routine, die dann bei 
jedem Interrupt ausgeführt werden 
soll. Beschreiben wir also den Bild¬ 
schirm immer an einer ganz bestimm¬ 
ten Stelle mit einem “A“. Die 
“User-defined Interrupt Routine“ 


könnte damit so aussehen: 

MYWS 

BSS 32 

PNTR 

LWPI 

MYWS 


LI 

RQ,30 


LI 

R1>A100 *Offset 


BLWP 

aVSBW 


LWPI 

RT 

>83E0 


Beim Einsprung aus dem Betriebs¬ 
system ist der GPLWS (>83E0) gela¬ 
den. Damit wir mehr Freiheiten in 
der Registerbenutzung haben, wird 
zuerst ein eigener Workspace geladen. 
Dann erfolgt in bekannterWeise das 
Schreiben des “A“ auf den Bildschirm 
Zum Rücksprung in die Interrupt- 
Routine des Betriebssystems müssen 
wir wieder GO LWS laden und dann, 

6 


da ja der Einsprung aus dem Betriebs¬ 
system über BL (!) erfolgte, wieder I 
mit RT, was ja gleich B *R11 ist, I 
zurückgehen. Auf gar keinen Fall dürl 
fen wir hier das B o>0070 verwenden 1 
Werden diese Routinen zusammen I 
assembliert (wegen des Labels 
PNTR notwendig) und dann von ei- j 
nem Basicprogramm aus aufgerufen,. 
steht immer in der oberen rechten 
Ecke des Bildschirms ein “A“, Im 
Basicprogramm sieht das dann wie 
folgt aus: I 

100 CALL LINK (“INTER“) 
Weiteres Programm 
500 CALL LINK'CCLRINT“) 

510 END 

Das war dann eigentlich schon die 
ganze Hexerei. Rekapitulieren wir 
aber noch einmal: Das, was im 
Handbuch zum Editor/Assembler 
als User-defined Interrupt beschrie¬ 
ben ist, muß mit einem Pointer auf j 
den Anfang der gewünschten Rou¬ 
tine gelegt werden. Ist diese Spei¬ 
cherstelle 0, passiert aber gar nichts. 
Der Einsprung in die Routine er- j 
folgt aus dem Betriebssystem mit 
BL, wobei der GPLWS geladen ist. • I 
Die Rückkehr aus der selbstgeschrie¬ 
benen Unterroutine muß immer mit 
einem B *R11 bzw. RT erfolgen, ! 
wieder bei geladenem GPLWS. , 

Wer übrigens keinen eigenen Work- i 
space für die Interruptroutine ver¬ 
wenden will, kann auch im ij 

GPLWS bleiben, es dürfen dann j 

aber die_Register RI 1, R13, R14 
und RI5 nicht geändert, also z.B. 
auch kein BLWP durchgeführt wer¬ 
den. 

Der Interrupt wird, wie anfangs er¬ 
wähnt, ja vom VDP 50mal in der 
Sekunde ausgelöst (bei amerikani- j 

sehen Konsolen 60mal). Nun gibt es 
da aber einige Betriebsbedingungen, 
die den Interrupt abschalten. Dazu | 
gehören einmal länger dauernde 
Zugriffe auf Peripheriegeräte wie I 

z.B. den Diskcontroller. Auch sind ;j 

viele Maschinenprogramme so auf- II 

gebaut, daß sie keinen Interrupt I 

erlauben. Grundsätzlich kann hier I 

gesagt werden, daß der User-defined f 
Interrupt dann auch nicht ausge- 1 

fuhrt wird, wenn Sprites auf dem I 

Bildschirm stehen bleiben. I 

Zum Schluß darf der Hinweis nicht fl 
fehlen, daß man seine selbstge- [ 

schriebene Interrupt-Routine so 
kurz wie möglich halten sollte. I 

Die Ausführung des Hauptpro- I 

gram ms wird sonst sehr langsam. j 

Wenn nämlich diese z.B. länger als 
eine 50stel Sekunde dauert, wird 
die Ausführung des Hauptprogramms 
sogar gestoppt. 

Heiner Martin 







































Zu den reizvollsten Anwendungen unseres Computerhobbies gehört 
sicherlich das Plotten, das heißt, das programmgesteuerte Zeichnen von 
Funktionen, Kurven und Grafiken aller Art. Plotter für Heimcomputer 
sind relativ teuer, außerdem ist der Selbstbau viel interessanter. 

Mit dieser Anleitung wird beschrieben, wie man mit einfachen 
Mitteln einen Plotter bauen kann, der, gesteuert von dem TI 99/4A über 
ein CRU-Interface, ansehnliche Zeichnungen anfertigen kann. 

Im zweiten Teil dieses Beitrages geht es um die Steuerung. 



mm 


1 0001 bis 4 0100 wird nicht 

benutzt 

5 0101 Stift hoch 

6 0110 Stift zeichnet 

7 0111 frei 

8 1000 +X ' 

9 1001 -X 

A 1010 +X -Y 
B 1011 +Y 

C 1100 +X +Y 
D 1101 -Y 

E 1110 -X +Y 
F 1111 -X -Y 
Bl bis B4 enthalten den Steuerbe¬ 
fehl, während B0 als Übernahme- 
Bit benötigt wird, d.h., mit BO high 
werden B 1 bis B4 erst zur Dekodie¬ 
rung durch IC7 (Motor) bzw. IC 10 
(Zeichenstift) freigegeben. 

Das IC7 dekodiert aus dem empfan¬ 
genen Kode, welcher Motor sich in 
welche Richtung drehen soll. Das 
Ergebnis wird an die Eingänge der 
Steuerlogik für die Motorschritte 
weitergegeben. Ist einer der beiden 
Eingänge high, so wird von IC2 ein 
Clear-Impuls an IC 1 gegeben. Da- 


Der fertige 
Plotter 


Um eine exakte Bewegung des 
Stiftes zu erreichen, ist es notwen¬ 
dig, die Motoren so zu steuern, daß 
einem Steuerimpuls immer die glei¬ 
che Anzahl Umdrehungen des Mo¬ 
torankers bzw. der Gewindestangen 
zugeordnet ist. Um die Drehung 
der Motorwelle takten zu können, 
wird eine Lichtschranke an ein Ge¬ 
trieberad des Motorgetriebes ange¬ 
baut. Das Getrieberad wird zur 
Hälfte mit lichtundurchlässigem 


DIE STEUERUNG (Mechanik) 


Papier beklebt. Auf diese Weise 
erhält man die Impulsfolge: aus 
ein - aus für eine Umdrehung des 
Rades. Durch die weitere Unterset¬ 
zung von 4:1 dreht sich die Ge¬ 
windestange bei einer Taktfolge um 
eine Viertel-Umdrehung weiter. 

Da dieser Vorgang für beide Moto¬ 
ren unabhängig voneinander gilt, 
ist für jeden Motor die Schaltung 
“Steuerlogik“ einmal vorhanden. 


Wie oben erwähnt, wird der Plotter 
über ein CRU-Interface, wie es in 
TI-REVUE 2/84 vorgestellt wurde, 
gesteuert. Als CRU-Basisadresse 
habe ich >1600 gewählt, damit es 
keine Konflikte mit anderen 


DIE STEUERUNG (Elektronik) 


Erweiterungen gibt. Für die Daten- 
iibergabe an den Plotter werden die 
Bewegungsrichtungen und das He¬ 
ben sowie Senken des Zeichenstif¬ 
tes gesteuert. Für die Ausgabe der 
READY-Signale der Motoren wer¬ 
den zwei Eingabedatenleitungen 
(I I und 12) benutzt. Die Eingabe¬ 
leitungen in den Schaltplänen habe 
ich mit B0 und B4 bezeichnet, wo¬ 
bei B0 das niederwertigste Bit dar¬ 
stellt. Zur Steuerung des Plotters 
gilt folgende Code-Tabelle, die von 
der Steuerlogik entschlüsselt wer¬ 
den kann: 

B4 Bl 

0 0000 Reset 


durch wird ein Ausgang von IC3 
low, so daß der entsprechende Mo¬ 
tor zu laufen anfängt. Die Impulse 
von der Lichtschranke werden über 
1CI ausgewertet und sorgen dafür, 
daß nach einer Umdrehung des 
Lichtschrankenrades der Ausgang 
von IC3 wieder high wird und der 
Motor stoppt. Vor jedem neuen Im¬ 
puls muß, nachdem abgewartet wor¬ 
den ist, bis das READY-Signal ge¬ 
setzt wurde, BO bis B4 auf Null ge¬ 
setzt werden; aber das wird ja alles 
von dem Plotprogramm erledigt. 

Das READY-Signal wird von den 
invertierten Q-Ausgängen von IC1 
abgezweigt und über II und 12 des 
CRU-Dateneingangs zum Rechner 
geschickt. Die anderen Eingänge 
13 - 18 müssen immer auf low ge¬ 
legt sein. 

Zur Umsetzung des 1 TL-Signals für 
die Motorsteuerung habe ich eine 
Schaltung aus “Elektor 7/84 (64)“ 
eingesetzt. Die Eingänge “A“ und 
“B“ dieser Schaltung werden mit 
den Ausgängen MxL und MxR für 


7 








































SERVICE 


o 

> 

o 

F- 

ao 
+ 


t *1 

£. u 

J= 

x y 
■h m 
ttf I* 
0 O 
^ ** 
M Ö 
4J 3L 

3 

V « 

V -wi 

cn "d 



C »H*x> 

^UlI 4 3 BVpn 


K 

e* 


PC 


S 

ffi 

bl 

£ 




r* *- 


CO 

r* 

■r 1 

s 

r- 


o 

o 

IA 

5 

i> 



o 

#*■ 

tfj 

K" 

r~ 


BM S r£j 



cd 


-x 

m 


fl 

pp 


m 


(4 

cc 


H 




(iwfcl : J ! 

*qu«j|än qi ^ 


STÜCKLISTE 



= >:i 



Kondensatoren 

2mal 4.7 //F Elko 
2mal 100 m F Keramik 


1 Relais 5 V 

1 BDI 39 

2 Motoren (Mabuchi-Motor) 
2.5V bis 4.5 V = 

z.B.: Völkner 0311308 
2 Gabel lichtschranken 
(NEC PS4001) 
z.B.: Völkner 0116680 
3mal 1 m Alu ll-Profilstäbe 
16 mm mal 10 mm 


Die wichtigsten Bauteile 

IC1 74LS112 
IC2 74LS123 
IC3 74LS01 
IC4 74LS32 
IC5 74LS132 
IC6 74LS00 
IC7 74LS138 
IC8 74LS10 
IC9 74LS10 


Widerstände 

2mal 220 Ohm 
2mal 380 Ohm 
2mal 6.2 kOhm 
2mal 5.6 kOhm 
2mat 1.0 kOhm 
Imal 3.3 kOhm 
2mal 10 Ohm Watt 


2mal 1 m Gewindestangen M5 
1 Lochrasterplatine 
5 Platinenschienen 
Schrauben M3 mal 10 mm 
Muttern M3 und M5 
Stecker und Flachbandkabel 


Bauteile und Schaltbild der 
Motor Steuerung siehe 
'Elektor; Heft 7/84 


# 


8 




























































































































































































SERVICE 






Steuerlogik für 
die Motorschritte 


+ 5,0 Volt 


Eineun« 



MxL {HyL) 
Ausgang 

Motorsteuerung 
HxR (Mytt) 


Diese Schaltung 

zwei mal. 

Für die zweite 
Schaltung werden 
die anderen Hälften 
der IC 1 9 1- 
benutzt» 


tu (2R) 


die X-Richtung und fiir den Motor 
in Y-Richtung mit MyL und MyR 
verbunden. Die “Elektor-Schaltung“ 
wird auch zweimal benötigt. 

Da ich die gesamte Schaltung, also 
auch die Motoren, mit nur einer 
5 V-Spannungsquelle versorge, müs¬ 
sen die Widerstände R8 und R5 
durch 1 k5 Widerstände ersetzt wer¬ 
den. Zur Anpassung der 3V-Moto- 
ren an die 5 V-Versorguhgsspannung 
habe ich je einen 10 Ohm-Wider- 
stand mit jedem Motor in Reihe 
geschaltet. 

DER STIFT 


y^LSoo 


7^LSlo 


Wie aus der Tabelle zu ersehen ist, 
gibt es zwei Befehle für den Zeichen¬ 
stift: einen zum Heben und einen 
zum Senken. Die beiden Befehle wer 
den von IC5, IC6 und ICMO entschlüs 
seit und auf das mit zwei Gattern 
von IC6 gebildete Flip-Flop ge¬ 
schickt, dessen Ausgang das Relais 
über die Basis des BDI 39 steuert. 

DER AUFBAU 



1L 


I.ofrik zur 
Dekodierung der 
Plot befehle « 


IC 8 


|4 _ 

IR 

iea 


b 8 

2 ft 

P 

IC 8 



2 


1C9 


741.510 


+ 5,o Volt 


Die Schaltung ist problemlos auf ei¬ 
ner Euro-Lochrasterplatine aufzu¬ 
bauen. Alle IC’s werden mit je einem 
lOOnF Keramik Kondensator ge¬ 
schützt. Die Verbindungen zum 
Interface, zur Brücke und zu den 
Motoren habe ich mit mehradrigem 
Flachkabel hergestellt. Die Licht¬ 
schranken werden mit zweiadrigem 
abgeschirmtem Kabel mit der Schal¬ 
tung verbunden. 

Die Spannungsversorgung läßt sich, 
falls keine andere vorhanden ist, 
mit einem 7805 5 V-Spannungsreg- 
ler mit Kühlblech leicht realisieren. 
Im letzten Teil, im nächsten Heft, 
folgt dann die notwendige Software. 

Mathias Wahner 


Bl 


BDI 39 


b4 


ur- 



Steuerlogik für 
den Plot^tift, 


9 






























































































































-w 





SERVICE 



Die wichtigsten, bekann¬ 
ten und neuen, Poke’s 
für den TI-99/4A mit 
EX.BASIC+32K Erwei¬ 
terung : 

Also aufgepaßt! 

CALL LOAD(-31931,16) 
= ‘Trace 1 Befehl 
CALL LOAD(—31931,2) 

=‘On Warning Next’-Befehl 

%CALL LOAD(—31744,...) 

- erzeugt einen Ton 
CALL LOAD(-31878,50) 

— löscht teilweise Buch¬ 
staben 



CALL LOAD(-31878,1) CALL LOAD(-31806,16) 

= macht dies rückgängig = schaltet die ‘Quit‘- 

CALL LOAD(—31878,0) Funktion aus 

= stoppt alle Sprites CALL LOAD(—31965,19) 

x'CALL LOAD(—31806,32) = schaltet die Tastatur aus 

= läßt einen ‘Sound 1 ewig CALL LOAD(—31806,0) 

klingen - schaltet die ‘Quit 1 - 

CALL LOAD(- 31804,036) Funktion ein 

- progr.mäßiges Aus- CALL LOAD(-31965,20) 

steigen aufs Titelbild = führt ein ‘New 1 nach 

CALL LOAD(-31932,0) dem Editieren aus 

= ‘Stop 1 Befehl ohne CALL LOAD(—31965,21) 

Ready-Meldung = ‘New‘-Befehl 


CALL LOAD(—31931,128) 

= ‘Listschutz 1 ein 
CALL LOAD(—31931,0) 

— ‘Listschutz 1 aus 

CALL LOAD(-31931,200) 
= ‘On Break Next'-Befehl 
CALL LOAD(-31903,210) 
= Stoppt alles 
CALL LOAD(-31806,33) 

— nun ist kein Ton mehr da. 


Aum. d. Red.: Da uns im¬ 
mer wieder Fragen errei¬ 
chen: Der TI 99/4A wur¬ 
de mit verschiedenen Be¬ 
triebssystemen ausgelie¬ 
fert, so müssen nicht alle 
hier aufgeführten Poke’s 
die beschriebene Wirkung 
haben. 




ANLEITUNG ZUM 
M-LADER 


Dieses Programm unter¬ 
stützt die Programmie¬ 
rung in Maschinenspra¬ 
che und wurde speziell 
für die Konfiguration Mi- 
nimemory mit Cassetten- 
recorder entwickelt. 
Dabei war Vielseitigkeit 


Es stellt einen Kompro¬ 
miß dar zwischen Assem- 
blermodul. Line-by-Line 
Assembler und einfachen 
POKE-Listen. Den Unter¬ 
schied verdeutlicht unser 
Beispiel, das 2 Program¬ 
me lädt, die jeweils 
den “Accept-Ton“ bzw. 
den “Bad-Response-Ton“ 
erzeugen. 


rend des Ladevorganges 
alle zu verarbeitenden 
Anweisungen auf dem 
Bildschirm zu listen,muß 
die REM-Zeile 25500 
aktiviert werden. Sie 
zeigt dann zusätzlich 
noch die FILE- und Zei- 
len-Nummer. 

Das Programm wird mit 
RUN gestartet und zeigt 


mit sie später beim Laden 
weiterer Programme noch 
aufgelöst oder benutzt 
werden können, Diese 
Möglichkeit gibt es bei 
Texas Instrument sonst 
nicht, erweist sich aber in 
der Minimalkonfiguration 
als äußerst nützlich. Nur 
falls Ihre Antwort mit ei¬ 
nem der Buchstaben 


POKE-Liste (DATA Zeilen) M-Lader Liste (DATA Zeilen) TI Assembler 


unmöglich 

GPLLNK EQ>6018 

GPLLNK 

EQU >6018 


unmöglich 

* siehe weiter unten 


DEF GOOD,BAD 

■k 

unmöglich 

* 

* 


unmöglich,2,8,0,52 

DEF,GOOD,*Emgabetan,>208,>34 

GOOD 

LI R8,>34 

Eingabeton 

16,2 

JMPSETZE 


JMPSETZE 

unmöglich,2,8,0,54 

DEF,BAD,* Bad-Ton,>2Q8,>36 

BAD 

Li R8,>36 

Bad-Ton 

200,8,unbekannt 

SETZE,>C808,@TON 

SETZE 

MOV R8,@T0N 


4,32,96,24 

>420,@ GPLLNK 


BLWP (»GPLLNK 


0,0 

T0N,0,* wird gesetzt 

TON 

DATAO 

wird gesetzt 

unmöglich 




4,91 

>45B,* zum BASIC 


B * R11 

zum BASIC 


wichtiger als Geschwindig¬ 
keit. Neben zahlreichen 
Assembler-Direktiven 
werden die meisten einfa¬ 
chen Befehle als Maschi¬ 
nencode in BASIC DATA- 
Zeilen abgelegt. Als Edi¬ 
tor dient also der des 
BASICs, als Assembler 
Sie selbst (z.B. unter zu 
Hilfenahme einer Kodier¬ 
tabelle oder des Line- 
by-Line Assemblers). 


Die Anweisungen werden 
in BASIC DATA-Zeiien 
vor Zeile 20000 abgelegt 
und jeweils durch Kom¬ 
ma voneinander getrennt. 
Ab Zeile 30000 können 
Sie einen Programmteil 
ablegen, der über “CALL 
LINK ..." die eben gela¬ 
denen Programme testet; 
dazu starten Sie das Pro¬ 
gramm nochmals mit 
“RUN 30000“, Um wäh- 


zunächst den vor dem 
Laden freien Speicher¬ 
platz des Minimemory an. 
Dann läuft der Ladevor¬ 
gang ab. Anschließend 
wird die Größe des gela¬ 
denen COMMON- und 
Programm-Segmentes ge¬ 
zeigt. 

Jetzt wird gefragt, ob die 
externen Symbole (über 
SREF benannt) gespei¬ 
chert werden sollen, da- 

10 


“N,n“ beginnt, werden 
die Symbole nicht gespei¬ 
chert. 

Darauf werden zur Kon¬ 
trolle alle Symbole ge¬ 
listet, und zwar mit Name, 
Wert (meist Adresse), 
Bekanntheitsstatus, inter¬ 
ner oder externer Typ und 
der Angabe, wie oft sie 
benutzt wurden. 

Schließlich wird der nicht 
mehr ausgenutzte Speicher- 
















SERVICE 

— 


platz des Minimem ange¬ 
zeigt. Das Programm läuft 
danach in eine endlose 
GOSUB-Schleife, die mit 
“* Memory full*“ endet. 
“PRINT! FREI“ zeigt dann 
den noch freien BASIC- 
Speicher an, d.h. um wie¬ 
viel Ihre M-Lader Liste 
noch maximal wachsen 
darf. 

Im Ablauf des Programms 
wird auf folgende Fehler 
geprüft: 
dump, symbol 
Änderung des bisherigen 
Wertes 

no such symbol 
Symbolname bei SREF 
noch unbekannt 
CSEG into PSEG 
COMMON größer als bis¬ 
her gespeicherte Pro¬ 
gramme 


Ixyz] 

definiert ein Symbol mit 
Namen “xyz“ 

Format : [1 ext mit ASCII 
Wert> 64 am Anfang] 

Alle Anweisungen außer 
den weiter unten aufge¬ 
zählten werden als Defi¬ 
nition eines Symbols auf- 
gefaßt. Ihm wird die mo¬ 
mentane Speicheradresse 
als Wert zugewiesen. Die 
maximal 40 Symbole dür¬ 
fen beliebig lang sein, je¬ 
doch werden bei DEF 
und SREF nur die ersten 
6 benutzt. Groß- und 
Kleinschreibung wird 
unterschieden. 

(S 

benutzt als Wert den ei¬ 
nes Symbols 
Format: ©[Symbol] 

Der Wert des Symbols 
wird in 2 Bytes gespei¬ 
chert. Das Symbol kann 
auch erst später definiert 
werden. 

* 

beginnt einen Kommentar 
Format: »[Text in BASIC 
DATA-Zeilen Format] 


memory overflow 
Speicherplatz des Mini- 
memory reicht nicht 
aus 

JUMP reach error 
bedingter Sprung über 
mehr als 256 Bytes 
HEX code error 
unerlaubtes Zeichen in 
einer Hexadezimalzahl 
numeric overflow 
Zahl zu groß für 1 Spei¬ 
cherwort bzw. -byte 

Nach Ausgabe der Fehler¬ 
meldung kann der Lade¬ 
vorgang zwar mit 
[ENTER] fortgesetzt wer¬ 
den, jedoch kann dies 
unvorhersehbare Folgen 
haben. 

Welche Anweisungen und 
Direktiven stehen zur 
Verfügung? 


Verwendung wie im TAM 
beschrieben, um die Ein¬ 
gabe mit Kommentaren 
zu strukturieren. Falls 
der Text Separatoren wie 
enthält, muß er ein¬ 
schließlich des Zeichens 
in Anführung gesetzt 
werden. Außerdem kön¬ 
nen als Kommentar auch 
BASIC REM-Zeilen be¬ 
nutzt werden. 

> 

beginnt eine Hexadezimal¬ 
zahl 

Format: >[1—4 hexa¬ 
dezimale Ziffern (Gro߬ 
buchstaben)] 

Verwendung für BSS, 
Adressen oder zur Kodie¬ 
rung von Assembler- 

Befehlen als Maschinen¬ 
code mit Tabellen, die 
auf hexadezimalen Wer¬ 
ten aufbauen. Sie können 
ja auch den Line-by-Line 
Assembler benutzen, um 
sich die Assemblerbefehle 
übersetzen zu lasser. 

[Zahl] 

beginnt eine Dezimalzahl 
Format: [Dezimalzahl; 


kann auch negativ sein] 
Verwendung wie oben 
unter “>“ beschrieben. 

BSS 

Block startet beim Symbol 
Format: BSS,[Hexa-/ 
Dezimalzahl, größer 0] 
Verwendung wie im LAH 
beschrieben, jedoch ohne 
auf eine gerade Adresse 
zu prüfen. 

BYTE 

nächster Wert ist als ein 
Byte zu speichern 
Format: BYTE,[(Ilexa-) 
Dezimalzahl ] 

Verwendung, um die näch¬ 
ste Zahl als nur 1 Byte 
zu speichern. Ansonsten 
werden alle Zahlen als 
Worte (=2 Bytes) gespei¬ 
chert. 

CEND 

beendet das COMMON 
Segment 
Format: CSEG 
Verwendung siehe CSEG 

COPY 

fügt Anweisungen ein, die 
außerhalb des M-Laders 
stehen 

Format: COPY,BS,[dezi¬ 
male VDP Segment Num¬ 
mer, >01 

bzw.: COPY,[Filename 
(DATA-Zeilen in LIST- 
Format)] 

Die Anweisung kann 9- 
fach geschachtelt sein. 

Die momentane Ebene 
der Schachtelung wird in 

Zeile 26600 sowie bei 
Fehlermeldungen als 
FILE-Nummer gezeigt. 
Verwendung zum Einlesen 
aus externen Programm¬ 
teilen, z.B. Standard-De¬ 
finitionen über “EQU“ 
für etwa “STRASG“ u.ä. 
Die externen DATA-Zei¬ 
len können in einem File 
in LIST-Format gespei¬ 
chert sein. Dabei darf die 
Zeilenlänge ca. 65 Zei¬ 
chen nicht überschreiten 
und die letzte Zeile kein 
Komma enthalten, sollte 
also z.B. “30000 REM“ 
lauten. 

Die externen DATA-Zei¬ 
len können auch im 
VDP in Programm-For¬ 
mat als BASIC-Segment 
gespeichert sein. Letzteres 
erreichen Sie unter 
BASIC folgendermaßen 
(nur ohne Disc-File- 
Buffer): 


- Sie benutzen ein Stan¬ 
dardverfahren, um ein 
BASIC-Programm im 
Speicher zu erhalten, 
das in DATA-Zeilen die 
M-Lader-An wei su ngen 
enthält; 

- Sie geben folgende Be¬ 
fehle ein 

CALL PFEK 
(-31888,A,S) 

CALL PEEK 

(—31952,Q.\V,E,R) 

ENDE=256*Q+W-7 

ENDl=INT(ENDE/256) 

END2-ENDE-256* 

EN Dl 
CALL LOAD 
(—31888,END1,END2) 
CALL POKEV 
(ENDE+1 ,A,S,0,W,E,R) 
NEW 

VDP-Speicher 
BS.2: DATA Zeilen 


BS.l: DATA Zeilen 


BS.0: M-Lader mit 
COPY-Befehl 
— Damit ist ein BASIC- 
Programm gespeichert 
und der jetzt reduzierte 
Speicher kann ganz nor¬ 
mal das nächste Pro¬ 
gramm aufnehmen, z.B. 
den M-Lader durch 
“OLD CS1“ 

Jedes so gespeicherte Pro¬ 
gramm belegt ein BASIC- 
Segment (BS), durchnume¬ 
riert vom neuesten zum 
ältesten. Beachten Sie, 
daß bei Verwendung von 
Disketten -Lau fwerken, 
deren I/O-Buffer stets 
als erstes Segment existie¬ 
ren muß, d.h. als “BS.l“. 
CSEG 

beginnt ein COMMON 

Segment 

Format: CSEG 

Verwendung zur Reservie¬ 
rung eines Datenbereiches, 
der von allen Programmen 
im Minimeory benutzt 
werden kann. Für derarti¬ 
ge Zwischenspeicher 
braucht so der Platz nicht 
in jedem Programm wie¬ 
der reserviert zu werden. 
Der Bereich beginnt im¬ 
mer bei >7118, d.h. der 
niedrigsten möglichen 
Adresse. Die Größe des 
COMMON wird durch 
nachfolgende BSS Anwei¬ 
sungen festgelegt; (siehe 
auch TAM), ( 

Bitte lesen Sie weiter auf S. 16 < 


Folgende Bezeichnungen werden benutzt: 

0 eine Leertaste 

[ J muß durch die bezeichnete Größe ersetzt 
werden 

LAH Line by-Line Assembler Handbuch des 
Minimemory 

TAM TI Editor/Assembler Manual 


11 
























300 REM BEISPIEL FUER 
310 REM M/LADER : 

320 REM 

330 REM Routinen GOOD 
340 REM und BAD 

350 REM 

960 PEM------ 


970 PEM 

380 DATA GPLLNK EQU >6018 
390 DATA # siehe weiter unte 
n 

400 DATA * 

410 DATA DEF.GOOD,* Eingabet. 

an, >208,>34 

420 DATA JMP SETZE 

430 DATA DEF,BAD,* Bad-Ton,> 

208,>36 

440 DATA SETZE,>C808,@T0N 
450 DATA >420,8GPLLNK 
460 DATA TON,0,4 wird gesetz 
t 

470 DATA * 

480 DATA >45B,4 zum BASIC 
490 REM 

500 PEM ... 

20000 PEM M-Lader Md 

20005 PEM stat. 25,jan,1986 

back. 25,jan,1986 
20010 REM <C) G. Zellermann 

1986 Koeln 

20020 DATA END,4 fuer verges 
s1iche hacker 
20030 RESTORE 20030 
20040 OPTION BASE 1 
20050 DIM B(6),DIR_NAME*(13) 
20060 DIM S_NAME*(40),5_ADR( 
40),S_STATUS*(2,40),S_REF< 40 
) 

20070 DATA BYTE,DEF,SREF,LSE 
G,END,BSS,EVEN,TEXT,TEXT_B,C 
SEG,CEND,COPY,RETURN,"" 

20080 READ C* 

20090 IF C*= H " THEN 20130 
20100 DIP_MAX»DIR^MAX+1 
20110 DIRJMAME*<DIR_MAX)*C* 
20120 GOTO 20080 
20130 DEF I5_BY*(X)*SEGS(" 

",1,5-LEN(STR*(X)) HkSTR*(X 
)k M bytes" 

20140 DEF BL(C)*INT(C/256) 
20150 DEF BR(C)»C-2564BL(C) 
20160 CALL PEEK(28700,AL,AR, 
CL,CR) 

20170 FFAM*2S6#AL+AR 
20180 LFAM=256*CL+CR 
20190 PRINT : S" vorher i 
rei :"fI5_BY*(LFAM-FFAM)!“" 
20200 REM - aet old symb, - 


L 

I 

S 

T 

I 

N 

G 

S 


20210 FOR ADR-LFAM TO 32767 
STEP 8 

20220 CALL PEEK<ADR,B<1),B(2 
), B < 3),B < 4),B(5),B(6),CL,CR) 
20230 IF B(2)<128 THEN 20410 
20240 SJ"tAX»S_MAX + l 
20250 LFAM=LFAM+8 
20260 CALL LOAD(28702,BL<LFA 
M),BP(LFAM)) 

20270 B(2)*B(2)-128 

20280 S_STATUS*(2,S_MAX)*”ex 

t" 

20290 S„STATUS*<1,S_MAX)■"ja 
11 

20300 IF B(1)<128 THEN 20330 

20310 B 11)*B <1)-128 

20320 S^.STATUS* ( 1, S_MAX) *" NO 

II 

20330 S,ADR(S_MAX)«2564CL+CR 
20340 S_REF(S_MAX)-0 
20350 C**" ■ 

20360 FOR CH=1 TO 6 

20370 IF B(CH)=32 THEN 20400 

20380 C*»C*ILCHR*(B(CH) ) 

20390 NEXT CH 

20400 S_NAME*<S_MAX)»C* 

20410 NEXT ADR 
20420 ADR-FFAM 
20430 PSEG_ANF*ADR . 

20440 CSEG_ADR-28952 
20450 IF LSEG THEN 25950 
20460 GOSUB 26000 
21000 REM -- lese Codes -- 
21010 GOSUB 26400 
21020 REM -- type of Code - 
21030 IF ASC(C*)< >62 THEN 21 
060 

21040 GOSUB 22700 

21050 GOTO 21000 

21060 IF ASC(C*)*42 THEN 210 

00 

21070 FOR DIR*1 TO DIR.MAX 
21080 IF C*=DIR_NAME*(DIR)TH 
EN 21100 
21090 NEXT DIR 

21100 ON DIR GOSUB 22500,242 
00,24500,25300,25500,24000,2 
4100,24800,24800,25000,2 
5100,26700,26100,21200 
21110 GOTO 21000 
21200 REM -- no direct. -- 
21210 ASSEM»POS(C«," ",1) 
21220 IF ASSEM=0 THEN 21280 
21230 IF "EQU “*SEG*(C*,ASSE 
M+1,4)THEN 21500 
21240 ASSEM*-SEG*(C*,2,ASSEM 
-1) 

21250 C**"@ H fcSEG*(C*,ASSEM+1 
,251) 

21260 ASSEM*POSi" MP LT LE 


12 

















EQ HE GT NE NC OC NO L H 0 
P" ,ASSEM*,3) 

21270 ASSEM-15+ASSEM/3 
21290 REM old pert l no J... 
21290 KNOU-2+8GN(64-ASC(C«)> 
21300 ON KNOW GOTO 23220,232 
00,22700 

21300 REM -- EQU eymbol - 

21310 LABEL*-SEG*<C*,1,ASSEM 

-1} 

21320 C*-SEG*(C*,ASSEM+5,250 
i 

21530 GOSUB 22000 
21540 PSEG_ADR-ADR 
21330 ADR-C 
21360 C6-LABEL* 

21570 GOSUB 21280 
21580 ADR»PSEG_ADR 
21390 RETURN 

22000 REM - wandle numerisch 
22010 IF ASC<C*><62 THEN 221 
40 

22020 REM — hexa. zahl -- 
22030 C-0 

22040 FOR CH-2 TO LEN(Cd) 
22050 HEX-ASC(SEG*(C*,CH,1)) 
-48 

22060 IF HEX<10 THEN 22080 
22070 HEX-HEX-7 
22080 IF ( -1 <HEXHMHEX< 16) TH 
EN 22110 

22090 PRINT 1"## HEX-code er 
rar M l 

22100 GOSUB 29900 
22110 C-C*16+HEX 
22120 NEXT CH 
22130 GOTO 22170 
22140 C-VALtC*) 

22130 IF 0-0 THEN 22170 
22160 C-C +65536 
22170 CL-INT(C/256) 

22180 CR=C-256*CL 
22190 RETURN 

22500 REM -- BYTE Option -- 

22510 INC*1 

22520 GOSUB 26400 

22530 GOTO 22720 

22700 REM - speichere code - 

22710 INC-2 

22720 GOSUB 22000 

22730 GOSUB 29000 

22740 GOSUB 29300 

22730 CALL LOAD(ADR-1,CR) 

22760 IF INC—1 THEN 22780 

22770 CALL LOAD<ADR-2,CL) 

22780 RETURN 

23000 REM -- -find symbol -- 
23010 FOR S-l TO S„MAX 
23020 IF S„NAME*(S)-C* THEN 
23060 



23030 NEXT S 

23040 S_STATUS* (1, S > - ' 
23030 S_REF(S)-0 
23060 RETURN 

23200 REM —- SYMBOL - 

23210 C*-SEG*(C*,2,254) 

23220 REM - entry far def. - 
23230 GOSUB 23000 
23240 KNQW-KNOW-4#fS>S_MAX)- 
2*(S_STATUS*<1 ,S)-"NO''> 

23230 ON KNOW GOTO 23380,233 
40,23340,23340,23290,23260 
23260 REM -- new SYMBOL -- 
23270 CR- < ASSEMMS) 

23280 CL—ASSEM*CR 
23290 S_NAME*(S)-C* 

23300 S_STATUS*(2,S)=“ int” 
23310 S_STATUS*(1,S)-SEG*<"j 
aNO" ,2+KN0W-9,2) 

23320 S_MAX=S 
23330 GOTO 23410 
23340 REM -- ald SYMBOL 
23350 CL-BL <S_ADR(S) ) 

23360 CR-BR<S_ADRfS)) 

23370 IF KN0W=2 THEN 23420 E 


/■* 


23380 REM -- warnung -- 
23390 PRINT :"** dupl.'j 
23400 GOSUB 29200 
23410 S_ADR(S)=ADR 
23420 ON KNOW GOTO 23580,235 
90,23430,23390,23580,23630 
23430 REM - alte aufloee. - 
23440 S_STATUS*U , S)J a" 

23450 GOTO 23490 
23460 CALL PEEK(C,CL,CR) 

23470 IF (15<CL)*(CL<29>THEN 
23510 

23480 CALL LOAD(C,BL<ADR),BR 
(ADR)) 

23490 C=256*CL+CR 

23500 IF C THEN 23460 ELSE 2 

3580 

23510 REM relative adr./Jxx 
23320 CD-CR-255 
23530 CR*(ADR-C-2)V2 
23540 GOSUB 29100 
23550 CALL L0AD(C+1,CR) 

23560 C»C+2*CD 

23570 IF CD THEN 23460 

23580 RETURN 

23590 IF ASSEMC16 THEN 23630 

23600 CR-(256*CL+CR-ADR-2>/2 

23610 CL-ASSEM 

23620 GOSUB 29100 

23630 S„R£F < S)=S_REF < S ) + 1 

23640 INC-2 

23650 GOTO 22730 

24000 REM -- BLOCK frei -- 

24010 GOSUB 26400 J? 


13 




















24020 GOSUB 22000 
24030 INC-C 
24040 GOTO 29000 
24100 REM -- gerade adr. 

24110 ADR“2*INT <(ADR+l)/2) 

24120 RETURN 

24200 REM -- DEF eintr. 

24210 KNOUI-1 
24220 GOSUB 26400 
24230 GOSUB 23220 
24240 NAME*-C* 

24250 INC —0 

24260 GOSUB 29000 

24270 REM - entry frorn SREF 

poat procME i ng 
24280 C*«SEG*(NAME*(k' 1 ", 

1,6) 

24290 T-LFAM 
24300 BIAS-0 

24310 CALL LOADt28702,BL(LFA 
M),BR <LFAM)> 

24320 CALL LOAD t LFAM*6, BL (AD 
RI,BR(ADR)) 

24330 GOTO 24700 

24500 REM -- SREF kehnz. -- 

24510 GOSUB 26400 

24520 GOSUB 23000 

24530 IF S<«S_MAX THEN 24560 

24540 PRINT :*## no such"? 

24550 GOSUB 29200 

24560 S_STATUS*(2,S)= “ext" 

24570 RETURN 

24700 REM -- Jade ASCIT -- 
24710 FOR CH»1 TO LEN < C*) 
24720 C=BIAS+ASC(SEG*(C*,CH, 
1 ) ) 

24730 CALL LOAD<T-1+ CH,C) 

24740 NEXT CH 

24750 RETURN 

24800 REM -- TEXT eintr. 

24010 BIAS—96*<C*»"TEXT_B") 

24820 T-ADR 
24830 GOSUB 26400 
24840 INC«LEN(C*) 

24850 GOSUB 29000 
24860 GOTO 24700 
25000 REM -- CSEG direk. 

25010 PSEG_ADR*ADR 
25020 ADR=CSEG_ADR 
25030 RETURN 

25100 REM -- CEND direk. -- 

25110 CSEG_ADR=ADR 

25120 IF PSEG_ANF>=ADR THEN 

25180 

25130 IF PSEG_ANF<P$EG_ADR T 
HEN 25160 

25140 PSEG_ANF»ADR 

25150 GOTO 25190 

25160 PRINT "** CSEG into PS 

EG" | 



25170 GOSUB 29900 
25180 ADR*PSEG_ADR 
25190 RETURN 

25300 REM- LSEG - 

25310 F0RGET_IT=0 
25320 GOSUB 25950 
25500 REM -- ende PSEG 
25510 FFAM=ADR 
25520 INC—8 

25530 CALL LOAD<28700,BL<ADR 
),BR(ADR)) 

25540 PRINT ; :"COMMON-segme 

nt "!I5_BY*(CSEG_ADR-28952 
) 

25550 PRINT "PROGRAMM-aegmen 
t "|I5_BY*(FFAM-PSEG_ANF>:"" 
25560 IF LSEG THEN 25590 
25570 INPUT "Externe Symbole 
speic her n ":C* 

25580 FQRGET^I T — POS ( "Nn " , SE 
G*(C*k"Y",1,t),1) 

25590 REM - liat# Symbole - 
25600 PRINT : :" Name Adres 

ae bekannt 4Re-f .-- 


25610 FOR S=1 TO S„MAX 
25620 PRINT S_.NAME*(S)J 
25630 PRINT TAB<8);S_ADR(S); 
25640 PRINT TAB ( 1 6 ) 5 S ..STATUS 
* ( 1 , S ) ? " / " { S..ST ATUS* ( 2, S) i 
25650 PRINT TAB(24>;S_REF(S) 
25660 IF FORGET.IT +(S,.STATUS 
*<2,5)="int">THEN 25740 
25670 ADR»FFAM 
25680 GOSUB 29000 
25690 ADR*S_ADR(S) 

25700 NAME*=S_NAME*(S> 

25710 GOSUB 24270 

25720 CALL PEEK(LFAM,CL,CR) 

25730 CALL LOAD(LFAM,CL-128* 

("NO H *S_STATUS*<I,9)J,CR*128 
) 

25740 NEXT S 

25750 PRINT :" nachher +re 
1 I"|I5_BY«(LFAM-FFAM): :"" 

25760 IF LSEG THEN 25900 
25800 FREI-FREI+8 
25810 GOSUB 25800 

25900 REM-prep, -for 

next module 

25910 SJ1AX-0 
25920 GOTO 20200 
25950 REM -- switch LSEG 
25960 LSEG»1-LSEG 
25970 RETURN 

26000 REM -= intern. DATA — 
26010 CALL PEEK(-31952,Al,A2 
, E 1, E 2) 

26020 COPY»1 

26030 CALL PEEK(-31888,AL,AR 


14 















































> 

26040 C«236*AL+AR+1 
26050 REM n*w V-BASIC -f i 1 • 
26060 DATA_BYTE(COPY)"C-2 
26070 L_TAB_END(COPY)■256#A1 

+A2 

26080 1_TAB(COPY)«256#E1+E2+ 

1 

26090 RETURN 

26100 REM - clos* U-BASIC - 

26110 IF L_TAB„END(COPY)>0 T 

HEN 26130 

26120 CLOSE #COPY 

26130 C0PY*C0PY-1 

26140 IF COPY THEN 26610 

26150 STOP 

26200 REM next BASIC-Iin* 
26210 CALL PEEKU(L„TAB < COPY) 
f Al,A2,E1 ( E2> 

26220 DATA_BYTE(COPY)-236#E1 
+E2 

26230 OOSUB 26640 
26240 IF E1»147 THEN 26310 
26250 REM mor* BASIC-line* 
26260 I_TAB(COPY)"L_TAB(COPY 

) -4 

26270 IF L„TAB(COPY)>=L_TAB_ 
END(COPY)THEN 26200 
26280 C*“"RETURN" 

26290 DATA_LINE(COPY>-99999 
26300 GOTO 26600 
26310 REM new DATA-li ne 
26320 DATA_LINE(C0PY)=256#A1 
+A2 

26400 REM -- next DATA-item 

26410 IF I_TAB_END(COPY ><1 T 

HEN 27000 

26420 GOSUB 26620 

26430 IF E1=0 THEN 26250 

26440 IF El«179 THEN 26400 

26430 GOSUB 26620 

26460 C*»"” 

26470 FOR E2=l TO El 
26480 GOSUB 26620 
26490 C*-C*8«CHR*<E1> 

26300 NEXT E2 

26600 REM PRINT STR*(COPY)(T 
AB(7-LEN(STR*(DATA^LINE(COPY 
)) ))IDATAJ-INE(COPY)I * " 

IC* 

26610 RETURN 
26620 REM read 1 byte 
26630 DATA_BYTE(COPY)=DATA_B 
YTE(COPY)+1 

26640 CALL PEEKU(DATA_BYTE(C 

OPY>,El> 

26650 RETURN 

26700 REM -- next COPY-lex/el 
26710 GOSUB 26400 
26720 C0PY«C0PY+1 



26730 IF PÜSIC*,"BS.",1>»1 T 
HEN 26850 

26740 OPEN HCOPY:C*,DISPLAY 
,INPUT 

26750 INPUT #COPY!C* 

26760 GOSUB 26030 

26770 L_TAB(COPY)»0 

26780 L_TAB_END(C0PY)»0 

26790 DATA_BYTE(COPY)-C + 9 

26800 FOR C-2 TO COPY-1 

26810 IF DATA_BYTE(COPY)< >DA 

TA_BYTE(C)THEN 26830 

26820 DATA_BYTE(COPY)»DATA_B 

YTE(COPY)+518 

26830 NEXT C 

26840 RETURN 

26850 VSEG=VAL(SEG*(C*,4,LEN 
(C*)>> 

26860 CALL PEEK(-31888,AL,AR 

) 

26870 FOR I«1 TO VSEG 
26880 C"256*AL+AR+1 
26890 IF 016383 THEN 26100 
26900 CALL PEEKU<C,AL,AR,A1, 
A2,E1,E2) 

26910 IF AL -170 THEN 26940 

26920 C-C+l 

26930 GOTO 26890 

26940 NEXT I 

26930 GOTO 26040 

26960 REM mark non-DATA 

26970 L_TAB(COPY)«-1 

27000 REM Item fror» disk 

27010 IF EOF(COPY)THEN 26280 

27020 INPUT 4CQPY:C*, 

27030 GOSUB 26640 

27040 IF E1+L_TAB_END(COPY)- 

0 THEN 27120 

27030 L_TAB_END(COPY)=-E1 
27060 IF E1*0 THEN 27120 
27070 C=POS(C*," DATA %2) 
27080 IF (C=0) + (06) THEN 269 
60 

27090 l_TAB(COPY)=0 

27100 DATA^LINE(COPY)«UAL<SE 
G*(C*,1,C-1)) 

27110 C*«SEG*(C*,C+6,75) 
27120 IF L„TAB(COPY)THEN 270 
00 ELSE 26600 
29000 REM -- check room 
29010 IF LFAM-ADR>ABS(INC)TH 
EN 29040 

29020 PRINT :memory over 
+1ow"| 

29030 GOSUB 29900 

29040 IF INC >0 THEN 29070 

29050 LFAM**LFAM + INC 

29060 RETURN 

29070 ADR=ADR+INC 

29080 RETURN 


15 
































29100 REM -- ch»ck jump 
29110 1F ( - 1 29 < CRHK CR< 129) T 

HEN 29080 

29120 PRINT :"** JUMP r«*ch 

*1 

GOTO 29900 

REM warnung wg.SYMBOL 
PRINT " aymboJ "I 
GOTO 29900 

REM check byte-bound. 
IF CL<256 A (INC-1)THEN 


rror 
29130 
29200 
29210 
29220 
29300 
29310 


I» 


29080 

29320 PRINT :”** numerlc ove 

r i 1ow"} 

29900 REM 
29910 
kode 

ile "| STR*( COPY}}"/"} STR 

*<DATA_LINE(COPY)) 

29920 INPUT " " : T* 

29930 RETURN 
30000 REM - test 


err. data 
PRINT TAB(20)} 
ist : "iC*:” 


1 ine-« 

" ** * ! 

+ile/ie 


i t 


Fortsetzung von S. 11 


Da nach CALL IN IT ab 
hier auch die Assembler¬ 
programme geladen wer¬ 
den, muß der Abschnitt 

CSEG bis CEND vor 
dem eigentlichen Pro¬ 
gramm stehen. Zudem 
muß das erste geladene 

Programm bereits eine, 
später benötigte, maxima¬ 
le Größe für den 
COMMON reservieren. - 


und nicht wie hier an der 
Stelle, die tatsächlich als 
Pr ogrammstartad resse 
gemeint ist. 


(DATA) 

wird nicht benutzt!! 

Alle (Hexa-)Dezimalzah- 
len werden ja sowieso di¬ 
rekt als Worte gespeichert. 
Dies darf nicht mit der 
BASIC DATA Anweisung 
verwechselt werden, die 
ja schon benutzt wird, 
um alle M-Lader Anwei¬ 
sungen zu halten. 


END 

beendet den Ladevorgang 
Format: END (nicht un¬ 
bedingt nötig) 
Verwendung als Abschluß 
des Ladevorgangs. Da der 
M-Lader am Anfang in 
Zeile 20020 sicherheits¬ 
halber selbst eine DATA- 
Zeile mit “END“ enthält, 
ist diese Anweisung nicht 
nötig, kann aber bei der 
Fehlersuche hilfreich sein, 
um nur einen Teil des 

Assembler-Programms zu 

laden. 


DEF 

definiert Symbol als Pro¬ 
grammnamen, auch in 
REF/DEF Tabelle 
Format: DEF,[Symbol] 
Verwendung zur Zuwei¬ 
sung der momentanen 
Ladeadresse als Wert und 
Eintragung des Symbols 
in die REF/DEF Tabelle. 
Sie unterscheidet sich al¬ 
so von der im TAM be¬ 
schriebenen Direktive, 
weil jene am Anfang des 
Programms stehen muß 


EVEN 

geht zur nächsten 
;eraden Adresse vor 
_ ormat: EVEN 
Verwendung wie im TAM 
beschrieben, z.B. nach 
BSS, BYTE, TEXT-B 


Jx(y) 

bedingter Sprung zu 
einem Label 
Format: [Assembler 
JUMP Anweisung 20C 
Symbol] 

Verwendung für jeden der 
13 Sprungbefehle mög¬ 
lich, jedoch kann das Ziel 
nur als Symbol angege¬ 
ben werden. 


Solange ein solches exter¬ 
nes Symbol noch unbe¬ 
kannt ist, sind alle gelade¬ 
nen Assemblerprogram¬ 
me, auch die alten, blok- 

kiert. 


EQU 

setzt ein Symbol auf ei¬ 
nen Wert 
Format: [Symbol 
jjÜEQUöü Hexy- oder De¬ 
zimalzahl] 

Verwendung wie im LAH 
beschrieben, jedoch nur, 
um Zahlenwerte zuzuord¬ 
nen. Nur hier wird also 
dem Symbol nicht die 
momentane Ladeadresse 
zugeordnet. 


LSEG . • 

wirkt wie ein neuer Start 

des M-Laders 
Format: LSEG 
Verwendung um mehre¬ 
re Programme direkt 
nacheinander zu laden. 
Werden sie durch 
“LSEG“ getrennt, so ist 
sichergestellt, daß die ein¬ 
fachen Symbole für jedes 
Programm separat behan¬ 
delt werden. Für gemein¬ 
same Symbole wird 
“SREF“ benutzt. 

Diese Anweisung ist be¬ 
sonders für Disketten ge¬ 
dacht, indem ein File 
die Namen aller zu laden¬ 
den Programme enthält, 
wobei jene jeweils über 
“COPY“ aufgerufen 
und durch “LSEG“ von¬ 
einander getrennt wer¬ 
den. 


TEXT 

lädt Text als ASClI-Folge 

für Assembler-Programme 

Format: TEXTJText- 
String in BASIC DATA- 
Zeilen Format] 
Verwendung wie im LAH 
beschrieben, jedoch ohne 
auf eine gerade Adresse 
zu prüfen, Verwendung 
nicht für Programme, die 
als Routinen im BASIC 
verwendet werden, und 
zwar wegen des Screen- 
Offset. 


RETURN 

beendet die Wirkung von 
COPY 

Format: RETURN 
Verwendung kann ent¬ 
fallen am Ende des jewei¬ 
ligen Speicherbereichs; 
denn am Ende wird auto¬ 
matisch ein RETURN aus¬ 
geführt, das dann im 
Listing unter Zeilen-Num- 
mer “99999“ erscheint. 


TEXT_B 

lädt Text als ASCII- 
Folge für BASIC-Mode 
Format: TEXT_B, 
[Text-String in BASIC 
DATA-Zeilen Format] 
Verwendung wie im LAH 
beschrieben, jedoch ohne 
auf eine gerade Adresse 
zu prüfen. Verwendung 
nur für Programme, die 
als Routinen im BASIC 
verwendet werden, und 
zwar wegen des Screen- 
Offset. 

Dr. G\ Zellermann 


ANMERKUNG ZU 
M-LADER 


SREF . , 

bezeichnet ein Symbol als 
extern; Eintrag in REF/ 
DEF Tabelle 
Format: SREF,[Symbol] 
(Symbol muß schon be¬ 
nutzt sein) 

Verwendung bei Symbol, 
das in einem anderen 

Assembler-Programm bei 
einem separaten M-Lader 
Lauf definiert (d.h. auf¬ 
gelöst) oder benutzt wird, 
z.B. als Adresse einer ge¬ 
meinsamen Routine. 
Somit können mit dem 
M-Lader auch größere Pro 
gramm-Bibliotheken zu¬ 
sammengestellt werden. 
Siehe auch TAM. 


M-Lader ist ein Hilfspro- 
gramm, das hauptsächlich 
für den Anwender mit 
Mini-Mem und Kassetten¬ 
recorder geschrieben 
wurde. Die einzige Routi¬ 
ne, die auch an den Dis¬ 
kettenbetrieb angepaßt 
ist, ist die ‘COPY 4 Anwei¬ 
sung. Es ist jedoch nur 
möglich, das Programm 
mit einem Corcomp-Con- 
troller für Diskettenlauf¬ 
werk zu betreiben, da an¬ 
sonsten trotz ‘CALL 
FILES(l) 4 der Speicher 
zum Betrieb dieses Pro¬ 
grammes nicht ausreicht. 
Beim Abtippen ist eben¬ 
falls darauf zu achten, 
daß alle Underlines (‘_’), 
die teilweis bei Varia¬ 
blennamen verwendet 
wurden, richtig gesetzt 
werden. 

Die Redaktion 








16 


h 







































Sehr oft schon wurde ge¬ 
fragt, ob man die Tasta¬ 
tur mittels Call peek ab- 
fragen kann. Daß dies 
nicht geht, da die Tasta¬ 
tur von der CRU abge¬ 
fragt wird, dürften mitt¬ 
lerweile alle Tl-User wis¬ 
sen, die sich mit diesem 
Problem beschäftigt ha¬ 
ben. Beim Suchen von 
nützlichen Adressen stieß 
ich nun auf die Adressen 
-31798, -31799 und 
-31800. Diese Adressen 
lösen das Problem nicht 


vollständig, doch helfen 
sie, die Tastaturabfrage 
zu verfeinern. Ein Call 
PEEK (—31800.X) weist 
jeder gedrückten Taste 
in X einen Wert zu (die¬ 
ser Wert stimmt nicht mit 
den ASClI-Codes überein). 
Dabei ist es egal, ob Sie 
eine Taste in Verbindung 
mit FCTN, CTRL oder 
SHIFT gedrückt haben. 
Die Taste behäl t ihren 
Wert immer bei. 

Call Peek (-31800,X) 

fragt die gesamte Tastatur 


ab. Wenn Sie nun vor dem 
Call Peek ein Call Key 
durchführen, können Sie 
ständig jede Taste ab- 
fragen. 

Call Peek (-31798,X) 
fragt nur die rechte Seite 
der Tastatur ab. Wird eine 
Taste der linken Seite ge¬ 
drückt, wird dieser Taste 
der Wert 255 zugewiesen. 
Call Peek (-31799.X) 

fragt die linke Tastatur¬ 
seite ab. Hier wird der 
rechten Seite der Wert 
255 zugewiesen. Die Wer¬ 
te, die den Tasten bei 
der Adresse —31798 und 
—31799 zugewiesen wer¬ 
den, stimmen mit den 
Werten der Adresse 
—31800 überein, außer, 
daß bei -31798 auch der 
Enter-, der Space- und 
der =-Taste der Wert 255 
zugewiesen wird. Auch 
bei —31799 wird der 
Space-Taste der Wert 255 
zugewiesen. 

Diese Werte sind bei allen 
Tastaturmodi gleich, also 
bei Call Key (0—5 ,K,S). 
Eine Call Key-Abfrage, die 
die Adresse - 31800 
nützt, müßte etwa folgen¬ 
dermaßen aussehen: 

100 Call Key (O.K,S):: 

If S2Q then 100 eise Call 
Peek (-31800,X) 

110 weiteres Programm 

Dirk Jungkam 

Bemerkung zu 
„T astatu rabf rage m it 
PEEK": 

Auf den Adressen> 83C9 
und> 83CA (-31800, 
-31799 und -31798) 

sind Kennwerte der Tasta¬ 
turabfrage im ROM, Aus 
diesem Grund stimmen 
die Werte mit ‘CALL 
PEEK 1 nicht mit den 
ASCll-Werten der betref¬ 
fenden l aste überein. 


Hier nun die Codes, die 
einer Taste bei einem 
Call Peek (-31800,X). 

Call Peek (—31798,X) 
oder Call Peek (—31799,X) 
zugewiesen werden. 



>83C8 

-31800 

>83C9 

—31799 

>83CA 

-31798 

1= 

43 

43 

255 

2= 

11 

11 

255 

3= 

19 

19 

255 

4= 

27 

27 

255 

5= 

35 

35 

255 

6= 

36 

255 

36 

7= 

28 

255 

28 

8= 

20 

255 

20 

9= 

12 

255 

12 

0= 

44 

255 

44 

= — 

7 

255 

255 

A= 

42 

42 

255 

B= 

32 

32 

255 

c= 

16 

16 

255 

D= 

18 

18 

255 

E= 

17 

17 

255 

F- 

26 

26 

255 

G~ 

34 

34 

255 

H= 

38 

255 

38 

1 = 

21 

255 

21 

J= 

30 

255 

30 

K= 

22 

255 

22 

L= 

14 

255 

14 

M= 

31 

255 

31 

N= 

39 

255 

39 

0= 

13 

255 

13 

P= 

46 

255 

45 

Q= 

41 

41 

255 

R= 

25 

25 

255 

S= 

10 

10 

255 

T= 

33 

33 

255 

U= 

29 

255 

29 

V= 

24 

24 

255 


9 

9 ■ 

255 

x= 

8 

8 

255 

Y= 

37 

255 

37 

z= 

40 

40 

255 

/ = 

47 

255 

255 

•' — 

§ 

46 

255 

46 

f 

23 

255 

23 

* 

. 15 

255 

15 

ENTER=5 

255 

255 

Space = 6 
Keine ! 

255 

255 

Taste 255 
gedrückt 

255 

255 


Neue Software für den TI 99/4A: 


ALPHA DATECK VI 0 von U, Brüsseler, DatenverarbeitungsProgramm 
von privater Adressendatei bis professioneller Daten Verwaltung, Gravie¬ 
rende Merkmale: 40. Zeichen pro Zeile — superschnelles Sortieren — 
ltem r s (Datenfelder) zu jeder Zeit änderbar - 2 Suchroutinen - super^ 
schnelle Bedienung - inkl. Datei Etikettieren. Benötigte Konfiguration: 
Extended Basic, 32 K RAM, mind, 1 Diskettenlaufwerk. 

Nicht zu vergessen: GPL-Assembler, GRAM-Kane. Basic II plus, 
ATRON IC-Produkte, Eprommer-Gerät, S, Koppeimann, Modul-, 
Eprommer-, 32 K-Platinen, u.a. 


MONITOR VI. 1 von J. Sundermann, Programm zum Generieren, Kor¬ 
rigieren und Testen von Assembler Programmen. Völlig überarbeitete 
Fassung aufgrund Testbericht in TI REVUE 5/86, mit z.B. Setzen bzw. 
Löschen von Speicherbereichen — Ablegen eigener und fremder Pro¬ 
gramme ab A0Q0 — Auslesen und Änderung der CRUBits — Protok-ol- 
lierungsmöglichkeit der gesamten Monitoraktivitäten auf Drucker oder 
Diskette, Benötigte Konfiguration: E/A-Modul, 32 K RAM, mind. 1 
Diskettenlaufwerk. 

Public-Domain-Software für GRAM-Karte, Extended Tl-Maus, Adven- 
ture Editor, TMS 9900 ASSEMBLER von Spielmodule zum Au$- 
schlachten (Schleuderpreis!:) TI-Artist 


Informationen und Preise bei: ELEKTRONIK-SERVICE Lmning 37 4044 Kaarst 2 Tel, (02101) 60 32 08 
































LISTING 



Als Sie aufwachen, befin¬ 
den Sie sieh in einem Ih¬ 
nen unbekannten Raum. 
Langsam erinnern Sie sich, 
Sie hatten vor, die Toch¬ 
ter des Königs aus den 
Händen der gestaltlosen 
Handlanger des Zauberers 
zu befreien. Statt dessen 
befinden Sie sich nun 
hier, im Schloß des Zau¬ 
berers, im Wizard Castle. 
Doch so leicht geben Sie 
nicht auf, für jedes Rätsel 
gibt es eine Lösung, nur, 
sie zu finden, ist jetzt 
das Problem. Sie ahnen, 
welche gefährlichen Situa¬ 
tionen und Kämpfe auf 
Sie zukommen können. 
Man erzählt sich von blut¬ 
rünstigen Bestien und 
Drachen, von räuberischen 
Wächtern und harmlos 
ausschauenden Kobolden, 
die hier im Schloß ihr Un¬ 
wesen treiben sollen. 
Nichtsdestoweniger ma¬ 
chen Sie sich auf den Weg, 
in der Hoffnung, Wizard 
Castle sein Geheimnis zu 
entreißen und lebend das 
Rätsel des Ausganges zu 
lüften. 

Doch Vorsicht, geschwächt 
durch den vorangehenden 
Kampf sind Sie leider nur 
in der Lage, lediglich zwei 
Gegenstände mit sich zu 
tragen. Aber Sie als 
überlegener und entschlos¬ 
sener Kämpfer wissen um 
die richtige Auswahl der 
nötigen Objekte. Weiter¬ 
hin sollten Sie sich immer 
im Klaren darüber sein, 
wo Sie sich zur Zeit befin¬ 
den. Merken Sie sich Ge¬ 
genstände, die Sie liegen¬ 
assen und prägen Sie sich 
vor allem die Lage der 
Auf- und Abstiege ein. 
Oder noch besser. Sie 
zeichnen sich einen Plan, 
ansonsten könnten Sie 
sich hoffnungslos verlau¬ 
fen. 

Und wer möchte dieses 
Risiko mit der Erinnerung 
an die Tochter des Königs 
schon ein gehen? 

Möge die Macht mit Ihnen 
sein! (Disk-Besitzer müs¬ 
sen vor dem Eintippen 



oder Laden CALL FILES 
(1) NEW eingeben! 


ERLÄUTERUNGEN 
ZUM SPIELVERLAUF 


Zu Beginn des Spieles be¬ 
findet der Spieler sich im 
ersten Stock vorne rechts. 
In dieser Etage droht ihm 
meist noch kein Ärger. 

Die nötigen und tragba¬ 
ren Gegenstände sind in 
den unteren drei, die ge¬ 
fährlichen Situationen in 
den oberen drei Etagen 
plaziert. Und so kommt 
man der Lösung auf die 
Spur: Finden Sie zunächst 
einmal den Schlüssel, der 


selbstverständlich schwer 
bewacht wird. Nehmen 
Sie ihn und legen diesen 
in einem Raum ab, da 
viele Räuber und geldgie¬ 
rige Wächter umherstrol¬ 
chen und nur darauf 
warten, Sie auszurauben. 
Sodann suchen Sie den 
Raum mit der Truhe, öff¬ 
nen sie mit dem vorher ge¬ 
holten Schlüssel — Ein¬ 
gabe: “öffne Truhe“ — 
nachdem Sie die Wachen 
bezwungen haben. Sie 
sehen nun ein Buch, las¬ 
sen Sie es am Besten dort 
und merken sich, welcher 
Raum dies ist. Jetzt soll¬ 
ten Sie den geheimnis¬ 
vollen Schriftraum aufsu¬ 
chen. Überwältigen Sie 
die Wache, holen Sie das 
Buch und erfahren somit 


den unachtsam hingekrit¬ 
zelten Zauberspruch 
- Eingabe: “übersetze“ —. 
Diesen sechssilbigen Zau¬ 
berspruch sollten Sie sich 
gut merken, nur mit ihm 
im Gedächtnis sind Sie be¬ 
fähigt, das magische Aus¬ 
gangstor zu öffnen. Ha¬ 
ben Sie schließlich den 
Ausgangsraum gefunden, 
sprechen Sie das magische 
Wort — Eingabe: “Zauber¬ 
spruch“ - und Sie haben 
die Qualen der letzten 
Nacht hinter sich. Auf zu 
neuen Taten! 

Ergänzend sollen nachste¬ 
hend noch einige Spiel¬ 
phasen erläutert werden. 

An den Einzelwachen kom¬ 


men Sie mittels des Beiles 
vorbei - Eingabe: “ver¬ 
jage Wache“. Bei Doppel¬ 
wachen ist dies zwecklos. 
Die Brüder sind aber 
enorm geldgierig, deshalb 
muß man ihnen das Gold 
überlassen — Eingabe: “gib 
Gold“. In einigen Räumen 
erscheinen Kobolde. Vor¬ 
sicht, nur der rechts ste¬ 
hende ist harmlos. Er läßt 
sich mitnehmen und dem 
Drachen oder dem Bär als 
Futter vorwerfen — Ein¬ 
gabe: “gib Kobold“. Dem 
feuerspeienden Drachen 
kann man aber ebensogut 
mit dem Schild begegnen 
- Eingabe: “benutze 
Schild“. Dementspre¬ 
chend gibt sich der Bär 
auch mit dem Fleisch zu¬ 
frieden — Eingabe: “gib 


Fleisch“. Der linksstehen¬ 
de Kobold nun bewacht 
meist unsichtbare Türen. 
Mittels der Tarnkappe 
kann man ungehindert an 
ihm vorbeikommen — 
Eingabe: “benutze Tarn¬ 
kappe“. Allerdings sollte 
man dann wirklich west¬ 
wärts gehen, da ansonsten 
die Wirkung der Tarnkap¬ 
pe erlischt. Manchmal 
wird dem Spieler der Weg 
auch durch eine Mauer 
versperrt. Diese bewältigt 
man einfachhalber mit 
einer Bombe — Eingabe: 
“zünde Bombe“. Vorteil¬ 
haft ist es auch, sich stän¬ 
dig eine Fackel griffbereit 
zu halten, da es im 
Schloß ständig und oft¬ 
mals dunkel wird. In die¬ 
ser Dunkelheit lauern 
Räuber und Wächter, die 
Sre ausrauben wollen. 

Da diese aber das Licht 
furchten, sollten Sie für 
Helligkeit sorgen — Ein¬ 
gabe: “benutze Fackel“. 
Sie können den Räubern 
aber auch Tribut zahlen, 
indem Sie ihnen ihr Gold 
überlassen — Eingabe: 

“gib Gold“. Haben Sie 
diesen unliebsamen Weg¬ 
genossen nichts entgegen¬ 
zusetzen, werden Sie aus¬ 
geraubt und ins Schloß 
verschleppt. Mit diesen 
Hinweisen sollten Sie ei¬ 
gentlich in der Lage sein, 
das Abenteuer zumindest 
einmal zu durchqueren. 
Viel Glück und Verstand! 


BEMERKUNGEN ZUR 
REALISATION 


Zu Beginn der Programm-! 
entwicklung stellte ich — 
nicht überrascht — fest, 
daß der Speicherplatz des 
TI für diese umfangreiche 
Aufgabe einfach zu klein 
ist. Die von mir benutzte 
Lösung hatte nun eine Pro¬ 
grammtrennung zur Folge. 
Im ersten Programm — 
Wizard Castle 1 - werden 
die Characters der Gegen¬ 
stände definiert. Weiter¬ 
hin ist hier die Spielanlei¬ 
tung enthalten. Dieses Pro- 



18 



















gratnm lädt selbständig - 
mittels RUN “CS1“ - 
das Programm Wizard 
Castle 2. Solange nun die¬ 
ses Programm läuft, blei¬ 
ben die Zeichen erhalten. 
Nach Abbruch und noch¬ 
maligem Start kann man 
allerdings nicht mehr viel 
erkennen. In dieser Ma¬ 
nier bleibt im Hauptpro¬ 
gramm genügend Platz für 
sämtliche Routinen usw. 
Als Spielfeld für ein Aben¬ 
teuerspiel empfahl sich 
mir ein dreidimensionales 
Array, in dem jedes Feld 
für einen Raum steht und 
in dem der Spieler sich 
von Raum zu Raum bewe¬ 
gen kann. Geht der Spie¬ 
ler zum Beispiel nach 
oben, so wird die Z-Koor- 
dinate um 1 erhöht, be¬ 
wegt er sich nach unten, 
wird sie um 1 erniedrigt. 
Dieses System ist vor al¬ 
lem für die Simulation 
von Gebäuden günstig, ln 
dieser Weise wird im vor¬ 
liegenden Programm ein 
vierstöckiges Gebäude mit 
jeweils 4x4 Räumen in 
jeder Etage, insgesamt 
also 64 Räumen, simuliert. 
Der Inahtl der einzelnen 
Felder wird durch den 
Array-Inhalt gespeichert. 
Jedes Feld enthält eine 
Zahl, die, wenn säe bitwei¬ 
se betrachtet wird, Infor¬ 
mationen über viele 
Objekte speichern kann. 
Dies geschieht in BASIC 
mit den logischen Ope¬ 
ratoren AND und OR. 

Das Ergebnis der Ver¬ 
knüpfung A AND B ist 
der Wert der Bits, die in 
beiden Zahlen A und B 
enthalten sind, zum Bei¬ 
spiel 12 AND 8 = 8. 
Bitmuster der Ausgangs¬ 
zahlen 12: 1100 

8 : 1000 . 

In beiden Zahlen enthal¬ 
tenes Bitmuster: 1000=8. 
Eine OR Verknüpfung hat 
als Ergebnis den Wert des 
Bits, die in einer oder in 
beiden Zahlen enthalten 
sind, zum Beispiel 
2 OR 8=10. Bitmuster 

der Ausgangszahlen 
2 : 0010 
8 : 1000 , 

In beiden Zahlen enthal¬ 
tenes Bitmuster: 1010=10. 
Das vorliegende Pro¬ 
gramm sollte nun folgen- 


LISTING 


den Anforderungen, genü¬ 
gen: Zum einen muß der 
Array-Inhalt die mögli¬ 
chen Türen, Auf- bzw. 
Abgänge in dem betref¬ 
fenden Raum speichern, 
zum andern muß er eine 
der 20 verschiedenen Ob¬ 
jekte und Gefahren an- 
zeigen. Diese 28 Situatio¬ 
nen stehen nun den 16 
Bits einer Zahl gegenüber, 
so daß offensichtlich 
wird, daß nicht ein Bit 
eine Situation anzeigt. 

Ich habe mich hier für die 
folgende Lösung entschie¬ 
den: Die möglichen Aus¬ 
gänge eines Raumes erhal¬ 
ten jeweils ein eigenes 
Bit, welches ihre Exi¬ 
stenz anzeigt, wohinge¬ 
gen eine der 20 Situatio¬ 
nen durch die Kombina¬ 
tion der Bits 8 bis 12 ge¬ 
speichert ist. Die Tabelle 
zeigt, welche Bits welche- 
Objekte und Türen ini¬ 
tialisieren. 


NUR WENIGE ZEILEN 
FÜR VIELE OBJEKTE 


Für — im Rahmen der 
Möglichkeiten des TI — 
beliebig viele Objekte 
werden in dieser Weise zur 
Erkennung nur wenige 
Programmzeilen benötigt. 
Mittels einer Schleife 0 
bis 6 wird bei der Erken¬ 
nung, welche 1 ür im 
Raum existiert, die ent¬ 
sprechende Zweierpotenz 
mit dem Array-Inhalt ver¬ 
glichen und bei Überein¬ 
stimmung in ein Unter¬ 
programm verzweigt. 

Wie oben erwähnt, wählte 
ich für das Erkennen der 
Gegenstände eine Kombi¬ 
nation der Bits 8 bis 12. 
Das Bit 8 entspricht dem 
dezimalen Wert 128. Eine 
weitere Addition von 128 
bewirkt das Anschalten 
des 9. bzw. Löschen des 
8. Bits. In dieser Weise ent¬ 
steht bei jeder Addition 
ein kennzeichnendes Bit¬ 
muster. 

Die Objekt- u. Gegenstand¬ 
routine überprüft nun an¬ 
hand einer Schleife von 
20 bis 1 abwärts, ob das 
Bitmuster des entsprechen¬ 
den Produktes mit 128 


Bitte lesen Sie 
weiter auf Seite 20 



10 ! 

************* ********* 

11 • 

* 

WIZARD CASTLE 

* 

12 ! 

* 

(Teil 1) 

* 

13 ! 

* 


* 

14 * 

* 

Copyright by 

* 

15 ! 

* 


* 

16 ! 

* 

Peter Krawinkel 

* 

17 ! 

* 


* 

19 ! 

* 

Benoetigte Geraete 

* 

20 ! 

* 

TI99/4A Konsole 

* 

21 ! 

* 

Ext. Basic 

* 

t 

22 ! 

* 

Cassettenrec• 

* 

23 ! 

* 


* 

26 ! 

* 

Speicherbelegung 

* 

27 ! 

* 

3583 Bytes 

* 

28 • 

* 


* 

29 ! 

********************** 

100 

CALL CLEAR s: CALL SCREE 

N (5) 

* ■ 

* » 

FÜR 1=0 TO 14 :: CALL 


COLORCI , 16,1) : : NEXT I s: C 
ALL COLDR(l,15,5) 

110 ! 

120 < CHAR-DEFINITIÜNEN 

130 ! 

140 CALL CHAR(34,"0F1F3F7F7F 
7F7F3FF0F8FCFEFEFEFEFC") 

150 CALL CHAR(36,"060F0F0703 
"&RPT* ("01" , 11) V60F0F0E0C0" 
&RPT* ("B0",11)) 

160 CALL CHAR(40,RPT*("00FBF 
BFB00DFDFDF”,2)&RPT*("00F6F6 
F600BEBEBE*’ ,2) > 

170 CALL CHAR(44,RPT$("FFB40 
404FF202020" ,2) &RPT*("FE0808 
0QFE404040”,2)) 

180 CALL CHAR(48,"0000000001 
0101070F0F1F1F0F0F0701003840 
B0808080E0F0F0F8F8F0F0E08") 

190 CALL CHAR(52,"3F40FFFFFF 
FFC3EDEDE3EDEDC3FFFFFFF030-& 

RPT* <"D0“,11)& M E0C0C") 

200 CALL CHAR(56,"0708080701 
01031F3F7FFF88BAAA88FFE01010 
E08080C0F8FCFEFFB3B5B593FF") 

210 CALL CHAR(60,"11191D1F1F 
1F1D1911 "&RPT* ( "01 11 ,7) «("8080 
B0E0E0E0"&RPT*("80",10)) 

220 CALL CHAR(64,"3C4299A1A1 
99423C") 

230 CALL CHAR(65,"387CEEC6FE 
FEC6C6FCFEC6FCFCC6FEFC7CFEC0 
C0C0C0FE7CFCFEC6C6C6C6FEFC") 

240 CALL CHAR(69,"FEFEC0FBF8 
C0FEFEFEFEC0F8F8C0C0C07CFEC0 
CECEC6FE7CC6C6C6FEFEC6C6C6") 

250 CALL CHAR (73, RPT* CIB", 8 
)&"FEFE06060606FE7CC6CEDCF8F 
BDCCEC6C0C0C0C0C0C0FEFE") JF 


19 











































LISTING 


260 CALL CHAR (77,"C6EEFEFED6 



C6C6C6FE7CFCFEC6FEFCC0C0C0") 

270 CALL CHAR(81,"3C7E666666 



FC7E06FE7CFEFE181818181918" ) 

280 CALL CHAR(85,“C6C6C6C6C6 

810C6C6C6 

*■ > 

290 CALL CHAR (89,"6666663C18 
1818187E7E060C18307E7E"> 

300 PRINT TAB(7);“WIZARD CAS 
TLE Q": i iTAB CSV;"EIN ADVEN 
TURE GAME": :TAB<12);"VDN": 

:TAB(7 >;“PETER KRAWINKEL": : 

p * m ■ ■ 

310 PRINT "SIE HABEN SOEBEN 
DEN "s :"ZEICHENGENERATOR GE 

STARTET": : s"TASTE I-FUER 

SPIEL LADEN": «"TASTE I FUER 
INFORMATIONEN" 

320 CALL KEY(0,K,5>:i IF S-0 
THEN 320 ELSE IF K=76 THEN 
330 ELSE IF K=73 THEN GOSUB 

500 ELSE 320 

330 CALL CHAR(92,"0E1F377F1F 

4E3E06070F0F4F3F0F1F3F000080 

B0000C12121420A0A0A0A0A0C") 

340 CALL CHAR (96,"030F1C3367 

6CCBDCDFCB6C67331C0F03C0F038 
_— /r i.r rTOFCtr " ) 




_ _ ”) 

350 CALL CHAR(100,RPTT("0",1 

5)&"102040A19241008000038444 

4245S80000000 0000000 ”I 

360 CALL CHAR(104,RPT$("0",1 

3) &"8182F7F0F030303070E"?<RPT 

■f ( "0" ,16) &"F8FCFEFEQF878307 " 

y 

370 CALL CHAR(108,"000103040 

6040302040604030606261CE0F0C 
848C040808040C04080C0C0C87") 

380 CALL CHAR(112,"80603C1F0 
F1F7C3B0B0D0E1F1930200040E0E 

0F8FF7EB8D8BCDE59B8FCFC8E06" 

> 

390 CALL CHAR(116,RPT$("01", 
16)&RPT4("80" , 16) ) 

400 CALL CHAR (120,"010303060 
202020202010003FC80FC02F0F81 
BAC48480848A810A0F00C4A4AEA" 

) 

410 CALL CHAR(124,"020202020 
3“StRPTi ( "02" ,9) V060F4A4A4A0 

AFC080848A8A8A8A8A8A8ACBE") 

420 CALL CHAR (128,RPT$("01"» 
8) &"FF“8eRPT 4 ( "0" , 14) 8t"804020 

1008040201010204081020408") 

430 CALL CHAR(132,"FF02040B1 



II 


0204080FF4020100804020181828 

48890A0C0808141211109050301" 

y 

440 CALL CHAR(136,"010305091 

1214181FF010101010 10i FF"StRPT 

*7"80",7)&" FFFF ” &RPTS ( " 01" , 7 

450 CALL CHAR(140,"FF“S t RPT^( 
•i0" ^ i2) &"FFFF030509112141B1F 
F41211109050301007E242466242 

466”) 

460 CALL CLEAR :: RUN 

470 ’ 

480 
490 . 

500 CALL CLEAR :: PRINT "WIZ 
ARD CASTLE": : :"IST EIN GEM 

AEUER VOLLER GE' V ": : "FAHREN 
UND WILDER ABENTEUER": : : 

510 PRINT “MAN VERSCHLEPPTE 
SIE HIERHIN": :"ALS SIE DIE 
TOCHTER DES KGE' 1 '": :"NIGS BE 

FREIEN WOLLTEN": : : 

520 PRINT "NUN LIEGT ES GANZ 
AN IHNEN": :"OB SIE WIZARD 
CASTLE JEMALS“: :"LEBEND WIE 
DER VERLASSEN i!" 

530 CALL KEY(0,K,S> s: IF S-0 
THEN 530 ELSE CALL CLEAR 


• SPIELERLAEUTERUNG 


I 


IHRER UNTERSTU 
"FOLGENDES GES 
N' u O‘^S' v W GEHEN 
“VIER HIMMELSR 


540 PRINT "ZU 
ETZUNG SEI“: 

AGT'*s : : "MIT 

SIE IN DIE": 

ICHTUNGEN": : 

550 F’RINT "MIT H ODER R KLET 
TERN SIE": :"EINE LEITER HOC 
H ODER RUNTER“: : :"DIE VON 

IHNEN VERLANGTEN AN'''": : 

560 PRINT "WEISUNGEN GEBEN S 
IE IN DER": FORM..VERB NOM 

EN..EIN_ZUM“: :"BEISPIEL. 

..VERBRENNE BUCH": : : 

570 CALL KEY C0,K,S)s: IF S-0 
THEN 570 ELSE CALL CLEAR 
580 PRINT "SEIEN SIE AUF DER 
HUT ■■ 1 "• : : :"WIZARD CAST 

LE BIRGT VIELE": :"RAETSEL I 
N SICH ii!•»•!M!": : = : : 


590 CALL KEY(0,K,S) 
THEN 590 ELSE CALL 

RETURN 


: IF S 
CLEAR 


0 


dem Bitmuster des Array- 
Inhaltes entspricht. Bei 
Übereinkunft wird eben* 
falls in die entsprechen* 
den Unterprogramme ver¬ 
zweigt. 


Erkennungsroutine 

“nehmen“: : 

Das Array C$ enthält eine 
Tabelle aller möglichen 
Gegenstände und Objekte 
Nach dem Erkennen des 










































































LISTING 


* 


Schlüsselwortes “nimm“ 
in Zeile 430 wird in den 
Zeilen 1650 — 1750 der 
Teilstring nach “nimm“ 
auf die Strings in der 
Tabelle C$ überprüft. Be¬ 
steht Übereinstimmung, 
wird nun die Existenz 
des Gegenstandes im 
Raum verifiziert. Trägt 
der Spieler bereits zwei 
Objekte, kann er kein wei¬ 
teres aufnehmen, trägt 
er nur eins, kann es unter 
Umständen zu unmögli¬ 
chen Kombinationen kom¬ 
men. Diese sind zum Bei¬ 
spiel Buch-Fackel oder 
Bombe-Fackel. Dies ver¬ 
anlaßt die Verzweigung 
zu einer kurzen Meldung. 


LANGER SPIELVER¬ 
LAUF GESICHERT 


Andernfalls nimmt der 
Spieler den Gegenstand 
und trägt ihn solange, bis 
er ihn braucht, verliert 
oder geraubt wird, 

-Zeilen 1650- 1750- 

Erkennungsroutine 

“verlieren“: 

Ähnlich wie in der Rou¬ 
tine “nehmen“ wird in 
der Routine “verlieren“ 
der Befehlsstring auf ein 
in der Tabelle enthaltenes 
Wort überprüft. Ist dies 
der Fall, wird der Gegen¬ 
stand im Raum abgelegt, 
sofern der Raum vorher 
leer war. Das Ablegen er¬ 
folgt mittels Sprung in 
die entsprechende Zeile 
der Objektdarstellung. 

- Zeilen 1150 - 1230 - 
Reaktionen auf 
Spielerkommandos: 

Die möglichen Antworten 
bzw. Befehle, die der 
Spieler bei Erkennen ei¬ 
ner Gefahr geben kann, 
sind in der Tabelle C$ 
abgelegt. Hier sind neun 
Antwortstrings festgelegt. 
Diese Methode der Spei¬ 
cherung bietet den Vor¬ 
teil, daß der abtippende 
Spieler den Verlauf des 
Spieles weniger leicht 
durchschaut. Der jedesmal 
neu gebildete Zauber¬ 
spruch setzt darüber hin¬ 
aus voraus, daß immer je¬ 
des Stockwerk durchsucht 
werden muß und somit 
ein langer Spielverlauf be¬ 
schert bleibt. 


TABELLE DER MÖGLICHEN INFORMATIONEN 

Bitwert Bit 

12 

11 

11 

D 

J 

3 

8 

7 

6 

5 

4 

3 

2 | 

i 

Information 

1 












| 

Grundmauern 

2 











| 


Tür — Osten 

4 










| 



Tür — Westen 

8 









1 




Tür — Norden 

16 








1 





Tür — Süden 

32 







1 






Aufstieg 

64 






1 







Abstieg 

128 





1 


& 






Schlüssel 

256 














Bombe 

384 



I 



1 








Fleisch 

512 

fl 














Schild 

640 


_ 

i 

_ 


| 








Beil 

768 



i 

1 









Fackel 

B 

896 







1 








Gold 

1024 


1 









4 


Tarnkappe 

— 

1152 


1 



1 








Kobold rechts 

1280 


1 


1 









Kobold links 

1408 


! 


1 

1 








Mauer 

1536 


! 

i 










Einzelwache 

1664 


1 

i 


1 







Doppelwache 

1792 


Li 

i 

1 









Drache 

1920 


i 

i 

1 

| 








Bär 

2048 

1 












Dunkelheit 

2176 

1 




1 








Truhe 

2304 

i 



1 










Ausgang 

2432 

1 



| 

1 








Buch 

2560 

1 


i 




I 



j” 



Schriftzeichen 

! 







21 






















































































































































10 

! fr*##*******#*..** #*#*-*** 

11 

! * 

WIZARD CASTLE 

fr 

12 

! * 

(Teil 2) 

fr 

13 

! * 


# 

14 

j ^ 

"opy r i g h t by 

fr 

15 

! * 


fr 

16 

! fr 

Peter Krawinkel 

fr 

17 

i * 


fr 

19 

! fr 

Benoetigte Geraete 

‘ fr 

20 

! * 

TI99/4A Kon sole 

fr 

21 

! fr 

Ext* Basic 

fr 

22 

! fr 

Cassettenrec* 

fr 

23 

■ # 


fr 

26 

! * 

Spei eher bei eg urig 

fr 

27 

! fr 

11746 Bytes 

fr 

28 

? * 


fr 

29 


100 

CAL 

L Ci EAR ; : CALL SCREE 

N <5) : : 

ON WARNING NEXT : : 

RA 

NDOMIZE 



1 10 

OPTION BASE 1 i: DIM 

R (4 

,4, 

4),Bi(7),Ci(11),Di(8), 

F* ( 

5> , 

Gi (9 

)* 5 MCi="OWNSRH" : 

: G 

G,AG=0 

:: A=I2S 


120 

DEF 

ZFIX>=INT(RND*X>+1 : 


: DEF ZG=INTCRND*5)+1i :: DE 
F ZH=INT(RND*2>+2 
130 RESTGRE 1880 :: FOR 1=1 
TO 7 :: FÜR J=1 TG 5 :: READ 
CO :: Bi(I) =Bi(I)&CHRi(CQ): 

: NEXT J :: NEXT I 

140 FÜR 1=1 TG 11 :: READ Ci 
U>:: NEXT I :: FOR 1=1 TO 8 
i j READ Di(I):: NEXT I :: F 
OR 1 = 1 TO 5 :: READ Fi ( I):: 
NEXT I 

150 ZAi="" ss FOR 1 = 1 TO 6 : 

: L=ZF (5) : ; ZAi=ZAiS<Fi (L> ; : 
NEXT I ss RESTORE 1930 
160 FOR 1=1 TO 9 ss READ M,N 
:: Gi(I)=Di?M>S < Ci(N) : : NEXT 
I 

170 ! 

180 ! RAEUME 

190 ! 

200 FOR K=1 TO 4 :s FOR J=1 
TO 4 ss FOR 1=1 TO 4 33 RCK, 
J,I)=31 

210 IF 1=1 THEN R(K,J,I)=R{K 
, J , I >AND 29 ELSE IF 1=4 THEN 
R (K, J , I )"=R <K, J , I) AND 27 
220 IF J = 1 THEN R (K, J , I) =R <K 
,J,I)AND 15 ELSE IF J=4 THEN 
R(K } J,I)=R < K, J , I )AND 23 
230 NEXT I :; NEXT J r: NEXT 
K 

240 N=ZH ss FOR 1 = 1 TO 4 : : 
READ Y,Z s: R<4,4,N+Y>=R<4,4 
,N+Y)+Z :: NEXT I :: R<4,3,N 
)=R(4,3,N>+A*ZG :: FOR 1=1 T 
O 3 

250 L = ZF(4> 3 3 M=ZH :: N=ZH 3 
: IF R(L,M,N)>A THEN 250 ELS 





E 260 

260 FOF: J = i TO 5 i 3 READ X,Y 
,Z s: R(L,*M+X ,N+Y)=R<L,M+X ,N 
+Y)+ Z NEXT J 3 3 R<L,M-1,N 

)=RCL,M-1,N)+A*ZG :: NEXT I 
270 FOR K=2 TO 4 ] 

2B0 M=ZF(4)s: N=ZF<4)s: IF R 
<K,M,N)>A OR R(K—1, M, N)>A TH 
EN 280 ELSE RCK,N,N)=R(K,M,N 

>+32 :: R(K—1,M,N)=R(K-i,M,N 
> +64 ] 

290 NEXT K :: FOR 1=2 TO 9 : ; 
: READ X :s FOR J=t TG X 1 

300 L = 2F{3>:3 M=ZF<4):: N=ZF 
(4>:3 IF R(L,M,N)>A THEN 300 
ELSE R<L f M,N)=R(L,M,N)+I*12 

a ; 

310 NEXT J ii NEXT I :: FOR 
1=10 TO 16 :: READ X,Y :: FO 
R J=l TO X ] 

320 L=INT(RND*3>+2 ii M=ZF(4 
>33 N=ZF(4)33 IF R(L,M,N>>A 
OR Y*li=8 OR Y*N=4 THEN 320 E 
LSE R(L,H,N>=R<L,M,N>+I*A 
330 IF Y=0 THEN 340 ELSE IF 
Y=1 AND N<4 THEN R<L,M,N+l>= 
R(L, M,N+1 )~2 33 R(L,M,N>=R(L 
,M,N>—4 1 

340 IF Y=2 AND M<4 THEN R(L,j 

M+ 1 ,N) =R (L ,M+1 ,N> —16 

350 NEXT J 3: NEXT I Z,Y, 

X=1 :: GOTO 470 

360 ! | 

370 ! BEWEGUNGSROUTINE 

380 ! ] 

390 CALL AC < Wi):: IF LENIWi) 

=1 THEN 400 ELSE IF SEGiIWi, 

1,9>=Di<6>THEN 1110 ELSE IF 
SEGiCWi,l,5)=Di(l)THEN 1610 
ELSE 1170 

400 P=PQS(MCi,Wi,l)s: IF P=0 
THEN 390 ELSE IF R(Z,Y,X)AN 
D 2 A P THEN ON P GOTO 410,410 
,420,420,430,430 ELSE 390 j 
410 X=X+(-l)‘P :: GOTO 470 
420 Y=Y— (— 1) A P 33 GOTO 470 
430 Z=Z+(-l> A P 

440 ! || 

450 ! TUERENROUTINE 

460 • fl 

470 IF INT(R(Z,Y,X)/A)=16 TH 
EN CALL COLOR(13,5,5,14,5,5) 
480 FOR L=0 TO 6 ss IF R(Z,Y 
,X > AND 2^L THEN 490 ELSE 500 
490 ON L+l GOSUB 630,670,700 
,720,760,770,800 j 

500 NEXT L 1 

510 PS=R<Z,Y,X)AND 72 :: IF 
PS=72 THEN CALL HCHAR(10,16, 
139) s: CALL HCHARU0, 14,142) 
520 ! fl 

530 ! OBJEKTROUTINE ] 

540 ! 9 


22 



















* 


550 IF R(Z,Y,XXA THEN 390 
560 FÜR L=20 TO 1 STEP -1 :: 

PS=R(Z,Y,X)AND A*L :: IF PS 
=L*A THEN 570 ELSE 590 
570 IF L>10 THEN 580 ELSE ON 
L GOTO 880,890,900,910,920, 
930,940,950,960,970 

580 ON L-10 GOTO 980,990,100 
0,1020,1030,1440,1040,1050,1 
060,1070 

590 NEXT L s: GOTO 390 

600 ! 

610 ! RAEUME PRINTEN 
620 ! 

630 CALL CLEAR :: CALL DELSP 
RITE(ALL)ss FOR 1=1 TO 6 i: 
CALL HCHAR(1,1,130):: CALL H 
CHAR(25-1,33-1,130) 

640 CALL HCHAR(I,33-1,131)s: 

CALL HCHAR(25-1,1,131)s: NE 
XT I :: CALL HCHAR(7,7,129,2 
0 ) 

650 CALL HCHAR(19,7,129,20): 

: CALL VCHAR(7,6,128,12):: C 
ALL VCHAR(8,26,128,11) 

660 CALL HCHAR(7,26,139):: R 
ETURN 

670 CALL VCHAR(10,28,128,10) 
:: CALL VCHAR(9,30,128,14) 

680 CALL HCHAR(9,29,131):: C 
ALL HCHAR(8,30,136):: CALL H 
CHAR(10,29,129):: CALL HCHAR 
(10,30,139) 

690 CALL HCHAR(20,28,135):: 
CALL HCHAR(21,29,129):: CALL 
HCHAR(21,30,139):: RETURN 
700 CALL VCHAR(8,2,128,15):s 
CALL VCHAR(11,4,128,10) : : C 
ALL HCHAR(8,3,130):: CALL HC 
HAR(9,4,130) 

710 CALL HCHAR(10,3,129):: C 
ALL HCHAR(10,4,139):: CALL H 
CHAR(21,3,129,2):: CALL HCHA 
R(22,3,32):: RETURN 
720 CALL VCHAR(10,13,128,9): 
: CALL VCHAR(11,17,128,8): : 
CALL HCHAR(10,14,129,3) 

730 CALL HCHAR(10,17,141):: 
CALL HCHARY19,14,32,4):: CAL 
L VCHAR(11,14,128,7):: CALL 
VCHAR(11,16,128,7) 

740 CALL HCHAR(10,14,133):: 
CALL HCHAR(18,14,131):: CALL 
HCHAR(18,17,135) 

750 CALL HCHAR(11,15,129): : 
CALL HCHAR(11,16,139) 

760 RETURN 

770 CALL HCHAR(20,14,129,3): 
: CALL HCHAR(21,14,129,4):: 
CALL HCHAR(20,17,139) 

700 CALL HCHAR(20,13,136):: 
CALL HCHAR(20,18,130):: FOR 
1=0 TO 1 *: CALL HCHAR(21,12 



+1*6,131-1,2):: NEXT I 

790 CALL HCHAR(22,12,129,8): 

: RETURN 

800 FOR I=0 TO 1 :: CALL HCH 
AR(2,12+1*6,133-1,2):: NEXT 
I ss CALL HCHAR<2,14,129,4) 

810 CALL HCHAR(3,13,135):: C 
ALL HCHAR(3,18,134):: CALL H 
CHAR(3,14,137):s CALL VCHAR( 
3,15,140) 

820 CALL HCHAR(3,16,137):: C 
ALL HCHAR(3,17,140):s FOR 1= 

5 TO 17 STEP 2 :: CALL HCHAR 
(I,15,129) 

830 CALL HCHAR(1,16,139):: N 
EXT I :: CALL VCHAR(4,14,128 
,14):: CALL HCHAR(4,16,128) 

840 CALL HCHAR(7,14,139):: F 
GR 1=6 TO 16 STEP 2 s: CALL 
HCHAR(I,16,128):: NEXT I :: 
RETURN 

850 ! 

860 ! GEGENSTAENDE 
B70 ! 

880 CALL VG(3):: CALL SPRITE 
(#1,100,16,100,33):: GOTO 39 

0 

890 CALL VG(3):: CALL SPRITE 
(#1,48,2,141,198):: GOTO 390 
900 CALL VG(3):: CALL SPRITE 
(#1,36,16,137,177):: CALL VC 
HAR(20,23,34,2):: CALL VCHAR 
(20,24,35,2):: GOTO 390 

910 CALL VG(4):: CALL SPRITE 
(#1,96,12,95,60):: GOTO 390 

920 CALL VG(3):: CALL SPRITE 
(#1,60,2,90,208,#2,116,2,98, 

208):: GOTO 390 

930 CALL VG(3):: CALL SPRITE 
(#1,112,12,90,55,#2,116,2,10 
4,56):: GOTO 390 
940 CALL VG < 3):s CALL SPRITE 
(#1,56,12,135,50)ss GOTO 390 

950 CALL VG(2):: CALL SPRITE 
(#1,84,8,89,161):: GOTO 390 

960 CALL VG(4):: CALL SPRITE 
(#1,108,15,138,213):: GOTO 3 
90 

970 CALL VG(4):: CALL SPRITE 
(#1,108,15,138,14):: GOTO 11 
80 

980 CALI. VG (4) : : CALL SPRITE 
(#2,40,10,114,105,#3,44,15,1 
14,105):: GOTO 1180 
990 CALL VG(4);: CALL SPRITE 
(#1,120,16,87,101,#2,124,16, 

119,101,#3,60,2,86,82,#4,116 
,2,117,82):: GOTO 1180 

1000 CALL VG(4):: CALL SPRIT 
E (# 1,120,15,87,150,#2,124,15 
,119,150,#3,60,2,87,132,#4,1 
16,2,119,132) 

1010 CALL SPRITE(#5,120,15,8 ^ 


23 


























































7,73,#6,124,15,119,73,#7,60, 
2,87,55,#8,116,2,119,55):: ß 
OTO 1180 

1020 CALL VG(4):: CALL HCHAR 

f18,15,34):: CALL HCHAR(18,1 

6,35):: CALL SPRITE(#1,92,15 

,108,109):; GOTO 1370 

1030 CALL VG(4):: CALL SPRIT 

£(#1,104,14,117,107):: GOTO 
1180 

1040 FOR 1=4 TO 7 :: DISPLAY 
AT(13+I,6)SIZE(5):B*(I)s : N 
EXT I :j GOTO 390 

1050 DISPLAY AT(10,10)SIZE(7 
) s "AUSGANG" :: FOR 1 = 110 TO 
550 STEP 10 :j CALL SOUND <-1 
39,1,5);: NEXT I :: GOTO 390 
1060 CALL VG(3):: CALL SPRIT 
E(#1,52,15,125,65):: GOTO 39 
0 

1070 FOR J=1 TO 12 :: CALL H 
CHAR 113,J+9,INT(RND*4) + 140); 

: NEXT J :; GOTO 390 

1080 ‘ 

1090 ! VERLIEREN 

1100 ! 

1110 FOR 1=1 TO 10 :: IF SEG 
$ <W$,10,LEN(W*>-9)=C*<I)THEN 
1140 ELSE 1120 
1120 NEXT I 

1130 CALL ME(24,"DAS IST NIC 
HT MOEGLICH ' "):: CALL PA(35 
0):: GOTO 390 

1140 IF R(Z,Y,X)>A THEN 1130 
ELSE IF G6 AND 2^1 THEN CAL 
L GT(AG,GG,I):; R(Z,Y,X)=R(Z 
,Y,X)+A*(I+{-9*(I=10>))-. GO 
TO 1150 ELSE 1130 

1150 ON I GOTO 880,890,900,9 
10,920,930,940,950,960,1060 
1160 GOTO 390 

1170 PS=INT(R(Z,Y,X)/A)-16 : 

; IF PS<1 OR PS>4 THEN 390 E 
LSE ON PS GOTO 1490,1540,155 
0,1560 ELSE 390 

1180 CALL AC<W$>:: IF W$<>"N 
" AND LEN(W$)=1 THEN 1190 EL 
SE ON INT(R(Z,Y,X)/A)-9 GOTO 

1230,1270,1310,1340,1370,14 
10,1440 

1190 P=PGS(MC$,Wt,1);; IF P= 

0 THEN 1180 ELSE IF R(Z,Y,X> 
AND 2 A P THEN ON P GOTO 410,4 
10,420,420,430,430 ELSE 1180 
1200 ! 

1210 * GEFAHREN 
1220 ! 

1230 IF W$=G$(1>AND(GG AND 2 
56)THEN 1240 ELSE IF W$="W” 
THEN 11B0 ELSE IF W*="N" THE 
N 1190 ELSE 1180 

1240 CALL ME(24,"DU BIST NUN 
UNSICHTBAR CALL PA(50 



0 ) j 

1250 CALL ACCW*):: IF W$="W" 
THEN 1260 ELSE IF LEN(W$)=1 
THEN CALL GT(AG,6G,8):: GOT 
O 400 ELSE 1250 

1260 R<Z,Y,X)=R<Z,Y,X>—1276 

X=X+1 :: CALL GT(AS,GG,8) 
:s R(Z,Y,X)=R(Z,Y,X>+2 :: GO 
TO 470 

1270 IF W$=G$(2)AND(GG AND 4 
)THEN CALL SPRITE(#1,48 , 2 , 13 
0,115):: CALL PA<250):: CALL 
PATTERN(#1,112)ELSE 1180 
1280 CALL COLOR(#1,12):: CAL 
L SOUND(339,-7,0):: CALL SPR 
ITE<#4,112,11,112,90):: CALL 
SOUND(339,-6,0):: CALL PATT 
ERN(#2,112,#3,112) 

1290 CALL DELSPRITE(#1,#2,#3 

):: CALL SOUND(339,-7,0):: C 

ALL DELSPRITE(ALL)s: R(Z,Y+1 

,X)=R(Z,Y+1,X)+16 

1300 R(Z,Y,X)=R(Z,Y,X)-1408 

:: CALL 6T(AG,GG,2):: GOTO 3 

90 

1310 W1 $=D$ (7) 8c"WACHE" : : IF 
W$=W1$ AND (GG AND 32) THEN 1 
320 ELSE 1450 

1320 CALL ME(24,"DU WARST SE 
HR TAPFER ! " ):: CALL PA(500) 
:: CALL DELSPRITE(ALL) 

1330 R(Z,Y,X)=R(Z,Y,X)—1536 
:: R(Z,Y+1,X)=R(Z,Y+l,X)+16 
:: CALL GT(AG,GG,5):* GOTO 3 
90 

1340 IF W$=G$(3)AND(GG AND A 
)THEN 1350 ELSE 1800 

1350 CALL ME(23,"DAS IST ES 
WAS DIESE GELDGIERIGEN BRUED 
ER BRAUCHEN \ " )*: CALL PA(95 
0):: CALL GT(AG,GG,7) 

1360 R(Z,Y,X)=R(Z,Y,X)—1664 

s: CALL DELSPRITE(ALL):: CAL 

L HCHAR(23,3,32,28):: R(Z,Y+ 

1,X)=R(Z,Y+1, X) +16 :: GOTO 3 
90 

1370 CALL AC(W*):s IF W*=G$( 

4) AND (GG AND 16) OR Wif=G$(5)A 

ND(GG AND 512)THEN 1380 ELSE 
1820 

1380 CALL SPRIT£(#2,96—12*(W 

*=W2*>,11,108,35,#3,112,12,1 

08,100):; FOR 1=90 TO 35 STE 
P -3 :: CALL LOCATE(#3,108,I 

1390 CALL SOUND(-139,-6,5): : 

NEXT I :; FOR 1=35 TO 108 S 
TEP 3 CALL LOCATE(#3,108, 
I):: CALL SOUND(-139,-5,3) : : 

NEXT I :s CALL DELSPRITE(AL 
L) 

1400 R<Z,Y,X)=R(Z,Y,X)-1792 
;i CALL GT(AG,GG,(9 +5*(W$=G$ 





































L 


(4))) ) : : R(Z,Y+1,X)=R(Z,Y+1, 
X) + 16 :: CALL HCHAR(18,15,32 
,2):: GOTO 390 

1410 IF WT=G$(6)ANDIGG AND 8 
)OR W*=G$<5)AND(GG AND 512)T 
HEN 1420 ELSE 1810 

1420 R(Z,Y,X)=R<Z,Y,X)—1920 
:: CALL GT (AG,G6, (9+6* (W^G* 
(6>)))ss CALL ME C 24,"DER BAE 
R IST JETZT SATT !") 

1430 CALL PA(750):: CALL DEL 
SPRITECALL):: R(Z,Y+l,X)=R(Z 
,Y+l,X)+16 s: GOTO 390 
1440 CALL AC ( W$ > s s IF W*=G $( 
7)AND(GG AND 64)OR W*=G*(3)A 
ND(GG AND 128)THEN 1470 ELSE 
1450 

1450 CALL CLEAR :: CALL ME(2 
0,"DIE WAECHTER RAUBEN DICH 
AUSUND VERSCHLEPPEN DICH IN 
DIETIEFSTEN VERLIESE !") 

1460 CALL PA(1100):: AG,GG=0 
:: Z=ZF(2) : : Y=ZF<4):s X=ZF 
(4):: CALL COLOR(13,16,1,14, 

16.1) i: GOTO 470 

1470 R(Z,Y,X)=R(Z,Y,X)—2048 
:: CALL GT<AG,GG,(7+(W*=Gi<7 
>)>):: IF WT=GT(7)THEN E*="U 
ND ES WARD LICHT !" ELSE E$= 
“DIE RAEUBER ZIEHEN AB !" 
1480 CALL ME <24,E$ >:: CALL P 
A(350):: CALL COLOR<13,16,1, 

14.16.1) :: GOTO 390 

1490 IF W$=G#(8)AND(GG AND 2 
)THEN 1500 ELSE 390 
1500 FOR 1=1 TO 3 :: DISPLAY 
AT(14+1,6)SIZEI5) :B* (I):: N 
EXT I :: CALL VG<3):: CALL S 
PRITE(Hl,52,15,115,76):: CAL 
L GT(AG,GG,1) 

1510 CALL AC(W*):i IF W$=G*< 
9)THEN 1520 ELSE IF LEN(W$)= 
1 THEN 1530 

1520 IF AG=2 THEN 1510 ELSE 
AG=AG+1 :: GG=GG+1024 :: GOT 
0 390 

1530 RCZ,Y,X)=R < Z,Y,X)+256 : 
: GOTO 400 

1540 IF W*OZA* THEN CALL ME 
(24, "DAS WAR WOHL NICHTS ! ’’) 
:: CALL PA(650>:: GOTO 390 E 
LSE 1720 

1550 IF W$=G$(9)AND AG<2 THE 
N AG=AG+1 :: GG=G6+1024 :: R 
(Z,Y,X)=R(Z,Y,X > —2432 :: GOT 
O 390 ELSE 390 
1560 IF W$=D$(G)AND(GG AND 1 
024)THEN 1570 ELSE 390 

1570 DISPLAY AT(13,8)SIZE(12 
)BEEP:ZAt s: R(Z,Y,X)=R(Z,Y, 
X)-2560 :: CALL GT(AG,6G,10) 
:: GOTO 390 

1580 ! 


L 

I 

S 

T 

I 

N 

G 

s 


1590 ! NEHMEN 
1600 ! 

1610 FOR 1=1 TO 10 :: IF SEG 
$(W$,6 ,LEN(W$)—5)=C$(I)THEN 
1640 ELSE 1620 
1620 NEXT I 

1630 CALL ME<24,”ICH SEHE SO 
ETWAS NICHT !**):: CALL PA (35 
0):s GOTO 390 

1640 PS=R(Z,Y,X) AND A*(I+(-9 
*(1=10))):: IF AG=2 OR(GG AN 
D 2^1 >THEN 390 ELSE IF PS=A* 

(1+(-9*(1=10)))THEN 1650 ELS 
E 1630 

1650 IF AG=0 THEN 1680 ELSE 
IF AG=2 THEN 400 
1660 RESTDRE 1970 :: FOR J=1 
TO 4 :: READ M :: IF GG+2~I 
=M THEN ON J GOTO 1790,1730, 
1740,1750,1760 ELSE 1670 
1670 NEXT J 

1680 CALL DELSPRITE(ALL):i R 
(Z,Y,X)=R(Z,Y,X)-A* CI+(-9*(I 
=10))):: GG=GG+2~I :: AG=AG+ 

1 :: CALL HCHAR(20,23,32,2): 
s CALL HCHAR<21,23,32,2):: G 
OTO 390 
1690 ! 

1700 ! MELDUNGEN 

1710 ! 

1720 E*="HURRA DU HAST ES GE 
SCHAFFT..LEBEND ZU ENTKOMMEN 
! TOLL !" :: GOTO 1830 
1730 E*="DIE FACKEL VERBRANN 
TE DEN...KOBOLD J WELCH EIN 
GROSSER..VERLUST !" :: GOTO 
1770 

1740 E$="DER KOBOLD IST MIT 
DEM GOLD ABGEHAUEN NUN HAS 

T DU.NICHTS MEHR ! ” : : G 

OTO 1770 

1750 E$="DIE FACKEL HAT DEIN 

BUCH_VERBRANNT ! PECH FU 

ER DICH !" :s GOTO 1770 

1760 E$="DER KOBOLD KLAUTE D 

IE.TARNKAPPE ! ENTSCHW 

UNDEN ISTER NUN ! ’’ :: GOTO 1 
770 

1770 CALL DELSPRITE(ALL):s C 
ALL CLEAR :: CALL ME(12,E*>: 

: CALL PA(1500)i: R(Z,Y,X)=R 
(Z,Y,X)—I*A 

1780 AG,GG=0 :: GOTO 470 
1790 E*=‘‘DIE FACKEL ENTZUEND 
ETE DIE..BOMBE ! DU BIST DAB 
EI DRAUF GEGANGEN!" s: GOTO 
1830 

1800 E$="MIT DER WACHE LAESS 
T SICH...NICHT SPASSEN ! DU 

HAST ES..WOHL GEMERKT !" :: 

GOTO 1830 

1810 E*="DU HAST DEIN BESTES 
GEGEBEN DOCH DER BAER FRASS » 



25 





































LISTING 


DICH TROTZDEM" :: GOTO 1830 
1620 E$="DER TOEDLICHE ATEM 
DES.DRACHEN HAT DICH GE 

TROFFEN, !“ 

1830 CALL DELSPRITE(ALL)s: C 
ALL CLEAR :i CALL ME<12,E*): 
s CALL PA<1500):: CALL MEf22 
,"NOCH EIN SPIEL J N") 

1840 CALL AC(W*):s IF W$="N" 
OR W$="n" THEN CALL CLEAR s 
: END ELSE AG,GG=0 :: GOTO 1 

50 

1850 ! 

1860 * DATEN ZUM SPIEL 
1B70 ! 

1880 DATA 32,128,129,129,139 

,32,128,32,32,128,32,131,129 
,129,141,32,131,132,132,141 
1890 DATA 128,129,129,139,13 

6,139,32,64,128,131,32,129,1 

29,129,32 

1900 DATA SCHLUESSEL,BOMBE,F 
LEISCH,SCHILD,BEIL,FACKEL,GO 
LD,TARNKAPPE,KOBOLD,BUCH,TRU 

HE 

1910 DATA "NIMM “,"OEFFNE ", 
"BENUTZE " , “ ZUENDE "/'GIB ", 
"VERLIERE "VERJAGE " ,UEBER 

SETZE 

1920 DATA BA,LI,PE,WO,TA 

1930 DATA 3,8,4,2,5,7,3,4,5, 

9,5,3,3,6,2,11,1,10 

1940 DATA 0,2304,0,-22,1,-2, 

-1,-4,0,0,2176,0,0,-30,0,1,“ 

2,0,-1,1276,1,0,-16 

1950 DATA 0,0,128,0,0,-30,0, 

1,-2,0,-1,1276,1,0,-16,0,0,2 
560,0,0,-30,0,1,-2,0,-1,1276 
,1,0,-16 

1960 DATA 3,3,2,3,7,4,3,2,2, 
1,2,2,2,2,2,2,2,2,2,2,5,0 
1970 DATA 68,576,640,1088,76 
8 

■ 1980 ! 

1990 ! UNTERPROGRAMME 

2600 ! 

2010 SUB PA(A):s FOR 1-1 TO 
A s s NEXT I !: SUBEND 
2020 SUB ME(A,A$)s: DISPLAY 
ATCA,1)BEEP:A$ s: SUBEND 
2030 SUB VG(A)ss CALL MAGNIF 
Y(A)!: SUBEND 

2040 SUB AC(A$) i : ACCEPT AT( 
24,l>BEEPsA$ :: SUBEND 
2050 SUB GT(A,B,C)ss A=A~1 : 
. ß=B-2 ' 1 C s : SUBEND 



Ziel des Spiels ist es, Ede 
Listig, den Bombenleger, 
wieder ins Zuchthaus zu 
bringen. 

Das Spiel zeichnet sich 
durch eine sorgfältige 
Gestaltung der Grafik aus. 
Durch Druck auf die Feu- 
ertaste von Joystick 1 ge¬ 
langen Sie vom Titelbild 
zum Spielbild, der Teil¬ 
ansicht einer Burg. Sie 
sind ein Polizist unten 
an der Mauer, oben auf 
der Mauer befindet sich 
Ede. Dieser wirft mit 
Bomben, die von Ihnen 
aufgefangen und zum Ent¬ 
schärfen zu einer Tonne, 
rechts im Bild, gebracht 
werden müssen. Jedoch 
Vorsicht: Benötigen Sie 
dazu zu lange, wird der 
Zeitzünder aktiv! Wenn 
Sie die Bombe fallen¬ 
lassen, explodiert sie 
ebenfalls. 

Können Sie eine Bombe 
nicht fangen, so hängt 
Ihre Überlebenschance 
davon ab, wie weit Sie 
von der Explosion entfernt 


sind. Der Schwierigkeits¬ 
grad steigt im Laufe des 
Spiels, da Ede immer 
schneller wird und seine 
Bomben immer hinter¬ 
hältiger wirft. 

Das Spiel ist vorzeitig 
zu Ende, wenn Sie drei 
Bomben nicht entschär¬ 
fen konnten, oder Sie zu 
nahe an einer Explosion 
standen, oder die Punkt¬ 
zahl unter Null absinkt 
(da es für jede explodier¬ 
te Bombe Punktabzug 
gibt). Steuerung: Mit dem 
Joystick 1 können Sie 
Ihre Figur in jede Rich¬ 
tung bewegen. Gleichzei¬ 
tiges Drücken der Feuer¬ 
taste verleiht doppelte 
Geschwindigkeit. Eine 
Bombe wird gefangen, in¬ 
dem Sie genau darunter¬ 
stehen. Sie wird im Faß 
durch Drücken der Feuer¬ 
taste abgelegt. 

Falls Sie 10 Bomben ge¬ 
fangen haben ohne eine 
einzige fallen zu lassen, 
gibt es Bonuspunkte, und 
das Schlußbild erscheint. 





Bei diesem Programm 
handelt es sich um ein Ge¬ 
schicklichkeitsspiel, des¬ 
sen Ziel es ist, ein Bild 
nach dem Vermischen ein¬ 
zelner Bildteile durch den 
Computer wieder in den 
Originalzustand zu brin¬ 
gen. Das Bild besteht aus 
vier mal vier Segmenten, 
d.h., aus 15 Bildsegmen¬ 
ten und einer Lücke, die 
sich normalerweise links 
unten befindet. Das Wie¬ 
derherstellen des Bildes 
erfolgt, indem man mit 
Hilfe des Joysticks ein 
Bildsegment in die 
Lücke hineinbewegt, wo¬ 
durch wieder eine neue 


Lücke entsteht, in die er¬ 
neut ein Segment gescho¬ 
ben werden kann. 

Um das Bild zu mischen, 
verschiebt der Computer 
in der ersten Runde ein 
Bildsegment, in der zwei¬ 
ten Runde zwei Segmen¬ 
te usw. 

Das Spiel gilt als beendet, 
wenn man zur Wiederher¬ 
stellung des Bildes mehr 
als doppelt so viele Züge 
benötigt als der Compu¬ 
ter zum Vermischen 
benutzte. 

Der persönliche Rekord 
meinerseits liegt momen¬ 
tan bei 4012 Punkten. 


26 














































10 ; *#***#****##**■**■*-*#-#-**“ 


11 ! * * 

12 ! * BOMB * 

13 ! * * 

14 ! * Copyright by * 

15 ! * * 

16 ! * Manfred Lipawski * 

17 ! * * 

19 ! * Benoetigte Geraete * 

20 ! * TI99/4A Konsole * 

21 ! * Ext. Basic * 

22 ! * Joystick 1 * 

23 ! * * 

26 ! * Speicherbelegung * 

27 ! * 12794 Bytes * 

2B ! * * 


29 ! *********#*■**■#-*-*-*■**■**-* 
100 CALL Z RANDOMIZE 
110 CALL CHAR(32,““»33,"FF80 
8080808080FF“,34,"FFB1010101 
0101FFFF81818i8l8l81FF'%40, M 
") 

120 CALL COLOR<0,8,8,1. ,13,16 
,2,7,11,3,2,16,4,2,16,5,13,1 
6,14,7,11):: CALL HCHAR<1,1, 
30,128) 

130 FOR A=5 TO 19 STEP 2 :: 
FQR B=2 TO 30 STEP 2 :: CALL 
HCHAR< A,B,33):: CALL HCHAR i 
A,B+1,34>:: NEXT B :: NEXT A 
140 FOR A=6 TO 20 STEP 2 :: 
FOR B=1 TO 31 STEP 2 :: CALL 
HCHAR < A,B,33):: CALL HCHAR < 
A,B+l,34):: NEXT B :: NEXT A 
150 FOR A=5 TO 19 STEP 2 :: 
CALL HCHAR<A,1,35):: CALL HC 
HAR(A,32,35):: NEXT A :: CAL 
L HCHAR(21,1,40,128) 

160 DATA 3,1,35,3,2,33,3,3,3 
4,4,1,33,4,2,34,4,3,35,3,30, 
33,3,31,34,3,32,35,4,30,35,4 
,31,33 

170 DATA 4,32,34 
180 RESTORE 160 :: FQR A=1 T 
O 12 :: READ B,C,D :: CALL H 
CHAR(B,C,D):: NEXT A 

190 CALL CHAR < 48,"3C6E4A5A52 
52763C0S18387818181B3C3C6642 
060C18307E3C66461C1C46663C") 
200 CALL CHAR<52,"040C1C3464 
3E04047C404B7B0CB46C383C6440 
786C446C3S7C04040C1830202",5 
6,“3C66663C6642663C386C446C3 
C046C38”) 

210 CALL CHAR<64,"B1B2B48890 
fißC0FFFFC0A0908B84B28lFF0305 
091121418181412111090503FF", 
6B, 11 8181 818181818181FF000000 
000B00FF") 

220 CALL Y < 11 , 12, "’AEEEEB" ) : : 

CALL Y < 12, 12,''D0000D" ) : : CA 
LL Y <13,12,“OEEEEC”) 

230 DATA 76,0000000300060C19 


L 

I 

S 

T 

I 

N 

G 

S 


31391E0F07070303000000000060 
30988C9C78F0E0E0C0C 

240 DATA 72,0000000000000001 
0101060F0F0F0B0B000000000000 
0080808060F0F0F0D0D,88,00000 
1030301,89,,90,004080C0C08,9 
1, 

250 DATA 80,0000000000000001 
010207070F0F0E06000000000000 
008080300080C078,84,00000000 
0000000101010001031E00000000 
0000000008808040E0E0F0F0706 

260 DATA 100,030703124D23150 
8000000010101010200000080C0E 

0F0F83873CB880C060204,108,00 
00000103070F1F1C1E1311306040 
20C0E0C048B2C4A8100000008080 
80804 

270 DATA 104,060E06259B472B1 
100010306040601000000000080C 
0E0F070F060C080C0602,112,000 
000000103070F0E0F06030103060 
4607060A4D9E2D4880080C060206 
08 

280 DATA 96,01010102070F0B0B 
090B0B02020202048080B040E0F0 
D0D090D0D0404040402,116,0000 
0000040A09043A27131C26110C0B 
0000000060A02090F0201CD42850 
A0C 

290 DATA 120,0E0A051C150A093 
44C26180D0A160B0640A0A050C02 
C54A85020A090A040408,124,000 
0000000050106090512050906020 
50000000080403040A0409050609 
0204 

300 DATA 128,01B7050A16121D0 
BBC,130,80C0A090E8B060A0C,13 
2,00070206090A07020,134,C0A0 
50A040A090600 

310 DATA 136,000000030C10101 
C0F0F0F0F0F0F0F03000000C0380 
80838F0F0F0F0F0F0F0C,148,000 
00000030F0F030,142,00000000C 
BF0F0C00 

320 RESTORE 230 :: FOR A=1 T 
O 23 :: READ B,B$ :: CALL CH 
AR <B,BT):: NEXT A 
330 CALL HCHAR <22,31,136):: 
CALL HCHAR <22,32,138):: CALL 
HCHAR(23,31,137):: CALL HCH 
AR < 23,32,139) 

340 CALL SPRITE(#4,140,5,169 
,241,#3,72,5,17,120,41,96,2, 
168,224):: CB,CA,CO,BA,KA,SC 
*0 :: CALL Y<12,13," "):; 

CALL X<SC> 

350 A=INT(RND*400>+600 :: FO 
R B=0 TO 30 STEP 2.5 s: CALL 
SOUND <—99,A,B,A/2,B,A+2,B>: 
: NEXT B :: PA=»108 :: GOTO 3 
70 

360 CALL MOTION(#1,0,0):: CA 


27 








































LL SOUND(1,-6,9) : • if KA=1 T 
HEN CALL LGCATE(#1,152, Y1)EL 
SE CALL LOCATE <#1,177,Y1) 

370 CALL MOTION{#1,0,0)* ; CA 
LL PATTERN(#1,96) 

380 CALL JOYST(1,X,Y):: CALL 
POSITION(#1,XI,Y1,#2,X2,Y2, 
#3,X3,Y3> 

390 CALL COINC(ALL,C):: IF C 
THEN 890 

400 IF Xl<151 OR X1>178 THEN 
470 ELSE IF X2> 188 THEN 500 
410 IF BAOl AND RND<.2 THEN 
770 ELSE IF Y3<32 THEN 780 
ELSE IF Y3>213 THEN 800 

420 CALL COINC(ALL,C):: IF C 
THEN 890 

430 IF X=-4 THEN PA=100 ELSE 
IF X=4 THEN PA=108 ELSE IF 
X=0 AND Y~0 THEN 370 

440 CALL KEY(1,K,S):: IF X A 
ND K=ia THEN M0=4 ELSE IF Y 
AND K=18 THEN MQ=1.5 ELSE MO 

450 CALL PATTERN(#1,PA):; CA 
LL SOUND (-1 ,—5,4):: CALL POS 

ITI0N(#1,X1,Y1) 

460 CALL COINC(ALL,C>:: IF C 

THEN 890 ELSE IF X2>18B THE 
N 500 

470 IF X1C151 THEN KA^l s: G 
OTO 360 ELSE IF XI>178 THEN 
KA=0 :: GOTO 360 ELSE CALL M 
OTION(#1,-Y*MQ,X*MO) 

480 CALL COINCCALL,C):: IF C 

THEN 890 ELSE IF X2>188 THE 
N 500 

490 CALL PATTERN(#1,PA+4):: 
CALL SOUNDC-1,-7,5):: GOTO 3 
00 

500 CALL MOTION(#1,0,0,#2,0, 

0,#3,0,0):: CALL POSITION(#2 
,X2,Y2)s: IF Y2<2 THEN Y2=2 
ELSE IF Y2>248 THEN Y2=24B 

510 CALL SPRITE(#8,124,7,177 

,Y2,#9,124,16,176,Y2+1):: CA 
—CA+-1 s ; BA=0 : : CALL DELSPR 
ITE(#2):: CALL HCHARC20,2,48 
+CA):: FÜR A=0 TO 30 STEP 10 
520 CALL PATTERN(#9,124,#8,1 
16):; CALL COLÜR(#9,7,#8,16) 

:: CALL SOUND(-99,-5,A):: CA 

LL PATTERN(#9,116,#8,120) : : 

CALL CÖLDR(#9,16,#8,7) 

530 CALL SOUND(-99,—6,A) : s C 

ALL PATTERN(#9,120,#9,116) : : 

CALL COLOR(#9,10,#8,15):: C 
ALL SOUND(-99,-7,A) 

540 CALL PATTERN(#9,116,#8,1 
24):: CALL COLOR(#9,14,#8,9> 

:: CALL SOUND(-99,-6,A):: NE 
XT A :: CALL DELSPRITE(#9):: 
CALL COLOR(#8,2) 




550 CALL COINC(#8,#1,10,0:: 
IF C THEN SC=SC-100 :s CALL 
DELSPRITE(#8):: CALL SOUND( 

—99,—5,9):: CALL X(SC)•: GOT 
O 610 

560 CALL PATTERN(#8,128):; C 
ALL MOT ION(#B,—9,—INT(RND*8) 
+4):: CALL PATTERN(#8,132):: 

CALL POSITION(#8,X3,Y3):: C 
ALL SOUND(-999,-5,29) 

570 IF X3>10 THEN 560 ELSE C 
ALL DELSPRITE(#8):: CALL SOÜ 
ND{—1,—5,0) 

580 IF SC=0 THEN 600 

590 CALL Y(12,13,"_»).. p 

OR A=1 TO 10 ;: SC=SC-10*i: 
CALL SOUND<1,444-A*9,A):: CA 
LL X(SC):: NEXT A 

600 IF SC<=0 OR CA=3 THEN 61 
0 ELSE 380 

610 IF SC<0 THEN CALL Y(12,l 

3,"-••>:: CALL HCHAR(12,15 

,48,4) j 

620 FOR A=0 TO 20 STEP 2 :: 1 
CALL SCREEN(7):: CALL COLOR(I 
#1,7):: CALL SOUND(-99,-5,A) j 
630 CALL SCREEN(16):: CALL C 
OLOR(#1,5):: CALL SOUND(-99, 
—6,fi>:: CALL SCREEN(2>:: CAL 
L COLOR(#1,1):- CALL SOUND(-1 
99,-7,A>:: NEXT A 

640 FOR A=1 TO 999 ;: NEXT A 
:: CALL CLEAR :* CALL DELSPI 
RITE(ALL):: CALL COLOR(1,1,1 
):: CALL CHARSET :: FOR A=1 I 
TO 14 :: CALL COLOR(A,13,1) I 
650 IF SC<0 THEN SC=0 
660 NEXT As* CALL Y <1,12,"Bl 
0 M B"):: CALL Y(4,2,"ERREI 
CHTE PUNKTZAHL:'*):: DISPLAY I 
AT(4,22):SC I 

670 IF SC=0 THEN 710 ELSE IFI 
SC<HI THEN 710 ELSE HI=SC : I 
s CALL COLOR(0,14,1) I 

680 CALL Y(6,2,"NEUER HIGHSCI 
ORE:"):: DISPLAY AT(6,18):HIj 
:: CALL Y(8,2,"WER IST DER I 
GLUECKLICHE ?■■) I 

690 ACCEPT AT(10,2)SIZE(10)V I 

ALIDATE(UALPHA,". -“)BEEP:NA I 

^ IF NA$="” THEN NA$="TI- I 
99/4A'* I 

700 DISPLAY AT(10,2):: DISPL I 
AY AT(8,2):”HI—SCOREKGENIG: " I 
;NA* :: DISPLAY AT(10,1) I 

710 DISPLAY AT(10,2)s"GEFANGI 
ENE BOMBEN:";CB s: DISPLAY a| 

T(12,2):"FALLEN GELASSENE BO I 
MBEN:";CA ■ 

720 IF SC<HI THEN DISPLAY ATI 
(6,2):"ALTER HIGHSCORE:";HI I 
:: DISPLAY AT(8,2):"HI-SCORE I 
KOENIG:";NA* I 


28 















































730 CALL Y(14,2,"E = ENDE"): 

: CALL Y(16,2,"A = ANFANG") 
740 a= 15 :: GOTO 760 
750 CALL SOUND(-99,-5 t A):: A 
=A—1 IF A=1 THEN A=15 

760 CALL KEY(0,K,S):: IF S=0 
THEN 760 ELSE IF K=65 OR K= 
97 THEN 100 ELSE IF K=69 OR 
K=10i THEN CALL CLEAR :: STO 
P ELSE 750 

770 IF BA=1 THEN 3S0 :: CALL 
MOTION(#1,0,X*MQ):s CALL PA 
TTERN(#1,PA):: CALL POSITION 
(#3,X3 ,Y3):: DN INT(RND*3)+1 
GOTO 780,800,820 
780 CALL POSITION(#3,X3,Y3): 

: IF Y3<32 THEN CALL PATTERN 
(#3,84):: CALL LOCATE(#3,X3, 
216):: CALL MOTION(#3,0,-9): 

: GOTO 380 

790 CALL PATTERN(#3,84):: CA 
LL MOTION(#3,0,—INT(3+CB/2)) 

:: GOTO 380 

B00 CALL POSITION(#3,X3,Y3): 

: IF Y3>213 THEN CALL PATTER 
N(#3,80):: CALL LOCATE(#3,X3 
,40):: CALL MOTION(#3,0,9):; 
GOTO 3B0 

810 CALL PATTERN(#3,80):: CA 
LL MOTION(#3,0,INT(3+CB/2)): 

: GOTO 380 

820 IF CB<3 THEN FA*=2 ELSE I 
F CB<6 THEN FA=7 ELSE FA=16 

830 CALL MOTION(#1,0,0,#3,0, 
0):: CALL PATTERN(#3,76):: C 
ALL SPRITE(#2,88,FA,X3,Y3):: 

CALL SOUND(1,-7,9):: BA=1 
840 FOR D=1 TO 25 :: NEXT D 
:: IF Y3<96 OR Y3>168 THEN C 
ALL MOTION(#2,5+CB,ß):: GOTO 
880 

850 ON INT(RND*2)+1 GOTG 860 
,870 

860 CALL MOTION(#2,5+CB,-CB) 

•; GOTO 880 

870 CALL MOTION <#2,5+CB,CB) 
880 CALL PATTERN(#3,72):: CA 
LL SOUND(1,-7,5):: GOTO 380 
890 CALL COINC(#l,#2,8,CO):: 

IF CO THEN 920 
900 CALL COINC(#l,#4,10,0:: 

IF C THEN CALL L0CATE(#1,X1 
,8):: CALL SOUND(-99,-1,8) 
910 GOTO 380 

920 CALL MOTION(#1,0,0,#2,0, 
0,#3,0,0):: CALL SCREEN(5) 
930 CALL POSITION(#1,X1,Y1): 

: CALL PATTERN(#1,108):: CAL 
L LOCATE(#2,Xi,Yl+5):: CALL 
SCREEN(16) 

940 FOR A=0 TO 28 STEP 4 : : 
CALL SCREEN(13):: CALL SOUND 
(—99,-l,A):: CALL SCREEN(11) 



:: NEXT A :: CALL SCREEN(2): 

: A=22 :: BA=0 

950 CALL SOUND(-333,-4,A):: 

CALL JOYST(1,X,Y):: CALL POS 
ITION(#l,X1,Y1,#2,X2,Y2):: A 
=A-.5 :: IF A=i THEN 500 
960 CALL CQINC(#2,#4 f 4,0:: 

IF C THEN 990 ELSE IF Yl<10 
THEN 980 

970 CALL PATTERN(#1,108):: C 
ALL MOTION(#1,—Y*1,X*2,#2,—Y 
*1,X*2>:: CALL POSITION(#1,X 
1,Y1):f IF Yl<10 THEN 980 EL 
SE CALL PATTERN(#i,112):: GO 
TO 950 

980 CALL MOTION(#1,0,0,#2,0, 

0):: CALL SOUND(-99,-3,0):: 

CALL LOCATE(#1,X1,12,#2,X2,1 
7):: CALL SOUND<-99,-2,4):: 

GOTO 950 

990 CALL MOTION(#1,0,0,#2,0, 

0):: CALL LOCATE(#1,XI,Yl-9) 

:: IF CB<3 THEN LA=10 ELSE I 
F CB<6 THEN LA-20 ELSE LA=30 
1000 CALL SOUND(1,-5,15) : : C 
ALL DELSPRITE(#2):: CB=CB+1 
:: CALL PATTERN(#1,96) 

1010 FOR A=1 TO LA :: SC=SC+ 

10 ;: CALL SOUND(1,810+A,A>: 

: CALL X(SC):: NEXT A :: IF 
CB=i0 THEN 1030 ELSE CALL HC 
HAR(20,31,48+CB):: CALL SOUN 
D(9,522+LA,5) 

1020 GOTG 370 

1030 IF SCC2100 THEN 640 ELS 
E CALL HCHAR(20,31,33):: CAL 
L SCREEN(7) 

1040 FOR A=1 TO 9 •s SC=SC+1 
00 :: CALL X(SC):: CALL SOUN 
D(1,110*A,A,990/A,A):: NEXT 
A :: FOR A=i TO 999 :: NEXT 
A 

1050 CALL SCREEN(2):: CALL C 
LEAR :: CALL DELSPRITE(ALL): 

: CALL CHARSET 

1060 CALL CHAR(40,"301C02190 
1010143452010130408000018700 
0300000008444081090402",44," 
003C421909012143452020270813 
0C000078043020000S84440808C8 
20906") 

1070 CALL CHAR ( 96 , RPT♦ ( " F '* ,2 
0)&"7F3F3F3F3F1FFFFFFFFFFFFF 
FEFEFEFEFCF8FBFBFBF",100,"00 
000000001FFFFF0000000000F0FE 
FE01010101010100001F") 

1080 CALL CHAR(104,”E”,112," 

1F7FFFFFFFE " 8tRPT$ ( "0" ,21) , 11 
4,"F0FCFEFEFF0F0101"feRPT* <”0 
",16),116,"0000000001010101" 

> 

1090 CALL CHAR(120,“00000000 — ^ 
004040E0F0FFBFBFDFEFF7FB0000 


29 

































































00000004040E 1EFFFBFBF7EF DFBF 
■i 124, "B001013FFFFFFFFF0O000 
0F8FEFFFFFF *’) 

1100 CALL CHAR(128,RPT*<"07 
, 16) 8eRFT$ ( "0“ , 32) * 1^> RPT * ( 
E0" , 16) 8tRPT$ ( “0" ,32) ) 

1110 CALL CHAR <33,"FFFFFFFFF 
pppFFFF",136,"FFFFC0C0C0C0C0 



1120 CALL COLORt1,14,1,14,1 j 
1^^9^15,14,10,15,14,11,-J,14 

112! 11,14) _ 

1130 FOR A=1 TO 11 STEP 2 si 
FOR B=l Tü 31 STEP 2 :: CAL 
L HCHAR( A , B , 136):: CALL HCHA 
R(A B+l,138):: CALL HCHAR(A+ 

1137) 2 : CALL HCHAR<A + 1,B + 

1,139) 

1140 NEXT B :: NEXT A :: FOR 
A=i JO 4 :: CALL Y(4+A,13, 

1 * * | 11 ) : ; NEXT A 

1150 CALL Y(5, 13, "tde ")s: CA 
LL Y (6, 13, *'f ' b" > : s CALL Y C7, 

14,"ac" > s : CALL Y(8,l3,"!ghy 
1160 CALL SPRITE(#6,120,11,4 

9,121,#7,112,5,33,121,»3,40, 

2 40 121) 

1170 CALL SPRITE (#2,128,2,3~> 
12,#3,132,2,33,139,#!,128, 
2 , 49 ]112,#4,132,2,49,139):s 

CALL W 

1180 CALL COLOR(2,16,1,3,8,1 
,4,0,1,3,16,1,6,16,1,7,16,1, 
8,16,1):: CALL Y(14,12,"B O 

1190 DISPLAY AT( 16, 1): "HOECH 
STLEISTUNS:";SC :: HI=SC : : 
DISPLAY AT(18,1)s"B ER NAME 7 
, » ; . ACCEPT AT(18,12)SIZE(1 

0)BEEP VALIDATE(UALPHA,"- ~ 

> i NA$ 

1200 IF NAi sM " THEN 1190 EL= 

E CALL PATTERN(#5,44) 

1210 DISPLAY AT(20,1)s"DU HA 

ST ES GESCHAFFT EDE": :"LIST 
IG SITZT HINTER GITTERN ": = 

«E = ENDE-.--ft = ftNFAN 

6 .. .. a=15 :: GOTO 1230 
1220 A=A—1 :: CALL SOUND(-99 
,-6,A):: IF A=1 THEN A=15 

1230 CALL KEY(0,K,S):: IF S- 
0 THEN 1230 ELSE IF K-65 THE 

N 100 ELSE IF K=69 THEN 
1240 ELSE 1220 

1240 CALL DELSPRITE(ALL):: C 

ALL CLEAR :: END 

1250 SUB Z :: CALL CLEAR ;: 

CALL DELSPRITE(ALL):: FOR A- 
1 TO 24 :: PRINT *: NEXT A : 
: CALL CHARSET :s CALL MAGNI 

F Y (3 > 


L 
I 

S 

T 

I 

N 

G 

S 


1260 CALL SCREEN(5):: FOR A- 
1 TO 8 :: CALL COLGR(A,2,12) 

;; NEXT A :: CALL COLOR(9,5, 
12,10,2,12,11,16,12) 

1270 CALL Y(2,3,"MANFRED LIP 
GUI SKI PRESENT"):: CALL CHAR ( 

64, '■3C4299A1A199423C" ,96, "00 

784C44444C784C44444C78") 

1280 CALL CHAR(98,"003B6C444 

444444444446C38",100,"00446C 

7C5454444444444444" ,102,*’007 

84C44444C784C44444C78") 

1290 CALL CHAR(104,”0301071F 
7P7F7F7F7F7F3F3F1F07C080 

E0F8FCFCFEFEFEFEFEFEFCFCFBE0 
■■ 108 11 000000030E1810-^02020-> 

010180E03”,110,"",l 11 1 M 000 00 

0003060C") _ 

1300 CALL CHAR(112, M 081810^0 
2020E08",116,,117,"”,1 10 » 

08081C1C3E3E3E3E14”,120/'”, 
r? 1 11,1 1^ ** 000C30BG581C1 

1310 CALL Y<4,14,”'bd+“)•: C 
ALL Y( 5 ,14,"aceg”>:: CALL Y< 
8,3,”® M.LIPOWSKI NOVEMBER 8 

5” ) 

1320 CALL SPRITE(#5,96,13,->1 
, 111,#6,100,13,31,127,#3,96, 

2-38 101,#4,100,2,38,117) 

1330 CALL Y(13,14,“hj M >:s CA 
LL Y(14,14,"ik"):= CALL HCHA 

R(12,17,112) _ _ 

1340 CALL SPRITE(#1,108,L,9 
7,121,#2,116,7,83,121):: CAL 
L Y(17,5,”PRESS FIRE TO BEGI 

N”) 

1350 CALL SPRITE(#7,108,15,1 
60 , 120,#8,104,2,160,120,#9,1 
16,7,151,116):: A,B-0 :: G0T 

O 1400 

1360 A=A+1 :: IF A=2 THEN CA 

LL PATTERN (#9,120,#2,116):: 

A=0 ELSE CALL PATTERN(#9,116 
,#2,120) 

1370 CALL KEY<1,K,S>:= IF K 
18 THEN 1410 ELSE B=B+1 :: I 
F B—198 THEN 1410 

1380 CALL POSITION(#7,X,Y,#8 

X Y) : : IF Y^20 THEN 1-390 EL 
SEIFY>222 THEN 1400 ELSE C 

ALL SOUND(-4250,-4,0):: GOTO 

1560 „ _ 

1390 CALL MOT ION(#7,0,9,#8, 

,9,#9,0,9):: CALL SOUND(-99, 

-7^0):: GOTO 1360 

1400 CALL MOTION(#7,0,-9,#8, 

0,-9,#9,0,-9):: CALL SOUND(- 

99,-5,0>" 6 0TO 1360 n 

1410 CALL CLEAR :: CALL COLO 
R(l,2,2):: CALL DELSPRITE(AL 
: : CALL COLQR(1,1,1)s: F0R 
A=0 TO 30 STEP 4 :: CALL SC 


L) 


30 







































* 


KOMMT 
ZU 

IHNEN 
INS 




Finden Sie Ihre TI-REVUE nicht am Kiosk? 
Weil sie schon ausverkauft ist? Oder „Ihr" Kiosk 
nicht beliefert wurde? Kein Problem! Für ganze 
60,- DM liefern wir per Post 12 Hefte ins Haus 
(Ausland 80,- DM). Einfach den Bestellschein 
auf der nächsten Seite ausschneiden - fotoko¬ 
pieren oder abschreiben, in einen Briefumschlag 
und ab per Post (Achtung: Porto nicht vergessen) 
MSX-REVUE kommt dann pünktlich ins Haus. 


Das Magazin 

fürTi 99-4A 


WICHTIGE RECHTLICHE 
GARANTIE! 

Sie können diesen Abo-Auftrag 
binnen einer Woche nach Eingang 
der Abo-Bestätigung durch den 


Verlag widerrufen - Postkarte ge¬ 
nügt. Ansonsten läuft dieser Auf¬ 
trag jeweils für zwölf Ausgaben, 
wenn ihm nicht vier Wochen vor 
Ablauf widersprochen wird, weiter. 



































































S SÄKr ten - K SP0rtbH,ifl Anbieter. Einfa, 

liehe Anzeigen nicht kostenlos veröffentlichen und uns jedwien Abdruck kostend Ir An, "i™ ' ?? T' offens,cht,ich ^ 

Für Privatanbieter: maxima, ach. Zaii.nä 28 '"" rde " ™ h ' a " 9 '"°"™* 


TI REVUE 

Anzeigenabteilung 

Postfach 1107 
8044 Lohhof 


J 


Name 


# 


Vorname 


Straße/Hausnr. 

PLZ/Ort 


.-i 


COUPON 


Ich nehme zur Kenntnis, 
daß die Belieferung 
erst beginnt, wenn die Abo 
Gebühr dem Verlag 
zugegangen ist. 


TI REVUE 

Abo-Service 8/86 

Postfach 1107 

8044 UNTERSCHLEISSHEIM 


i 


Ja, ich möchte von Ihrem Angebot Gebrauch machen. 

Bitte senden Sie mir bis auf Widerruf ab sofort jeweils die nächsten zwölf 
Ausgaben an untenstehende Anschrift. Sollte ich nicht vier Wochen vor 
Ablauf schriftlich kundigen, läuft diese Abmachung automatisch weiter. 

Name 


Vorname 


Straße/Hausnr 
PLZ/Ort _ 


Ich bezahle: 

□ per beiliegendem Verrechnungsscheck 

□ gegen Rechnung 

i_. bargeldlos per Bankeinzug von meinem Konto 
bei (Bank) und Ort 

ir 

Kontonummer 


Bankleitzahl 

(steht auf jedem Kontoauszug) 
Unterschrift 


Von meinem Widerspruchsrecht habe ich Kenntnis 


genommen. 


Unterschrift 


































































































































































































































































































































































































































































































































































Hiermit bestelle ich in Kenntnis Ihrer Verkaufsbedingungen / 

die Listings dieses Heftes auf 

□ Diskette zum Preis von (25,— DM) 

□ Kassette zum Preis von (10,— DM) 

Ich zahle: 

Bar — per beigefügtem Geld ( ) 

per beigefügtem Scheck ( ) 

Gegen Bankabbuchung am Versandtag ( ) 

Zutreffendes bitte ankreuzen! 

Meine Bank (mit Ortsname)... f .. 

Meine Kontonummer.... 

Meine Bankleitzahl.(steht auf jedem Bankauszug) 

Vorname....Nachname.. ............. 

Str./Nr... .PLZ/Ort ......8/86 

Hiermit bestätige ich mit meiner Unterschrift, Ihre Verkaufsbedingungen gelesen zu haben und zu akzeptieren. 

* t - * ... u M l’£■- 4 ‘ * ■** 

Unterschrift........ 

i 

TI-REVUE 

KASSETTENSERVICE 8/86 

Postfach 1107 Verkaufsbedingungen: Versand nur gegen Vorauskasse oder Bankabbuchung. 

8044 Unterschleißheim Umtauschrecht bei Nichtfunktionieren. Keine Nachnahme. 



Hiermit bestelle ich in Kenntnis Ihrer Verkaufsbedingungen 

( ) Exemptar(e) TI SPECIAL (Nr. 4) 14,80 ( ) Exemplar(e) TI ASSEMBLER SPECIAL 19,80 

Zutreffendes bitte ankreuzen! 

Ich zahle: 

per beigefügtem Scheck / Schein ( ) 

Gegen Bankabbuchung am Versandtag ( ) 

Meine Bank (mit Ortsname).....8/86 

Meine Kontonummer...... 

Meine Bankleitzahl... (steht auf jedem Bankauszug) 

Vorname ..Nachname... 

Str./Nr. PLZ/Ort . 


Verkaufsbedingungen: Versand nur gegen Vorkasse oder Bankabbuchung. Keine Nachnahme! 

Jl 

Unterschrift.. 

Bitte ausschneiden und einsenden an 

TI-REVUE 

Special-Service 8/86 

Postfach 1107 
8044 Unterschleißheim 
































Das Magazin 
für TI994A 



Assembler 

leicht 

gemacht 



richtig 

behandelt! 

4 Seiten 
Anzeigen 


rund um den 


TI 99/4A 






















































































REEN(16):: CALL SOUND<-99,-5 
, A) 

1420 CALL SCREEN(7) : : CALL S 
CREEN < 2 > : : NEXT A :: SUBEND 
1430 BUB YCA,B„C$):: DISPLAY 
AT(A,B)SIZE(LEN(C$>):C$ :s 
SUBEND 

1440 SUB X (X ) ; : X$=STR$CX)s; 

DISPLAY AT(12,13)SIZE(LEN(X 
4f)):X$ :: SUBEND 
1450 SUB W 

1460 DATA 196,294,196,294,19 

6.294.196.294.233.349.233.34 

9.233.349 

1470 DATA 233,349,175,262,17 
5,262,175,262,175,262,196,29- 

4.196.294.196.294.196.294 
1480 DATA 196,294,196,294,19 

6,330,196,294,196,349,196,29 

4.196.330.196.294 

1490 DATA 196,294,196,294,19 

6,330,196,294,196,349,196,29 

4,196,330,196,294 

1500 DATA 233,349,233,349,23 

3.392.233.349.233.415.233.34 

9.233.392.233.349 

1510 DATA 233,349,233,349,23 

3,392,233,349,233,415,233,34 

9,233,392,233,349 
1520 DATA 175,262,175,262,17 
5,294,175,262,175,311,175,26 
2,175,294,175,262 
1530 DATA 175,262,175,262,17 
5,294,175,262,175,311,175,26 
2, 175,294,175,262 
1540 DATA 196,294,196,294,19 

6,330,196,294,196,349,196,29 

4,196,330,196,294 
1550 DATA 196,294,196,294,19 

6,330,196,294,196,349,196,29 

4,196,330,196,294 
1560 RESTORE 1460 :s FÜR A=1 
TO 80 :* READ B,C :: CALL S 
0UND(225,B,2 t C,l)i: NEXT A 
1570 SUBEND 




10 

1 

ft 


11 

1 

* 


4t 

12 

f 

# 

* 

VERSCHIEBEN 

4t 

13 

1 

*■ 

* 

* 

4t 

14 

1 

■ 

4t 

Copyright by 

4t 

15 

f 

* 

4t 


4t 

16 

1 

■ 

4t 

Frank Albert 

* 

17 

1 

■’ 

4t 


* 

19 

r 

m 

4t 

Benoetigte Geraete 

* 

20 

1 

» 

4t 

TI99/4A Konsole 

4t 

21 

1 

■ 

4t 

Ext- Basic 

4t 

22 

1 

:■ 

4t 

Joystick 2 

4t 

23 

1 

m 

* 


4t 

26 

1 

w 

* 

Speicherbelegung 

4t 

27 

1 

■ 

* 

6015 Bytes 

4t 

28 

I 

m 

* 

4t 

29 

1 

P 

4t 4t 4t* 4t 4t 4t 4t 4t 4t-M-4t 4t 4t 4t 4t 4t 4t 4t 4t 4t 4t 


100 CALL CLEAR a: RANDOMIZE 
110 OPTION BASE 1 :: DIM SOL 
L(4,4),IST(4,4) 

120 FÜR 1=1 TO 4 ü FÜR J=1 
TO 4 :s READ SÜLL(I,J):s IST 
(I,J)=SOLL(I,J):: NEXT J :: 
NEXT I 

130 DATA 1,2,3,4,5,6,7,8,9,1 
0,11,12,0,13,14,15 
140 CALL DEFINIERE 


160 ! SPIELANLEITUNG 
170 ! 

180 DISPLAY AT <1,9):"Q>KL<AB 
>; >G‘* s: DISPLAY AT(2,8 )j” — 


190 DISPLAY AT(6,1>:"D>KLN<A 
> =:L NKLIKN>G@EB<A> ;BE= =N 
K<A Ü>KL<AB >j >G = >K >BGS >EG 
>G L>@F>GM>, :NL =>G>G=:L ; BE 
= ;>LM>AM,PB>=>K A>K—SNLM>EE 
>G! " 

200 DISPLAY AT(13,1)i"@>LM>N 
>KM PBK= FBM CHRLMB<D GNFF>K 
2 ? " 

210 DISPLAY AT (17,1) : ,l = sL LI 
B>E BLM SN >G=>,P>GG..=N F>A 
K t EL s=HI I >EM LH ÜB>E>SN>@> 

;K:N<ALM,:EL B<A SNF..FBL<A> 
G ;>GH>MB©M A:;>!" 

220 DISPLAY AT(24,4>:"*?>N>K 
DGHI? pKN><D>G*" 

230 CALL MUSIK 

240 CALL KEY < 2 , K , S ):: IF S=0 
THEN 240 

250 CALL MUSIK 
260 ! 

270 ! BILDAUFBAU 

280 ! 

290 CALL C0L0R(2,16,13) 

300 CALL CLEAR 
310 ZEILE=4 :: SPALTE=1 
320 CALL HCHAR < 2 , 4 , 46 , 18 ): : 
CALL VCHAR(3,21,46,17)ss CAL 
L HCHAR<19,4,46,17) : s CALL V 
CHAR <3,4,46,16) 


4 


\ 


35 























































330 FOR 1=3 Tü 18 :: CALL HC 
HAR(I,5,47,16):: NEXT I 
340 DISPLAY AT(2,21) :" KNG = > " 
DISPLAY AT (7,23) : ,, L<HK>" 

s: DISPLAY AT<12,21):"ABLCH 

K > " 

350 DISPLAY AT(4,25):"0“ • * 
DISPLAY AT(9,27):"0“ :s DISP 
LAY AT(14,27):”0" 

360 CALL AUFBAU(IST <,)) 

370 DISPLAY AT (23,2) : 

DGHI? =KNXD>G+" 

3B0 CALL KEY(2,K,S):: IF S=0 
THEN 380 

390 ! 

400 ! SPIELBEGINN 

410 > 

420 DISPLAY AT(21,2):"" D 
ISPLAY AT(23,2) : '*“ 

430 RUNDE=RUNDE+1 :: DISPLAY 
AT(4,24):USING H ##"sRUNDE 
440 ZUEGE=0 

450 CALL NISCHE(IST(,),ZEILE 
,SPALTE,RUNDE):: CALL AUFBAU 
(IST(,)) 

460 CALL VERSCHIEBE(IST(,),Z 
EILE,SPALTE) 

470 ZUEGE=ZUEGE+1 

480 CALL VERGLEICHE(SOLL(,), 

IST(,),IDENTISCH) 

490 IF IDENTISCH THEN 650 EL 
SE IF ZUEGE<2*RUNDE THEN 460 

500 ! 

510 i SPIELENDE 
520 ; 

530 DISPLAY AT(21,2):"* LIB"> 

E>G= > *■' 

■ 

540 FÜR 1=200 TO 110 STEP -5 
s: CALL SOUND(-300,1,5):: N 
EXT I 

550 DISPLAY AT (23,2) : ?>N> 

KDGHI? =KNXD>G *" 

560 IF SCORE>HISCORE THEN HI 
SCÜRE=SCQRE :: DISPLAY AT(14 
,23):USING "#####"* HISCORE : 
i CALL MUSIK 

570 CALL KEY(2,K,S):: IF S=0 
THEN 570 

580 FOR 1=1 TO 4 :: FOR J=1 
TO 4 :: IST(I,J)=SOLL(I,J):: 
NEXT J :s NEXT I 

590 ZEILE=4 :: SPALTE=1 

600 DISPLAY AT (21 ,2) : *’ 11 •* D 
ISPLAY AT (23,2) :'■ ** 

610 RUNDE,SCORE=0 
620 CALL AUFBAU(IST(,)) 

630 DISPLAY AT(9,23)0“ 
640 GOTO 430 
650 ! 

660 ! BILD WIEDER KOMPLETT 
670 ! 

680 CALL SOUND(100,110,5,220 
,5):: CALL SOUND(150,147,0,2 



94,0) 

690 DISPLAY AT(21,2):"^>KMB@ 

| I» 

700 DISPLAY AT(23,2)•”* ?>N> 
KDGHI? =KN >< D >G *” 

710 SCQRE=SCÜRE+INT(RUNDE*20 
/ZUEGE)»RUNDE :: DISPLAY AT( 
9,23): US ING "#####’’: SCORE 
720 GOTO 380 
730 ! 

740 ! PROZEDUREN 
750 ! 

760 SUB DEFINIERE 

770 DATA 0000000000000000000 

00000000000003F3F3F3F3F3F7FF 

FFEFCF9F9E9E9FCFE 

780 DATA FFFFFFFFFFFFFFFF0F0 

300C0C09060A0FFFFFFFFFFFFFFF 

FFFFF0F0F0F0F1FAF 

790 DATA FCFCFCFCFCFFFFFFFFF 

F8000000000000000000000p0p0p 

CF8C0000000003777 

800 DATA 0000000000000000000 

000000000000007070707070y0 7 g 

70301010101010101 

810 DATA 0000000000000000000 

0000000000000 7F7F7F7F7F3F3F3 
F3F3F3F3733331919 

820 DATA FEFDFFFFFFFFFFFFFFF 

FFFFFFFFFFFFF7FFFFFFFFFFFFFF 

FFFFFFFFFFFFFFFFF 

830 DATA 0001000101000000000 

000000000000090F0E0F0F0FEFFF 

FFEFEFC7C3C3C1C0C 

840 DATA 0000000000000000000 

0000000000000010101030303030 

303030707070F0F0F 

850 DATA 0000000000000000000 

0000000000000000707030303030 

30303030101010000 

860 DATA FFFFFFFFFFFFFFFFFFF 

FFFFEFFFFFFFFCFC0F0FEFEFEFEF 

CFCF8E000FFFFFFFF 

870 DATA 00000000808080C0E08 

00000F 0F0F0E0181808000000000 

00000103030100000 

880 DATA 0000000000000000000 

00000000101011F3F3F7FFFFFFFF 
FFFFFFFFFFFFFFFFF 

890 DATA FFFF7F7F7F7F3F3F3F3 

F3F3F3F3F3F3FF8FCFFFFFFFFFFF 

FF FFFFFFF9EC0F0FB 

900 DATA 0000C0F0F0F0F0F0F0F 

0E0000000000000000 00a00 0 B000 

00000000000 00 00 0 0 

910 DATA 0101010103030303030 

3030303030303FFFFFFFFFFFFFFF 

FFFFFFFFFFFFFFFFF 

920 FOR 1=65 TO 90 : : CALL C 
HARPAT(I,CHAR$):: CALL CHARC 
I-7,CHAR$):: NEXT I 

930 CALL CHAR(46,"FFFFFFFFFF 
FFFFFF”,47,"") 


36 





















































































940 RESTORE 770 :: FOR 1=84 
TO 140 STEP 4 i: READ CODE* 
:a CALL CHAR(I,CODES):: NEXT 
I 

930 CALL SCREEN(2):j CALL MA 
GNIFY(4):i CALL COLOR<1,6,1, 
1 ,5,6,1,6,6, 

1,7,6,1> 

960 FÜR 1=1 TO 15 :: CALL SP 
RITE(#I,1*4+80,12,193,1)s : N 
EXT I 

970 SUBEND 
980 r 

990 f ********************* 

1000 • 

1010 SUB AUFBAU<FELD(,)) 

1020 FOR ZEILE=1 TO 4 
1030 FOR SPALTE=1 TO 4 
1040 IF FELD(ZEILE,SPALTE>TH 
EN CALL LOCATE C ttFELD(ZEILE,S 
PALTE),Z EILE*32—15,SPALTE*32 
+ 1> 

1050 NEXT SPALTE 
1060 NEXT ZEILE 
1070 SUBEND 
1080 ! 

1090 ! *********************** 
1100 ! 

1110 SUB VERGLEICHE(FELD1(,) 

,FELD2(,),IDENTISCH > 

1120 IDENTISCH=—1 

1130 FOR 1=1 TO 4 

1140 FOR J=1 TO 4 

1150 IF FELD!(I,J)< >FELD2(I, 

J > THEN IDENTISCH=0 

1160 NEXT J 
1170 NEXT I 
1180 SUBEND 
1190 ? 

1200 ! ********************* 
1210 * 

1220 SUB VERSCHIEBE(FELD( , ) , 
ZPOS,SPOS) 

1230 CALL JOYST(2,X,Y):: IF 
X=0 AND Y=0 THEN 1230 
1240 IF SPOS-X/4=0 OR SPOS-X 
/4=5 OR Y/4+ZPOS-0 OR Y/4+ZP 
0S=5 THEN 1230 
1250 CALL SOUND(650,-5,15) 
1260 SPRITE=FELD(ZPÜS+Y/4,SP 
OS—X/4):: CALL POSITION(#SPR 
ITE,SZEILE,SSPALT£> 

1270 FOR 1=1 TG 16 :: CALL L 
OCATE(ttSPRITE,SZEILE—I*Y/2,S 
SPALTE*I*X/2)ss NEXT I 

1280 CALL SWAP(FELD(ZPOS+Y/4 
,SPOS—X/4),FELD(ZPOS,SPOS)) 

1290 ZP0S=ZP0S+Y/4 :: SPOS=S 
POS—X/4 

1300 SUBEND 
1310 ! 

1320 ! ********************* 
1330 ! 


L 

I 

S 

T 

I 

N 

G 

S 

^s 


1340 SUB SWAP(X,Y) 

1350 HILF=X :: X=Y :: Y=HILF 
1360 SUBEND 
1370 ! 

1380 ! ********************* 

1390 ! 

1400 SUB MISCHE(FELD(,),ZPOS 
,SPOS,N) 

1410 FOR 1=1 TO N 

1420 X0=INT(RND*4)+1 :: IF A 

8S(X0~X>=2 THEN 1420 

1430 PN X0 GOTO 1440,1450,14 

60,1470 

1440 IF ZPOS=l THEN 1420 ELS 
E CALL SWAP(FELD(ZPOS,SPOS > , 

FELD(ZPOS-1,SPOS))i: ZPQS=ZP 
OS-1 ss GOTO 1480 
1450 IF SPOS=l THEN 1420 ELS 
E CALL SWAP(FELD(ZPOS,SPOS), 

FELD(ZPOS,SPOS-1> > s; SPQS=SP 
OS-1 s s GOTO 1480 
1460 IF ZP0S=4 THEN 1420 ELS 
E CALL SWAP(FELD(ZPOS,SPOS), 

FELD(ZPOS+1,SPOS)):: ZPOS=ZP 
ÜS+1 :: GOTO 1480 
1470 IF SPOS=4 THEN 1420 ELS 
E CALL SWAP(FELD(ZPOS,SPOS), 

FELD(ZPOS,SPOS+1>)s: SPGS=SP 
OS+1 

1480 X=X0 
1490 NEXT I 
1500 SUBEND 
1510 i 

1520 ! ********************* 

1530 ! 

1540 SUB MUSIK 

1530 CALL SOUND(100,131,0,26 
2,0) 

1560 CALL SOUND(100,147,0,29 
4,0) 

1570 CALL SOUND<100,165,0,33 
0,0) 

1580 CALL SOUND(100,262,0,52 
3,0) 

1590 FOR 1=1 TO 45 s: NEXT I 
1600 CALL SOUND(100,220,0,44 
0,0) 

1610 FÜR 1 = 1 TO 45 : i NEXT I 
1620 CALL SOUND(100,247,0,49 
4,0) 

1630 FÜR 1=1 TD 45 :s NEXT I 
1640 CALL SOUND(100,196,0,39 
2,0) 

1650 FOR 1=1 TO 45 ss NEXT I 
1660 CALL SOUND(100,175,0,34 
9,0) 

1670 FOR 1=1 TO 20 ss NEXT I 

1680 CALL SOUND(100,196,0,39 
2,0) 

1690 FOR 1=1 TO 30 :: NEXT I 

1700 CALL SOUND<100,165,0,33 
0,0) 

1710 FOR 1=1 TO 30 :: NEXT I » 


37 





































- 



SERVICE 


1720 

2 , 0 ) 

1730 

1740 

1750 

1760 

1770 


CALL SOUND(250 


131,0,26 


SÜßEND 


! ********************** 


END 


ANDERE DRUCKER 
VON TI LOGO AUS 
BENUTZEN 


Ist es möglich, mit dem 
TI LOGO Modul auch an¬ 
dere Druckerschnittstel¬ 
len anzusprechen außer 
dem TI Thermoprinter? 
Peter Danzeisen, 
Hamburg 


Selbstverständlich ist es 
möglich, aus TI LOGO 
auch andere Drucker an¬ 
zusprechen. Sie müssen 
nur immer dort, wo bis¬ 
her ' TP ' steht, den Namen 
Ihrer Schnittstelle einge¬ 
ben. Verwenden Sie z. B. 
die PlO-Schnittstelie, so 
geben Sie einfach 'PIO' 
ein. 










MIC liefert neben den In¬ 
formationen, die ein üb¬ 
liches Disk-Katalog-Pro- 
gramm auch liefert, näm¬ 
lich 

Diskettenname 
Anzahl der freien Sektoren 
(F=xxx) 

Anzahl der belegten 
Sektoren (U=xxx) 
Filenamen 

Filelängen in Sektoren 

Fileformate 

Satzlängen, 

mit Hilfe des Disk-Mana¬ 
gers geschützter (P) oder 
ungeschützter (U) File 
auch zusätzliche File- 
Informationen: 

- ein erläuternder File- 
Info-Text zu jedem 
File, falls ein solcher 
zuvor — ebenlalls mit¬ 
tels MIC - aut die Dis¬ 
kette geschrieben wur¬ 
de (max. 32 Zeichen) 

- ob Program m-Format- 
Basicprogramm (PGM/ 


BU falls nicht geschützt, 
PGM/BP falls geschützt 
durch ‘protected 1 in der 
Basic-SAVE-Anweisung) 

- oder ob Programm-For- 

mat-Maschinenprogramm 

(PGM/MA), z.B. erstellt 
mit dem SAVE-Pro- 
gramm des Editor/Asem- 
bler-Paketes und starf- 
bar mit Run Program 
File 

- welche Sektoren der File 
belegt (aaa-bbb ecc-ddd... 
in hexadezimalen Zahlen, 
weil die bekannten Disk- 
Fixer solche als Eingabe 
benötigen) 

- bei PGM/MA-Files die 
' ersten fünf Wörter in 

hexadezimaler Darstel¬ 
lung, denn diese enthal¬ 
ten Informationen über 
Ladeadresse und Länge, 
Einsprungadresse und 
eventuelle Anschlußfiles. 
Sie lassen weiterhin er¬ 
kennen. ob der File der 


Run-Program-File-Kon- 
vention entspricht, ob 
es sich um einen Modul- 
Inhalt handelt. 

Zusätzliche Disk-Informa- 
tionen: 

— ob geschützte (P) oder 

ungeschützte (U) Dis¬ 
kette ‘proprietary 
protection* 

— ob einseitig (Sl=l) oder 
doppelseitig (Sl=2) ini¬ 
tialisierte Diskette 

auf ihren Plätzen, sobald 
das Basicprogramm gela¬ 
den ist. Damit die Unter¬ 
programme in einem von 
der CPU direkt erreich¬ 
baren Speicherbereich 
liegen, muß eine Speicher¬ 
erweiterung angeschlos¬ 
sen sein. 

Derartige Programme fin¬ 
det man in letzter Zeit 
häufiger. Deshalb für 
Interessierte hier ein paar 
Hinweise darauf, wie man 
so etwas macht. Im Ur- 
Basicprogramm werden 
einige Zeilen vorgesehen, 
die nur als Platzhalter die¬ 
nen, am einfachsten 
Kommentarzeilen. Der so 
reservierte Platz im Spei¬ 
cher muß ausreichend 
sein, die Unterprogram¬ 
me aufzunehmen, in MIC 
waren die Zeilen 180, 

190 und 200 ursprüng¬ 
lich lange Kommentarzei¬ 
len. Das vorbereitete 
Basicprogramm wird ge¬ 


laden, und mit Hille von 
DEBUG wird nachgese¬ 
hen, ab welcher Adresse 
diese Platzhalter im Spei¬ 
cher stehen. Dann kann 
mittels einer entsprechen¬ 
den AORG-An Weisung 
im Assemblerprogramm 
dafür gesorgt werden, daß 
den Unterprogrammen 
die richtigen Plätze zuge¬ 
wiesen werden. Mit 
DEBUG wird weiterhin 

— ob einfache (D=l) oder 
doppelte (D-2) Schreib 
dichte 

— Anzahl der Spuren/ 
Seite (TR/SI=xx) 

— Anzahl der Sektoren/ 
Spur (SE/TR-xx) 

— Anzahl der Files auf 
der Diskette 

— Summe der von Files 
‘offiziell* belegten 
Sektoren 

MIC-GEHE IMNISSE 


MIC ist ein Extended- 
Basie-Programni mit dar¬ 
in ‘versteckten* Maschi¬ 
nensprache-Unterprogram¬ 
men (Lesen und Schreiben 
im VDP-RAM und Lesen 
und Schreiben von Dis- 
kettensektoren). Die Un¬ 
terprogramme werden al¬ 
so weder durch CALL¬ 
LOAD-Auf rufe noch 

durch Poken aus DATA- 
Zeilen geladen. Sie sind 


*: ?: 





zuve 


Kennwort „ Hun q erhilfe Afrika 

Menschen in Not brauchen Hill 
rlassig, schnell, wirksam. Die beiden 


ernst. 


Deutscher Caritas verband r? 1 fS31 Diatonisches Wert 
Postgiro Karlsruhe 202 CU 00. Postgiro Stuttgart 502 

und viele Banken u. Sparkassen 


r 


38 



































geschaut, auf welchen 
Speicherplätzen in der 
Zeilenliste die Adressen 
der Platzhalter-Zeilen ste¬ 
hen und weiche Adresse 
eine Ersatzzeile hat, die 
formal statt der über¬ 
schrie benen Platzhalter- 
Zeilen dienen kann. Als 
ein solcher Ersatz dient 
in MIC die kurze Kom¬ 
mentarzeile ! 60. Die 
Adressen nach den Platz¬ 
halterzeilennummer (in 
MIC 180, 190 und 200) 
werden später mit der 
Adresse der Ersatzzeile 
(in MIC 160) überschrie¬ 
ben. 

Es muß dafür gesorgt 
werden, daß die Unterpro¬ 
gramme bei CALL-LINK- 
Aufrufen auch gefunden 
werden. Deshalb wird vom 
Basicprogramm aus 
die REF/DEF-Tafel am 
Ende des LOW MEMORY 

durch Poken erstellt. Die 
Anfangsadresse der REF/ 
DEF-Tafet muß nach 
Adresse 8196 geschrieben 
werden. In MIC geschieht 
das alles in Zeile 280 un¬ 
ter Verwendung der 
DATA-Zeilen 220 und 
230. 

Beim Entstehungsprozeß 
sollte nach Änderungen 
im Ur-Basicprogramm 
dieses wieder in eine im 
Speicher wohlgeordnete 
Form gebracht werden, 
z.B. mit der Anweisungs¬ 
folge 

SAVEDSK1.UR MIC/ 
M.MERGE 
NEW 

MERGE DSK1.UR MIC/ 
M 

SAVE DSK1 .UR_MIC 

, Nach den Vorbereitungen 
— die komplizierter klin¬ 
gen als sie sind — entsteht 
das lauf fähige, fertige Pro¬ 
gramm (hier MIC als Bei¬ 
spiel) durch die Anwei¬ 
sungen: 

OLD DSKl.URMIC 
(noch ohne Unterpro¬ 
gramme) 

CALL INIT 

(damit CALL LOAD 

funktioniert) 

CALL LOAD 
(“DSKI.MIC_UP") 

(das assemblierte Unter¬ 
programmpaket) 

CALL LOAD 
(-4718,254,158) 


SERVICE 


(Zeile 200 wie Zeile 160) 
CALL LOAD 
(-4714,254,158) 

(Zeile 190 wie Zeile 160) 
CALL LOAD 
(-4710,254,158) 

(Zeile 180 wie Zeile 160) 
SAVE DSK1.MIC 
(Abspeichern des fertigen 
Programms) 

Eine Liste des Assembler- 
Unterprogrammpaketes 
wird ohne Kommentare 
beigefügt. Die darin ent¬ 
haltenen Routinen 
PEEKV und POKEV sind 
in ähnlicher Form schon 
verschiedentlich veröffent¬ 
licht worden. 

Die Routinen XRSECT 
und XWSECT stammen 
vom Autor. Sie funktio¬ 
nieren unabhängig vom 
Typ des verwendeten 
Disk-Controilers. 

Hier noch die Erklärung, 

wie und wo die 32 Zei¬ 
chen File-Info-Text ge¬ 
speichert werden, die mit 
dem Katalog bei jedem 
File ausgedruckt werden 
können. Zu jedem File 
gibt es auf der Diskette 
einen Directory-Sektor, 
der den Filenamen sowie 
Informationen über Art 
und Länge enthält. Au¬ 
ßerdem steht dort, welche 
Sektoren der File belegt. 
Für letzteres ist sehr viel 
Platz vorhanden, so viel 
sogar, daß er selbst bei 
einem außerordentlich 
stark segmentierten File 
(der Inhalt ist über viele 
Bereiche der Diskette ver¬ 
streut) wohl nie ausgenutzt 
wird. Deshalb wird das 
hinterste Ende dieses Plat¬ 
zes, die letzten 32 Bytes 
jedes Directory-Sektors 
nämlich, für den zusätz¬ 
lichen Info-Text verwen¬ 
det. Diese Fiie-Information 
kostet also keinen Extra¬ 
platz auf der Diskette. 


DIE BENUTZUNG 
VON MIC 


Nach dem Programmstart 
(mit RUN “DSKx.MIC“) 

erscheint die Auswahl¬ 
liste 

***MULTI-INFO- 

CATALOG* * *** 

!. DISPLAY/PRINT 
CATALOG 


2. RE AD/W RITE FILE 
INFO 

3. READY 

YOUR CHOICE: 1 

Wird 1 (DISPLAY/PRINT 
CATALOG) gewählt, so 
erscheint am Schirm: 

CATALOG 
FROM DRIVE # 

TO PRT-DEV. 

Als Laufwerksnummer 
kann 1 bis 4 oder —1 bis 
—4 oder 0 eingegeben 
werden. Bei positiver 
Nummer werden alle In¬ 
formationen ausgegeben, 
bei negativer Nummer 
nur ein Teil. Die Null führt 
zurück zur ersten Auswahl¬ 
liste. 

Als Print-Device ist jede 
gültige Beschreibung zu¬ 
lässig, z.B. PIO oder 
PRINT oder RS232. 
DA=8.BA=4800 aber 
auch DSK3.AUSGABE 
(wozu auch immer Letz¬ 
teres gut sein mag). Wird 
ohne Eingabe nur ENTER 
gedrückt, so wird anfangs 

PIO angenommen und 
später das zuletzt einge- 
gebene Print-Device. Bei 
Eingabe von S erfolgt die 
Ausgabe am Bildschirm. 
Mit einer beliebigen Taste 
kann die Ausgabe angehal¬ 
ten und wieder fortgesetzt 
werden. 

Am Ende des Kataloges 
wird die Anzahl yy der 
Files (=Anzahl der Direc¬ 
tory-Sektoren) und die 
Anzahl zz der von diesen 
Files belegten Sektoren 
ausgegeben &U-yy+zz). 
Durch Vergleich dieser 
Summe mit der Anzahl 
der laut Sektor 0 belegten 
Sektoren (U=xxx) in der 
Kopfzeile des Kataloges 
kann auf eventuelle ver¬ 
borgene Sektoren ge¬ 
schlossen werden, auf die 
raffiniert geschützte Pro¬ 
gramme direkt zugreifen. 
Am Katalogende kehrt 
das Programm mit belie¬ 
biger Taste zur ersten 
Auswahlliste zurück. 

Wird 2 (READ/WRITE 
FILE INFO) angewählt, 
so erscheint am Schirm: 

READ/WRITE FILE 
INFO 
DRIVE #1 
FILE: EACH 


Als Laufwerksnummer 
kann 0 bis 4 ein gegeben 
werden, Die Null führt 
auch hier zur ersten Aus¬ 
wahlliste zurück. 

EACH kann mit einem 
Filenamen überschrieben 
werden. Dann wird der 
entsprechende Directory- 
Sektor auf der Diskette 
gesucht und ein eventuell 
schon existierender infor- 
mationstext gelesen und 
auf den Schirm geschrie¬ 
ben. Dieser kann dann 
überschrieben bzw. erst- 
• mals geschrieben werden. 
ENTER bewirkt das Rück¬ 
schreiben auf die Diskette. 
Außerdem sind die Tasten 
ERASE (Fctn 3), L1NKS- 
und RECHTSPFEIL. 
BEGIN (Fctn 5) und 
BACK (Fctn 9) sowie 
QUIT (Fctn =) wirksam. 
ERASE iöscht den ganzen 
Text, die Pfeile sind selbst¬ 
erklärend, BEGIN und 
BACK führen zurück in 
die letzte Auswahlliste, 
QUIT bricht das Pro¬ 
gramm ab. 

Wird EACH gewählt, so 
werden alle File-Informa¬ 
tionstexte der Diskette 
nacheinander ausgelesen 
und können überschrieben 
bzw. erstmals geschrieben 
werden. Hier kann die 
Verwendung der Taste 
REDO sinnvoll sein, die 
bewirkt, daß der beim 
letzten File benutzte Text 
ohne erneute Eingabe 
wiederbenutzt wird. Wird 
ca. zwölf Sekunden lang 
keine Taste gedrückt, so 
geht das Programm zum 
nächsten File weiter. 

Das Beschreiben einer 
Diskette mit den zusätz¬ 
lichen File-Info-Texten 
ist erst dann zweckmäßig, 
wenn sie zu einer Archiv- 
Diskette ausgegoren ist. 
Jede Änderung eines Files 
und jedes Kopieren — 
wobei ja das Betriebssy¬ 
stem den Direct ory-Sek- 
tore auf den neuesten 
Stand bringt — löscht den 
Informationstext. Nur 
solche Kopierprogramme, 
die sektorweise oder spur¬ 
weise kopieren (z.B. 
QUICKCOPY, SECTOR- 
COPY, TURBO u.a.), las¬ 
sen diese Texte bestehen. 

Dr. W. Jüngst 


i 


39 


















100 ! PROGRAMMNAME: MIC <MUL 
TI-INFO-CATALOG) 

110 ! BENOETIGT 32K-ERWEITER 
UNO 

120 ! LIEFERT: SEKTOR-0-INFO 
RMATION, BU/BP/MA BEI PR0GRA 

H, 

130 ! 5 ANFANGSWOERTER BEI M 
A-PGM, SEKTDRENBELEGUNG JEDE 
8 FILES SOWIE 

140 ! FILE-INFORMATION (LETZ 

TE 32 BYTES DES DIRECTQRY-SE 
KTORS). 

130 ! ERMOEGLICHT LESEN UND 
SCHREIBEN/MODIFIZIEREN DIESE 
R FILE-INFORMATION. 

160 ! 

170 ! W.JUENGST (1/86) 

180 ! 



190 


# 


200 



# 

210 DIM A(10),TYP*(S) 

220 DATA 88,82,83,69,67,84,2 

53.130.88.87.83.69.67.84.253 
,120 

230 DATA 80,69,69,75,86,32,2 

53.236.80.79.75.69.86.32.254 
,44 

240 DRÜ*="PIQ" :: GOTO 270 : 

: CALL INIT :: CALL LOAD :: 
CALL KEY :: CALL LINK ii CAL 
L PEEK :: CALL CLEAR !: CALL 
HCHAR 

250 A*,B*,C*,BA»,C*,DN*,DR*, 
H*,N*,P*,SI**Z* J! B,C,DN,FN 
,FT,X,J,K,L,M,N,NO,P,S,Sl,ST 
,X,XG,XT,Y=Z 
260 !@P- 

270 Z*="0123456789ABCDEF" :: 

TYP* <1)*"DIS/FIX ■ :: TYP*( 
2) * “DIS/VAR * :: TYP* (3) ■ " IN 
T/FIX ■ :: TYP*(4)■"INT/VAR 
" :: TYP»(5)“"PRQG * 

280 CALL INIT CALL LOAD (8 
196,63,224):.' FOR C-16352 TO 
16383 :I READ B :: CALL LOA 

D(C,B):: NEXT c 

290 DISPLAY AT(6,2)ERASE ALL 

:"*#*MULTI-INFO-CATALOG###V 
:: DISPLAY AT(12,2);"1. DISP 
LAY/PRINT CATALOG" 

300 DISPLAY AT<14,2):"2. REA 
D/WRITE FILE INFO" :: DISPLA 
Y AT(16,2): M 3. READY” :: DIS 


PLAY AT(21,8):"YOUR CHOICE: 
1” 

310 ACCEPT AT(21,21)VALIDATE 
("123")SIZE(-1):J IF J*3 
THEN STOP ELSE IF J-2 THEN 7 
80 ELSE CALL CLEAR 

320 no=0 :: print : :"Catalo 

G” :: INPUT "FROH DRIVE #":D 
N :: IF DN<0 THEN DN*-DN :: 
NO« 5 -1 

330 IF DN*0 OR DN>4 THEN 290 
340 INPUT “TO PRT-DEV, " : DR* 

:: dn*»str*(dn):: fn-2 :: F 
t«0 :: xt*0 

350 IF DR«*"“ THEN DR*=DRG* 
:: DISPLAY AT(23,13);DR* 

360 DRO*=DR* :: IF DR*="S" T 
HEN FN-0 t: GOTO 370 ELSE OP 
EN *2:DR* 

370 OPEN # 1 : " DSK " &DN*8e" . " , IN 
PUT ,RELATIVE,INTERNAL :: IN 

PUT hi:n*,j,j,k 

380 PRINT #FN: :"DSK=";N*;TA 
B (16) f "F« ,, | STR* (K) | TAB (23) I M 
U-”|STR*(J-K) 

390 CALL LINK("PEEKV”, 15611, 
I,X,X,X,J,K,L,M)!! IF J«32 T 
HEN J«65 

400 PRINT #FN: "SI = ,, 6cSTR*(L) fe 
" TR/SI“ H 6tSTR* (K) 6," SE/TR**''& 
STR* CI) w D»’ , 6<STR*(M) fTAB(28 
)|CHR*(J):s PRINT *tFN:RPT*( M 
-",28) 

410 CALL KEY(0,X,ST):; IF ST 
Ol THEN 430 

420 CALL KEY(0,X,ST);: IF ST 
< >1 THEN 420 

430 BA*=”/MA " :: INPUT #i:n 

*, I, J,K :: si*<*"* :: if l.en( 

N*)*0 THEN 730 

440 PRINT #FN:N*jTAB(12)fSTR 
*(J)JTAB(16)|TYP*(ABS(I))t : : 
IF NO THEN 510 

450 XO*-1 :: FOR ST=15627 TO 
15657 STEP 3 :: CALL LINKC 
PEEKV”, ST,L,M,N) 

460 S*L+256*(M-16*INT(M/I6>) 

:: IF S=0 THEN 500 

470 IF ST-15627 THEN S1=S 

480 z=s :: GOSUB 760 :: SI*= 

SI*6<H*6<" - “ :: X* I NT (M / 16) +16 

#N :: Z-S+X-XG-1 

490 GOSUB 760 :: SI*=SI*&H*6< 

N " :xo»x :: next st :: SI 

*»SI*fe"#" 

500 ft»ft+i :: xt=xt+xo+i 

510 CALL LINK("PEEKV”,15823, 
A(0),A(1)):: IF A(0)“0 THEN 
C*»"" :: GOTO 550 ELSE C*»CH 
R* (A < 0) ) 8cCHR* (A ( 1 ) ) 

520 FOR X=0 TO 2 

530 CALL LINK("PEEKV",15825+ 

10#X,A<0) ,A C1) ,A(2),A(3),A(4 


40 









IF DN« 


>,A(3),A(6>,A(7>,A<8) ( A(9)) 

540 FOR S=0 TO 9 :: C*=C*kCH 
R*(A(S>}:: NEXT $ ;; NEXT X 
530 B*="“ :: IF ABS(I)=5 THE 
N IF NO THEN 660 ELSE 570 
560 PRINT «FN:STR*(K){:: GOT 
0 660 

570 CALL LINK("XRSECT",DN,S1 
> 

580 CALL LINK("PEEKV", 15599, 
A(i),A(2), A (3), A (4), A (5),A(6 
>,A(7),A(8>,A<9),A<10>) 

590 L=A(2)+256#A(1):: IF L-0 
THEN 430 

600 M=A(4)+256*A(3):; N=A(6) 
+256#A(5):: IF M>32767 OR N> 
32767 OR M=N THEN 630 
610 P*="U " :: IF L>32767 TH 
EN L-63336-L :: P*»"P '* 

620 IF (N XOR M)=L THEN BA*= 
* / B " l<P* 

630 PRINT #FN:BA*;:: IF BA*< 

>"/MA ■ THEN 660 

640 FOR S=1 TO 9 STEP 2 :: F 

OR L*0 TO 1 :: Z**A(S+L);: M- 

INT(2/16):: N»2-16*M 

650 B*=B*&SEG* (2*, M+l, 1 > E<SEG 

*<Z*,N+1,1)!: NEXT L :: B*»B 

*V ■ ;; NEXT S 

660 P*=“U" :: IF I<0 THEN P* 

3 II p H 

670 PRINT #FN:TAB(28)fP*5:: 
L=- i 

680 IF C*<>" H THEN PRINT #FN 
:TAB(FN#17>|C* :: L»0 
690 IF SI*<>"" THEN PRINT #F 
N:TAB(FN#17)|SI* !S L-0 
700 IF B*< >"“ THEN PRINT #FN 
!TAB(FN#17)|B* :: L*0 
710 IF L THEN PRINT #FN 
720 IF FN THEN 410 ELSE PRIN 
T :; GOTO 410 

730 IF NOT NO THEN PRINT #FN 
I TAB (FN#17) | "U“ *ftcSTR* (FT) 6t" + 
"fteSTR* (XT) 

740 CALL KEY(0,X,ST):: IF ST 
Ol THEN 740 

750 CLOSE ttl IF FN>0 THEN 
CLOSE «2 :: GOTO 290 ELSE 2 
90 

760 H*="" :: P-256 FOR 3 = 
l TO 3 :: Y»INT(2/P):: hs=h* 
&fSEG*(2*, Y+l, 1) : : IF P-l THE 
N RETURN 

770 z=z-Y#p :: P=P/16 :: NEX 
T J 

790 CALL LOAD(-31806,16):: D 
ISPLAY AT<2,1 JERASE ALL!"REA 
D/WRITE FILE INFO" 

790 DISPLAY AT(4,1/:"DRIVE # 
1" :: DISPLAY AT(6,1):"FILE; 
EACH" 

600 ACCEPT AT(4,8)VAL IDATE(" 


L 

I 

S 

T 

I 

N 

G 

S 


01234”)SIZE(-1);DN i • 

0 THEN 290 
810 ACCEPT AT(6,7)SI2E(-10): 
A* ;; L-LEN(A*) 

820 B*= B ■ :: NO=0 :: IF A*=" 

EACH" THEN NO—1 

830 FOR FN-15599 TO 15853 ST 

EP 2 si = i :: call, linkcx 

RSECT“ ,DN,S1) 

840 CALL LINK(“PEEKV",FN,B,C 
Si=256#B+C :: IF Sl=0 TH 
EN 790 

850 CALL LINK("XRSECT“,DN,S1 
):: IF NO THEN 890 
860 FOR N*1 TO L :; CALL LIN 
K<"PEEKV",15S98+N,J) 

870 IF J<>ASC(SEG*(A*,N,1))T 
HEN 1120 

880 NEXT N :! GOTO 910 
890 A*»"" :: FOR N=1 TO 10 : 

: CALL LINK("PEEKV",15598+N, 
J > S: IF J-32 THEN 910 
900 A*=A*&CHR*( J):: NEXT N 
910 DISPLAY AT(6,7)1A* 

920 DISPLAY AT(10,1):"INFQ-T 
EXT IN DIRECTORY;" 

930 FOR 1=1 TO 32 :: CALL LI 
NK("PEEKV",15822+1,J) 

940 CALL LINKi"POKEV”,351+1, 
J+96):: NEXT I :: m=0 

950 1=0 

960 IF I<32 THEN 1=1+1 
970 CALL HCHAR <13, 1,32,32):: 

CALL HCHAR(13,1,45);; P-0 
980 CALL KEY(0,X,ST);: P=P+1 
:: IF ST-1 THEN 990 ELSE IF 
P< 300 THEN 980 ELSE 1060 
990 IF X=13 THEN 1060 ELSE I 
F X-7 THEN 950 ELSE IF X*14 
OR X-15 THEN 730 
1000 IF X<>6 THEN 1020 
1010 CALL HCHARt12,1,32,32): 

; FOR 1*1 TO LEN < B*);: CALL 
HCHAR(12,I,ASC(SEG*(B*,1,1)) 

):; next i :: m— l j i goto ? 

50 

1020 IF X=5 THEN STOP ELSE I 

F X03 THEN 1040 

1030 IF I>! THEN 1=1-1 GO 

TO 970 ELSE GOTO 980 

1040 IF X=9 THEN 960 

1050 CALL HCHAR(12,I,X):: M* 

-1 ;; GOTO 960 
1060 IF NOT M THEN 1100 
1070 DISPLAY AT<16,1):"REWRI 
TING TEXT" :: B**"" !! FOR I 
*1 TO 32 

1060 CALL LINK("PEEKV",351+1 
,J);: -96 ;; CALL LINKCP 

OKEV" , 15822+1, J ): : B*»B*6cCHR 
*(J)i: NEXT I 

1090 CALL LINK!"XWSECT",DN,S 


41 
















i) 

1100 IF NOT NO THEN 780 
1110 CALL HCHAR(16,1,32,16): 
: CALL HCHARCJ2, 1 ,32,64) 

1120 NEXT FN 



PEEKV 



MA 


* 

* 

* 

* 

* 

* 

•# 

* 

P 

* 

* 

* 


MIC_UP(S) READ/WRITE DSK-SECTGR 

AND PEEKV/PGKEV FRON XB 
FOR MIC (MULTI-JNFO-CATALCG) 

CALL LINK("XREECT*,DRIVE#,SECTOR#) 
CALL LINK i -XWSECT",DRIVE«,SECTOR#) 

SECTQR-CÜNTEMTS i|i* vdp-locatiüns 

STARTING PROM >3CEF 

CALL LINK("PEEKV*,ADDR,XI,X2,. . . ) 

CALL LINK('POKEV",ADDR,XI,X2,. . . ) 


R 


poil: v 



FUF 
SC TAD 
FLAG 

XWSECT 


W.JUENGST 


AORG 

DATA 

DATA 

DATA 

DATA 

LWPI 

CLR 

JMP 

LWPI 

SETO 

CLR 

LI 

BLWP 

BLWP 

DATA 

MOV 

LI 

BLWP 

BLWP 

DATA 


( 1 / 86 ) 

>FD54 

0 , 0,0 

0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,0 



XRSECT 

GOON 


0 

REG 

@FLAG 

GOON 

REG 

@FLAG 

0 

1,1 

e > 200 c 
@>2018 

> 12B8 
@>834A,3 
1,2 

e > 200c 

@>2018 

> 12B8 


GE i VAI 
GETvA 



■T 


RE 


MOV 

@>834A,@>8350 

MOV 

SFLAG,@FLAG 

JEQ 

WRT 

AI 

3, >100 

SWPB 

3 

MOV 

3,@ >S34C 

MOV 

@SCTAD,@>834E 

LWPI 

>83E0 

LI 

12,>1100 

SBO 

0 

MOV 

@>400A,1 

MOV 

@2(1).1 

BL 

*1 

SBZ 

0 

SBZ 

0 

SB 

@>337C,@>337C 

B 

@>70 


LWPI 

BL. 


CLR 

M0V8 

ERi 

MOV 


REG 

@GETVAL 
@>834A,0 

1 , BUF 

@>8312,2 

2,S 

2 

@>202C 

0 

@>834A 
0BUF-1(2) 
@>2018 
>20 
2, I 
1 

@>2008 
2 

NA 
>3 
RET 
REG 

8GETVAL 

@>S34A,12 
0 

@>8312,13 
13,8 

13.1 
13 

0GETVA 
@>834B,@BUF 
1 

1.1 

PI 

1, BUF 
12,0 
13,2 
@>2024 
0 

R 

1,1 

0 

@ > 200C 
@>2018 
> 12B8 


Nutzen 


42 






































LISTING 




Ihre Aufgabe in diesem 
Action-Grafik-Ad venture 
ist es, die geheime Grab¬ 
kammer des Gottes 
“Chaca“ und dessen 
Schatz zu finden. Ein bi߬ 
chen Glück, aber vor al¬ 
lem Geschicklichkeit, 
sind für die Bewältigung 
des Adventures nötig. 

Das Programm ist in drei 
t eile aufgeteiit, so daß 
nur ein Recorder und das 
Ext. Basic-Modul erfor¬ 
derlich sind. 

Teil 1 enthält neben dem 
Titelbild und Char-Defi- 
nitionen für Teil 2 die 
Hintergrundgeschichte des 
Adventures und eine 
Bedienungsanleitung. 

Teil 2 und 3 sind dann 
das eigentliche Spiel. 

Wenn vom Menü des Teils 
1 aus durch Drücken der 
"3“ das Spiel begonnen 
werden soll (Laden von 
Teil 2), so sehen Sie einen 
Sprite auf dem Bildschirm 
nach oben laufen. Drücken 
Sie nun solange die 
ENTER-Taste, bis dieser 
stillsteht. Stellen Sie nun 
Ihren Recorder auf “Play“. 
Ist Teil 2 geladen, so be¬ 
wegt sich der Sprite wie¬ 
der. Drücken Sie jetzt 
nochmals die ENTER-Taste 
so beginnt das Spiel. 

Ebenso ist beim Laden des 
Teils 3 von Teil 2 aus 
(falls dieser erfolgreich ge¬ 
schafft wurde!) zu verfah¬ 
ren. Falls Sie in Bild 1 
oder 2 einen Fehler ma¬ 
chen, beginnt alles von 


Nach dem Eingeben und 
Starten des Programms 
in den TI mit Extended 
Basic, meldet sich der 
Computer mit dem 


Gute Grafik und 
netter Sound 
zeichnen dieses 
Adventure aus 


vorn. Erreichen Sie jedoch 
Bild 3, so fangen Sie bei 
einem Fehler immer wie- 


Menü. Unter Punkt I 
kann man Kurzinformatio 
nen erhalten, die eigent¬ 
lich die Benutzung des 
Programms gestatten. Im 


der in der untersten Ebene 
dieses Bildes an, es sei 
denn, der Fehler erfolgt 
in Ebene 1. 

Steuerung: Die Steuerung 
erfolgt mit Joystick 1 in 
üblicher Weise. Der Feuer¬ 
knopf wird erst ab Bild 3, 
Ebene 2 benötigt, um 
nach links, bzw, rechts 
zu springen (statt zu 
gehen). 

Anmerkung des Autors: 
„Ich übernehme keine 
Haftung für verbogene 
und an die Wand geschmis¬ 
sene Joysticks (Ende 


Normalfall wird der User 
die Option STE flG ver¬ 
wenden, da in den mei¬ 
sten Fällen die zu integrie¬ 
rende Funktion bekannt 


ist. Bei dieser Option muß 
man den Rechner stoppen 
und die Funktion in 
Zeile 260 definieren. Nach 
dem Neustart und der 
Programm wähl 2 fragt 
■ der Rechner zuerst die 
Intervallgrenzen ab, zwi¬ 
schen denen integriert wer¬ 
den soll. Nun muß noch 
die Zahl der Subintegrale 
eingegeben werden (nur 
gerade Anzahl möglich). 
Von dieser Zahl hängt die 
Genauigkeit und Schnellig¬ 
keit der Berechnung ab 
(je größer, desto genauer, 
aber auch um so langsa¬ 
mer). Nach dieser Eingabe 
berechnet der Computer 
das integral und zeigt das 
Ergebnis an. Sollte man 
eine Wiederholung wün¬ 
schen, so gebe man FCTN 
RE DO ein, zum Menü zu¬ 
rück kommt man mit 

FCNT BACK. 

Beim Programmteil 
UNSTETIG ist die Funk¬ 
tion nicht in der Form 
F(x)=... bekannt. Man 
kennt nur einige Punkte, 
durch welche die Funk- 
' tion geht. Diese Punkte 
müssen den gleichen Ab¬ 
stand zwischeneinander 
besitzen. Dieser Abstand 
wird zuerst vom Compu¬ 
ter erfragt. Anschließend 
erkundigt er sich wieder 
nach der Anzahl der Sub¬ 
integrale (wieder nur ge¬ 
rade Anzahl möglich). 
Dabei ist zu beachten, 
daß N+l Punkte der Funk¬ 
tion bekannt sein müs¬ 
sen (F(0), F( 1), F(2),... 
F(N)). Nun folgt die Ein¬ 
gabe der Punkte. Sollten 
einer oder mehrere falsch 
eingegeben worden sein, 
so besteht noch die Mög¬ 
lichkeit der Korrektur. 

Ist der Eingabeteil abge¬ 
schlossen, berechnet der 
Computer das Integral. 

Auch bei dieser Option 
ist die Möglichkeit der 
Wiederholung gegeben 
(wie oben), U 


des Zitats)“! 



i 


43 





























































10 

1 

a 


11 

f 

* 

DAS GEHEIMNIS VON 

* 

12 

I 

* 

CHICHEN ITZA 

* 

13 

i 

* 

(Teil 1) 

■K- 

14 

i 

a 

* 


* 

15 

a 

* 

Copyright by 

* 

16 

| 

■ 

* 


# 

17 

m 

* 

Manfred Lipowski 

* 

18 

1 

* 


* 

19 

1 

* 

Benoetigte Geraete 

* 

20 

• 

* 

TI99/4A Konsole 

# 

21 

« 

* 


Ext. Basic 

* 

22 

1 

* 

Joystick 1 

* 

23 

1 

a* 

-Ifr 

Cassettenrec. 

* 

24 

1 

* 

*(oder DISK+32K—Erw.] 


25 

t 

m 

* 


• • 

26 


* 

Speicherbelegung 

* 

■ - « 

27 

f 

m 

* 

10910 Bytes 


28 

1 

* 


§■ j . « 

29 

9 

w 

********************** 


7F3F1F03,62,C0E0F0F0E0ECFEFE 
FEFCF8C,136,FFFF 

190 DATA 128,071820211E0C182 
06649C1827C55AA7CE0180C02424 
20202845820808,132,071F3F3F1 
F0F1F3F7F7FFFFF7F7FFE7CE0F8F 


r 


! ■ 


100 CALL CLEAR :: CALL SCREE 
N(2):: CALL MABNIFYt3>*s CAL 
L COLOR(2,16,1,14,16,1,10,5, 
1,9,14,1,12,11,1,1,4,1,3,7,| 
,11,4,1) 

110 DATA 40,F04848494A4A4AF1 


■ 


>r 


— , i. 


v . *-■ 


I" r K 



f «. I *1 




y-i 






2910000000CA2D2929C9,44 *7088 
88A1BAAB8A71 


v. 


v .>“- < 


ff 1 ■. “ r 


v- 



vV'.'" 



; s r - Üw 

h rjwr-M:; /.' :- j ■ j - _ 


, '■ 7 ■ B 1 


. r 


I " 


120 DATA 137,00200B26AQA4A2A 
C,96,3C6642404042663CA5E7427 
E4242E7A51818001818183C663C6 
640707840663C 

130 DATA 100,A5E7725A4E46E7A 
5FF7E181B18183C66FF7E060C183 
07EFF3C66427E6642E7A5,104,65 


Vf . - ; 

■ ■■• . 
■ u . 

■*-'.7 


■ ■■ - i; *.. t» ■ 



00222022222222BA00C4AAAACA8A 

BA84 

140 DATA 108,B88989A8A8AA510 
0C92A0C8A4949890041024259424 
241009E5050BC42528C,120,7FC0 
B0BF989090919190909B8F8BC07F 
FE0301F11909098989090919F101 


r —. 


* ■-. V 


. V. 


150 DATA 124,91998999B1A1B19 
1FF0070BB0E0000FF,33,FFFFFFF 
FFFFFFFFF,112,00000000030F3F 

FFFFFFC0F0FCFFFF 


FFFFFF00000000C0F0FCFF 
160 DATA 116,FFFFFFFFFFFCF0C 
0FFFCF0C,118,FF3F0F03,119,FF 
FFFFFFFF3F0F03,36,FFFFFFFFFF 


. Jj ■■■ 




FCF0C,37,, 


, 


FFFCF0C,39,,48, 


170 DATA 49,,50,FFFFFFFFFF3F 
0F03,51,,52,000070FCFEFF7F3F 
00000E3F7FFFFEFC,56,03040A0B 
05344A4B4A2S1E03,58,C0205010 



180 DATA 60,03070F0F07377F7F 


■ -r J, 


r ‘ _ 


«■ ■ -» 


200 RESTORE 110 :: FOR A=1 T 
O 30 s.* READ B, B$ : : CALL CH 
AR(B,B$)t: NEXT A 

210 CALL HCHAR(1,1,125,32):: 

CALL VCHAR(1,1,124,24)s: CA 
LL HCHAR(24,1,125,32):: CALL 
VCHAR(1,32,124,24) 

220 CALL HCHAR(1,1,120):: CA 
LL HCHAR(1,32,122):: CALL HC 
HAR(24,1,121):: CALL HCHAR(2 
4,32,123) 

DISPLAY AT(3,9):”() / 

" s: DISPLAY AT(5,4)s"* 

: : CAL 



i r 


ab 


N V i 




- f,*- ■ 
r"_ r * i■ ■ - 



* r . i 





■ ■ L ■ . 



V-i. 



a c d b e -f g" 
(3,18,137) 
Ä*104 TO 111 

-103,A) 



CALL 

NEXT 






V\* . - 


i * • ; ’ v 


t . y *- v 


v 


* ■_ 




yj 







1 r,*. ,► •• .«• 

ili &ilfp 

-- 1 - s;'V: . - r, 






PI AV 






VCHAR(13,16,33,6) : s 
(13,17,33,6):: CA 
(11,14,33,6):: DISPL 
<12,12):"vw!!tu” :: DIS 
(19,12)!"pq!!rs" 

HCHAR(20,9,136,16): 

:AT(10,14)s”45“ :: 
CALL SPRITE(#1,128,2,137,121 
,#2,132,16,137,121) 

270 CALL SPRITE(#3,56,11,66, 
121,#4,60,5,66,121,#5,4B,13, 
86,113,#6,36,13,88,129) 

280 DISPLAY AT(21,4):"PRESS 
ANY KEY TO BEGIN" :: CALL CO 
LOR(5,8,1,6,8,1,7,8,1,8,8,1) 
CALL COLOR(#4,7,#3,5,#4, 
9,#3,6,#4,10,#3,8)s: CALL KE 
Y (0 , K,S j » * IF S=0 THEN CALL 

,9,#3,2,#4,7):: GOTO 












_C r 


DEL S PR ITE ( ALL) 

310 CALL CLEAR :: CALL CHARS 
ET 8S RANDOMIZE :: FOR A=65 
TO 90 ss CALL CHARPAT(A,B*): 
8 CALL CHAR(A+32,B* >:: NEXT 
A 

. 9 ■ «■ - - - - ■ ' 

320 CALL CHAR(64,"3C4299A1A1 
99423C",128,”00014241E242616 
06354595241404040E0F0B0F0604 
CBA64ACF24AF1A2C28C88") 

330 CALL CHAR(132,"070F0D0F0 
6325D26354F528F4543311100804 
28247428606C62A9A4A82020202" 
,136,”4245444344444848505048 
4844464C58A0D890601010202040 
40202010183060") 

340 CALL CHAR < 40,"000000FF", 
140,"050B0906080804040202040 


44 
































ß . SS 1B0C0642A222C2222212120A0 


A121222 


1A") 

CALL COLOR(2,11,1,3,5,1, 
1 1 1 » 7 1 1 » 9 , 0 , 

1,9,8,1,10,8,1,11,8,1,12,8,1 

) ■ 

360 CALL COLOR<0,7,1,1,16,1) 
:: DISPLAY AT(1,3):"MANFRED 
LIPOWSKI PRESENT": : 

II - 


II 


geneimms von 
chi chen itza ! 11 


II 


m m 


370 DISPLAY AT<8,3):"<§ 1905 
OKTOBER M.LIPOWSKI" :: CALL 


SPRITE(#1,128,15,24,36,#2,13 
2,15,24,200,#3,136,15,40,36, 
#4,140,15,40,200) 

380 CALL HCHAR(10,1,40,32):: 

DISPLAY AT(12,3):"1 = EINFU 
EHRUNG"; :"..2 = SPIELERKLAE 

RUNG": s"..3 = SPIELANFANG" 

390 DISPLAY AT(18,1):: DISPL 
AY AT <20,1>;: DISPLAY AT<22, 
1):: DISPLAY AT <24,1)BEEP 

400 CALL Z(1,K):: IF K<49 OR 
K>51 THEN 400 ELSE ON K-48 
GOTO 410,570,780 

410 DISPLAY AT(12,3):"die st 
adt chichen itza": :"..,ceno 
te von den indios”; :"..und 
dzanot von den mayas"; :"..g 
enannt,liegt in einem" 

420 DISPLAY AT(20,3):“karsti 
gen gebiet oestlich": :*..vo 
n fne>:ico,au4 der halb—": 
.insei yutacan." :: CALL Z(2 
,K) 

430 DISPLAY AT(12,3):"die la 
ndschatt dort ist": :"..meis 
t steinig und nur": :"..spae 

rlich bewachsen.": :”..wasse 

■ 

r loest das kalkge-" 

440 DISPLAY AT(20,3):"stein 
und verursacht rit— n : 
n,durch die das wasser": : " - 
-in hoehlen sickert-" :: CAL 
L Z < 2, K) 

458 DISPLAY AT (12,3) : 11 durch 
korrosion werden die 4 ’: ; " - . h 
oeh len, auch dolinen ge~": 

, , nannt, i mmer groesser , di e": 

: lf * - geologen sind so gut wi 


460 DISPLAY AT(20,3):"sicher 
, dass der heilige": :".,farun 
nen von chichen itza": :"- -s 
o entstanden ist, 11 :: CALL Z 
<2,K) 

470 DISPLAY AT(12,3):"die ma 
yas hatten einen": i 11 -. regen 
gott namens chaca.um": :",.s 
ich seine gunst zu er“": 
•halten erklaerten sie die" 
4S0 DISPLAY AI(20,3)*"farunne 



n zu heiligen staet“"* :",.t 
en und opferten dort was"s : 
"••ihnen lieb und teuer war, 
" =: CALL Z(2,K> 

490 DISPLAY AT(12,3)s"gold,j 
uwelen und auch men—": :",.s 
chen wurden in chi chen 11 £ : ” „ 


. dtza geopfert.gold und": :" 
.-edelsteine lockten seit" 

500 DISPLAY AT(20,3>;"jahrhu 
nderten alle moeg—": :"..lic 
hen abenteurer an. die": : ". 


-ersten waren Spanier," :: C 
ALL Z(2,K> 

510 DISPLAY AT<12,3): "nach d 
er Unterwerfung des” : 5 " *,az 


tekenreiches versuchten": s" 
--sie mit primitiven mittein 
": :",- das gold zu bergen-" 

520 DISPLAY AT(20,3)s"als di 

e suche zu schwierig": :",•w 
urde, geriet der heilige": : 11 


-_ brunnen 



:: CALL Z <2,K) 

530 DISPLAY AT(12,3):"zwisch 
en 1904 und 1907 ge- tl s : ", . 1 


ang es einer amerikani—": : 


--sehen expedition,gald—": : 

"--schmuck und Juwelen zu" 
540 DISPLAY AT(20,3):"bergen 
• zwischen 1954 und": s 11 -.197 


2 barg eine mexikanisch": : iT 
«-—amerikanisehe expedition" 
:: CALL Z(2,K> 

550 DISPLAY AT(12,3>:"mehr a 
1s 4000 stuecke-bei": s"..di 


i# 


xpedition ereigne- 
.ten sich mysterioese vor— 

1e:1 eiter,cheftau 


il 


It 



560 DISPLAY AT(20,3):"und di 
rektar des Instituts": :"..s 
tarben eines unnatuerli—": : 

"..chen todes..." ;: CALL Z( 
2,K):: GOTO 380 
570 DISPLAY AT(12,3)s"ihren 
namen bitte": :.herr arche 
ol oge. : : ”. - DR. s ” : : " " : : " 


580 ACCEPT AT(16,7)BEEP VALI 
DATE(UALPHA,". ~")SIZE(14):N 
AM* :: CALL FGP(NAM*) 

590 FOR A=i TO 450 :: NEXT A 
600 DISPLAY AT(12,3):"SIE SI 
ND archeologe UND": :"..WOLL 
EN DIE GEHEIME grab-": : " . . k 
ammer DES ALTEN maya": : 11 . . g 
ottes chaca IN chichen" 

610 DISPLAY AT(20,3)s"itza F 
INDEN." :: CALL Z(2,K) 

620 DISPLAY AT(12,3):"DAZU B 
ENOETIGEN SIE ERST-": :"__MA 
L DIE sonnen sehe i be DIE": • ** 


45 
































w 










1 





..DIE mayas VOR LANGER ZEIT" 

: i"..IM brunnen VERSENKTEN. 
11 

630 DISPLAY AT(20,3) s"ABER V 
ÜRSICHT BEIM tauchen”: : H ..A 
UF DEM GRUND DES BRUNNENS"! 

..SIND EINIGE muraenen." s 
: CALL Z(2,K) 

640 DISPLAY AT(12,3):“EIN ei 
nziger biss IST": :"..toedli 
ch.WERDEN SIE BEIM": s"..TAU 
CHEN gelb SOLLTEN SIE": : ". . 
SO SCHNELL WIE MOEGLICH" 

630 DISPLAY AT(20,3):"NACH o 
ben SCHWIMMEN UM": :".„luft 
ZU SCHNAPPEN.VERSAEU-"s :".. 
MEN SIE DIES sterben SIE «" 
:: CALL Z(2,K) 

660 DISPLAY AT(12,3):"DIE so 
nnenscheibe LIEGT": :"..IRGE 
NDWO AUF DEM GRUND DES": :". 

.BRUNNENS—schwarz—: :"..HA 

BEN SIE SIE ALSO GEFUN—" 

670 DISPLAY AT(20,3):"DEN ER 
TOENT EIN akusti-": :"..sehe 
s Signal.BEGEBEN SIE": :"..S 
ICH IN RICHTUNG leiter !" :: 
CALL Z(2,K) 

680 DISPLAY AT(12,3):"JETZT 
MUESSEN SIE DEN": :"..R1CHTI 
GEN tempel FINDEN.": :”..SIE 
HABEN nur 2 chanchen": 

IHN ZU FINDEN.VERSAGEN" 

690 DISPLAY AT(20,3):"SIE HD 
LT SIE DER ALTE": :"..mayago 
tt chaca ! ! !" •: DISPLAY A 

T(24,3):: CALL Z<2,K) 

700 DISPLAY AT(12,3):"HABEN 
SIE DEN RICHTIGEN": :"..temp 
ei GEFUNDEN WIRD IHNEN": :". 
.DER GOTT EINEN ZUGANG ZUR": 

:"..grabkammer ZEIGEN," 

710 DISPLAY AT<20,3):"EINE D 
ER unterwasserhaeh-": :"..1e 

n WIRD DURCH DEN LICHT-": :- 
..EINFALL AUF DIE sonnen-" : 

: CALL Z(2,K) 

720 DISPLAY AT(12,3):"scheib 
e ERLEUCHTET.DORT-": :"..HIN 

MUESSEN SIE tauchen.": . 

Vorsicht VOR DEN ANDEREN": : 
"..HOEHLEN.ETWAS grauenvol1e 


L 

I 

S 

T 

I 

N 

G 

S 


730 DISPLAY AT(20,3):"ERWART 
ET SIE DARIN ! WENN": :".,5I 
E DURCH DIE HOEHLE TAU-"; :" 

..CHEN PASSEN SIE AUF." :: C 
ALL Z(2,K) 

740 DISPLAY AT(12,3):"VERLET 
ZEN SIE SICH NICHT“: :"..AN 
DEN -Fel skannten SONST": 
hauchen SIE IHR leben AUS.": 

:"..VERSUCHEN SIE DIE sonne 


750 DISPLAY AT(20,3):"scheib 
e AUF DER LINKEN-" : : " . . SEITE 

ZU ERREICHEN." :: DISPLAY A 
T(24,3):: CALL Z(2,K) 

760 DISPLAY AT(12,3):"DANACH 
MUESSEN SIE NOCH": :".,EINI 
GE gefahren AUF SICH”: ;'*..N 
EHMEN UM DEN schätz ZU": :". 

.ERREICHEN.VIEL glueck" 

770 DISPLAY AT<20,3>:"DR.";N 
AM*;" !" :: DISPLAY AT(22,3> 

:: DISPLAY AT(24,3):: CALL Z 
(2,K):: GOTO 380 
780 DISPLAY AT<12,3):"erster 
piepton: cassette": e "..bis 
listing 2 vorspulen.. 
zweiter ton:play druecken. 

:"..dann enter druecken" 

790 DISPLAY AT <20,3):"3,4ter 
ton:enter druecken”: :"..al 
les klar ?"s bitte taste 

druecken." :: CALL Z(2,K) 
800 DISPLAY AT(24,3):"BITTE 
WARTEN.LESE DATEN." :: FOR B 
=1 TO 400 :: NEXT B :: CALL 
CLEAR 

810 CALL MOTION(#3,—5,0,#1,— 
5,0,#2,5,0,#4,5,0) 

820 DATA 32,,33,080808,34,00 
0000000808080808080808080808 
08,36,0808101028240808000000 
08080B0000080804040B10080808 
21442412520208 

830 DATA 40,FF8090A890878485 
FF00251B00FF00FFFF01091509E1 
21A1FF00A4D800FF00FF,44,8585 
8585Q5B58585A1A1A1A1A1A1A1A1 
804020100F0F0F0F0F0F0F0F0F0F 
0F0F 

840 DATA 48,01020408F0F0F0F0 
F0F0F0F0F0F0F0F0FD050B0A0B14 
1714282F28505F50A0FF,52,BFA0 
D050D028E82814F4140AFA0A05FF 
FF00FF00FF00FF0000FF0000FF00 
00FF 

850 DATA 56,FFFFFFFFFFFFFFFF 

0101030307070F0F1F1F3F3F7F7F 

FFFF8080C0C0E0E0F0F,60,F8F8F 

CFCFEFEFFFF01030102030F3CFB8 

0C08040C0F03CDF 

860 DATA 64,427E427E427E427E 

,65,,66,10101010080808080808 

08081010101,68,1010101,69,08 

08080000000008,70,0808101020 

2010080804040404081008 

870 DATA 72,,73,AA55AA55AA55 

AA55,74,FFFFFFFFFFFFFFFF,80 T 

AA55AA55AA55AA55FFFFFFFFFFFF 

FFFF 

880 DATA 88,181818247EFFBD99 
BDBD242424242442,90,,91,,116 

,00000000000107030102,118,00 





46 


































0000008000B0E0C0B 
890 DATA 120,387CFEFE7C38101 
01010101010,122,,123,,124,00 
S1076EF83,125,,126,00C0F03C0 
E03,127, 

900 DATA 128,0000001FA14F10A 
041,130,00E0130BBDFEF810E,13 
2,0307050F0F0707070A152A2924 
130A05C0E0A0F0F0E0E0E0D028B4 
54A448502 

910 DATA 136,0307070D0F07060 
5070A354992954A24C0E0E0B0F0E 
060A0E050AC92492952A4,140,04 
0E3F7FFFFFFF7F7F3F3F3F7F7F3E 
1C3SFCFEFFFEFCFCFCFEFFFFFEFC 
FCF06 

920 DATA 76,0000000407070F1F 
BF070F0501010000000040E0E0F0 
FBF8F0E0E0C04,84,00082D7F7F3 
F1F3F7F7F3F1F0F1F1C0000D8FCF 
EFCF3FCFEFEFEFCFCF8381 
930 RESTORE 820 :: FOR A=1 T 
0 39 ;: READ B,B$ i: IF B=12 
8 THEN CALL DELSPRITE(ALL) 
940 CALL CHAR(B,B*>:: NEXT A 
ü CALL MAGNIFY(4) s s CALL S 
PRITE(#1,88,15,190,122,-4,0) 
930 FOR A=0 TO 14 :: CALL CO 
LORCA,1,1):: NEXT A 
960 RUN "CSl" 

970 SUB Z(X,K)i: ON X GOTO 1 
000,1040 

980 DATA 784,784,740,784,880 
,784,740,659,784,784,659,784 

990 DATA 196,247,262,311,294 

,262,247,208,196 

1000 RESTORE 980 si FOR B=1 

TO 11 s: READ C 

1010 CALL SOUND(-999,C,30,C, 

30,C,30,—4,B) 

1020 NEXT B s: CALL KEY <0,K, 
S>:: IF S< >0 THEN SUBEXIT EL 
SE 1000 

1030 CALL PATTERN(#1,132,#3, 
140,#2,128,#4,136) 

1040 RESTORE 990 :: FOR A=1 
TO 9 :: READ B i : CALL SOUND 
(-999,6,21,B+2,22,B*2,30,-4, 
A*2):: NEXT A :: CALL PATTER 
N(#l,128,#3,136,#2,132,#4,14 
0) 

1050 CALL KEY(0,K,S):i IF S< 
>0 THEN SÜBEXIT 
1060 RESTORE 990 :: FOR A=1 
TO 9 :: READ B :: CALL SOUND 
<-999,B,30,B,30,B*2,30,-4,A* 
2):: NEXT A 

1070 CALL KEY(0,K,S):: IF S< 
>0 THEN SUBEXIT ELSE 1030 
1080 SUBEND 

1090 SUB FGP(NAM$):: IF NAM$ 
="JONES" OR NAMS="INDIANA JG 
NES“ OR NAM$="INDI" OR NAM$= 



"INDIANA" THEN 1110 ELSE 110 
0 

1100 DISPLAY AT(18,3)i"DANKE 
DR. ’’ ; NAM$; ’* ! ” :: CALL SOUN 

D(99,196,0):: CALL SOUND(99, 
262,0):: SUBEXIT 
1110 DATA 3,330,3,349,5,392, 
8,523,3,294,3,330,6,349 
1120 DATA 3,392,3,440,4,494, 
3,698,3,440,3,494,4,523,6,39 

_r r 

1130 DISPLAY AT<18,3):"DANKE 
DR."jNAM$;" S" 

1140 RESTORE 1110 :: FÜR A=1 
TO 15 :: READ B,C :: B=B*99 
:: CALL SOUND(B,C,0,C/2.0.C 
+2,1):: NEXT A 
1150 SUBEND 


LISTINGKORREKTUR FÜR TI REVUE 7/86 


Sorry, bei der Bearbeitung der Listings für die letzte 
Ausgabe waren unsere Programmierer anscheinend 
schon in Urlaubsstimmung. Daß sich dadurch auch 
fehlerhafte Listings einschleichen konnten, blieb 
natürlich nicht aus. 

Hier die Korrektur: 

Im Programm „Kassenbuch“ ändert bitte den Sprung¬ 
befehl in Zeile 950 von GOTO 32767 in GOTO 1000, 
Der nächste Lapsus ist leider nicht mit einem Satz 
aus der Welt geschafft. 

Im Programm „Trapper“ hat sich ein schwerwiegen¬ 
der Denkfehler eingeschlichen, der den ganzen Ab¬ 
lauf des Spieles verfälscht. 

Liefert der Trapper zum ersten Mal seine Felle im 
Depot ab, ist die Welt noch vollkommen in Ordnung. 
Sobald er jedoch wieder ein gutes Geschäft gemacht 
hat und die nächsten Felle lagern will, wird die erste 
Variable überschrieben und der Depotinhalt ist weg. 
Dem Trapper verbleiben damit nur noch die Felle 
aus der letzten Lieferung und die nichteingelagerten 
Felle. > 

Um den Trapper vor derartigen unkalkulierbaren Ver¬ 
lusten zu bewahren, müssen die Variablen für die Ein¬ 
lagerung und die Lagerhaltung getrennt werden. Der 
Vorgang bleibt für alle vier Feilarten der gleiche und 

sei hier kurz für die Lagerung der Nerzfelle beschrie¬ 
ben: 

Die numerischen Variablen “NFAB“ in Zeile 
4440-4470 ändern in “NFXY“. 

Jetzt wird eine zusätzliche Zeile zwischen 4470 und 
4480 eingefügt, in der die abgelegten Felle zum 
Lagerinhalt addiert werden, also “4476 NFAB = 
NFAB+NFXY“ 

Damit gehen dem Trapper schon einmal keine Nerz¬ 
felle mehr verloren. Sinngemäß muß dieser Vorgang 
mit den Variablen für die Luchs-, Fuchs- und Hasen¬ 
felle wiederholt werden und das Programm läuft 
korrekt. 



47 














































































10 


11 

* 

DAS GEHEIMNIS VON 

# 

12 

* 

CHICHEN ITZA 

# 

13 

* 

(Teil 2) 

* 

14 

* 


* 

15 

* 

Copyright by 

* 

16 

* 


* 

17 

* 

Manfred Lipowski 

* 

18 

* 


* 

19 


Benoetigte Geraetir 


20 

* 

TI99/4A Koneoie 

* 

21 

* 

Ext. Basic 

* 

22 


Joystick 1 


23 

* 

Cassettenrec- 

* 

24 

+(oder DISK+32K-Erw. 

) * 

25 

* 


* 

26 

* 

Speicherbelegung 

* 

27 

* 

12590 Bytes 

* 

2B 

* 


* 

29 

***-****-*******+****#** 

100 

CAL 

_L CLEAR :: RANDOMI 

ZE 


: : CALL liAGNIFY (3) s : CALL DE 
LSPRITE t ALL) 

110 DATA "!#<>+*$&”, ”!*,.0-! 
#","$4,/I-X'”,”9826648;”, ‘*: B 
37758<" 

120 FOR A=1 TO 5 :: FOR B=1 
TO 32 :: CALL HCHAR(A,B,INT( 
RND*B> +32):: NEXT B :: NEXT 
A 

130 RESTORE 110 :s FOR A=1 T 
05:: READ A* :: DISPLAY AT 
(A+l,0>S1ZE(B):A$ :: DISPLAY 
AT(A+1,11)SIZE(B):A$ :: DIS 
PLAY AT< A+l,21)SIZE(8) : 

140 NEXT A :: FOR A=7 TO 10 
:: FOR B=1 TO 32 :: CALL HCH 
AR<A,B,INT(RND*7)+65):: NEXT 
B :s NEXT A 

150 CALL VCHAR(7,11,64,4):: 
CALL VCHAR(7,22,64,4):: CALL 
HCHAR(11,1,72,96):: CALL HC 
HAR(14,1,73,96):: CALL HCHAR 
(17,1,74,96) 

160 CALL DELSPRITE(41,43) : s 
CALL HCHAR(1,6,37,2):: CALL 
HCHAR(1,16,34,2):: CALL HCHA 
R(1,26,33,2) 

170 CALL COLORd ,8,13,2,5,15 
,3,5,15,4,15,13,5,7,11,6,5,6 
,7,2,5) ss CALL SCREENU3) 

1B0 CALL HCHAR(20,1,80,96):: 

CALL HCHAR(23,1,81,64):: CA 
LL SPRITE(#5,140,2,150,20,#6 
,140,2,150,220,47,140,2,100, 
40) 

190 CALL SPRITE(#8,140,2,100 
,200,49,140,2,125,122,#1,88, 
2,33,88,0,0,410,124,2,168,14 
4,0,-3) 

200 CALL SPRITE(411,124,2,16 
8,48,0,-3,412,124,2,168,232, 
0,-3):: CALL PA(1):: CALL SO 



( 2 ) 

% 

210 SON,TE1,TÖL=0 :: L0C=28 
220 SOl=INT(RND*210)+20 :: T 
EM=INT(RND*3>+1 

230 CALL PATTERN(41,88) 

240 CALL JQYST(1,X,Y):: CALL 
POSITION(41,XI,Y1> 

250 IF X-4 THEN 260 ELSE IF 
X=—4 THEN 270 ELSE IF Y=4 TH 
EN 280 ELSE IF Y=-4 THEN 290 
ELSE 230 


260 Y1=Y1+B 

:: PAT=100 

: : TO 

N=—5 :: GOTO 

300 


270 Y1—Y1—8 

:: PAT=92 : 

: TON 

=—6 :: GOTO 

300 


280 X1=X1—8 

:: PAT=108 

s : TO 

N=—7 s: GOTO 

300 


290 Xl=Xl+8 

:: PAT~ 108 

: : TO 


N=—7 

300 IF Yl<=8 THEN Yl=248 ELS 
E IF Y1>=248 THEN Yl=8 
310 CALL PATTERN(#1,PAT):: C 
ALL SOUND(-5,TON,5):: CALL G 
CHAR(Xl/8+2,Yl/8+l,W):: IF U 
032 THEN 320 ELSE 480 

320 IF W>=33 AND W<=39 THEN 
CALL SOUND(300,-1,0):: GOTO 

230 

330 IF W>=64 AND W<=71 THEN 
GOTO 490 

340 IF W=54 OR W=55 THEN 480 
ELSE IF W=47 OR W=49 THEN 3 
60 

350 IF W>=40 AND W<=60 AND Y 
=4 THEN CALL SOUND(300,-2,0) 

:: GOTO 230 ELSE 480 

360 CALL LOCATE<41,X1,Y1)s: 
IF SON=0 THEN 370 ELSE 430 

370 CALL PATTERN(41,88):: CA 
LL SOUND (2,-6,0) : : CALL WAU 
NT(RND*999)+333):: CALL COLO 
R < 41,1):: B=INT<RND*5)+5 :: 
CALL POSITION(#B,X2,Y2):: CA 
LL LOCATE(41,X2,Y2) 

380 CALL WA(INT(RND*1500)+30 
0) 

390 CALL DELSPRITE(#3):: CAL 
L PATTERN(#1,128):: CALL COL 
OR(#1,2):: CALL MOTION(#1,-3 
,INT(RND*4)-2):: CALL SOUND< 
1,-S,0) 

400 CALL POSITION(#1,XI,Y1): 

: IF X1<=80 THEN 410 ELSE 40 
0 

410 CALL POSITION(#1,XI,Y1): 

: CALL LOCATE(41,80,Yl) 

420 CALL MOTION(#1,0,INT(RND 
*4)-2):: :: CALL SO(1):: CAL 

L WA <1250):: GOTO 160 

430 TE1=TE1+1 :: IF TE1=3 TH 
EN 370 

440 CALL POSITIQN<#1,X1,Y1>: 
s ON TEM GOTO 450,460,470 



























450 IF Yl<64 THEN A=6 s s GOT 
□ B00 ELSE 230 

460 IF Y1>96 AND Y1C152 THEN 
A=16 :: GOTO 800 ELSE 230 

470 IF Y1>160 THEN A-26 :: B 
□TO 800 ELSE 230 

480 CALL LQCATE<#1,X1,Y1):: 
CALL PATTERN(41,PAT+4)s s CAL 
L SOUND(-5,TON,3)ss GOTO 240 
490 CALL PATTERN(#1,88)sr CA 
LL PA(2):: FOR A=1 TO INT(RN 
D*5) +3 :: CALL PATTERN(#1,88 
CALL SOUND(1,-5,9):: CAL 
L WA(50):: CALL PATTERN(#1,1 
08) 

500 CALL SOUND(1,-6,6):: CAL 
L WA(50):: NEXT A CALL MO 
TION(#l,-4,0):: CALLWA(125) 
:: CALL MOTION(#1,5,0):: CAL 
L PATTERN(#1,112) 

510 CALL POSITION(#1,X1,Y1): 
: IF XI>=64 THEN 520 ELSE 51 
0 

520 FOR A=0 TO 30 STEP 2 : : 
CALL SOUND(-99,-5,A):: NEXT 
A :: CALL MOTION(#1,0,0):: C 
ALL PATTERN(#1,100):s PAT=10 
0 :: LUF=40 

530 LUF=LUF—1 :s CALL PATTER 
N(#1,PAT>:; CALL COINC(ALL,Z 
) : : IF Z THEN 700 ELSE CALL 
MU 

540 IF SON=l THEN 550 ELSE C 
ALL COINC(#1,179,SO1,8,1):: 
IF I THEN CALL MOTION(#1,0 ,0 
):: SON-1 CALL SOUND(99,1 
96,0):: CALL SOUND<99,262,0) 

550 IF LUF=18 THEN CALL COLO 
R(#l,ll):s CALL SOUND(-300,- 
1,0) 

560 CALL JOYST(1,X,Y):: IF X 
=—4 THEN PAT«92 ELSE IF X=4 
THEN PAT=I00 ELSE PAT=PAT 
570 CALL PATTERN(#1,PAT+4):: 

CALL MOTION(#1,~Y*1,X*2): : 
CALL CO INC (ALL, Z) s : IF Z=*-l 
THEN 700 

580 IF LUF<=0 THEN CALL SOUN 
D(-300,-4,0)s: GOTO 390 
590 CALL POSITION(#1,X1,Y1): 
s IF Xl<=78 THEN 600 ELSE 61 
0 

600 CALL MOTION(#1,0,0):: CA 
LL LOCATE(#l,81,Y1);: LUF=40 
:: CALL COLOR(#1,2):: CALL 
SOUND(-9,-5,4);: CALL SOUND( 
—9,—5,9):: GOTO 640 

610 IF XI>186 THEN 620 ELSE 
530 

620 CALL MOTION(#1,-11,0):: 
FOR A=0 TO 30 STEP 5 :s CALL 
SOUND(-99,-7,A):: NEXT A :: 
GOTO 530 



630 GOTO 530 

640 CALL POSITION(#1,X1,Y1) : 

: CALL MOTION(#1,0,0):: CALL 
LOCATE(#1,80,Y1):: IFY1>=7 
8 AND Y1 < *=92 THEN A=B0 : : GO 
TO 660 ELSE IF Yl>=166 AND Y 

1<=176 THEN A=168 :: GOTO 66 
0 

650 FOR A—10 TO 50 STEP 10 s 
: CALL SOUND(-99,880-A*2,4,4 

40—A*2,5):: NEXT A :: GOTO 5 

30 

660 CALL SOUND(-9,-6 ,9):: CA 
LL PATTERN(#1,108):: CALL SO 
UND(-9,-7,11):: CALL LOCATE< 

#1,80,A):: CALL PA(l)s: CALL 
SOUND(-9,-6,14) 

670 FOR A=1 TO 6 :: CALL POS 
ITION(#1,X1,Y1):: CALL SOUND 
<l,~5,A*3)ss CALL PATTERN(#1 
,108):: CALL WA(30):: CALL L 
OCATE(#1,X1—8 ,Y1)s: CALL PAT 
TERN(#1,112) 

680 CALL SOUND(1,-7,A*3):: C 
ALL WA(30):s NEXT A :: CALL 
POSITION<#1,X1,Y1):s CALL LO 
CATE(#1,Xl+1,Y1):; GOTO 230 
690 GOTO 530 

700 CALL MOTION(#1,0,0);: CA 
LL SOUND(-35,-7,9) 

710 CALL COINC(#l,#10,10,0s 
: IF C THEN 760 ELSE CALL CO 
INC(#i,#li,10,0s: IF C THEN 
760 ELSE CALL COINC(#1,#12, 
10,0:: IF C THEN 760 

720 CALL COINC(#1,#L0C,15,N) 

:: IF N THEN 870 

730 CALL COINC(#1 ,#5,20,0:: 

CALL C0INC(#1,#6,20 ,CI):* C 
ALL COINC(#1,#7,20,C2)s: CAL 
L COINC(#1*#B,20,C3):: CALL 
COINC(#1,#9,20,C4) 

740 IF C THEN A=5 :: GOTO 77 
0 ELBE IF CI THEN A=6 :• GOT 
O 770 ELSE IF C2 THEN A=»7 : : 

GOTO 770 ELSE IF C3 THEN A= 

8 :: GOTO 770 ELSE IF C4 THE 
N A=9 :: GOTO 770 
750 GOTD 530 

760 CALL COLOR(#1,2):: CALL 
SOUND(5,-5,3):: CALL S0UND(5 
,-6,6):: CALL SOUND(3,-7,9)s 
: GOTO 390 

770 CALL COLOR(#1,2) 

780 CALL POSITION(#1 ,X1,Y1>: 

: CALL SPRITE(#3,132,2,X1-10 
»Yl>:: FOR B=i TO INT(RND*9) 

+3 :: CALL SOUND(l,-5,2):: C 
ALL PATTERN(#3,136):: CALL W 
A (30) 

790 CALL SOUND(1,-6,2):: CAL 
L PATTERN(#3,132):: CALL WA< 
30):: NEXT B :: CALL POSITIO 9t 


49 
































h 


N(#A,X1,Yl>:: CALL L0CATE(#1 
,X1,Y1,#3,X1,Y1)ss CALL WA(I 
NT(RND*1500)+300)si GOTO 390 
800 TGL=TOL+l ss IF T0L>1 TH 
EN 370 ELSE CALL HCHAR <1,A,6 
l)ss CALL HCHAR(I,A+1,62) 

810 CALL PATTERN(#1,88)ss CA 
LL GJ<2,110,210,50) 

B20 CALL PA(2)s: CALL SOUND( 
1,—5,0)s s CALL PATTERN(#1,10 
8):: CALL POSITION(#1,XI,Yl) 
ss CALL SPRITE(#2,120,11,X1- 
8, Yl) 

830 CALL SOUND(1,-7,0 >:: LOC 
=INT(RND*5)+5 ss CALL PQSITI 
ON(#LOC,Xl,Yl):s CALL SPRITE 
(#3,116,1,X1,Y1)ss FOR A=1 T 
O INT(RND*15)+7 
840 CALL COLOR t #2,14,#LÜC,7, 
#3,10)ss CALL PATTERN(#3,116 
>:: CALL SOUND(-999,-5,A+7): 
s CALL COLOR(#2,11,#L0C,9,#3 
,7)s s CALL PATTERN(#3,76) 

850 CALL SOUND(-999,-6,A+7): 
s CALL COLOR(#2,16,#LDC,10,# 
3,9)s: CALL PATTERN(#3,84)ss 
CALL SOUND(-333,-7,A+7iss N 
EXT A 

860 CALL COLOR(#LOC,2):t CAL 
L DELSPRITE(#2,#3):s CALL PA 
TTERN<#1,88)ss CALL GJ(1,900 
,925,25):* CALL PA(l)-s CALL 
GJ(1,800,850,25)s s GOTO 230 
870 CALL GJ(2,622,644,2) 

880 TE1=0 ss CALL SCREEN(2)s 
: FOR A=1 TO 14 ss CALL COLO 
R(A,l,l)ss NEXT A ss CALL CL 
EAR :s CALL DELSPRITE(ALL)ss 
CALL MAGNIFY(4) 

890 CALL CHAR(100,"010101030 
3070F0F07070F1F1F3F7FFF00B0C 
0E0C0C0E0E0E0F0F0F0F0F8FEFF" 

,104,“00010307030307070F0F07 
03070F1F3FC0E0F0F8F8F8F0E0F0 
FBF8F0E0F0FCFE") 

900 CALL CHAR ( 108, "7F1F1F0F0 
703030F0F0703070F070301FFFEF 
EF4E0F8F0F0E0F0E0F0F8F8F0C0" 
,112,"7F3F1F1F1F0F0707070707 
0303030301FFFEFEEEECCE84C0E0 
E0E0C0C0808000“) 

910 CALL COLOR(1,2,2,6,5,5,1 
2,11,5)ss CALL HCHAR(9,1,73, 
256)ss CALL SPRITE(#3,108,2, 
65,195,#4,112,2,65,68) 

920 CALL SPRITE(#2,108,2,41, 
1,#7,100,2,119,211,#8,112,2, 

41,134) 

930 CALL SPRITE(#5,100,2,98, 
130,#6,104,2,98,10,#1,92,2,1 
01,230)s: CALL HCHAR(12,3,12 
0):s CALL HCHAR(13,3,121> 

940 CALL GJ(1,196,198,2)s: C 


L 

I 

S 

T 

I 

N 

G 

S 


ALL GJ(1,208,210,2)ls CALL 8 
J(1,220,222,2)ss CALLGJ(1,2 
33,235,2) 

950 CALL MOTION(#3,0,3,#2,0, 
3,#5,0,3,#4,0,3,#7,0,3,#6,0, 
3,#8,0,3) 

960 CALL PATTERN < #1,92)ss CA 
LL COLOR(12,11,5)ss CALL JOY 
ST(i,X,Y):: CALL MOTION(#1,- 
Y*.5,X*.5)ss CALL C0INC(ALL, 
Z)ss IF Z THEN 1030 

970 CALL COLOR(12,16,5)ts CA 
LL POSITION(#l,Xl,Yl)s: IF X 
I<—64 THEN 1010 ELSE IF XI>= 
116 THEN 1020 ELSE IF Yl>=24 
8 THEN 1030 

9B0 CALL PATTERN(#1, 96 )s s CA 
LL JOYSTU ,X,Y) : s CALL MOTIO 
N(#1,—Y*.5,X*.5)s s CALL COIN 
C <ALL,Z > s s IF Z THEN 1030 EL 
SE CALL COLOR(12,7,5) 

990 CALL COINC(#l,88,17,6,0 
ss IF C THEN 1050 ELSE 960 
1000 GOTO 960 

1010 CALL MOTION(#1 ,6,0)ss C 
ALL COLORC#!,11)ss TE1=TE1+1 
ss IF TE1>=4 THEN 1030 ELSE 
CALL SOUND(5,—5,0)s: CALL C 
OLOR(#1,2)s: GOTO 960 
1020 CALL MOTION<#1,-6,0)*: 
CALL COLOR(#l,ll)ss TEILTE1+ 
1 s: IF TE1>=4 THEN 1030 ELS 
E CALL SOUND(5,-6,0)ss CALL 
COLOR(#1,2)s s GOTO 960 
1030 FOR A=1 TO 8 s: CALL MO 
TION(#A,0,0)s s NEXT A ss FOR 
A=0 TQ 30 STEP 2.5 SS CALL 
COLOR(#l,ll):s CALL SOUND(-9 
9,-6,A)ss CALL COLOR(#1,2)ss 
CALL SOUND(-99,-7,A) 

1040 NEXT A s: CALL PATTERN( 
#1,128)s s CALL MOTION(#1,0,2 
):s CALL SO(3)s s GOTO 100 

1050 CALL SOUND(99,-5,0)s: F 
OR A—1 TO 9 ss CALL MOTION(# 
A,0,0)ss NEXT A ss CALL SO(4 
)s s CALL CLEAR s s CALL DELSP 
RITE(ALL) 

1060 CALL PA(1} 

1070 DATA 32,,33,101018080S0 
8181,34,0B081810101808081018 
083820301808,36,081810101010 
180808080808,38,000000000808 
080881E7BD81B1E7BD81 
1080 DATA 40,,41,10101808080 
8181,42,08081810101808081018 
083820301808,44,081810101010 
180808080808,46,000000000808 

080881E7BD8181E7BD81 
1090 DATA 48,FFFFFFFFFFFFFFF 
F000000000000001E3F7F7F7F3F1 
F7FFF3FFFFFFF7F7F1F3F,52,000 
0000000003C7F7F7F7F1F0707000 


50 
























0FFFFFFFFFFFF7B03 

1100 DATA 56, FFFFFF9F1F3F1F0 

F07070703070F0703FFFFFFFDFCF 

8F8F8F 0E0F0F0E0E0F0C,60,0307 

070F0F07070F1F1F0F0F1F3F3F7F 

C0E0F0F0E0E0F0F8F8F0F0F8F8F8 

FCFE 

1110 DATA 64,FFDFDF9F1F1F1F0 
F0F07070707030303FFFDFDF8F8F 
8F8F0F0F0F0F0E0E0E0C,68,0307 
0F0F1F07070F0F1F3F1F0F3F7F7F 
C0E0F0F0E0C0E0F0E0C0E0F0F8F0 
F8FC 

1120 DATA 72,FFFFFFFFFFFFFFF 
FFFFF78382,74,FFFFFE7C38381, 
75,FFFF7E3C1E1C1,76,FFF7C3,7 . 
7,,78,FFFF3C1,79,FFFF7F36B2 
1130 DATA 80,7E3C181818183C7 
E0000000000000B1C,84,,85,000 
0000000183C18,86,,87, 

1140 DATA 116,001818148F5E2E 
07031F1211102000000000000000 
804020000000008040204,120,00 
0000000001020480000000010204 
0200181828417A74E0C0F8488808 
04 

1150 DATA 124,000001050D0E0B 
0B090B0B0202020204000080A0B0 
70D0D090D0D0404040402 
1160 RESTORE 1070 ss FOR A=1 
TO 31 ss READ B, B$ :: CALL 
CHAR(B,B$)j: NEXT A :: FOR A 
=0 TD 14 CALL COLOR<A,l,l 
):s NEXT A 

1170 CALL SPRITE(#1,88,16,12 
0,120,-3,0) 

1180 RUN "CS1" 

1190 SUB PA < X):: ON X GOTO 1 
200,1230 

1200 CALL CHAR<92003030281 
C1E3DEE0C14244424122101",94, 

" '* ,95 , - - ,96 , "00606050387C7A5 
959B8A8454220204 " , 98, '* , 99 , ** 

"> 

1210 CALL CHAR(100,"000C0C14 
38788077302824222448848",102 
, " ", 103 104 , "0006060Al C3E 

5E9A9A1D15A242040402",106,"" 

, 107 , ” ■') 

1220 CALL CHAR t108,"303472D9 
FE7B7830784C464C5850402",110 
,"",111," M ,112,"0C2C4E9B7F1E 
1E0C1E3262321A0A0204”,114,"" 
,115,"")ss SUBEXIT 
1230 CALL CHAR(92,"0C0C0B770 
F18F",93, ,94,"0001E5F5B90D 

0702",95,"",96,"C0C3BF6F3618 
0F " , 97 , " , 98, ■0000FC82C07E01 
",99,""> 

1240 CALL CHAR(100,"0080A7AF 
9DB0E04”,101,"",102,"3030D0E 
EF0180F",104,"00003F41037E8" 

, 105 , " ’* , 106 , " 03C3FDF66C1 BF " ) 


1250 CALL CHAR<108,"18245A99 
DB667E3C183C7EE781422442",11 
2,"42242424243C3C183C7EFFA59 
9999942") i : SUBEND 
1260 SUB WA(X)s: FOR WA=1 TO 
X ss NEXT WA a: SUBEND 
1270 SUB MU s s CALL POSITION 
(#1,X1,VI):: IF Xl<=79 THEN 
SUBEXIT 

1280 A=INT(RND*2)+1 ss IF A= 

1 THEN UM=INTCRND*3>+10 ELSE 
SUBEXIT 

1290 CALL POSITION<#UM,E,R>s 
: IF E=179 THEN 1310 
1300 CALL LOCATE(#UM,179,R): 
s CALL SOUND<1 ,- 6 , 19)s: SUBE 
X IT 

1310 A=INTtRND*2)+l :: IF A= 

1 THEN CALL LOCATE<#UM,168,R 
) 

1320 CALL SOUND(1,-7,19):s S 
ÜBEND 

1330 SUB GJ(X,X1,X2,X3) 

1340 FOR Z=1 TO X ss FÜR Zl= 

5 TO 30 STEP 5 ss FOR Z2=X1 
TO X2 STEP X3 

1350 CALL SOUND(1,Z2,Z1,Z2+2 
00,ZI,Z2*Z,Zl-2):: NEXT Z2 : 

: NEXT ZI NEXT Z ss SUBEN 
D 

1360 SUB SO(X):s ON X GOTO 1 

370,1410,1480,1510 

1370 DATA 466,988,370,740,34 

9.698.311.622.294.587.247.49 
4,233,466,247,494,294,587,31 
1 ,622 

1380 DATA 294,587,247,494,23 
3,466,208,415,185,370,175,34 
9,156,311,156,311,156,311 

1390 RESTORE 1370 :: FOR A=i 
TO 19 ss READ B,C :: FOR D= 

0 TO 16 STEP 8 s s CALL SOUND 
i —99,B,2,C,D,C+2,D)3 s CALL S 
OUND<—399,B,D,8+2,D,C,2)s; N 
EXT D 

1400 NEXT A si FÜR A=2 TO 30 
STEP 2 s s CALL SOUND(-99,B, 
A,C,A,C+2,A>s; NEXT A ss SUB 
EXIT 

1410 DATA 999,784,220,740,22 
0,7B4,220,880,220,784,220,74 
0,220,659,220,784,220,30000, 

220,784,220,659,850,784 

1420 DATA 220,740,220,784,22 
0,659,220,587,220,494,220,52 
3,850,587,350,523,350,494,45 
0,440 

1430 DATA 230,494,230,30000, 

230,494,230,440,700,494,230, 

440.230.494.220.30000.230.49 
4,230,523,750,440 

1440 DATA 230,392,230,440,21 
0,30000,230,440,230,494,900, St 


L 

I 

S 

T 

I 

N 

G 

S 


\ 


l 


51 














































* 




k£83h 












392 

1430 RESTORE 1410 ss FOR A=1 
TO 39 :: READ B,C ; : CALL S 
OUND(B,C,5,C/2,6,C/2+2,6)s : 
CALL KEY (1, K, S) : : IF K.= 18 TH 
EN 1460 ELSE 1470 

1460 FOR A-6 TO 30 STEP 2 s : 

CALL SOUND(-99,C,A,C/2,A,C/ 
2+2,A):: NEXT A :: SUBEXIT 
1470 NEXT A :: GOTO 1450 
1480 FOR D=1 TO 3 :: RESTORE 
1370 :: FOR A=1 TO 19 :: RE 
AD B,C 

1490 CALL POSITION(#1, X1,Y1) 
s: IF Yl>=250 THEN CALL DELS 
PRITE(#1) 

1500 CALL SOUND(225,B,30,C,3 

0,C*2,30,-4,5)s: NEXT A ss N 

EXT D :: SUBEXIT 

1510 DATA 311,370,415,466,55 

4,554,554,554,554,466,415,37 

0,311,311,311,311 

1520 DATA 311,370,415,466,55 

4,554,554,554,554,466,415,37 

0,311,311,311,311 

1530 DATA 370,311,277,233,27 

7,277,277,277,277,311,370,41 

5,370,370,370,370 

1540 DATA 370,311,277,233,27 
7,277,277,277,277,311,370,41 
5,370,370,370,370 
1550 DATA 311,370,415,466,55 

4,554,554,554,554,466,415,37 
0,311,311,311,311 
1560 DATA 311,370,415,466,55 

4,554,554,554,554,466,415,37 
0,311,277,311,277,311,277,31 
1,277,311,311,311,311,311 
1570 RESTORE 1510 j: FOR A=1 
TO 105 *! READ B :s FOR C=0 
TO 30 STEP 15 s j CALL 5DUND 
< —333,B,5,B,C,B,C> 

1580 NEXT C :: NEXT A ss SUB 
END 




: 








10 ! ********************** 


11 

9 

■m 

-fr 

DAS GEHEIMNIS VON 

fr 

12 

1 

■fr 

CHICHEN ITZA 

-fr 

13 

1 

* 

* 

(Teil 3) 

-fr 

14 

1 

V 

* 


fr 

15 

1 

4 

-fr 

Copyright by 

-fr 

16 

1 

4 

-fr 


-fr 

17 

1 

* 

-fr 

Manfred Lipowski 

-fr 

18 

1 

m 

* 


-fr 

19 

i 

* 

Benoetigte Geraste 

fr 

20 

* 

* 

TI99/4A Konsole 

-fr 

21 

l 

* 

Ext. Basic 

fr 

22 

4 

* 

Joystick 1 

-fr 

23 

1 

4 

* 

Cassettenrec. 

-fr 

24 


*(oder DISK+32K—Erw. 

) * 

25 

J 

m 

* 


-fr 

26 

fl 

fr 

Speicherbelegung 

fr 

27 

m 

fr 

12439 Bytes 

■fr 

28 

a 

* 


-fr 


29 ! ********************** 
100 CALL CLEAR ss CALL MAGNI 
FY <3):: CALL DELSPRITE(ALL* s 
s RANDOMIZE ss CALL SCREEN(2 
)ss CALL TOI(-1)ss BM=0 

110 CALL HCHAR(1,1,72,64):: 
CALL HCHAR(3,1,73):: CALL HC 
HAR(3,2,74):; CALL HCHAR(3,3 
,76):s FOR A=26 TO 32 s: B=I 
NT(RND*4)+73 

120 CALL HCHAR(3,A,B)s: NEXT 
A :: CALL HCHAR(4,1,77,64)s 
s FOR A=7 TO 11 s: FOR B=1 T 

0 32 

130 C=INT(RND*7)+32 :: CALL 
HCHAR(A,B,C>ss NEXT B ss NEX 
T A ss FOR A=12 TO 16 :s FOR 
B=1 TO 32 :: C=INT(RND*7)+4 
0 ss CALL HCHAR(A,B,C>:: NEX 
T B 

140 NEXT A :: CALL TOI(-2)ss 
FOR A=17 TO 21 :: FOR B=1 T 
0 32 :: C=INT(RND*7)+32 s: C 
ALL HCHAR(A,B,C>si NEXT B :: 
NEXT A 

150 CALL HCHAR(22,1,72,96)s: 
CALL VCHAR(7,3,39,5)ss CALL 
VCHAR(12,30,47,5)ss CALL VC 
HAR(17,3,39,5)s: CALL HCHAR( 
6,1,77,2) 

160 CALL HCHAR(6,31,81,2)ss 
FOR A=1 TO 3 ss CALL HCHAR(2 
1+A,30,48,3>:: NEXT A s: CAL 
L HCHAR(22,29,51) 

170 CALL HCHAR(23,28,52):: C 
ALL HCHAR(23,29,50)s: CALL H 
CHAR(24,28,53):: CALL HCHAR( 
24,29,54) 

180 DISPLAY AT(3,2)SIZE( 22 ) : 
"8:NOIMMIKJ@BKNIMMIQN@:" :: 
DISPLAY AT(4,2)SIZE(22)! H 9;M 
MMMMMMMACMMMMMMMM9C 11 
190 DISPLAY AT(5,2)SIZE(22): 

"< >MMMMMMMMDFMMMMMMMM< F " s : 












































Q ISPL A Y AT(6,1):"M=?MMQMMMMQ 
EGMQMMMMMQ=GMQQMP” 

200 CALL COLOR£1,7,11,2,13,4 
,°',' J f7 1 4,7,2,5,7,2,6,7,2,7,1 

3,2> 

210 B =1 :: CALL SPRITE(#1,68 
,7,33,64,0,0,#2,60,7,33,144, 
0,0,#3,56,7,17,64,0,0,#4,64, 
7,17,144,0,0) 

220 CALL CHAR <140, RPT $ ( 11 F ", 6 
4))ss CALL SPRITE(#5,84,16,2 
6,233,0,0,#6,140,5,184,232,0 
,0,#7,92,2,190,232,0,0) 

230 CALL P(7,92)CALL POSI 
TIGN(#7,X1,Y1)s: IF X1=175 T 
HEN 250 ELSE CALL WA(40):s C 
ALL P(7,96) 

240 CALL LOCATE(#7,X1—B,Y1)s 
s CALL S<1,6,9)ss CALL WA(40 
):: GOTO 230 

250 CALL S<1,5,0):: CALL P(7 
,116)ss FÜR A-—6 TO 4 STEP 2 
ss CALL MOTION(#7,A,—3):s C 
ALL WA(99)ss NEXT A s* CALL 
MQTION(#7,0,0) 

260 CALL 8(1,7,0)11 CALL P(7 
,108)s; CALL WA(35)CALL S 
(1,6,2):: CALL P(7,U2) 

270 CALL LOCATE(#7,169,208)s 
s CALL S(1,5,0):: CALL WA(30 
CALL P(7,92):s CALL S(l, 

7,0):: CALL LOCATE(#7,169,20 
0) 

2S0 CALL P(7,96)s: CALL WA<3 
0):: CALL SU,7,9):s CALL P( 
7,88):: CALL POSITION(#7,X1, 
Yl) 

290 CALL DELSPRITE(#6)s s CAL 
L SPRITE(#6,88,2,XI,Y1):s CA 
LL DELSPRITE(#7):: FOR A=1 T 
O 3 ss CALL P(6,88) 

300 CALL SOUND(150,196,0) : : 
CALL SOUND(200,262,0):: CALL 
P(6,124):: CALL SOUND(400,1 
96,3,262,3,330,1):: CALL WA( 
150)s: NEXT A 

310 CALL P(6,88):s CALL PA(1 
):: PAT=92 :: CALL TOI(-3):; 

CALL SPRITE(#7,128,4,169,12 
0,0,0,#8,136,4,169,104,0,0) ; 

: CALL TOI(-6):: TE1=0 
320 CALL PATTERN(#6,88):: CA 
LL COLOR(#5,5):s CALL COINCt 
ALL,Z):: IF Z THEN 930 
330 CALL MO(Z>:: IF Z THEN 9 
30 ELSE CALL JOYST(1,X,Y)SS 
CALL POSITION(#6,X1,Y1):: CA 
LL COLOR(#5,16) 

340 IF X=—4 THEN PAT=92 :: Y 
l=Yl-8 :: GOTO 370 ELSE IF X 
~4 THEN PAT=100 :: Yl=Yl+8 s 
s GOTO 370 

350 CALL COINC(ALL,Z>:s IF Z 



THEN 930 

360 IF Y=—4 THEN Xl=Xl+8 :: 

GOTO 370 ELSE IF Y=4 THEN XI 
—X1—8 :: GOTO 370 ELSE 320 
370 IF Yl<8 THEN 420 ELSE IF 
XI>=184 THEN 320 ELSE IF Yl 
>209 THEN 320 

3B0 CALL PATTERN(#6,PAT):: C 
ALL S(l,5,3):s CALL GCHAR(X1 
/8+2,Yl/8+1,AS>:s IF AS<>72 
THEN 390 ELSE 410 

390 IF AS=39 THEN 430 ELSE 1 
130 

400 CALL COINC(ALL,Z):: IF Z 
THEN 930 

410 CALL COLOR(#5,5)s s CALL 
S(l,6,0):: CALL LOCATE(#6,XI 
,Yl)s: CALL PATTERN(#6,PAT+4 
):: GOTO 330 

420 CALL P(6,88):: TE1=TE1+1 
s: IF TE1=2 THEN 1130 ELSE 
CALL TOI(-5):: CALL LOCATE(# 

6,169,200)s: CALL TOI(-7):: 

GOTO 320 

430 CALL LE(6):: CALL TOI(-5 
):: CALL DELSPRITE(#7,#8):s 
CALL TOI(-6)s s CALL PA(2):: 

CALL SPRITE(#7,136,2,115,248 
,5,-7,#8,136,2,92,110,-5,-7) 

440 1E1=0 

450 CALL PATTERN(#6,88,#7,13 
6,#8,140);: CALL COLOR<#5,14 
>:* CALL COINC(ALL,Z):: IF Z 
THEN 930 

-» 

460 CALL JOYST(1,X,Y)■s CALL 
POSITION(#6,XI,Y1,#7,X2,Y2) 

:: IF X2>114 THEN CALL MOTIO 
N(#7,-6,-6,#8,6,-6)ELSE IF X 
2<91 THEN CALL MOTION(#7,6,- 
6,#8,-6,-6) 

470 CALL COLOR(#5,16):: CALL 
COINC(ALL,Z):: CALL PATTERN 

(#7,140,#8,136);: IF Z THEN 
930 

480 IF X=—4 THEN PAT=92 is Y 
1=Y1-8 ELSE IF X=4 THEN PAT= 

100 ss Yl=Yl+8 ELSE IF X=0 A 
ND Y=0 THEN 450 

490 IF Yl<8 THEN 540 ELSE IF 
Y1>24S THEN 530 ELSE CALL C 
OLOR(#5,14) 

500 CALL SU,5,3) : : CALL PAT 
TERN(#6,PAT):s CALL GCHAR(X1 
/8+2,Y1/8+1,PP)*: IF PP=47 T 
HEN 550 

510 CALL COINC(ALL,Z>:: IF Z 
THEN 930 

520 CALL PATTERN(#7,136,#8,1 
40):: CALL S(l,6,9);: CALL L 
OCATE(#6,XI,Yl):: CALL PATTE 
RN < #6,PAT+4):: GOTO 460 
530 CALL P(6,88):: CALL TOI( 
-7)s; CALL LOCATE(#6,X1,16): St 




I 


53 



























































: CALL TOI(-6)ss SOTO 450 

540 TE1«TE1+1 ss IF TE1=2 TH 
EN 1130 ELSE CALL SOUND<99,3 
49,0)ss CALL P(6,88)s: CALL 
SOUND(99,294,0)s s CALL LOCAT 
E(#6,X1,16)ss SOTO 450 
550 CALL P 16 ,88) : s CALL LOCA 
TE(#6,X1,Y1>:: CALL TOI(-3)s 
s CALL DELSPRITE < #7,#8 > s 8 CA 
LL TOI(-1)s: CALL LE(5)s: CA 
LL PA(3)ss TE1=0 

560 CALL SPRITE(#7,128,2,73, 
32,0,3,#8,128,2,73,128,0,3,# 
9,136,2,56,5,0,6) 

570 CALL COLOR(#5,8):: CALL 

PATTERN(#6,88,#7,128,#8,132, 
#9,136)ss CALL S(l,5,0):s CA 
LL COINC(ALL,Z):: IF Z THEN 
930 


580 CALL JOYSTU ,X,Y> : s CALL 
POSITION (#6 ,XI,YD ss CALL C 
OLQR(#5,11)s s J=INT(RND*7) 
590 CALL COINC CALL,Z)s s IF Z 
THEN 930 ELSE CALL PATTERN< 
#7,132,#8,128,#9,140) 

600 CALL KEY(1,K,S) s: IF K“1 
8 THEN 670 

610 CALL MOTION<#9,0,6+J)*: 
CALL COLOR(#5,16) 

620 IF X=~4 THEN PAT-92 :s Y 
1—Yl—8 ELSE IF X=4 THEN PAT= 
100 ss Y1 =Y 1 +8 ELSE IF X==0 A 
ND Y=0 THEN 570 

630 IF Y1<B THEN YI=248 ELSE 
IF Yl>248 THEN 720 

640 CALL COLOR( #5 ,8)s s CALL 
PATTERN(#6,PAT)s: CALL SC 1,6 
,0)ss CALL GCHARCX1/8+2,Y1/8 
+l,PO)s: IF PO—39 THEN 730 
650 CALL PATTERN(#7,128,#8,1 
32,#9,136):s CALL S(l,7,0)ss 
CALL LOCATEC#6,Xl,Yl)s: CAL 
L PATTERN(#6,PAT+4)ss CALL C 
ÜINC CALL,Z) 

660 IF Z THEN 930 ELSE 580 
670 IF Yl<32 THEN CALL SC-33 
3,3,0)ss GOTO 580 

680 IF X=—4 THEN PA1=116 :: 
BR=-B :: GOTO 690 ELSE IF X= 
4 THEN PA1=120 :: BR=8 :: GO 
TO 690 ELSE CALL S (-300, 1,9) 

:s GOTO 580 


690 CALL PATTERN(#6,PA1) s : C 
ALL S(9,6,0) ss FOR A=-8 TO 8 
ss CALL MOTION (#6, A, BR)ss C 
ALL CO I NC(ALL, Z) s: IF Z THEN 
930 ELSE CALL POSITION(#6,D 
T ,TD) 

700 NEXT A ss CALL MOTION(#6 

, 0 , 0 ) 

710 CALL LOCATEC#6,XI,TD)ss 
GOTO 570 


720 TE1=TE1+1 


IF TE1=2 TH 



EN 1130 ELSE CALL SOUND(99,2 
08,0)ss CALL SOUND(99,311,0) 
s: CALL LOCATE<#6,X1,Yl—16): 

s GOTO 570 

730 CALL LOCATE(#6,Xl,16):r 
CALL P(6,88):: CALL S(9,5,0) 

740 CALL TOI(-6)ss CALL DELS 
PRITE(#7,#8,#9)s s CALL TOI (- 
5) ss CALL LE(5)s s FOR A=1 TO 

3 

750 CALL SOUND<175,196,0):: 
CALL SOUND(200,262,0):: CALL 

SOUND(225,330,0,262,2)s : CA 
LL SOUND(250,392,0,330,2) 

760 CALL SOUND(450,523,0,392 
,2,330,4):: NEXT A s: TE,TE1 
=0 

770 CALL POSITION(#6,XI,Y1): 

: CALL LOCATE(#6,X1+1,Y1) 

780 CALL P(6,88):s CALL COLO 
R(#5,16):: CALL COLOR(7,4,2) 
790 CALL JOYST(1,X,Y):: CALL 
POSITION(#6,X1,Y1) 

800 CALL KEY(1,K,S)s: IF K=1 
8 THEN 850 ELSE CALL COLOR(# 
5,11):: CALL COLOR(7,13,2):: 
CALL COLOR(#5,8) 

810 IF X=—4 THEN PAT=92 :: Y 
1—Yl—8 ELSE IF X=4 THEN PAT= 
100 :: Y1=Y1+8 ELSE IF X=0 A 
ND Y=0 THEN 780 

820 IF Yl<8 THEN 920 ELSE CA 
LL PATTERN(#6,PAT)s * CALL S( 
1,5,0):: CALL GCHAR(XI/8+2,Y 
1/8+1,PL)s: IF PL=81 THEN 90 
0 ELSE IF PL=80 THEN 950 

830 CALL COLOR(#5,16)s s CALL 
COLOR(7,4,2) 

840 CALL S(1,5,6)s: CALL LOC 
ATE(#6,XI,Yl):: CALL PATTERN 
<#6,PAT+4)ss CALL WA(15)ss 6 
OTO 790 

850 IF Yl<32 THEN CALL SOUND 
(-333,-3,0):: GOTO 780 ELSE 
TE=TE+1 :: IF TE<=7 THEN 860 
ELSE 780 

B60 IF X=—4 THEN PA1=116 ss 
BR=—8 :: GOTO 870 ELSE IF X= 
4 THEN PA1=120 ss BR=8 s: GO 
TO B70 ELSE CALL S(-300,5,4) 
s: GOTO 780 

870 CALL PATTERN(#6,PA1)s: C 
ALL S(9,6,0):s FOR A=-6 TO 6 
:: CALL MOTION(#6,A,BR):: C 
ALL SOUND(—99,—5,15+A) 

880 NEXT A :: CALL MOTION(#6 
,0,0)ss CALL S(t,5,0):s CALL 
POSITION(#6,TD,Yl):: CALL L 
OCATE(#6,X1,Yl+BR) 

890 CALL GCHAR(XI/8+2,Y1/8+1 
,PK):s IF PK=81 THEN 900 ELS 
E 780 

900 CALL LOCATE(#6,X1,Y1> s: 


• m 



































FÜR A=1 TD 8 : ; CALL C0L0RC7 
,4,2)ss CALL S(-333,5,A*2>ss 
CALL COLOR(# 6 , 8 ):: CALL COL 
GR(7,3, 2 ):: CALL S(-333,6,A* 
2 ) 

910 CALL COLOR(# 6 ,11)s s CALL 
COLOR(7,13,2)s: CALL S(-333 
,7,A*2):s CALL COLOR(# 6 ,2):: 

NEXT A :: BM=1 :: GOTO 1130 
920 TEILTE 1+1 :: IF TE 1=2 TH 
EN 1130 ELSE CALL SOUND(99,2 
94,0):: CALL SOUND(99,247,0) 
:: CALL L0CATE(#6,XI,Y1+16): 

: CALL S0UND(99,196,0)ss GOT 
O 780 

930 CALL MOTION(# 6 ,0,0,#7,0, 
0,# 8 ,0,0,#9,0,0):: FOR A=1 T 
0 9:: CALL S(-99,5,A*2 )3 i C 
ALL COLOR(#6,16):: CALL B (-9 
9,6,A*2):: CALL COLOR(#6,14) 
940 CALL S <—99,7,A*2):: CALL 
COLOR(# 6 , 2 ):: NEXT A :; GOT 
ü 1130 

950 CALL LOCATE(# 6 ,X 1 ,Y 1 ):: 
FOR A=200 TO 2500 STEP 25 :: 

CALL SOUND(—999,A,30,A,30,A 
,30,-4,0):: NEXT A 
960 FOR A =0 TO 25 ;: CALL SO 
UND(—99,—5,A, 220 ,A+5):: CALL 
SOUND(—99,—7,A, 1 10,A+5):: N 
EXT A :: CALL TOI(-5) 

970 CALL CLEAR :: CALL DELSP 
RITE(ALL):: CALL CHARSET :s 
FOR A=i TO 8 :: CALL COLOR(A 
,7,1)sa NEXT A :s CALL SCREE 
N (16) 

980 CALL COLOR(0,14,1,9,5,1, 
10,5,1,11,5,1,12,13,13):: DI 
SPLAY AT(2,1):"BRAVO DR. " 5 NA 

M*;" !"s :"SIE HABEN ES GESC 

HAFFT !" 

990 CALL CHAR(96,”1F3F6F6360 
5140202015112EE0E0F1FF0080C0 

C0C040408080000080E0F8FCFE", 
100,"7FFFFFFFFFFFFFFF7F7F7F7 
FFFFFFFFFDEEFEFEFEFFFEFEECEC 
ECECEEEE 6 EEEA") 

1000 CALL CHAR(104,"F1F1F1E0 
E0E0E0E0E0C0C0C0C0C040C0E2EC 
F0F0F0F0F0F8F878787878645E7F 
",108,RPT$(“0",27)&"3070F0F1 


A" ) 

1010 CALL CHAR(112,"08060101 
01010101030303030303040F1F", 
120,RPT*("F",16),128,"000070 
FCFEFF7F3F",130,"00000E3F7FF 
FFEFC",129,"",131,""> 

1020 CALL CHAR(116,“03040A08 
05344A4B4A281E03",118,"C0205 
010A02C52D252147 BC",124,"030 
70F0F07377F7F7F3F1F03",126," 
C0E0F0F0E0ECFEFEFEFCF8C") 


L 

I 

S 

T 

I 

N 

G 

S 


1030 CALL MAGNIFY(4):: CALL 
HCHAR(24,11,120,11):; CALL S 
PRITE(#3,128,9,171,112,#2,12 
4,11,157,112,#1,116,2,157,11 

2 ) 

1040 DATA " 'b" , "isac" , "nd-f 
"oeg'V'phj","qik" 

1050 RESTORE 1040 :: FÜR A=1 
TO 6 :: READ A$ :: DISPLAY 
AT(13+A,13>:A$ :: NEXT A 

1060 DISPLAY AT(6,1):"DER SC 
HATZ GEHOERT IHNEN." :: FOR 
A=1 TO 3 

1070 CALL SOUND(175,196,0)s; 

CALL SOUND(200,262,0):: CAL 
L SOUND(225,330,0,262,2):: C 
ALL SOUND<250,392,0,330,2) 

1080 CALL SOUND(450,523,0,39 
2,2,330,4):* NEXT A :: CALL 
WA(99):: FOR A=0 TO 25 ;: CA 
LL COLOR(#2,14):: CALL SOUND 
<—333,-5,A>:: CALL COLOR(# 2 , 

11)* s NEXT A 

1090 FOR A=30 TO 0 STEP -1 : 

: CALL COLOR(#2,14)s: CALL S 
OUND(-333,-5,A):: CALL COLOR 
(#2,11):s NEXT A 

1100 FOR A =0 TO 30 :: CALL C 
OLOR(9,7,1,10,7,1,11,7,1)*! 

CALL SOUND(-99,-1,A):: CALL 
COLOR(9,3, 1 ,10,3,1,11,3,1);: 

CALL SOUND(-99,-2,A) 

1110 CALL COLOR(9,5,1,10,5 ,1 
,11,5,1):: CALL SOUND(-99,-3 
,A):; NEXT A 

1120 CALL TOI(- 1 ):: CALL TOI 
(-7):: A=B s: DISPLAY AT( 10 , 

Dl "DAS IST HIER DIE FRAGE ! 

" :s GOTO 1210 

1130 CALL TOI(-7):i CALL DEL 
SPRITE(# 6 ,#7,# 8 ,#9):: CALL K 
EY(l,K,S)ss CALL TOI(- 6 ):* I 
F K=18 THEN 1140 ELSE IF BM< 

>1 THEN 220 ELSE CALL TOI (-2 
) 

1140 CALL TOI(- 6 ):: CALL CLE 
AR :: CALL DELSPRITE(ALL):: 

CALL CHARSET - * CALL CHAR(96 
,RPT*("FF", 8 )):: CALL COLOR( 
0,13,1,9,5,5):* FOR A=1 TO 8 
1130 CALL COLOR(A f 16,l):: NE 
XT A e: CALL PA(4):: CALL SC 
REEN( 2 ):: CALL VCHAR(1,26,96 
,168)s: FOR A =6 TO 13 
1160 CALL SPRITE(#A,140,INT( 
RND*2)+15,INT(RND*180)+10,IN 
T(RND*42 > +202,INT(RND+30)+6, 

0):: NEXT A 

1170 CALL SPRITE(#1,140,15,3 
0,220,9,0,#2,140,16,99,228,9 
,0,#3,140,15,173,224,9,0) 

1180 CALL SPRITE(#4,124,2,19 
9,224,-3,0,#5,136,11,199,224 ft 


55 





























































I 


,-3,0) 

1190 DISPLAY AT(2,1)SIZE<5): 
"SORRY" :: DISPLAY AT(4,1)51 
ZE(21):"DR:”;NAM$;" '" :: DI 

SPLAY AT( 6 ,1JSIZEÜ3) : "SIE H 
ABEN DAS" 

1200 DISPLAY AT(8,1)SIZE(16) 

:"GEHEIMNIS LEIDER" :: DISPL 
AY AT(10,1)SIZE(15):"NICHT S 
ELQEST !" :: A=12 

1210 DISPLAY AT(A,1>SIZE(15) 

:"NOCHMAL J-N ? J" :: ACCEPT 
ATCA,15>SIZE(-1)BEEP VALIDA 
TEC'JN") s J* 

1220 CALL DELSPRITE(ALL):: I 
F THEN 1230 ELSE CALL 

CLEAR :s STOP 
1230 RUN "CSl" 

1240 SUB PA(X)s t ON X GOTO 1 
250,1280,1300,1330 

1250 CALL CHAR(12800000000 
4060FBFDFFCFB7BBDDEE07050000 
00000000F0BEFFEAC0D5FF7E00S0 
",132,"0000000020B0F8FDFFCFB 
7B7B570E0B0000000000000F0DEF 
FEAD5FFFE000000"> 

1260 CALL CHAR(13600000000 
00183163CFFF7F1F030100000000 
000092DBFFFFFF9F6F77BBDD0E0B 
",140,"0000000000001D336FFF7 
FlF0201030200000000496DFFFFF 
F9F6F6FEFDF80C0") 

1270 SUBEXIT 

1200 CALL CHAR(136,"0C1F1F0F 
0F0763F63FEF070100010000C060 
A0A0C0C060F0E0C0A02090200000 
",140,"0000000000000367EC3FF 
70703010000000000000000E0F07 
0E0C0E8E8F4F468") 

1290 SUBEXIT 

1300 CALL CHAR(12800000000 
0000000000000080C0476D380000 
00000000000000000000061FB6E0 
" , 132, 11 000000000000000000000 
0000E1BB16100000000000000000 
00000061F3660C0") 

1310 CALL CHAR(136,"03060505 
0303060F070305040904000030F8 
F8F0F0E0C66FFCF7E08000800000 
", 140,"000000000000070F0E070 
317172F2F16000000000000C0E63 
7FCEFE0C0800000“) 

1320 SUBEXIT 

1330 CALL CHAR(136,"387C7C7F 
7F7F7F3F3F3F3F3F1F1E0E041C3E 
3EFEFEFEFEFCFCFCFCFCF8787020 
", 140,”1E7FFFFFFFFFFF7F3F1F0 
300000000000098FCFEFFFFFFFEF 
CF8C00000000000") 

1340 SUBEND 

1350 SUB WA(X)s: FOR Z =1 TO 
X :: NEXT Z :: SUBEND 
1360 SUB MO(Z) 



1370 CALL POSITION(#7,Al,A2, 
#8 ,A3,A4):: CALL SOUND(1,-7, 
0):: CALL PATTERN(#7,132,#8, 
140):: PX=INT(RND*2):: IF PX 
THEN 1380 ELSE 1410 
1380 CALL COINC(ALL,Z):s PX= 
INT(RND*2):: IF PX THEN 1400 
1390 IF A4<=32 THEN 1440 ELS 
E A4=A4—8 :: A2=A2-8 ;: GOTO 
1440 

1400 IF A2>=200 THEN 1440 EL 
SE A2=A2+8 s: A4=A4+8 :: GOT 
O 1440 

1410 CALL COINC(ALL,Z):: PX= 
INT(RND*2)s: IF PX THEN 1420 

ELSE 1430 

1420 IF A1< = 168 THEN 1440 EL 
SE Ai=Al—8 ss A3=A3-8 ss GOT 
O 1440 


1430 IF Al>176 THEN 1440 ELS 


■v 



E Al=Al +8 :: A3=A3+8 
1440 CALL LOCATE(#7,Al,A2 ,#8 
,A3,A4):: CALL SOUND(1,-7,9) 
:: CALL PATTERN(#7,128,#8,13 
6 ):: CALL COINC(ALL,Z):: SUB 
END 

1450 SUB TOI(X):: FÜR Z=30 T 
O 0 STEP -2 :: CALL SOUND(-9 
9,X,Z):: NEXT Z ss FOR Z=0 T 
0 16 STEP 2 :: CALL SOUND(-9 
9,X,Z>:: NEXT Z 
1460 FOR Z=15 TO 0 STEP -1 : 

: CALL SOUND(-99,X,Z):: NEXT 
Z :: FOR Z=3 TO 30 STEP 3 : 
s CALL SOUND(-99,X,Z):: NEXT 
Z :: SUBEND 

1470 SUB LE(X >:i FOR A=1 TO 
X :: CALL P(6,108>:: CALL PO 
SITION < # 6 ,X1,Y1):: CALL SOUN 
D(1,— 6 ,A):: CALL LOCATE(# 6 ,X 
1 — 8 ,Y 1 ):: CALL WA(25) 

1480 IF XI<55 THEN CALL COLO 
R<# 6 ,11) 

1490 CALL P( 6 ,112>:: CALL SD 
UND(17,A)s: CALL WA(25):: 
NEXT A :: CALL P( 6 , 88 )s: SUB 
END 

1500 SUB S(X,Y,Z):: CALL SOU 
ND(X,—Y,Z)i: SUBEND 
1510 SUB P(ß,W>ss CALL PATTE 
RN(#Q,W):: SUBEND 





August 






















































p 

I* 


10 

1 

* 

* 

11 

t 

* 

* 

12 

« 

V 

* 

13 

f 

* 

* 

14 

1 

fl 

* 

15 

1 

II 

* 

16 

fl 

■ 

* 

17 

i 

# 

* 

19 

i 

* 

* 

20 

i 

■ 

* 

21 

t 

* 

* 

22 

i 

m 

# 

26 

t 

■ 

* 

27 

I 

* 

* 

28 

l 

* 

* 

29 

f 

* 


INTEGRALBERECHNUNG * 
tSimpson—Naeherung)* 

* 

Copyright by * 

* 

Rolf Qfferhaus * 

* 

! * 
* 

* 
* 
* 

* 
* 


Benoetigte Gerast 
TI99/4A Konsole 



Speicherbelegung 
3124 Bytes 


100 CALL CLEAR :: CALL SCREE 
N(5)s s FOR 1=0 TO 14 :: CALL 
COLQR(I,16,5) : : NEXT I :: 0 
N WARNING NEXT 

110 CALL CHAR(9 1 ," 0 F 1 C383030 
30303" , 92 ,"303030301C0C0C0C" 


,93,"0C0C0C0C0C1C38F H ) 


120 CALL CHAR<123,"FFB080B0S 
0808080“,124,“FF010101010101 
01“,125,"80806080808080FF",1 
26,"01010101010101FF") 


130 CALL CHAR<33,"FF",35 ,"00 

000000000000FF",36,"80808080 
8080808",37,"010101010101010 
1 ") 


140 A-3 :: GOSUB 550 
150 DISPLAY AT<10,1);" l.INS 
TRUKTIÜNEN": : " 2.STETIG”: : 
" 3.UNSTETIG": :" 4.PROGRAMM 
ENDE" :: DISPLAY AT(20,2):"B 
ITTE WAEHLEN SIE" 

160 CALL KEY(0,K,S>:: IF K =4 
9 THEN 170 ELSE IF K=50 THEN 
250 ELSE IF K=51 THEN 380 E 
LSE IF K=52 THEN CALL CLEAR 
:: STOP ELSE 160 

170 A=3 :: GOSUB 550 :: DISP 
LAY AT(10,1):"STETIG:"Dies 
es Programm verwendet-..man 
-Fuer die naeherungsweiseBere 
chnung des Integrals 1 " 

180 DISPLAY AT<14,1J:"einer 
vom Anwender definier—ten Fu 
nktion ueber dem......Interv 

all A bis B" 

190 DISPLAY AT(18,7):"Eb” :: 

DISPLAY AT (19,5) : " 1 = \ F(x) 
dx” :: DISPLAY AT( 20 , 7 ):”Ha" 
200 DISPLAY AT(24,1):"Weiter 
mit beliebiger taste" :: CA 
LL KEY(0,K,S):s IF 5=0 THEN 
2ß0 

210 CALL HCHAR(10,1,32,480): 

: DISPLAY AT( 10 , 1 ):"UNSTETIG 
- 11 ! "Dieses Programm verwende 
t...man zur naeherungsweisen 


L 

I 

S 

T 

I 

N 

G 

S 


220 DISPLAY AT< 13, 1): "Berech 
nung des Integrals 1 ,wobei: 

" :: DISPLAY AT(16,5):"1=\ F 
<x) dx" :: DISPLAY AT(15,7): 
"Cb“ :: DISPLAY AT <17, 7): "Ha 
" : "ist" 

230 DISPLAY AT(19,1):"Der We 
rt von F(x) muss an..,n+l gl 
eich untergliederten..Punkte 
n gegeben sein" 

240 DISPLAY AT(24,1):"Weiter 
mit beliebiger Taste" :: CA 
LL KEY(0,K,S)s * IF S=0 THEN 
240 ELSE 140 

250 A=4 : : GOSUB 550 :: DISP 
LAY AT(4,1I)SIZE( 6 ):"STETIG" 
:: DISPLAY AT(10,1):"Die Fu 
nktion F(x) kann in...zeile 
260 definiert werden" 

260 DEF F(X)=SIN(X> 

270 DISPLAY AT(14,1)SIZE(13) 

:"Eingabe von A" :: ACCEPT A 
T(14,15)VALIDATE(NUMERIC):A 
280 DISPLAY AT(15,1)SIZE(13) 
:"Eingabe von B*' :: ACCEPT A 
T(15,15)VALIDATE(NUMERIC);B 
290 DISPLAY AT<16,1)SIZE(13) 

:"Eingabe von N" :: DISPLAY 

AT (17,1) s **N( N= 2 ,4,6 )” :• 

ACCEPT AT(16,15)VALIDATE(NUM 
ERIC):N :: IF N =0 THEN 290 

300 IF N/2< >INT(N/2)THEN 290 
310 ER=0 s: H=(B-A)/N 
320 FOR 1*2 TO N STEP 2 

330 ER=ER+F(A+(<I- 1 )*H))*4+F 
(A+(I*H ))*2 

340 NEXT I 

350 ER=ER—F < A+(N#H ))*2 :: ER 
= (ER+F(A)+F(B> >*H /3 
360 DISPLAY AT(19,1):"L=”;ER 
:: DISPLAY AT(24,1):"Weiter 

mit REDO oder BACK" 

370 CALL KEY(0,K,S):: IF K =1 
5 THEN 140 ELSE IF K =6 THEN 
CALL HCHAR(14,1,32,352):■ GO 
TO 260 ELSE 370 

380 A=4 •* DIM FU( 200 ):: GOS 
UB 550 :: DISPLAY AT(4,10)SI 
ZE(8 ):"UNSTETIG" 

390 DISPLAY AT(10,1)SIZE(13) 
:"Eingabe von H" :: ACCEPT A 

T(10,15)VALIDATE(NUMERIC):H 

: s IF H=0 THEN 390 

400 DISPLAY AT(11,1)SIZE(13) 

:"Eingabe von N" :: DISPLAY 

AT(12,1):"N(N= 2 , 4,6 _ )" ■ ■ 

ACCEPT AT(11,15)VALIDATE(NUM 
ERIC):N :: IF N =0 THEN 400 
410 IF N/20INT (N/2) THEN 400 
420 DISPLAY AT(13,1):"Eingab 

e von 11 

430 FOR 1=0 TO N :: DISPLAY 
AT (14,1) : "FC; I; " ) " :: B=LEN 


57 

































<STR:t<I> > : : ACCEPT AT(14,7+B 
)VALIDATE < NUMERIC):FU( I) : : N 
EXT I 

440 DISPLAY AT(16,1):"Moecht 
en Sie Funktionswerte aender 
n CJ oder N)" :: CALL KEY(3, 
K,S ):: IF K=7B THEN 470 ELSE 
IE K=74 THEN 450 ELSE 440 
450 CALL HCHAR(16,1,32,64):: 

DISPLAY AT<16,1>SIZE<7):"WE 
LCHE F(x)?" :: ACCEPT AT(16, 
9) iC 

460 DISPLAY AT(14,1):"F(";C; 

")" :: B=LEN <STR$(C))s i ACCE 
PT AT(14,7+BJVALIDATE(DIGIT) 
:FU(C)ü GOTO 440 

470 ER=0 :: FQR 1=2 TD N STE 

P 2 

480 ER=ER+4*FU(I-1)+2*FU(I) 
490 NEXT I 

500 ER=ER-FU(N)*2 ss ER=(ER+ 
FU(0)+FU(N))*H/3 
510 DISPLAY AT(19,1)j"L=";ER 
520 DISPLAY AT(24,1):"Weiter 
mit REDO oder BACK" :: CALL 
KEY <0,K,S):s IF K=15 THEN 1 
40 ELSE IF K=6 THEN 530 ELSE 
520 

530 CALL HCHAR(10,1,32,480): 

: GOTO 390 
540 GOTO 540 

550 DISPLAY AT(1,2)ERASE ALL 

■ ••.rttltiiiiiiiitiiiipiiiiiij 

” :i CALL VCHAR(2,4,36,A)s: 
CALL VCHAR(2,29,37,A) 

560 DISPLAY AT(2+A,2):">#### 
####################'''" : : DI 
SPLAY AT(3,4)S1ZE(22):“SIMPS 
ON'SCHE NAEHERUNG” :: RETURN 


BÖRSE 


TI 99/4A Exbasic 100,—, 
Statisticm, 30,—, Buchhal¬ 
tungsmodul 50,—, Parsec 
20,—, Diskmanag, Modul 
20,—, TI-Rcvue-Gass. 2 + 3/ 
84 u. 7 + 8/85 u* Sl-Special 
2 Cass + 3 Cass voller 
Spiele 20,—, Datenverw, + 
Analyse 40,- DM, Suche TI- 
Artist, Multiplan + TI Logo, 
Tel: 06182/26186 


Verk. wegen Aufgabe ca. 
100 Top-Progr. für 70,— 
Ext, und U-Basic, sowie 
60 Spitzenprogr. für 40,— 
DM (Flugsim*, 3D Tennis, 
Sportspiele etc,) u. orig. 
Schlüter-Software auf Cass. 
Tel: 02541/4153 nach 
15 Uhr 


- High Freaks I 

Wer hat Lust mit mir E/A- 
Progr. zu tauschen??? Liste 

Biete TI 99/4A + Cass .ree, 
m. Verbindungskabel + 

Ext. Basic + Lerncass, TI 
Basic + vcrsch. Sachbücher 
+ zahlr. Spielmod. Tel: 
0228/281000, ab 14.30 Uhr 

* * * K A BOOM MM * * * 

Verk. dt. u. engl. Bücher für 

den Texas! VB, 25,—! Topan¬ 
gebot: Irvel, Irvel 2, E.T., 
Surgeon + Batman vom Au¬ 
tor! 10,- DM! Weitere Infos 
bei: Manfred Lipowskl, In der 
Wann 165, 462 Castrop-Rau¬ 
xel, Tel: 02305/72237, Mo - 
Fr. 18 - 22 Uhr, Sa, So, ab 
10 Uhr. 


TI 99 Anwenderprogr, in 
Ex-Basic + Tape z, B* Maths¬ 
assistant (über 40 Re¬ 
chenoperationen) o. Master¬ 
planer {Tabellenkalk.) uvm. 
Adresse: Dirk junghans, 

Am Fort-Biehler 9, 6503 
MZ-Kastel 


TI 99/4A + Box + 32 K + 

Ex Basic + E/A + Grafik- 
Tabl. + Tl-Writer + 3D- 
World + TI-Artists + Kuli + 
Tennis + The Mine + ID- 
Data/I D-Kto. + ca. 10 Mo- 
duie (adv* Return To Pirat, 
Fantbom ,„) VB 2000,—, 

Tel: 0231/486516, ab 16 Uhr 


Verk. Tl-Writer 80, — , Ed./As. 
70,—, Terminal-Emulator 
50,—, Disk-Manager 40,— DM 
Rainald Prinzen sing, Geitling- 
str. 27, 4630 Bochum 6, Tel: 
02327/61592 


Verk. TI 99/4A (140) + 

Ext. Basic {1 70} + Tl-Writer 
(100) + Schach (80) + Advcn. 
(70) + Mini Mcm. (110) + 

Disk Manager (60) + Ed./Ass. 
(60) + Parsec (60) + Statistik 
(40) zusammen für 750,— DM 
od. einzeln (Preise siehe 
Klammem). Ralf Schmitz, 
Tel: 02174/40654 


***KABOOMMM*** 
Verk, Modulei Z.B. Pole- 
Position, Congo-Bongo, 
Fathom 40,—! Car Wars, 
Wumpus u.s.w* 20,—I TE-2 
Modul 60,—u.s.wd!I Mehr 
Info über weitere Module 
(24 insges.) gibt es bei: 
Manfred Lipowski, ln der 
W T anne 165,462 Castrop- 
Rauxel 4, Tel: 02305/72237. 
Auch Tausch geg* gleichwert. 
Module! 


Verk. folgende TI-Modulc: 
Schach 60-, Othello 30,-, 
Blackjack 30,—, Pers* Rec. 
Keeping 50,— DM. Mini Me¬ 
mory VB! MBITnterface 
150,— DM. Suche Tausch¬ 
partner für E/A-Programmc. 
Frank Müller, Ursfelderstr* 49 
5014 Kerpen-Türnich, Tel: 
02237/8276 


Verk. weg. Systemwechs*: E 
/A-Paket 80,—, 32 K ext. m. 
LoadTnterrupt-Taster 100,—, 
ext. Disk-Contr. DSDD u. 
Laufw. (Atronic) 700,—, Joy¬ 
sticks 20,— DM. Bei: Tor¬ 
sten Beuck, Horner Redder 
14, 2000 Hamburg 74 


Verk. TI + Ex-Bas., Joyst., 
Speech, MBI-Centr., 8-f-Exp, 
Cass-Kab, Module: Sp.-Edit., 
Dat. + Analyse, Text + 

DaU, FiBu, Invad., Tombst-, 
Mus.-Make, Oth., Pars,, 
Micro-Stirg., Moonsw., Jgl.- 
Hunt, Dig Dug, Fußh., Munch 
m., Dong Kong, Bücher Tips 
+ Tricks etc., Bas* Kurs, GP 
550 Printer. Meschkat, Pf. 
1330, 3502 Vellmar 


Tl 99/4A: 2 Konsolen, Ex- 
Basic, P-Box (defekt), RS 
232-Karte, Disk^Drive, 32 K- 
Karte, Editor-Assembler, 
Tl-Writer, Joystick Brother 
CE-60 m* Interface, Multi- 
plan u* 7 Spielmod. auch 
einzeln zu verkaufen. Tel: 

069/504575 


Suche ext* 90 K-Laufw. f. 1 
orig. Tl-Contr. (mögl. m. 1 
eig. Stromvers.) sowie Sprach* 
synt- Angebote an: Hauke ; 
Höiterling, Carl-Schutz-Str. 1 
15, 60 70 Langen. Tel:. I 

06103/72518 | 


Tips & Tricks für TI 99/4A, 
Feile I + II, jeweils 1-3, 

5 KB (Ex-Basic). Progr. auf 
Kass. gcg. Einsendung von 
10,— DM. Peter Hielscher, 
Am Wall 22,4401 Saerbeck 


TI 99/4A Konsole m. eingeb* 
32 K-CMÖS Erw. zu verk. 
Rechner ist z.B* in Assembl. 

2 x so schnell wie mit not- ] 
malen 32 K, da alle 16 Daten- 
leitungen direkt am TMS , 
9900 angcschl. sind. Nähere 
Info: Tel: 06257/83247 


Tl 99/4A Box Floppy m. 
Karte Ex-Modul RS 232 + 
Karte, 32 K Multiplan TE II 
Diskmanager, Drucker GP- 
100 Zenith-Monit. Joystick, 
Dateiverwaltung, 3 D Welt, | 
Alle Handbücher. Div* Kabel. 
Preis VB. Alles auch einzeln. 
Hoffmann, Tel; 07022/ 
46542,ab 12 Uhr 


TI 99/4A, Ext. Basic, Sie- 1 

mens-Rekorder mit Kabel, VF 
deo-Chess, ca. 30 Zeilschr. ,1 
5 Bücher, 2 Joysticks, Progr., 
Superpr. Komp], f. 450,— DM 
Tel: 09261/20 790, nachmitt. 


Zu verk* Tl 99/4A m. Joy¬ 
sticks. Module; Datenverw. 
u* Analyse, Statistik, Perso¬ 
nal-Generator, Kass: 
Haushaltsprogr. Div. Litera¬ 
tur, VB: 400,— DM* Tel: 
0461/51509 


Verk. TI-Module; Soccer 

25*— # THnvader 30,—, 
Alpiner 30,—, Mash 40,—, 
Speech Editor 50,—. Su¬ 
che: Editor/Assembler* 
Peter GlÖde, Dorfstr. 43, 
2362 Wahlstedt 


Suche dringend einen Sprach* 
Synthes. f* TI 99 /4A. Mögl, | 
m. Anleit.! Bezahle für das I 
Gerät in 1A-Zustand + Ver- I 
sand u. NN max. 90,— DM. 
Bitte melden bei: Andreas 1 
Scholz, Londoner Ring 6, 1 
6700 Ludwigshafen, Tel: 1 
0621/666424 I 


Tl-Floppy aus Exp.-Box 
Shugart 4ÖÜL m. kompl. 
Service-Unterlagen VB 

150- DM. Tel: 071 1/3718 
29 

































































Verk. TI 99/4A m. viel Zu¬ 
behör z.B. Speich ererw. Ex. 
Basic 2 Plus. Tel: 0211/ 
422216 


Verk. TI 99/4A + Pac Man + 
Kleingrafiken + 92 Spiele + 
TI-Fachzeitschr, + Rec.-Ka¬ 
bel + Infocass. + Handbuch + 
Anleitung f. VB 250, - DM. 
Tel: 08142/52873, ab 15.00 
Uhr 


TI 99/4A: Ext. Doppellaut- 
w. i. Box + ext. Disc. (Texas) 
+ Diskmanager 680,— ; RS 
232 (Atronic) 2 Ports ext. 
180,—;32 K + Centronic (At¬ 
ronic) ext. 160,—; Tips + 
Tricks 20,— ; Spielen, lernen, 
arbeiten 20,-, Chipprogr. 7,— 
7 7 Basicprogr. Lon Poole 
15 P — DM. Tel: 06182/26 
186, Harald Ruppert 


Suche das Adventuremodul 
Erwin Kinslechner, Eibes- 
brunnergasse 1/10, A-112Q 
Wien 


Verk. Pers. Fin, Aids + 

Bas.-Progr. Rout + Market 
Simulation + Oldies II + 
Hardcopyroutinen, je 20,— 
DM, Tel: 08708/759, Semm 


Verk. Mini Mem. f Editor Ass, 
Mulitplan,je 150,- DM t Tex- 
Forth 60,- DM. Tel: 08708/ 
759, Semm 


Verk. TI 99./4A + Ext. 

Basic + dt. Handbuch + Tips 
+ Tricks + Rec.-Kabel 250,— 
DM. Tel: 05371/16150, ab 
18.00 Uhr 


Editor Ass. Buch 30,-; 
Modulator, Ch 36 + Fbas 
40, — ; Tastatur 20,—. 5 x 
Spiel Modulen, Parsec usw. 
150,- DM. Tel: 06155/ 
4692 


IZu Verschenken! 
habe ich nichts. Aber fast: 

TI 99/4A kompl. System. 
Liste geg. Freiumschl. ( . Mül¬ 
ler, Espanstr. 84, 8510 Fürth 


Hallo Tl-User! 

Wenn Ihr Euch einem User- 
dub an schließen wollt, dann 
denkt an REX-SOFT! 

Wir versorgen Euch u.a. m, 
Ass.-Freeware. Eine Info 
gibt es gegen Rückporto bei: 
Rex-Soft, Pestalozzistr. 7, 
2090 Winsen/Luhe 


Verk. Universaldrueker Cos- 
tnosJP 80. Voll grafikfähig, 
AufL 640/1280 Punkte/Zei¬ 
le und voll Epson kompati¬ 
bel, 9 Nadeln vertikal, 30 
Mio. Zeichen, VB 500,— DM. 
Tel: 0202/783901, ab 18 Uhr 


BÖRSE 


Achtung TI-FreaksIÜ 

Verk. TI 99/4A + Ex. Basic 
+* dt. Handbuch + Data Rec. 
f. 450 - DM. Tel: 07247/22 
542, nach 18.00 Uhr 


Verk. TI 99/4A mit eingeb. 
32K-ßyte Erw. + Ex-Basic 
Modul f. 400,- DM, Tel: 
06201/75170, Kohout 


Verk. TI 99/4A Konsole, 

3 J. alt + Software + Rec. 
Kabel + Bücher, VB 2ÜÜ,- 
DM. Tel: 02761/61749 


Suche: ROM + GROM d, 
RS232 a. Gass. gespeich.! 
H.P, Thelen, Sebastianstr. 
165, 5300 Bonn t*Tel: 
0228/628907 


Verk. TI 99/4A f. 100,- DM 
sowie versch. TI-Rev.-Hefte 
zum halben Preis. Tel: 098 

71/9835 


Bernstein-Monitor m. 

Kabel f. TI 99 /4A f. 300*- 
DM zu verk. Johann Schmitz, 
Pf. 900 771, 5000 Köln 90 


Verk. günst. meine Comp.- 
Magazinsammlung. Bitte 
Liste unter Beilage des Rück¬ 
portos anfordern! Johann 
Schmitz, Pf. 900 771, 5000 
Köln 90 


TI 99/4A # Ex-Üas, Parsec, 
Schachmod,, TI-Rec., Joyst., 
Cass.- Sottw., Literatur! Bil¬ 
lig! Tel: 06192/28956 

:# 


Verk. TI 99/4A Anlage. Voll 
ausgeb. Einzeln o. zusammen. 
Info: Tel: 02331/586672 


Tausche Software f. Ed.-Ass. 
Modul geg. TE II Modul u. 
Adv. f. Adv. Modul. F. Mer- 
tineit. In der Olk 20, 

5501 Gusterath 


Verk. Progr. f. E/A u. 

Ex-B. a. Disc. o. Cass, Listen 
geg. Rückp. P. Merineit, 

In der Olk 20, 5501 Custer- 
rath 


Weinheim er aufgepaßt ! Be- 
sitze ausgeb. TI, Suche Kon¬ 
takte & tausche Software!!! 
Meldet Euch bei: Oliver Ar¬ 
nold, Hauptstr. 44, 6946 
Gorxheimertal, Tel: 06201/ 
21429 


Verk. 80-Zeichen-Drucker 
Ti-Silent 743 m. RS 232-An- 
schlußkabel (orig. TI) u, 
Papier 250,—. Original TI- 
RS232 Schnittstelle (ext.), 
32K-Erw. eingebaut! 500,— 
DM, M. Becker, Tel: 06201/ 
16272 


Verk. Orig. TI-Diskettanlauf- 
w. 90 K-RAM f. Tl-Box. 
360,- DM. Tel: 0221/84 
3625 


TI 99/4A 150, — , dazu 
Ex-Basic, nicht einzeln! 
150,- DM, TI-Intern 25,- 
Apple kompl. System 
2000,- DM. Tel: 039/ 60 
93425 


Resetknopf, Zehnertastatur, 
Rabatte für Mitglieder, Glub- 
heft, Prg.Speicher, USA-Ser- 
vice, 32 K in Konsole, Druk- 
kerkabel uvm. im TI-CLUB 
BAUNATAL, Matthias Orf, 
Birkenallee 34, D-3407 
Baunatal I*Tel: 0561/4979 
90. Info 50 Pfg. od. aktuelles 
Clubheft 3,— DM anfordern 
... es lohnt sich! 


Wenn die 256K-Speicherer- 
weiterung lieferbar ist, er¬ 
scheint im Clubheft des TT 
CLUB BAUNATAL der aus¬ 
führlichste Testbericht die¬ 
ser Erweiterung. Wollen Sie 
den Bericht lesen? Ja, dann 
fordern Sie noch heute geg. 
3,— DM Clubhefte an — bei: 
TI-CLUB BAUNATAL, M. 
Orf, Birkenallee 34, D-3407 
Baunatal 1, Tel: 0561/49 
7990 


Orig. TI-Erweiterungsbox, 

32 K* Disc-Kontroller, 1 Int. 
und ein ext. Laufwerk, 

RS 232-Karte, Buchhaitungs- 
modul, Personal Rec. Keeping 
+ Maker, Schaltunterlagen, 
versch. Literatur, sehr viel 
Software auf Disk,, Mathe- 
matik 1, Basic Progr, Rou¬ 
tinen 11 u. III, Baustatistik, 
kompl. abzugeb. für 1400,— 
DM. Günter Trunk, Urnenstr. 
9, 67ÖÜ Ludwigshafen 25, 

Tel: 0621/6 78578, ab 17.00 
Uhr 


Verk.: TI99/4A + Kass,- 
Kabel + orig. X-Basic + TT 
Joysticks + Spiele + Bücher + 
3 Spielmodule zu TI (Parsec + 
Schach + Munch Man) + 9 TT 
Revue + 1 TI-SpeciaL Nur 
zusammen, Preis: 520,- DM. 
Tel: 05064/6177 


Verk, 1 TI Rec.Kabel 10,-, 

1 Netzteil vom Vorgänger des 
TI 99/4A (5V/1.6A, + 
12V/0.5A, -5V/0.15A), Preis 
VB, Ersatzteile vom TI 99/ 
4A, Leercass, C 60 a ~,50 
DM. 

Suche: Mod ule: Miner 
2049, Burgertime, Popeye, 
Video Chess, Jungle Hunt, 
Dcfender, Dig Dug, Pole 
Position u.a. 

Friedrich Haage, Rudolf- 
str. 9, 7460 Balingen Fr, 


Verk.: 

Konsole TI 99/4 A, s/w Mo¬ 
nitor, Speech Synthesizer, TI 
Box m. Flex Gable Karte, 

3 2 KB Karte, RS232 Schnitt- 
stellen Karte (IxParallel, 

2 x seriell), Disk-Controller, 

5 1/4 Disklaufw. (alles orig. 
TI) 

Modulsoftware: Diskmanager 
Ü, Ex. Basic, Ed.-Ass., Mul¬ 
tiplikation I, Add. u. Subtr., 
Minus Miss., Parsec, Alpiner 
(alles orig. TI) 

Literatur: 99 Spezial 1, Ed. 
Assembl. Handbuch (dt. 
u. engl.), Mini Memory 
Handbuch, TI-Rev, (15 
Hefte), Computer Contact 
(7 Hefte) 

Ca. 10 Disk. m. Software, 
Kass.Rec.Kabel (doppelt), 
Joystick, Drucker kahel 
(parallel), Schahpläne. Preis- 
VB. Neuw. ca. 3500,— DM, 
Tel: 06403/2289, ab 16 Uhr 


2K-Speicher für nur 100,— 
direkt ansteckbar zu best, 
bei: C. Mohr, Friesenweg 
38, 4133 Neuk.-Vluyn, Tel: 
02845/21507 


32K-Erw. z. Einbau i.d. Kon¬ 
sole (Superschneli, da direkt. 
Anschluß aller 16 Datenleit.) 
Lötarbeit erfordert. Verk. 
auch einige Module sowie 
Buch 99 Special. Preis: VB! 
Tel: 06257/83247 


Neuw. Software zu verk.! 
Module: Dig Dug 15,- t Re¬ 
turn to Pirate Isie 25*-, 
Parsec 20*-, Munch Man 
20,—, I I Invaders 20,—, 
Chisholm Trail 10,—, Alpi¬ 
ner 20,-, Adv. + allen 11 
Cass. 75,—, 70 Cass. m. ca. 
400 Progr., tägl, 15-17 Uhr 
Volker Niemey er, Tel: 04202 
/81279 


Suche TTUser zwecks Er¬ 
fahrungsaustausch im Raum 
Düren. Stefan Bachem, 

Arnoldswcilerstr. 52, 5160 
Düren, Tel: 02421/1 7673 


Schnellste Dateiverw. m. 
Kass. Ex-Basic-Progr. auf 
Kass. geg. Einsendung von 
10,— DM. Peter Hielscher, 
Am Wall 22, 4401 Saer- 
beck 


Endlich ist es da!!! Dt. 
Handbuch für TTWriter u. TT 
Forth. Preis pro Buch: 45*— 
DM. Ralph Weber, Lange- 
marckstr. 54, 8906 Gerst¬ 
hofen 


Achtung! Tausche Mini Mem. 
orig. TI + Literatur geg. 

Sprachsynthes. M. Macke, 
Tel: 0431/526083 













































































































































Verk. Auswahl aus meiner 
Progr. Sammlung (TI u. Ex- 
Basic), Eine G-60 Kass. voller 
Progr. für nur 10,— DM, 
Interessenten bitte melden 
bei: Andreas Scholz* Lon¬ 
doner Ring 6, 6700 Ludwigs- 
hafen 


Disk-Controll er und TI- 
Laufw r . intern für P-Bqx zu 
verk, Preis VBI Tel: 062 
57/83247 


Für alle die keine Schnitt- 
stcllenkarte haben. Ich 
biete für nur 150,— DM das 
M BI-Interface TI auf Cen¬ 
tronics an. Nur 1 x benutzt, 
Anfragen bitte an: Paolo 
Pririllo, Battonnstr, 30, 
6000 Frankfurt/Main 1 


Die Sensation überhaupt! Das 
neueste Spiel von MG Soft in 
Ex-Basic: Borondo! Zu 
einem Sensationspreis: Statt 
20nur 10,— DM (einmali¬ 
ger Preis), Also 10,— DM- 
Schein in Briefmarken an: 

M. Gorgen, Helgolandring 
122, 4300 Essen 1 


Verk, TI 99/4A + Ex-Basic, 

+ Joystick + Rec. Kabel + 
Rec. + Mod, (Alpiner, TXT 
u. Dateiverw, + Soccer) + Bas 
f. Anf, + Bücher + 3 Akten¬ 
ordner. Listings + Ifnos + 
Progr. Cass. nur kompl. 
630,— ÜM. H. J. Beckmann, 
Untere Dorfstr. 165, 5900 
Siegen 


Achtung! 

TI 99/4A-Systcm (kons,, 

Box, D-Laufw., Module, Disk, 
über 100 Hefte, Bücher, Joy¬ 
stick u.v.m.}. Alles 
gepfl. u. neuw., umst,halber 
40 % u. NP abzugeben. Kpl. 
Liste gegen frankierten Rück¬ 
umschlag bei Jürgen Müller, 
Espanstr. 84, 8510 Fürth 


Verk, Radix Miniassembl. 
inkl. 2 Software-Cass. für 
100 f — DM od. tausche geg. 
3 gute Spielmodule. Ange¬ 
bote an: Werner Clausen, 
Mathildenstr. 17, 2390 
Flensburg 


Biete an: Die Module: Monn 
Patrol, Buck Rogers, je 30,—; 
Datenverw.* Alien Add,* 
Othello, je 25,—; Rec.-Kabel 
12,-*, 10 TI-Rev, 7,-, Good 
Oldies Plays l s II, 10,— ; 
Speech Synth.: 85,— ; 50 
Progr, 20,- DM. Tel: 07621/ 
845Ü8H! 


Speichererw. 32 K,battcric- 
gepuff., kontrolI-LED, ex¬ 
trem durchgef. BUS neu für 
190,- DM/Tel: 0241/86447. 


High, Freaks! W r er hat Lust 
mit mir E/A-Progr. zu tau¬ 
schen?!? Liste an: Ralph 
Benzinger, Wilhelmstr. 65, 
6800 Mannheim 51 


**Neue Scott Adams Adv.** 
The Hulk, Spider-Man, Buk- 
karoo-Banzai, The Sor- 
cercr of Clay morgue castle, 
Sott Adams Lösungsbuch für 
alle Adv, Melden bei: J. 
Huppert, Hohenstaufenstr. 
27, 7141 Möglingen. Tel: 071 
41/461147. The Big Boiler. 
Tausche Adv. + Ass.Progr,, 
verk, RS 232 + Drucker Ka¬ 
bel, 


XXXS oft wäre XXX 
Verk./tausche Basic u. Ex. 
Basic Spiele. Suche günstige 
Module: Jungle Hunt u. 
Burgertime u. auf Kass.: 

Der schwarze Kristall, Gün¬ 
ter Simoncr, Baslerg, 50-66 
. A-1232 W r ien 


TI 99/4A kompl. Anlage orig. 
Pen-Box (32 K, RS 232, 
Diskkontr., 1 LW), SpSynth, 
Modulexp., Epson RX80F/T 
+ 26 Module (Ed/Ass, MM, 
Tl-Writer, XB, Disk-Man etc.) 
2 gef, Disk-Boxen, Kabel, 
Joystick, 5 kg dt. + engl. Li¬ 
teratur uvtn, VB 2200,— DM 
Tel: 069/6701252 


Verk. geg. Angebot TI 99/ 
4A + Netzteil und Palmodu¬ 
lator, Tel: 0203/583718, 
Roland Kegel, Lehrerstr. 
32,4100 Duisburg ] 1 


Suche im Raum Dortmund 
Kontakt zu anderen TI 99/ 
4A-Besitzern. Melden bei: 
Andreas Berkenbrock, 
Evinger Berg 8, 4600 Dort¬ 
mund 16 


Verk. 32 K, durchgef, BUS ( 
extern (nach TI-Rev. 9/85) 
Opt. 1 A, schw. Gehäuse, 
Kon troll led. EP: 170,- DM. 
Außerdem: 32 K, dto. 
ohne Geh. m, Anschluß, voll 
funktionsfähig 140,— DM. T, 
Külpmann, Lützowstr. 54 a, 
5800 Hagen, Tel: 02331/ 
21454 


Verk. TI99/4A mit Peri.- 
Box, Laufw,, Gontr., Ext. 
Basic, TLWriter, Ed.-Ass,, 

Apesoft-Grafik, Fac-Man, 
lnvaders, Alpiner, Software 
+ Literatur kompl. o. einzeln! 
H. Rögner, Lammsgasse 12, 
8500 Nürnberg 1 


Fast geschenkt !!! 

Org, TLjoystieks abs. neuw. 
15*— DM + Modul: Datenver- 
w* u. Analyse 20,— DM! 

Tel: 02451/46608 


Orig. RS 232, Druckerkabel, 
Zero-Zap , TI-Forth, TI 
Rechnungst., Div. Magazine 
von TI Soft Club Belgien, 

TI-Cass.-Basic Kurs, 4 neue 
Scott Adams Adv., 5 Spiele, 
Lösungsbuch für Adv.-Spiele, 
tausche Ass.-Progr, The Big 
Boiler, Tel: 0 7141/461147 


Verk. Orig. US-Ext.-Basic m. 
Handbuch, neu 120,— DM, 
32 KRAM ext. 150,- DM. 
Anfragen schriftl. an: Martin 
Sommer, Am Vogelherd 42, 
5060 Berg. Gladbach 2 


Superspiele für den TI 99! 
über 300 Progr. in TL und 
Ex-Basic für 2 - 8,- DM. 
Spielhallenhits, Advent., Ac¬ 
tion, Denk- und Glücksspiele, 
Weltraum- und Sportspiele, 
Info 1,— DM bei Frajo Fry, 
Sachsenstr. 30, 4350 Reck¬ 
linghausen 


Große Auswahl an günstigen 
Top-Spielen in TI- und X- 
Basic: Fußball, Hyper Olym- 
pic, Quasimodo, Ghostbu- 
sters, Manie Miner, Shuttle 
Command, Diablo und 300 
vieltere Spiele, Infu 1,— DM 
bei Ute Simon, Sachsenstr. 
30* 4350 Recklinghausen. 


32K-Ryte Karten für 110,— 
DM! Direkt an den TI an- 
stcckbar! Jede an mich ge¬ 
schickte Postkarte bekommt 
1 32K-Karte!I! Bez. per NN 
4133 Neuk.-Vluyn, Friesen¬ 
weg 38, W. Mohr!!! 

Verk. L TI/99/4A 
Kodeknacker (EX,C,D) 

5,—; Tape Directory (Ex, 
C,D) 5,—; Star Texter (EX, 

C, D) 7 1 —; Star Datei (EX, 

D, C) 8,—;Telefon regist er 
(EX,C,D) 7 - DM. Bei 
Marco Wintzer* Mühlstr. 42, 
60 70 Langen 


Restposten Diskettenlauf¬ 
werke 

Slim 5-1/4“ DSDDTEAC 
FD55B ] 60,“ 

GROMplatine mit Gehäuse 
(Spiel) 22,- 

Module Statistics o. Othel¬ 
lo je 20,- 

Comerz. Zeichnen Programm 
z.B, für Schaltbilder o. Lay¬ 
out 9 Bildschirme auf 1 DIN 
A4 Blatt auf Disk. 30,— 

E. L. Levits, Tel: (040) 299 
46 09, Roggenkamp 3, 

2000 Hamburg 60 


Verk. Ext, Hardware: Eine 
RS232 (2 Ports) f. 250,-; 
ein Disklaufw, L 280,- DM 
Orig, von TL Tel: 08161/ 
61537 


TI 99/4A + Ex-Basic + Lit, 
zu verk. Preis 450,— DM/VR 
Tel: 0451/495678, 2401 
Badendorf, R.H. Wilde 


Ich tausche Progr. in TI u. 

ExB. Liste an; Erwin Kins- • 
lechner, Eibesbrunnerg. 1/10 

A ll20 Wien 


Verk. TI-Ext,Basic 150, — ; 

TI Revue 3/84 bis 6/86 (13 
Stück)50 s — + Ti Special l t 
2 u. 4, 25 - DM. Peter Koch, 
Poststr. 57,4755 Holzwick¬ 
ede, Tel: 02301/2052 

—---- j 

IHallo TI-Freaksl 
Ich verk. Mini Memory sowie 
Spielmod. Tel: 0201/712816 


TI 99/§A, Ex-B., Joystick* 
Adapt,, massig Softw, + Li¬ 
teratur 290,— DM. 

Tel: 0911/435909, öfters 
versuchen. 


Suche günst. Disk.Conlr, f, 
BASF-Laufwerk 6106 - Ext. 
Klaus Schildbach, Rektor- 
Roth-Str. 3, 6501 Nieder- 
Ölm 


Suche Kontakt zu anderen 
Forth programmierenden 
TI-Usern. P. Klicm, E.- 
BrandstrÖmstr. 37* 5042 
Erftstadt 


Verk. Übersetzung E/A über 
400 S + Bspl + Tabellen, wie 
im orig, manual f. 49,80 DM 
Andreas Pack, Eickekrstr, 6ü 
4690 Herne 2 


Verk. f. TI 99/4A ext. 

32KRAM, Akku, gepuffert 
mit Progr. 230,— DM, neu. 
HJ. Rosin, Eicherdorffweg 
50, 5308 Rheinbach 


Diskeditor, Fast-Copy, 
GPL-Disassemblcr f. E/A, 

XB, MM u. 32 K. Alle sofort 
lieferbar: 100 % Masch.Spr. 
Info geg. Freiumschl. Mathias 
Eichhorn, Ziegelheck 1,6240 
Königstein 4 


Verk. für T1/99/4A 12,-; i 
Gbostbusters (D,EX, 32K) 
9,—; Höver-Bo wer (C od. D, 
Ex) 7,—; Adventureland (D, 
Ex) 9,—; Land des Grauens 
(Ex,C) 7,—; Space Battle 1, \ 

2, 3 (Ex,C,D) je 7 - DM. ] 
Bei Marxo Wintzer, Mühlstr, 
42*6070 Langen, \ 


Super! Verk. TI/99/4A + Ex- 
tended Basic + Handbücher j 
dt. u. engl, + Joyst. + Rec.- j 
Kabel + Kass. m. ca. 100 Su- j 
persp, + ca. 50 Listings zum ! 
Sensationspreis von 250,— J 
DM. Roland Stahl, Schubcrt- 
str. 8,8411 Duggendorf J 


























































































































BÖRSE 


Ti-User: Laßt Euch von Ge¬ 
schäftemachern nicht ausneh¬ 
men! Bei uns gibl’s US-Free- 
ware gratis — wie sich's ge¬ 
hört! Nur dem Autor schickt 
Ihr Euer Geld — Kontakt: Mi¬ 
chael Möller, Wehrhofstr. 10* 
6000 Frankfurt 90, Rückpor¬ 
to f, Info beilegen. 


Editor/Ass* 140,—, Mini 
Memory 130, — , Ex. Basic 
150,—, Terminal-Emulator 
50*—, Statistics German 20,—, 
Tl-Invaders 30,—, Adventure 
+ 2 Cass. 80*—, Parsec 30,—, 
Sprachsynthesizer i 1Ü,—, 
Joysticks 30,—, X-Box + 
Laufw. + Modul + Karte + 
Anleitung 11 50,—, RS 232 
Karte 300,-, TI 99/4A + 

3 Bücher + Rec. Kabel + An¬ 
leitung 3 30,—, zusammen 
2150,— DM. Bestellen per 
NN, D. Past, A-Roßhaupter- 
Str. 104, 8000 München 70 


Biete/Suche/Tausche T199/ 
4A Hardware ext. tint* sowie 
orig. Software, G. Bürger, Im 
Pump 5, 3051 Anhagen, Tel: 
05725/6409, ab 17 Uhr. 
Suche Tl-Caic und dt. Hand¬ 
buch 


Drucker Gemini 1QX zu verk. 
Preis: ca. 500,— DM, Tel: 
06081/7477, N* Keller, Tau- 
nusstr. 1,6392 Neu-Ans- 
pach 


TI 99 /4A, TI99/4A, TI99/4A 
Verk. RS 23 2 Schnittstelle 
für nur 150,— DM! Verk. vie¬ 
le Modulc (Buck Rogers usw.) 
von 10 - 40,— DM. Interessen¬ 
ten bitte an M. Schenk, 
Rosenweg 4, 7107 Bad Fried¬ 
richshall 


TS 99/4A ist noch da! TI99/ 
4A ist noch da! 

Wer hat Lust mit mir Progr. 
zu tauschen oder Hardware 
(meine) zu kaufen? Einfach 
80 Pfg.-Briefmarke an: Mar¬ 
kus Schenk, Rosen weg 4, 
7107 Bad Freidrichshall 


O Mein Gott! 

Gibt es denn im Umkreis 
von Rad-Hersfeld nur 2 ju¬ 
gendliche TI-Benutzer??? 
Wenn es tatsächlich mehr 
sind, dann bitte unter 
Tel: 06621 / 61416, ab 
13.00 Uhr melden! 


Verk. Spielmod.: Attack- 
Invaders u. Tomb.-Ciiy, je 
20, DM od. lausche geg. 
andere Spielmod. ^Schach 
o. Advent, bevorzugt) Verk. 
auch Buch TI-Bas. - Exbas, 
VB 25, — , auch l ausch geg. 
Special + 1 o. II. Tel: 08122/ 
13094 


1 / 

***99 "er MAILBOX*** 
Erste deutsche Malbox für 
*den TI99/4A. TI-Box* 
Online: Sa + So 19-24 Uhr 
Para/s: 7/1 /Even 
Tel: 07142/45129 


MAILBOX für TI99/4A 
Wo sind die texanischen 
Hacker? 

Erste deutsche Mailbox für 
TI99/4A. * TT Box* 

Online: Sa + So 19 -24 Uhr 
Para + s: 7/1 /Even 
Tel: 07142/45129 


TI 99 wegen Aufgabe: 30 
Modulc, EA, XB* Writer, 
Multiplan, DBase, Testmodul 
u.a., ca. 250 Disk m* Soft¬ 
ware, Stück 5,— DM, 40 
Bücher und anderes mehr, 
u.a. orig. US-Produkte, Liste 
gratis: G. Lesnik, Am Jung¬ 
brunnen 9, 4600 Dortmund 
18 


Suche Diskkontroller, ext, 

r 

Speichererw. und LW Schach- 
moduT E. Müller, Langenbo- 
chumer Str. 371,4352 Her¬ 
ten, Tel: ü209/610829 

Suche def. TTTeile Box, 
Karten, Module usw, Ange¬ 
bote an: Walter Rossmanif, 

Tel: 06035/6931, ab 20 Uhr. 
Suche Grafikprogr./Hardkop, 
Tl-Seikosha, GP 550A 


Verk. F. den TI 99/4A 
folgende Module: Tunnels of 
Doom 50, — , Schach 5Ö S —, 
Othello 25,—, Üatenverw. 
50,—, öuchungsjournal 
100 ,-. 

Folgende Kass.: Flugsimu¬ 
lator 30,—, Marketingplan¬ 
spiel 20,—, Basic Routinen 
1 40,—. 

Folgende Bücher: Assembler- 
Handbuch für Mini Mem, 
in dt, 40,—, Chip-Buch, Progr. 
für TI 99/4A 10,-, 

Folgende Hardware: P-Code- 
Karte mit Pascal Software 
(Compiler, linker, Assemb¬ 
ler, Utilities) u* Handbuch 
750,— DM. Norbert Roser, 
Goethestr* 31, 8750 Aschaf¬ 
fenburg 


Verk TI 99/4A, 2 Konsolen, 

2 Adapter, 4 Spielmod, Ex 
Basic, EdAss., P-Box, 

MuJlipi, Dis km an., Drucker, 
RS 232 Listings, V24 Schnitt¬ 
stelle, s/w'-Monitor, Cassrec. 
Zeitschr, 99 Special 1 + 2, 
Tips + Tricks, 
u.v.m,, Preis VB 
3200,- DM, NP 4500,- DM. 
Tel: 06253/6847 


TTMultiplan zu verk. 150,— 
DM od. Tausch geg. TT 
Writer. Tel: 040/5522677 


Verk. folgende TI-Module: 
Tunnels of Doom (Graf.Adv.) 
Adventuremodul, je Modul + 
Kass. 50,— DM. Adv. Kass.: 
Ghosttown, Adv.Land* je 
40,— DM. Anschr: Helmut 
Reuther* Bellerweg 4, 5449 
buch, Tel: 06762/6455 


Suche: RS232 f. P. Box, Mo¬ 
dul, Editor/Assembler. Anton 
Racderstorff, Pf. 216, 4123 
Allschwil 1, Schweiz, Tel: 
061/635361 


Verk. Cons + Pal Mod m. Mo¬ 
nitoranschluß, 3 2 K-Karte, 
RS23 2Karte* Diskcontr., 
Diskdr., Per-Box, Xbasic, TT 
Writer, Modulexp, Preis 
150,-, 150,—* 190,-, 200,-, 
200,- 200,-, 100,-, I 50,- 
80,— und Einiges mehr. R. 
Wosse* Randenborgweg 125, 
Nieuwstadt (NL), Tel: 0031 / 
4498/53598 


Verk. P.-Box, 32 K, RS 232, 
Controller, Laufw. alles Ori» 
f. 3 Laufw. vorher. 

P-Box* wie vor, jed. mit 2 
TEAC-Laufw\, beide Boxen 
techn. und opt. o.k. 

1 99/4A, ladenneu, 3 dto. we* 
nig benutzt. Rarität: 99/4 m. 
NTSC-Monitor (Grundig, voll 
o.k. 

1 RGR-Modul, 1 Modulexp., 3 
Sprachsynt., I dto* neu, 1 
Queme- Terminal/80 Zeich., f. 
Tl-pass,, m. Softw. dazu. 
Module: 2 mech, Exb. Plus II, 
3 orig. TTExbas, 1 dto* neu, 

1 Mini Mem., 3 neue ßu- 
chungsjourn., 1 TE 11,1 
Speeched., 1 Lagerverw./ 
dis k. t 1 Demo-Verk.mud,, 

1 Fitness-Training, 2 Hang- 
man, 1 Video-Game I, 1 
Wumps, 2 Schachmeister, t 
Tunnels of Doom, 1 Munch 
Man, 3 Tombstone City, 1 
Driving Demon, 1 Chisholm 
Trail, 1 Tl-lnvaders, 2 Par¬ 
sec, 1 Wewermania, 1 Bigf* 

1 MB-Spracherkennungsyst., 
inkl. Baseball-Modul (dazu 
pass.: Scvermania und Big- 
fooTModule).. 

I Orig. KULL-Compiler. 
Amerik. 99er Magazine. Sehr 
viele Progr. a. Disk. TI-Revue. 
Tel: 0441/54423, ab 18 Uhr. 


Wir suchen TI-Fans L d. ganz. 
Welt!!! Erwin Kinslechner, 
Eibesbrunnerg. 1/10, A- 
1120 Wien 

- —-«*— 

Hallo TT-Freunde 
ln Heft 6/86 war meine An¬ 
zeige auf Seite 62,4. Spalte. 
Leider habe ich die Anschr. 
vergessen. Hier alles nach¬ 
träglich: Örhan Kiran, Haupt - 
str. 52, 7601 Schutterwalt, 
Tel: 0781/51884 


i 



j 


Module zu verk. Multiplan, 
Burgertime, Congo Bongo, 
Personal Record Keeping* 
Preise ? DM. Frank Gmduilis, 
Drosselkamp 12* 2200 Elms¬ 
horn, Tel: 04121/24243. 
Auch Tausch gegen Speech 
Synthesizer oder Modulex¬ 
pander 


Verk. wenig gebraucht: Ma¬ 
trixdrucker Sei kosha GP 
100 A, 80 Zeichen/Zeile m, 
Hardcopy-Progr. f. 250,— 
DM. N. Burkhard* Ringstr. 
21,6530 Bingen 1 7. 


Zu verk. Handb. z. Adver- 
tizer Modul 20,— Fr. Brief- 
Vorauskasse o. NN. B, 
Schönauer, Alpenstr. 32, CH- 
2540 Grenchen. 

Suche Eprombrenner + Soft¬ 
ware 


Verk. Munch Man 25*—, TI- 
Invaders 35,—, Mind Challen¬ 
ger 30,—, Datenverw. + Ana¬ 
lyse + Pers. Rep. Gen, je 
35,-, Basic Progr, Routinen 
, 2 + 3,je 50,—* Tunnels of 
Doom 50,—, ID-Data 2 50,-, 
Torpedo Basic 50,—, Hagera 
Ass-Kurs 40,- DM. Tel: 

08 708/759, Semm 


Verk. Mechatronic Extendet 
Basic + div. Bücher (Tips + 
Tricks etc.) + Tl-Rev. 1/84* 
3/84 - 6/86 + TI-Special 
(1/2) + 100 Progr. (Flugsim. 
etc.) VB 200,- DM. Manfred 
Kersen, Tel: 02591/6018 


Thcrmo-Transfer-Drucker 
HR5, RS 232, druckt auf 
Normal- und Thermopapier, 
für Batterie u. Netz. 

Inkl. Netzteil, Farbbändern 
und Kabel im Orig. Karton: 
200,- DM. Tel: 06821/ 

79 8 25* Lucas, nach 1 7 Uhr 


Achtung! Achtung! Achtung! 
Die erste 99'er Mailbox - 
Logg doch mal rein 
Online: Samstag von 19 - 
24 Uhr 

Sonntag von 19-24 Uhr 
Tel: 07142/45129. 

Bitte nur während der Otv 
line-Zeiten anrufen! 


TI-Konsole defekt 80,—, Ext 
Modul 90,—* Handb. ex. engl. 
10,—, Tip + Tricks, Data 
Becker 10*—, TI-Konsole z. 
Ausschlachten 50* DM, Tel: 
07141/482666 


Datei verwalt. Progr. super¬ 
schnell in TT Basic* auch in 
Kass. Version senden Sie 
nur 20, - DM in einem Um¬ 
schlag mit Absender an: 

G. Schmidt, Reumolstr. 52, 
4790 Paderborn 




























































































































SERVICE 


“Projoy“ erlaubt die pro¬ 
portionale Steuerung von 
Sprites und basiert im 
Wesentlichen auf dem in 
TI-REVUE 3/86 vorge¬ 
stellten A/D-Wandler. 

Um eine proportionale 
Steuerung zu realisieren, 
braucht man eine Eingabe 
. Einheit. Die im Handel 
erhältliche ‘TI-Maus* ist 
jedoch recht teuer und er¬ 
fordert ein Diskettenlauf¬ 
werk. 

Als preiswerte Alternative 
bot sich da ein 
Knüppel für Fernsteue¬ 
rungen an, der bei Völk- 
ner in Braunschweig 
schon für 36,- DM zu 
bekommen ist. 

Nun braucht man nur 
noch 2 der schon erwähn¬ 
ten A/D-Wandler sowie 
das I/O Modul aus 
TI-REVUE 2/84. 


FUNKTIONS- 

BESCHREIBUNG: 


Die von den Potentiome¬ 
tern des Knüppels kom¬ 
mende Meß-Spannung 
wird von den A/D-Wand- 
lern digitalisiert und 
durch das I/O Modul in 
den Rechner eingegeben, 
Per Software können nun 
Sprites proportional zu 
den Knüppelbewegungen 
über den Bildschirm hu¬ 
schen — eine Hilfe z.B. 








TI 



POTI 1 5 kOhm 


POTI 2 5 kOhm 



+ 5V 





Masse 

(GND) 


INPUT TL 507 
A/D 1 


INPUT TL 507 
A/D 2 


für Grafik- oder Spiel- 
programme. 


HARDWARE: 


A/D-Wandler “1“ anschlie¬ 


ßen, wie es in TI-REVUE 
3/86 beschrieben wurde. 
A/D-Wandler “2“ wird 
folgendermaßen ange¬ 
schlossen : 

1. Pin 4/TL 507 (out) 


an Pin 2/74LS25 1(12) 

2. Pin 2/TL 507 

an Pin 6/74LS259(03) 

3. Pin 8/TL 507 (RES) 
an Pin 4/74LS259(01) 

4. Spannungsversorgung 
herstellen 

5. Anschluß des Steuer¬ 
knüppels: 


SOFTWARE: 


1 )a_s Programm aus TI- 
REVUE 3/86 wurde auf 

2 A/D-Wandlern erwei¬ 
tert. Um eine schnelle An¬ 
sprache der Sprites auf die 
Knüppel-Bewegungen zu 
gewährleisten, werden die 
Sprites durch das Maschi¬ 
nenprogramm positioniert. 
Durch Drücken einer belie¬ 
bigen Taste wird ins Basic 
zurückgesprungen. 

Format: 

CALL LINK (“PROJOY“ 
#SN,X,Y,K) 

= Spritenummer 
(1 -28) 

X = Reihe 

Y = Spalte | 

K = ASCII-Code der 

gedrückten Taste. 

Benötigte Geräte: 

Tl-Konsole 
Ext. Basic 
32 kB Erweiterung 
I/O Modul 
2 A/D Module 

Kay Sievert 




Die Firma Texas Instru¬ 
ments gab vor einiger Zeit 
ein ‘Care Package* eine 
Sammlung von Program¬ 
men und Informationen, 
heraus. Diese Sammlung 
sollten alle TI Userclubs 
bzw. User kostenlos, 
bzw. gegen Portorücker¬ 
stattung, erhalten. Daß 
dies nicht immer der Fall 
zu sein scheint, zeigt fol¬ 
gender Brief: 

Liebe TT-Redaktion! 

Ich hoffe, daß ich mit die¬ 
sem Brief anderen TI- 
Usern, was uns, drei TI- 
Freunden in Frankfurt, 
passierte, ersparen kann. 
Obwohl sich die Leute, 
die uns die Programme 


‘verhökert* haben, in der 
letzten Zeit in so mancher 
Veröffentlichung als eine 
Art ‘Rotes Kreuz* für den 
Tl-User darstelten, pas¬ 
sierte folgendes. 

Mein Freund fuhr mit dem 
Zug nach Bonn und traf 
den Herrn. Am Telefon 
war die Rede davon, das 
Care Package von Texas 
Instruments zu bekom¬ 
men (von Geld war keine 
Rede — ist ja Freeware). 
Darin kam der Hammer. 
Pro Paket-Teil oder Pro¬ 
gramm 25,- Mark cash 

auf die Hand. Auch ande¬ 
re Kopien (Infocom) wur¬ 
den zu diesem Preis an¬ 
geb oten. 

Auf die Frage, wofür das 


Geld sei, wurde gesagt — 
wörtlich: ,,Ein Ausgleich 
für die lange Zeit des 
Wartens!“ 

Ein echter Gipfel der 

Unverschämtheit! 

So beschlossen wir, einen 
Club o.ä. aufzumachen, 
die Freeware und das Care 
Package an jeden Inter¬ 
essenten gratis — wie es 
doch wohl richtig ist, 
abzugeben. 

Von dem Geld hat der 
Autor, der sich die Mühe 
machte, bestimmt nichts 
gesehen und der hat’s ja 
wohl als einziger verdient. 
Wir haben uns schwer ge¬ 
ärgert. 

Der ‘Herr 1 handelte übri¬ 
gens nicht auf eigene Kas¬ 


se, sondern sagte, es sei 

für seine Gruppe, trat also 
offiziell auf! 

Michael Möller 
Wehrhoftstraße 10 
6000 Frankfurt/Main 90 

Wenn andere ebenfalls 
die Erfahrung mit einem 
solchen Kontakt machten, 
so möchten sie dieses auch 
an uns schreiben. Clubs, 
die dieses Care Package 
noch nicht haben und es, 
nachdem sie es erhalten 
haben, an andere Tl-User 
kostenlos oder unter 
Po r torückers tat tungbz w. 
Einsendung einer Disket¬ 
te, weitergeben wollen , 
können uns schreiben. 

Heiner Martin 


62 





















































































* 

i 


DEF 

CP 

EQU 

MW 

BSS 

BX 

BSS 

BY 

BSS 

SA 

BSS 

SN 

BSS 

KE 

BSS 

BS 

BSS 

DA 

DATA 

11 

MOV 


LI 


SETO 

• 

LI 

1 

SBO 


SBO 


SBZ 

LI 

• TB 


J ME 


SBZ 


CLP 


SBO 


DEC 


TH 


LI 


JMP 

Fl 

MOV 


TEQ 


LI 

OT 

MOV 


MOV 


MOV 


RT 


PRO J DY ** 
PROJOY 

> 1 200 

32 

2 

fr 

2 

2 

2 

2 

2 

10 

RU , §SA 
Ft2,CR 
PA 

R5,122 

O 

t 

0 

1 , 

Fl 

t. ‘ 

RA 

1 

R5 

LI 

P5, >' 7 F00 
12 

RA, RA 
12 

R5,>FFOO 
R5,§BX 

py ,§by 

§SA,Rt1 


LI 

JMP 

F2 MOV 

JEQ 

LI 

JMP 

LO MOV 

LI 

S 

s 

MOV 

LI 

MPY 

CLP 

DIV 

LI 

S 

r 

MOV 

MOV 

LI 

MPY 

CLR 

DIV 

LI 

S 

MOV 

CI 

JLT 

CI 

JGT 

CI 

JLT 

CI 

JGT 


R7,>?F00 
OT 

PA, PA 
OT 

P.y, >FFOO 

OT 


RU , §SA 
RO, 3A 
PO,§BX 
RO,§BY 
§BY,R1 
RO, 34 

PO, RI 

RI 

§DA,RI 
RO,198 
P ! , PO 
RO, P4 

PO, 44 
RO, RI 
RI 


§0A,P1 
RO,2A2 
RI , RO 
RO, R5 
R4, t 
02 

R4, t 92 
02 

R5,i • 
02 



12 SETO PA 

LI R?,12? 
SBO 0 
SBO 2 
SBZ 0 
L 2 TB 2 

INE F2 
SBZ 2 
CLR PA 
SBO 2 
OEC py 
TH L2 


MOV R5„§BX 
MOV R4,§BY 
MOV §SN,PO 
MOV R4,RJ " 
SWPB RI 

BL Up gVSBU 

INC PO 
MOV P5, R1 
SUPB R t 
BLUP fVSBW 
02 MOV §SA,PU 



MOV §BY,§FAC 
BLUP iXMLLNK 
DATA >0020 
CLR RO 
LI Rt,2 
BLWP 8NÜMASG 
MOV §BX,§FAC 
BLUp §XMLLNK 
DATA >0020 
CLR RO 
LI R 1,3 
BLUP iNUMASG 
MOV §KE,§FAC 
BLUP §XMLLNK 
DATA >0020 
CLR RO 
LI R t,4 
BLUP §NUMASG 


MOV 

LUPI 

PT 

El LI 

BLWP 

E2 LI 

BLWP 
* » 

PROJOY LUPI 

MOV 

CLR 

LI 

BLWP 

CLR 

BLUP 

DATA 

MOVB 

JNE 

MOV 

CI 

JLT 

CI 

JGT 

DEC 

LI 

MPY 

AI 

MOV 

TS BL 

BL 

CLR 

LI 

BLWP 

MOVB 

COC 

JNE 


§BS,R11 

>83E0 

RO,>0200 
iEPP 

RO,>IE00 
§ERR 

HAUPT-PROGRAMM 
MW 

RI1,§BS 
RO 
RI , 1 
SNUMREF 

§XMLLNK 
> 12B8 
§>8354,RO 
El 

§FAC,RO 
RO, 1 
E2 

RO, 28 


RI , 4 
PO, Rt 
R2,>0300 
P2,§SN 
§11 
§L0 

§>8324 

RA,>2000 
§KSCAN 
§>837C,R1 
RA, RI 
TS 


MOV 

B 

END 


§ >8375, 
§BR 




4 




















ft 















u: i- - 
























PIT 400D 


.^4 \ 






. v\\ 




J~. 


Schönschrift, OCR-Schrift, 


keit, für Home Computer, Personal 
Computer, Bürocomputer, Textsysteme, 
EDV-Systeme. Drucker mit vielen Zusatz¬ 
ausstattungen wie Einzelblattzufuhr, 
Stapelzufuhr, Mehrfarbdruck, Etiketten¬ 
druck oder Schneidevorrichtung. Drucker 
mit vielen, wählbaren Schriftarten. - i 


Mannesmann-Tally-Klasse - das sind 
erfolgreiche Drucker, kompatibel zu erfolg 
reichen Computersystemen und dazu 
der qualifizierte, kundennahe Service. 


V.annesmann Tally GmbH 

Bcttroper Str. 10, 7000 Stuttgart 50 
Telefon 07 11 / 5 03 90, Telex 7 254 672