' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?   1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 VDP (ED Z $0x8x D- ܸDD# H8`?E Vk *f???0xE Hh D#-EEE8` D ܸx D - ܸx8`-0ݩ?ʥD EEE`   LDcpq` [` ~  LӜu`".Q`pNФbptťܥm2<(-Py0\|e<6e<g< JJJJj귍hI  aUL@ kU8  L  Q^R(jQ0l^l\  wUuW ԧ H h@ [_ /QSIRb_L`LLLL`ª`LQLYLeLXLeLee ўQH\(h0L& Ꝥ$`( R \ZLl8 ўR HH\`\Z[YS6`LxQɿu3'RͲʎRʎ]]]ɍuL͟ɍ}RLRɍg^H8 ^hZLɍR LͲɊRR% QLܤͲ Z@ -^ ş\[Z QY\[Z8`l6Lş_Ȍb_Ͳ] )Y h( ֭ͲLɍ [LLĦ__ ^ 9 LҦ3 9 a   0LjLY u< (_9 ˭ɠuɠK_9 ?LˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx- ( jϠ@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫ XI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"L ŵ8ŵH ~(`# d ֠z# u`19,76=MU20,MU2((MU2)256)256:MU21,((MU2)256)KMU22,96U: ` BY: JEB EDDY KOALA TECHNOLOGIES APRIL 1983CNOLOGIES APRIL 1983B89,MU1((MU1)256)256ODMU10,((MU1)256)^NMU11,240XMU12,MU22((MU22)256)256bMU12,9lMU13,202vMU14,208MU15,245MU16,174MU17,MU(MU256)256:MU18,(MU256)MU6bMU12,9lMU13,202,vMU14,208;MU15,245JMU16,174wMU17,MU(MU256)256:MU18,(MU256)MU19,76MU20,MU2((MU2)256)256:MU21,((MU2)256)MU22,96: ` BY JEB EDDY KOALA TECHE MU104256: THIS ADDRESS IS ARBITRARY; CAN BE IN ANY FREE SPACEfMU2,173:MU3,48:MU4,192t&MU5,1360MU6,208:MU7,5:MU8,206:MU9,MU1((MU1)256)256DMU10,((MU1)256)NMU11,240XMU12,MU22((MU22)256)25EEK (QQ + 1) < > 65 OR PEEK (QQ + 2) < > 48 THEN PRINT CHR$ (4) + "BLOAD ASCII SET,A";QQ: POKE 233,CP: POKE 232,0|%@ THIS IS A RELOCATABLE TONE GENERATOR, USING PITCH AND DURATION VIA POKES; THEN A CALL. -- NOT USED IN THIS PROGRAM T OF SHAPE TABLE; CAN BE ANYWHERE IN FREE MEMORYF#232,0:233,S256V#S,1:S1,0h#S2,4:S3,0#K8S4S24:Q:K8,Q::#NO$(10):I18:NO$(I)::% LOAD ASCII SET AT CP *256 v% QQ = CP * 256: IF PEEK (QQ) < > 150 OR PRESENTED IN THE 'HI-RES SMOOTHING' PART OF THIS GUIDE."E100K:n :11:12:"ONE MOMENT PLEASE"z D$(4) D$"RUN FUNDAMENTALS.PARTB" OF THE PROBLEMS." 1005 RUN NEXT PROGRAM X :11:12:"ONE MOMENT PLEASE"{ (4)"RUN FUNDAMENTALS.PARTB"BE TABLET MAY GLITCH."< -- COMING SOON --PRINT : PRINT "A MACHINE LANGUAGE ROUTINE THAT SOLVES BOTH OF THESE PROBLEMS IS P."1:"THERE ARE TWO ITEMS TO REMEMBER HERE:"d:1:"1) 'BASIC' IS SLOW AT THESE FUNCTIONS;"w:" AND":1:"2) RAW DATA";" FROM THE TABLET MAY GLITCH." COMING SOON --PRINT : PRINT "A MACHINE LANGUAGE ROUTINE THAT SOLVES MOST23:" PRESS BUTTON #1 TO CONTINUE":" PRESS BUTTON #2 TO REVIEW";a(B1)1272200u(B2)12719202195 NEXT PAGE :5"YOU MAY ALSO HAVE NOTICED THAT DRAWING":"VERY QUICKLY CREATES VISIBLE, JAGGED":"LINE SEGMENTSE TABLET, THE X AND Y VALUES MOVE TOWARD THE RELEASE"k"OR 'INACTIVE' STATE IN THE UPPER LEFT. BUT OFTEN THE VALUES DO NOT GET ALL THE WAY THERE, ONLY PART WAY."pz"THE STRAY LINES ARE CAUSED BY PLOTTING":"TO THESE UNINTENTIONAL POINTS."M H::5`R"IF YOU PRESSED THE TABLET LIGHTLY, OR LIFTED YOUR FINGER, YOU PROBABLY SAW"\"STRANGE LINES ZOOMING LEFT, UP, OR BOTH.":"THE CAUSE IS SIMPLE: UNLESS THERE IS"7f"GOOD CONTACT BETWEEN THE TWO PLASTIC SURFACES THAT MAKE UP THOME ";::"STRANGE";::" LINE SEGMENTS! 6100: <y 202:X10Y102060: -- TRAP THE RELEASE STATE VALUESX,Y202:Y160ēX,Y(B1)127(B2)1272100: -- JUMP OUT IF EITHER BUTTON GETS PRESSED 2070: NEXT PAGE 4'>127', NOT 128 -- THE DIFFERENCE IS CRITICAL."H0100: NEXT PAGE Q:5r"NOW ON TO HI-RES LINES..."::"THE PART THAT YOU ARE ABOUT TO SEE WILL":"SURPRISE YOU. WHILE YOU ARE DRAWING")"WITH YOUR FINGER, YOU WILL PROBABLY SEE":"SA' BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983B YOU CAN ADD YOUR OWN DATA STATEMENTS, TO CREATE MORE FUNCTIONS!H!--- OBVIOUS CANDIDATES ARE 'INITIALIZE', 'DELETE', AND 'PRINT'. I LEFT THESE OUT ON PURPOSE, HOWEVER,R!--- TO AVOID POSSIBLE ACCIDENTS CAUSED BY BEGINNERS. A WORD TO THE WISE... ĈתՆժժ||p תժժ0``𿀀תꀨՂp |`~ `"ժëժp ~Á<<><<<ňꀘ~   F1F1  p  ժ~~LjĈ𿀀ת՚ժǏժתժՊ0߈߈תꀨՂp ~`| `> ժëժp ~ժëժ"""""""ꀘ    F1F1   0  ժ~~Ĉת՚ժȑ࿀🀀ꃀժת׊תꀨՂp `  `ժëժp  ժëժ"" >""""D$(4):D$"RUN HELLO.K--2"f` BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983LORED, SCALED AND ROTATED."::"YOU CAN EASILY TURN ANY CURSOR INTO A" "BRUSH, BY USING 'DRAW' INSTEAD OF 'XDRAW.' " 300  QUIT  :6:" THAT'S ALL FOR MAKE YOUR OWN CURSOR." :" LET'S RETURN TO THE MAIN MENU..." SHAPES CAN BE EDITED AT ANY TIME!"z8 :"WHEN YOU HAVE CREATED A SHAPE YOU LIKE, YOU CAN USE THE CONVERTED (NUMERIC)"L "DATA";" IN OTHER SHAPE TABLES, ARRAYS, ETC.":300: ` :V: -- NEXT PAGEFt "AS WITH ALL SHAPES, THESE TOO CAN BE CO DUMMY, FOR EASE OF EDITING;THE '-' MEANS 'MOVE, BUT DON'T DRAW', AND APPLIES TO THE NEXT CHARACTER.": NEXT PAGE 300::V% "THE BENEFIT OF THIS APPROACH IS THAT ---ANYONE--- INCLUDING ELEMENTARY SCHOOL CHILDREN CAN CREATE SHAPES! AND THE TO CREATE A CURSOR SHAPE BY USING A SIMPLE 'DATA""STATEMENT. YOU JUST CREATE A STRING OF THE CHARACTERS: U,D,R AND L, MEANING""UP, DOWN, RIGHT AND LEFT RESPECTIVELY.":"A DATA";" LINE LOOKS LIKE THIS:"::5:2020u:"THE '*' IS A150(QQ1)65(QQ2)48ĺ(4)"BLOAD ASCII SET,A";QQ:233,CP:232,0:O%U@ THIS IS A RELOCATABLE TONE GENERATOR. GET PITCH AND DURATION VIA TABLET; DO POKES, THEN A CALL & -- IN THIS PROGRAM, SOUND IS USED ONLY TO GIVE AUDIO FEEDBATABLE FOR THE CURSOR U#S103256: -- BASE ADDRESS FOR SHAPE TABLE FOR THE CURSORe#S,1:S1,0w#S2,4:S3,0#K8S4S24:Q:K8,Q::% LOAD ASCII SET AT CP*256= 27136: USED FOR PUTTING NUMBERS WITHIN BOXES I%QQCP256:(QQ)PARTC" 5@ DATA, AND ONE-TIME-ONLY SETUPS | -- DATA FOR SHAPE OF CURSOR, CREATED BY PROGRAM 'CURSOR.SHAPE'  36,36,44,54,54,45,45,62,63,55,54,62,36,36,63,63,39,45,45,00: DATA FOR "SMALL-CROSS CURSOR"0# SETUP THE SHAPE 4,1872,2000 ; 1024,1152,1280,1408,1536,1664,1792,1920i 1064,1192,1320,1448,1576,1704,1832,1960, 1104,1232,1360,1488,1616,1744,1872,2000 BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983C` BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983SYBOARD IDEAS."::" LET'S RETURN TO THE MAIN MENU..."R(4)"RUN HELLO.K--2"_@ DATA S103256:S,1:S1,0:S2,4:S3,0232,0:233,S256KWS4S24:Q:KW,Q::36,36,44,54,54,45,45,62,63,55,54,62,36,36,63,63,39,45,45,0,0JXP352:YPYP352:S14:400: -- DIAMOND2x6oA11.58:A212:A32.52:R.16:XM95:YM80:760: -- STARv3120:::6:1:50:"AND THIS BEARLY SCRATCHES THE SURFACE":255KW11000: QUIT 7:11:" THAT'S JUST A FEW SOFT KE0:XM040120080:760:(120G MIXTURE OF FIVE SHAPES P:2~XP45:YP30:BW18:BH18:260: -- SQUARE(1:XPXP45:YPYP30:S22:620: -- TRIANGLE<R.13:A10:A26.72:A3.6:3:XM030:YM000:760: -- CIRCLEP5+dXPETERS SET UP FOR POLAR COORDINATES; IT TAKES SOME GETTING USED TO, SINCE THE FORMULA USES RADIANS, NOT DEGREESR.2: -- THIS IS THE RADIUS USED IN POPLAR COORDINATE CALCULATIONS; CHANGE IT (A LITTLE) TO MAKE LARGER OR SMALLER OBJECTSYM70707E OF THE TRIANGLE< YP4012080:XP30250S10:620::E 120i 2 ROWS X 2 COLS OF DIAMONDS  :S25: -- S= LENGTH OF ONE SIDEYP6012060:XP60225160:400$::120` STARS tnA11.58:A212:A32.52: THESE PARAM"""""""""&""&"""ժëժp  > ܊Çȟ՚  ~N3N3~|  p ~ժ0LjĈתՆժǏժ~~p תժժ0``LjĈתꀨՊp `  `< << ժëժp Á Ĉ՚~   |F1F1~ ~  p ~ժ0RIL 1983TECHNOLOGIES APRIL 1983B1983BECHNOLOGIES APRIL 1983B(A2$,X,1))300A~GP:×::6:" THAT'S ALL FOR HIGH-RES CURSOR.":::" LET'S RETURN TO THE MAIN MENU..."D$(4):D$"RUN HELLO.K--2"` BY: JEB EDDY KOALA TECHNOLOGIES AP, AND CAN BE LISTED AND USEDIN YOUR OWN WORK."@ð303: QUIT ×::11:" THAT'S ALL FOR HI-RES CURSOR."::" LET'S RETURN TO THE MAIN MENU..."D$(4):D$"RUN HELLO.K--2"` BY JEB EDDY KOALA TECHNOLOGIES APRIL 198356)MU22,96: `` BY: JEB EDDY KOALA TECHNOLOGIES APRIL 1983BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983DDY KOALA TECHNOLOGIES APRIL 1983BMU15,245MU16,174MU17,MU(MU256)256:MU18,(MU256)MU19,76MU20,MU2((MU2)256)256:MU21,((MU2)2,240(XMU12,MU22((MU22)256)2565bMU12,9DlMU13,202SvMU14,208bMU15,245qMU16,174MU17,MU(MU256)256:MU18,(MU256)MU19,76MU20,MU2((MU2)256)256:MU21,((MU2)256)MU22,96;` BCK WHEN A BOX IS SUCCESSFULLY SELECTEDl MU104256: THIS ADDRESS IS ARBITRARY; CAN BE IN ANY FREE SPACEMU2,173:MU3,48:MU4,192&MU5,1360MU6,208:MU7,5:MU8,206:MU9,MU1((MU1)256)256DMU10,((MU1)256)NMU11 16)14)1$oCQ((A2$,X,1))300*~2Pò =d×::6nú"NOTICE HOW QUICKLY YOU HAVE PROGRESSED FROM ONLY A SIMPLE CURSOR TO SOME FAIRLYCOMPLICATED POINTING. THAT'S HOW EASY IT IS!".xú:"REMEMBER, ALL THE PROGRAMS IN THIS GUIDEARE IN BASIC MUST BE IN SECOND ROW OF LETTERS8X((X5)14)1: -- THIS ARITHMETIC CONVERTS THE X,Y FROM THE TABLET INTO AN INDEX POINTER WITHIN THE STRING$ OF LETTERSBCQ((A1$,X,1))300V` COME HERE IF 2ND ROW OF ALPHABET eX35ı jX((XQXN,Y:CQXN1,Y1:BF0:XNXN7SC:LC%LC%1:205:LC%16ĵB2,128:50000 -- THE ABOVE LINE DRAWS SELECTED LETTERS (TWICE, OFFSET)43160 $ SUBRTN FOR PICKING WHICH CHARACTER IS BEING POINTED AT .207!5YY1%43360: -- MEANSTO QUIT...";T233,103:240: -- SET THE SHAPE TABLE ADDRESS TO THE CURSOR DATA (B1)127ĭYY2%1İ43300:BF1: Y?-($$$-?'- ? -< $$$?---d $$66v- $$-` $$M16'$$$$66-5&$$$?d l )=$$$> --?' ?- / ?I$$$6.??$$- ?'$--)- ?7&$ (-!d --'466&,??L(-?`-3666II%` ;.)) c݃ )  $` $``L666 `( $4>/-- ) ?(--;` I $d-66? -((@KA0UW_hz#/<JScoty&0;KWes#-6?GI     HERE IS THE LOOKUP TABLE FOR THE MEMORY ADDRESS OF THE BEGINNING OF EACH SCREEN LINE yLY%(24):K023:LY%(K):::  1024,1152,1280,1408,1536,1664,1792,1920  1064,1192,1320,1448,1576,1704,1832,1960  1104,1232,1360,1488,1 616,174 WATCH HIS WOODS FILL UP WITH SNOW."O4"MY LITTLE HORSE MUST THINK IT QUEER"wH"TO STOP WITHOUT A FARMHOUSE NEAR"\"BETWEEN THE WOODS AND FROZEN LAKE"p"THE DARKEST EVENING OF THE YEAR"""" BY ROBERT FROST"U 4ĺ .23:"PRESS BUTTON 2 TO QUIT..."v TEXT FROM ANY SOURCE CAN BE USED: FILES, STRING VARIABLES, ETC. "WHOSE WOODS THESE ARE I THINK I KNOW,""HIS HOUSE IS IN THE VILLAGE THOUGH.""HE WILL NOT MIND ME STOPPING HERE"$ "TOEA IN MEMORY!%$K011:A:BK,A:S832,34,252,164,36,177,40,73,192,145,40,96p[ SETUP TEXT ON SCREEN `"PRESS BUTTON 1 TO SELECT A WORD:"NL10: -- NUMBER OF LINES OF TEXTL$(10):KW1NL:L$(KW):6:KW1NL:3:L$(KW):KWG, OR TO CREATE AND CONTROL WINDOWS."^R:"IT ACTS RATHER LIKE A MOUSE, DOESN'T IT!"}\255: -- WAIT FOR BUTTON RELOCATABLE POKE/MACHINE LANGUAGE ROUTINE FOR CURSOR READ/WRITE  B8292: THIS VALUE CAN BE RESET TO ANY FREE AR:KC16368: -- STANDARD VARIABLES FOR BUTTONS AND KEYBOARD\*:3:13:"TEXT CURSOR"::4"THIS UTILITY SHOWS HOW TO MOVE A CURSOR AROUND ON TEXT PAGE 1.":,H"THIS TOOL CAN BE USED TO POINT AT MENU ITEMS, OR AT SPECIFIC WORDS WITHIN A STRINENT."%255: -- WAIT FOR BUTTON2 QUIT :11:" THAT'S ALL FOR A TEXT CURSOR"::" LET'S RETURN TO THE MAIN MENU"(4)"RUN HELLO.K--2"W  EVERYTHING BELOW HERE IS SETUP, USED ONLY ONCE <%B116287:B2B11:KB16384ARCH AND HIGHLIGHT SUBROUTINE $:3KW150:P(B1)127(B2)127504:5:"AS USUAL, YOU CAN LIST THIS PROGRAM TO SEE HOW IT WORKS. THE MAIN ROUTINE IS ABOUT 10 LINES OF BASIC, WHICH CALLS A 12-BYTE, RELOCATABLE MACHINE CODE SEGM WORD?50,63: 63 SETS INVERSE MODE; 127 WOULD SET FLASHINGz(WS)160ĢY1:WWK1:((WS));:WSWS1:KK1:41050,255: RESTORES 'NORMAL' TEXT PRINTING, FROM INVERSE OR FLASHING SET IN 410 ABOVE36,XO:37,YO:B END OF SEhK1Y |(ADK)160400: SEARCH FOR PRECEDING SPACE, WHICH MARKS START OF TARGET WORDh KK1:380 WSADK1:WWXK1:K0: -- WS IS ADDRESS FOR 'WORD START' WHERE INVERTING WILL BEGIN X0Y0ı NEXT FEW LINES HIGHLIGHT THE SELECTEDNOW FIND ADDRESS OF THE CURSOR'S LOCATION "ADLY%((37))(36): -- THIS USES THE ADDRESS TABLE FOR Y, THEN ADDS X TO GET THE ABSOLUTE SCREEN MEMORY ADDRESS ,(AD)96ı: NO ACTION REQUIRED IF CHARACTER UNDER CURSOR IS A BLANK/SPACE ^C1AD WORD, (B2)127500: TRIGGER TO QUIT5 140V CURSOR ROUTINE ENDS HERE 23:" PRESS EITHER BUTTON TO CONTINUE..." (B1)127(B2)127ı (KB)155ė::11:8:"OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2" 260*  IS LINE AND THE NEXT FORCE THE CURSOR INTO A STANDARD 40 COLS BY 24 ROWS SCREEN FORMATl Y(Y8):Y3Y3{ Y18Y18 FF1:190 36,XO:37,YO:B 36,X:37,Y:B:XOX:YOY (B1)127İ270: BUTTON #0 IS TRIGGER TO INVERT THE SELECTEDO.K--2' GIVES YOU A WIDE RANGE OF TEXT POINTING TOOLS < dE n800 x MAIN CURSOR ROUTINE STARTS HERE -- STUDY IT CAREFULLY X(0):QQ(123):Y(1) (KB)155ė::6:8:"OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2"V X(X7): TH -- THIS PROGRAM USES A TEXT CURSOR TO POINT AT AND SELECT INDIVIDUAL WORDS WITHIN TEXT ON THE SCREEN, E.G., WORDS THAT RHYME, THAT ARE MIS-SPELLED, THAT SHOULD BE STRESSED, THAT HAVE CERTAIN SOUNDS, ETC 6  THIS PROGRAM, ALONG WITH 'HELL     z #??????    !ԠĠӠ"Πή ԠҠɠԠ̲  ̲àϠ Ϯ˭ĠӠӮ  ɭӠҠ٠ŠҠΠҠ ҮԠŠ! Ӡ:  :   :   :T CAN BE RESET TO ANY FREE AREA IN MEMORYD K011:A:JXK,A::r 32,34,252,164,36,177,40,73,192,145,40,96` BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983B"MAKE YOUR OWN CURSOR"1"SOFT KEYBOARD IDEAS"F"A TEXT CURSOR"Y -- DATA " "q"AN INVITATION..."z" ""QUIT""!": END FLAG RELOCATABLE POKE/MACHINE LANGUAGE ROUTINE FOR TEXT CURSOR ) JX8292: THIS STARTING POIN(M$):11:20LN21:M$: -- CENTER THE WHOLE STRINGE0(4)OP$M@ JB116287:B2B11:KC16368:KC,0:: DATA FOR MENU T"KOALAPAD FUNDAMENTALS"^:h DATA " "r"A HI-RES CURSOR"| -- DATA " ""COMPATIBILITY"LECTING DESIRED FILE NAMEtiFI$PG$(QQ):FI$" "FI$""ė:540: -- CHECK FOR A SPACE OF BLANK STRING IN THAT ROWxFI$"QUIT"ė:11:15:"OK, BYE":CM$"RUN"r:OP$CM$" "FI$ RUN THE SELECTED PROGRAM 12:17M$"OK, "FI$:LNATIONS ON TEXT PAGE 1-FF1:1112:112071110m(B1)127F0:1112:1340: BUTTON #0 IS TRIGGERw1120< COME HERE AFTER BUTTON IS PRESSED; PICK A ROW, AND SET FI$ PQQ(37)1: -- READS VERTICAL POSITION OF CURSOR, FOR USE IN SE `Y(1):Y1911120: NOTE THE METHOD FOR FORCING X INTO COLUMN 2, BELOW; X IS NOT READ FROM THE TABLET aY24Y24: -- LIMIT THE RANGE OF Y bY120Y120 tX2: -- FORCE X INTO TEXT COLUMN 2Y(Y8): -- CONVERTS RAW Y TO CHARACTER LOCGRAM YOU WANT.":" THEN CLICK BUTTON #1." L1120: NEXT PART MOVES THE CURSOR VIA THE TABLET. THE FIRST 3 LINES ARE A KEY SUBROUTINE V36,XO:37,YO:JX: -- THIS IS A BIT TRICKY; STUDY IT CAREFULLY X36,X:37,Y:JX:XOX:YOY Y: iNT ONTO MENU@ 8190: -- READ & POKE DATA FOR CURSOR DRIVERo  PRINT THE CATALOG ARRAY TO THE SCREEN 2:" HERE IS THE MAIN MENU:" DHT3:J1NP:HT:J:PG$(J):0 X20:" TOUCH THE KOALAPAD, THEN MOVE THE CURSOR TO THE PROR'S GUIDE":255* ?17:28:"BY JEB EDDY"C @18:29:"JULY 1983"K J ::PG$(60):K560:PG$(K): -- READ PROGRAM NAMES INTO ARRAY PG$(K)"!"500: -- MARKER FOR END OF DATA : NPK1: -- NP MEANS NUMBER OF PROGRAMS TO PRI FROM THE OTHER PROGRAMS. THE POKES WERE MADE IN 'HELLO'| 777,23:778,187: THESE ARE RANDOM VALUES; ANY WILL DO:REM 440: -- SKIP; OLD VERSION ::4:08:"KOALA TECHNOLOGIES CORP.":::14:"PRESENTS":::100:" THE INSTANT PROGRAMME x -- HELLO.KOALA // HELLO.K--2 LETS YOU POINT AT A PROGRAM NAME, THEN RUN THE PROGRAM BY PRESSING BUTTON #1 8000: -- SETUP STANDARD VARIABLES9 (777)23(778)187440: THIS SKIPS THE FRONTPIECE UPON RETURNING TO THIS MENU PROGRAM     P FOLLOWING PROGRAM  *:6:"THE ";::"ESC";::" KEY CAN BE USED TO GET BACK TO THE MAIN MENU AT (ALMOST) ANY TIME.  QUIT (4)"RUN HELLO.K--2" ` BY JEB EDDY KOALA TECHNOLOGIES JULY 19839720: REQUIRES THAT BUTTON BE RELEASED (!) BEFORE GOING ON ... :6:"ALL OF THESE PROGRAMS ARE WRITTEN IN APPLESOFT.":::"PLEASE LIST THESE PROGRAMS TO SEE ALL THE DETAILS." 430:  777,0:778,0: -- CLEAR THESE ADDRESSES FOR USE INTM), OR SOME"` X"OTHER DEVICE WITH BUTTONS, IN THE GAME PORT, IN ORDER TO RUN THIS PROGRAM!" [22:"PRESS ANY KEY OR BUTTON TO CONTINUE..." bDL400:430 l11::"'BUTTON 1' IS ON THE ";::"LEFT": DL250:430: ? (B1)127(B2)127T HERE = B116287:B2B11:KB16384:KC16368:KC,0[ FI$"PICTR.INSTANT GUIDE"s :(4)"BLOAD";FI$ DL1000 KW1DL:(KB)127KWDL  ::3:11:"QUICK REMINDERS:":34,5 &:6:"YOU ";::"MUST";::" HAVE A KOALAPAD (h -- THIS 'HELLO' PROGRAM GIVES INITIAL INFORMATION ON USING BUTTONS, THEN RUNS 'HELLO.K--2' u500: KW1DL(KB)127(B1)127(B2)127KWDLKC,0(B1)127(B2)127460(KB)127ĹKC,0:465 : STAR    UT BACK VIA RESTORING THE ARRAY READING IN LINE 1480 B CM$(20)L NC08u KNC23:CM$(K):CM$(K)"^"KK1:{  -- FF IS DATA FOR COMMAND SCREEN  "RUN","LOAD" " "," BRUN"," BLOAD"," " "LOCK","UNLOCK","VERIFY" "^"A4!E LANGUAGE ROUTINE FOR CURSOR READ/WRITE l JX8292: THIS VALUE CAN BE RESET TO ANY FREE AREA IN MEMORY! K011:A:JXK,A:: 32,34,252,164,36,177,40,73,192,145,40,96& :5 ---- DATA FOR COMMANDS; IS USED AT PRESENT, BUT EASILY CAN BE PUMMARY (NOT AVAILABLE)G -- DATA "REVIEW QUIZ (APR 83)"m"MAKE YOUR OWN CURSOR (APR 83)""SOFT KEYBOARD IDEAS (APR 83)"A TEXT CURSOR (APR 83)"" ""!": END FLAG ) RELOCATABLE POKE/MACHIN' BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983` BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983|" ":: -- DATA "HI-RES SMOOTHING (APR 83)""COMPATIBILITY (APR 83) -- DATA "ST CAN BE RESET TO ANY FREE AREA IN MEMORYD K011:A:JXK,A::r 32,34,252,164,36,177,40,73,192,145,40,96` BY JEB EDDY KOALA TECHNOLOGIES APRIL 1983 TECHNOLOGIES APRIL 198392,164,36,177,40,73,192,145,40,96& :@"MAKE YOUR OWN CURSOR"1"SOFT KEYBOARD IDEAS"F"A TEXT CURSOR"Y -- DATA " "q"AN INVITATION..."z" ""QUIT""!": END FLAG RELOCATABLE POKE/MACHINE LANGUAGE ROUTINE FOR TEXT CURSOR ) JX8292: THIS STARTING POIN(M$):11:20LN21:M$: -- CENTER THE WHOLE STRINGE0(4)OP$M@ JB116287:B2B11:KC16368:KC,0:: DATA FOR MENU T"KOALAPAD FUNDAMENTALS"^:h DATA " "r"A HI-RES CURSOR"| -- DATA " ""COMPATIBILITY"LECTING DESIRED FILE NAMEtiFI$PG$(QQ):FI$" "FI$""ė:540: -- CHECK FOR A SPACE OF BLANK STRING IN THAT ROWxFI$"QUIT"ė:11:15:"OK, BYE":CM$"RUN"r:OP$CM$" "FI$ RUN THE SELECTED PROGRAM 12:17M$"OK, "FI$:LNATIONS ON TEXT PAGE 1-FF1:1112:112071110m(B1)127F0:1112:1340: BUTTON #0 IS TRIGGERw1120< COME HERE AFTER BUTTON IS PRESSED; PICK A ROW, AND SET FI$ PQQ(37)1: -- READS VERTICAL POSITION OF CURSOR, FOR USE IN SE `Y(1):Y1911120: NOTE THE METHOD FOR FORCING X INTO COLUMN 2, BELOW; X IS NOT READ FROM THE TABLET aY24Y24: -- LIMIT THE RANGE OF Y bY120Y120 tX2: -- FORCE X INTO TEXT COLUMN 2Y(Y8): -- CONVERTS RAW Y TO CHARACTER LOCGRAM YOU WANT.":" THEN CLICK BUTTON #1." L1120: NEXT PART MOVES THE CURSOR VIA THE TABLET. THE FIRST 3 LINES ARE A KEY SUBROUTINE V36,XO:37,YO:JX: -- THIS IS A BIT TRICKY; STUDY IT CAREFULLY X36,X:37,Y:JX:XOX:YOY Y: iNT ONTO MENU@ 8190: -- READ & POKE DATA FOR CURSOR DRIVERo  PRINT THE CATALOG ARRAY TO THE SCREEN 2:" HERE IS THE MAIN MENU:" DHT3:J1NP:HT:J:PG$(J):0 X20:" TOUCH THE KOALAPAD, THEN MOVE THE CURSOR TO THE PROR'S GUIDE":255* ?17:28:"BY JEB EDDY"C @18:29:"JULY 1983"K J ::PG$(60):K560:PG$(K): -- READ PROGRAM NAMES INTO ARRAY PG$(K)"!"500: -- MARKER FOR END OF DATA : NPK1: -- NP MEANS NUMBER OF PROGRAMS TO PRI FROM THE OTHER PROGRAMS. THE POKES WERE MADE IN 'HELLO'| 777,23:778,187: THESE ARE RANDOM VALUES; ANY WILL DO:REM 440: -- SKIP; OLD VERSION ::4:08:"KOALA TECHNOLOGIES CORP.":::14:"PRESENTS":::100:" THE INSTANT PROGRAMME x -- HELLO.KOALA // HELLO.K--2 LETS YOU POINT AT A PROGRAM NAME, THEN RUN THE PROGRAM BY PRESSING BUTTON #1 8000: -- SETUP STANDARD VARIABLES9 (777)23(778)187440: THIS SKIPS THE FRONTPIECE UPON RETURNING TO THIS MENU PROGRAM     HGR' TO 'HGR2', AND CHANGE THE ":"159 VALUE TO 189 IN LINE 1635."Y100: NEXT PAGE b:3"ALSO NOTE LINE 1655:"::1655:"THIS IS ONE WAY OF DETECTING WHETHER ANYBUTTON (B1 OR B2) HAS BEEN PRESSED."1&:"REMEMBER, THE EXPRESSION IS )127(B2)1271700: CHECK FOR BUTTON PRESS9|1630K NEXT PAGE U::3:"THE CODE TO CREATE WHAT YOU JUST SAW IS:":16301660100:5"IF YOU WANT TO SEE THE SAME THING IN":"FULL-PAGE GRAPHICS, JUST CHANGE"B"THE '@ SETUP SCREEN; PLOT RAW DATA 7T::3:H110:23fY3:"PRESS EITHER BUTTON TO CONTINUE...";:^202: READ PADDLEScY159Y159: NOTE THIS TRAP FOR YhX,Yr21:868:H1:X;:H18:Y: -- PRINT X AND Y VALUES ON LINE 21/w(B1(B2)1271300,(B1)127İ120:150061435H NEXT PAGE u:5:"NOW LET'S DO SOMETHING MORE FUN."{"THE KOALAPAD TABLET IS EXTREMELY WELL SUITED FOR DRAWING DOTS AND LINES IN HI-RES. LET'S START WITH DOTS..."100:" OUT THE DELAY";"SHOWN ON THE PREVIOUS SCREEN!"::"YOU MAY ALSO HAVE TO INSERT ANOTHER DELAY AFTER READING PDL(1), DEPENDING ONHOW SOON YOU READ PDL(0) AGAIN."20:"PRESS BUTTON 1 TO CONTINUE;":2:"PRESS BUTTON 2 TO REVIEW THE LAST PAGE"N BETWEEN THE TWO READINGS. (THERE IS A LITTLE MORE EXPLANATION IN YOUR APPLE PROGRAMMING REFERENCE MANUAL.)"n100: NEXT PAGE :5:"THE MISTAKE THAT YOU ARE MOST LIKELY TO MAKE IN WRITING PROGRAMS THAT USE THE KOALAPAD TABLET IS LEAVINGUES FROM THE TABLET IN 'BASIC' IS IDENTICAL TO WHAT YOU DO WHEN READING PADDLES OR A JOYSTICK:":lOH12PH:"100 X = PDL (0)":H:"200 QQ = SIN (123)":H:"300 Y = PDL (1)":sd"LINE 200 IS AN INTENTIONAL DELAY, TO CREATE A CLEAR SEPARATIOBLET."::1101::19:16:"-X- -Y-"_34,19:: -- POKE BOTTOM OF TEXT WINDOWiH116202:21:868:21:H1:X;:H17:YK20ĭ(B1)127(B2)1271300KK11260 NEXT PAGE (::5c2"GETTING X AND Y VAL THE"/"'RELEASE' OR 'INACTIVE' CONDITION.""NOTE THAT THESE VALUES ARE NOT ZERO!! YOU'LL LEARN MORE ABOUT THIS LATER.":"WHEN YOU PUT YOUR FINGER ---";::"ON";::"--- THE TABLET, YOU ARE SEEING THE 'X' AND 'Y' COORDINATES FROM THE TA"WHAT ITS RANGE IS. THE RANGE CAN BE"x "FACTORED UP TO THE FULL RANGE OF 0-279,":"HOWEVER, AS YOU'LL SEE SHORTLY." 100  PRINT RAW DATA :3::"THE NUMBERS YOU SEE WHEN YOUR FINGER IS":"---";::"NOT";::"--- ON THE TABLET AREIKE HI-RES GRAPHICS." :"FOR TECHNICAL REASONS, HOWEVER, THE TABLET CANNOT QUITE GENERATE A FULL RANGE OF VALUES 0-255. RATHER, A TABLET" "WILL TYPICALLY SEND:"::08:"'ABOUT 7, TO 255.'"& :"EXPERIMENT WITH YOUR TABLET TO SEE JUST": SCALING DATA, AND MAKING TONES."z t:"WITH THESE EXAMPLES, YOU WILL BE USING YOUR KOALAPAD TOUCH TABLET IN NO TIME." y:14:"GO TO IT!" ~100:  NEXT PAGE :5 "THE 'ORIGIN', I.E., POINT (0,0), IS IN THE UPPER LEFT CORNER, JUST LE...   START HERE ; :B116287:B2B11:KB16384W `:4:15:"WELCOME!":5 j:"IT WILL TAKE YOU ";::" LESS THAN 5 MINUTES ";::" TO GO THROUGH THIS INTRODUCTION."" o:"TOPICS COVERED ARE: READING RAW DATA, PLOTTING DOTS AND LINES,(KB)155ė:11:08:"OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2"V QQ5120_ QQ0 (B1)128(B2)128QQQQ1:QQ3ı 140: 999 X(0):QQ(123):Y(1):: -- READ RAW DATA FROM KOALAPAD -- NOTE THE USE OF THIS AS A SUBROUTIN|T -- KOALAPAD FUNDAMENTALS -- HOW TO READ RAW DATA, PLOT, AND MAKE TONES ^F1000P  STANDARD 'WAIT FOR BUTTON TO BE PRESSED' SUBROUTINE IS HERE d23n3:"PRESS EITHER BUTTON TO CONTINUE...";x(B1)127(B2)127QQQQ1H }          vB14,208B15,245*B16,174RB17,B(B256)256:B18,(B256)_B19,76B20,B2((B2)256)256:B21,((B2)256)B22,96: ` BY JEB EDDY KOALA TECHNOLOGIES JULY 1983BMU: THIS ADDRESS IS ARBITRARY; CAN BE IN ANY FREE SPACEXB2,173:B3,48:B4,192e&B5,136y0B6,208:B7,5:B8,206:B9,B1((B1)256)256DB10,((B1)256)NB11,240XB12,B22((B22)256)256bB12,9lB13,20290 QUIT  :7:3C "THAT'S ALL FOR THE FUNDAMENTALS,"y 11:4:50:"AND THE BEST IS YET TO COME...":255 (4)"RUN HELLO.K--2"@  THIS IS A RELOCATABLE TONE GENERATOR, USING PITCH AND DURATION VIA POKES; THEN A CALL : B GENERATOR INTO MEMORY 4 X(0):QQ(123):Y(1)R (B1)127(B2)1272585i MU,Y: -- PITCH MU1,X: -- DURATION MU2:2550:- PLAYS THE SPECIFIED TONE NEXT PAGE  :4:"HERE'S THE CODE TO DO IT:": 25502580( X) VALUES." 90 :6:"MOVE YOUR FINGER AROUND ON THE TABLET"::" A) SLIDING, AND"::" B) TAPPING"::"AND LISTEN..." 23:" PRESS EITHER BUTTON TO CONTINUE..." MU104256: CAN BE ANYWHERE IN FREE MEMORY 40200: -- POKE TONEPECIAL CONTROLS:"! 2450:24608 Y191ĭX20ė::@ 90e HERE IS A MUSIC TONE ROUTINE n :6  "THIS INTRODUCTORY PROGRAM ALSO HAS A RELOCATABLE TONE-GENERATOR ROUTINE, WHICH USES THE TABLET TO CREATE PITCH (Y) AND DURATION (j "REMEMBER ALSO THAT TRYING TO PLOT 'Y' VALUES GREATER THAN 191 WILL CAUSE A CRASH." t :"A SIMPLE WAY TO TRAP ILLEGAL VALUES IS:"::" 204 Y= PDL(1): IF Y > 191 THEN 204": ~ :"ON THE OTHER HAND, YOU MAY WANT TO USE THE Y-VALUES >191 AS STO SCALE X VALUES UP TO 0-279 r $ MN7:MX255: -- SET THESE MINIMUM AND MAXIMUM VALUES FOR YOUR SPECIFIC TABLET . F1279(MXMN): -- THE FACTOR F1 TIMES RAW X GIVES A RANGE OF 1-279 8 XF1(0) B :23402360: L 90: NEXT PAGE ` :3[ 84:KC16368:KC,0  :3X  "YOU ARE NEARLY FINISHED WITH THIS INTRODUCTION!"  :"BEFORE ENDING, YOU SHOULD KNOW HOW TO SCALE THE RAW DATA";" FOR X (HORIZONTAL) VALUES UP TO THE FULL WIDTH OF THE TABLET (0-279):"  HERE IS HOW EITHER BUTTON TO CONTINUE...";:A d(B1)127(B2)127QQQQ1 g(KB)155ė:6:" OK, BACK TO THE MAIN MENU...":2735 iQQ5100 n(B1)129(B2)129QQ0: s100: X(0):QQ(123):Y(1)::   B116287:B2B11:KB163  -- FUNDAMENTALS.PARTB JULY 1983 -- CONTINUATION OF GENERAL INTRODUCTION TO KOALAPAD TOUCH TABLET. THIS SHOWS HORIZONTAL SCALING, AND THE NOTE MAKER F2300X NEXT IS STANDARD TEST TO SEE IF BUTTON IS PRESSED Z23 _3:"PRESS     A FOR SHAPE OF CURSOR, CREATED BY THE PROGRAM 'MAKE YOUR OWN CURSOR' ON THIS SAME DISK  36,36,44,54,54,45,45,62,63,55,54,62,36,36,63,63,39,45,45,00: DATA FOR "SMALL-CROSS CURSOR"0# SHAPE TABLE DATA FOR CURSOR 0#S103256: -- STARY THAT ALLOWS YOU TO CREATE YOUR OWN AREASON THE SCREEN, AND TEST TO SEE WHETHER THE CURSOR IS THERE OR NOT."303: RUN NEXT PROGRAM d::11:" ONE MOMENT PLEASE..."x(4)"RUN LEVEL2.PARTB": @ DATA AND SETUPS W DATED {L::6:"NOTICE HOW THE 'RELEASE STATE' IS TRAPPED, AND THE CURSOR IS FORCED INTO THE CENTER OF THE SCREEN:"V::"220 IF X<10 AND Y<10 THEN X=140:Y=90: GOSUB 285"j303: NEXT PAGE q::6:"NEXT COMES A 'SOFT KEYBOARD' UTILIT THINKING ABOUT ALL THE THINGS YOU CAN DO WITH IT..."N303: NEXT PAGE y:22:"PRESS BUTTON #1 TO PLOT DOTS." "PRESS BUTTON #2 TO CONTINUE..."$2100: -- TO SIMPLE CURSOR LOOP.(B2)12761908 EXPLAIN HOW CURSOR GETS CENTERTING AN X AND Y FROM THE TABLET, THE INSTRUCTIONS TO DRAW A CURSOR ARE:"Y::260287b3037:6:"WHEN YOU PRESS A BUTTON AT THE BOTTOM OF THIS PAGE, THE SCREEN WILL CLEAR, AND A CROSS-SHAPED CURSOR WILL APPEAR."::"MOVE IT AROUND! STARTKEYBOARD";(34);" (AN EXAMPLE OF A SOFT KEYBOARD, COMBINING BOTH OF THE ABOVE)."y303: NEXT PAGE H:5:"THE CURSOR IS ACTUALLY A TOTALLY ORDIN- ARY APPLE SHAPE TABLE , THAT USES 'XDRAW' TWICE IN THE SAME PLACE. AFTER GETANTTHE PROGRAM TO DO."#303: :4:"THERE ARE THREE PARTS IN THIS SECTION:":::" -- A SIMPLE CURSOR DEMONSTRATION":" -- A UTILITY WHICH SHOWS YOU HOW TO MAKE YOUR OWN SOFT KEYBOARD"b" -- THE ";(34);"EARLY READER'S OR, AND USE IT FORPOINTING AT THINGS."=303: NEXT PAGE F:6"THIS IS ONE OF THE MOST IMPORTANT AND USEFUL THINGS YOU CAN DO WITH YOUR KOALAPAD TABLET."::"SOFTWARE CAN DETERMINE WHAT YOU ARE POINTING AT, AND THEREFORE WHAT YOU W)127ı2150$p START HERE -q299M:6:10:"A HI-RES CURSOR":"IN THE INTRODUCTION YOU LEARNED HOW TO READ RAW DATA";" FROM THE TABLET, AND PLOT DOTS AND LINES."&:"NOW YOU'LL LEARN HOW TO CREATE AND USE A HI-RES GRAPHICS CURS28(B2)128KQKQ1:KQ3ı) 7309:  THIS SIMPLE LOOP USES THE SUBROUTINES IN LINES 200+ ABOVE TO DRAW A CURSOR ANYWHERE ON THE SCREEN 4 H299: SETUP FOR HI-RES f242: -- READ TABLET AND XDRAW CURSOR k(B1)127ēX,Yp(B2NTINUE..." 0KQ0> 1(B1)127(B2)127KQKQ1:KQ3308 2(KB)155ė::6:" OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2": -- IF ESC IS PRESSED, GO BACK TO MAIN MENU; THIS IS IMPORTANT, IN ALL THESE PROGRAMS 3305 4KQ0 5(B1)1: 1X,Y: :-  FULL CURSOR CYCLEH 260:KW135::260: +B116287:B2B11:1:SC1:0:3:KB16384:KC16368:KC,0: , STANDARD SUBROUTINES; WAIT FOR BUTTON... -"PRESS BUTTON 2 TO EXIT...": /22:"PRESS EITHER BUTTON TO COET; TRAP RELEASE STATE , X(0):QQ(123) Y(1):X10Y10X140:Y90:287:208:210: -- NOTE HOW THE RELEASE STATE GETS FORCED INTO THE CENTER OF THE SCREEN! Y189Y189:206:285:210 READ TAB; PLOT CURSOR 210:287:   6000E COMMON SUBROUTINES ARE UP HERE, FOR SPEED W KW1500::] : MU,25:MU1,20:MU2:: -- MUSIC SUBRTN; NOT USED IN THIS PROGRAM MU,40:MU1,30:MU2:MU,50:MU1,30:MU2:: (B2)127ġ : READ TABLK -- A HI-RES CURSOR (FORMERLY CALLED LEVEL2) -- 1ST OF 3 PARTS kB116287:B2B11:KB16384CP106:10,0:11,1149100: POKES FOR SHAPE TABLE CURSOR40205: SETUP MUSIC; B=104*2569600: ASCII SET 3:0:1:SC1     S ALL FOR COMPATIBILITY."::" LET'S RETURN TO THE MAIN MENU"Z(4)"RUN HELLO.K--2"-"qD$(13)(4)D$"RUN HELLO.K--2"LO.K--2"B THE MAIN MENU"D$(13)(4)D$"RUN HELLO.K--2"@LET ANYWAY, JUST BY HOLDING IT UPSIDE DOWN, OR ROTATED 90 DEGREES. TRY IT -- YOU CAN'T HURT IT."r b303: { l:5 v:"WE WOULD LIKE TO HEAR ABOUT YOUR EXPERIENCE USING THE TABLET WITH OTHER SOFTWARE." 303: ?:11:" THAT'OINT 0,0 -- FOR SOME SOFTWARE IS NOT IN THE UPPER LEFT CORNER. SO, SOMETIMES, WHEN YOU WANT TOGO UP AND YOU MOVE YOUR FINGER UP ON THE TABLET, THE SCREEN ACTION WILL GO DOWN!"e X:"IF YOU FIND THIS SITUATION, YOU MAY BE ABLE TO USE THE TAB303: ::5:"2) MORE IMPORTANT, THE TABLET GOES INTO THE 'RELEASE' STATE IN THE UPPER LEFT CORNER WHEN YOU TAKE YOUR FINGER OFF, WHILE OTHER DEVICES SEND VALUES FOR WHATEVER PLACE THEY ARE LEFT IN." D303: N:5:"3) THE ORIGIN -- PE INCOMPATIBILITY." :"1) SOME GAMES LIKE TWO-PERSON PINGPONG NEED TWO SEPARATE INPUTS, ONE UNDER THE CONTROL OF EACH PLAYER. THE TABLET ALWAYS SENDS BOTH X AND Y, AND CAN NOT BE CONTROLLED BY TWO PEOPLE (BUT TRY IT AND SEE WHAT HAPPENS!)" 028KQKQ1:KQ3ı 7309: % M 16368,0: -- CLEAR THE KEYBOARDm B116287:B2B11:KB16384 :5:"THE KOALA TABLET CAN RUN MUCH, BUT NOT ALL, OF YOUR EXISTING SOFTWARE THAT USESA JOYSTICK OR PADDLES. THERE ARE THREE AREAS THAT CAUS[ -- COMPATIBILITY'd500: W/23:" PRESS EITHER BUTTON TO CONTINUE..."`0KQ01(B1)127(B2)127KQKQ1:KQ33082(KB)155ė:11:"OK, BACK TO THE MAIN MENU...":(4)"RUN HELLO.K--2"33054KQ0 5(B1)128(B2)1     S$3 NEXT IS START OF KOALA FACE4"!DDD-DLLL-U-LU-LUUU-LLUUU-RRR": -- EXCLAMATION PT IS A FLAG USED IN READING THE STRINGSH"RRDR*RRRURRRR-D-RDD"\ "LL-DDDD-LLLL"f"!"p START HERE V5:V5"THIS PROGRAM ALLOWS YOU NEXT IS LARGER CROSS W/ CENTER DOT!s  "-U-L-UUUUUUURRDDDDDDRRRRRRDDLLLLLLDDDDDDLLUUUUUULLLLLLUURRRRRR-D-RR"   "L-L-L-L-LURURURRRRRRDRDRDDLDLDLL*LLLLULULU*": -- SPACESHIP/ ROUGH OVAL"*"RURURU-R-U-R-U-R-URURURU": -- TWO PARALLEL DASHEACE 'UUUUUU' AND 'LLLL' k"L-L-L-LUUURRRRRRRDDDDDDLLLLLLLUUU": -- THIS MAKES A BOX WITH DOT IN CENTER "URURURURURURURDRDRDRDRDRDRDLLLLLLLLLLLLL": -- TRIANGLE DATA "UUUUURDDDDRRRRDLLLLDDDDLUUUULLLLLURRRR" : REM -- SMALL CROSS%F VERTICAL LINES WHEN PLOTTING IN COLORG03:1X,Y:KW130::1X,YD(B2)127D1$"":D$"":600: -- BUTTON 2 IS TRIGGER TO START MAKING NEXT CURSOR SHAPEX1760 WITH SOME ADDITIONAL WORK, A DATA FORMAT THAT USES '6U' OR '4L' COULD REPLY191Y191: -- TRAPS ILLEGAL Y-VALUESzKQ((2)7)1:HUKQ:HU0HU4HUHU1: -- PICK RANDOM COLOR, NOT BLACK'(B1)127ĒHU:1X,Y:1X1,Y1:1760: -- NOTE THAT SHAPE GETS DRAWN TWICE, OFFSET SLIGHTLY, TO AVOID POSSIBLE DISAPPEARANCE ONDOM HCOLOR FOR DRAWING LETTERS'SCCX(0):QQ(123):Y(1)(KB)155ė::11:8:"OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2"X10Y10X130:Y90:1840: -- TRAPS RELEASE STATE AND FORCES CURSOR ELSEWHERE (MIDDLE IN THIS CASE)+TO NEXT LOCATION1060 :-1:0:3E,SSKS,0:SSKS1,0M@ ST:hSC2: -- NOTE SCALE = SC, SO SCALE HERE IS 2|1720:22:"BUTTONS: 1 = DRAW 2 = CONTINUE"KQ((2)7)1:HUKQ:HU0HU4HUHU1: -- PICK RA0 980M$"*"İ9802(M$"-"F11:980D<M$"U"N232VPM$"R"N240hdM$"D"N248zxM$"L"N256F11N2N232:F10:BYN1N2: -- ADD LOW AND HIGH HALVESBY;" ";SSKS,BY:KSKS1: -- POKE ENTIRE BYTE INBY THE LOW AND HIGH HALF OF THE BYTE tM$"*"İ980: THIS IS A DUMMY CHARACTER, USED TO RESERVE A SPACE IN THE DATA STATEMENT WITHOUT DRAWINGM$"-"F11:980M$"U"N14M$"R"N15M$"D"N16M$"L"N17F11N1N14:F1K7K71k K7(D$)1540: -- AT END OF STRING CONVERSION, JUMP TO DRAWING WITH THE CURSOR YOU JUST MADE} M$(D$,K7,1) : -- BACK TO PARSER $: 8980: %` NEXT SECTION CONVERTS INDIVIDUAL LETTERS IN THE STRING INTO NUMBERS, FOR USE MULTIPLE LINES OF DATA, WHICH ARE EASIER TO EDIT WHEN MAKING LONG, COMPLEX SHAPESZ 4860g HD2$,D3$ RD1$(D1$,(D1$)1) \D$D1$D2$D3$ p16368,0 1060  NEXT SUBROUTINE ISOLATES EACH CHARACTER IN THE DATA STRING D$:K70 RBITRARY STARTING POINT FOR SHAPE TABLE; MAY BE ANYWHERE IN FREE MEMORY^ 232,0:233,SS256p SS,1:SS1,0 SS2,4:SS3,0:KS4  D1$:D1$"!"3000: -- FLAG FOR END OF DATA Q (D1$,1)"!"840: THIS 'IF' STMT CAN BE USED TO READ 1:KB16384: -- STANDARD VARIABLES FOR BUTTONS AND KEYBOARDI N2160k X HERE ARE MAIN SUBROUTINES x bK70:: 6:12:"ONE MOMENT PLEASE..." :"WHILE I CONVERT THE DATA-STRING INTO"::" A 'SHAPE TABLE'":18G SS256107: -- AN TO CONTINUE..." 0KQ0E 1(B1)127(B2)127KQKQ1:KQ3308 2(KB)155ė::11:8:"OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2" 3305 4KQ0 5(B1)128(B2)128KQKQ1:KQ3ı 7309: START HERE ? DB116287:B2B1g -- 'MAKE YOUR OWN CURSOR' -- A UTILITY FOR CONVERTING DATA STRINGS INTO SHAPES. YOU CAN USE DIFFERENT CURSORS TO GIVE FEEDBACK TO THE USER., ETC., WHENEVER YOU LIKE d580, DEBOUNCING ROUTINE FOR BUTTONS  /22:"PRESS EITHER BUTTO        Ljꀘ |~~|~~?~?~|~ 0~~ꀘ<| <|^7^7|<|||p||LjĈת՚ժĈתժתՆתꀪՀp  `  `ժëժ0  <<""<<,"ժëժ" """""ժ x||x||||x| 0||ꀘ<~ <~^7^7~<~~~p~~Ĉת՚ժp |@| @ĈתժתպՆתՀ0~~x~~xժժ0~~""""" """"2""ժëժp |"" <<"Ljժ  ꀘ< |< ^7^7<  p LjĈתp ~`~ `LjĈתՁժתժת0||x||xժժժ0~|>""""">""""""ժëժp ~"  ժ  ň⏀࿀՚< ~< ^7^7<  p ĈתꀨՊp `  `ĈתՆժ@תתת0``                $l :BW250:BH35:XP140:YP25:2604 BW15:BH15> XP80\ YP6017025:260::120 4 SMALL, FLAT KEYS AT BOTTOM  :BW52:BH16:YP170 XP5025060:260::120H :\ 2 ROWS OF TRIANGLES  :S30: -- S= LENGTH OF ONE SID130:BH15:YP145:260| 120 2 COLS OF VERY SMALL BOXES. NOTE HOW LITTLE IT TAKES TO CREATE A SCREEN VIA THE STANDARD SUBROUTINES ABOVE :BW5:BH5 XP60220160 YP2017030:260:::120D USE WITH TESTS, MULTIPLE CHOICE! 040:260:d 1209 2 TALL COLUMNS, ALONG SIDES ? m YP90:BW30:BH170:XP30:260:XP250:260v 120 TYPEWRITER KEYBOARD!  :BW16:BH18, XD0093:YP60((XD3)(BH3))@ XPXD10XD260BW5:260:T h BW180:XPD... 8 :BW20:BH15)L K23017020;` K13024030Pt XPK1:YPK2:260] ::120 2 ROWS BY 3 COLS, LARGE BOXES; WOULD BE GOOD WITH SIMPLE OVERLAY  :560:580:120 4 LONG, FLAT AREAS < :BW200:BH30 P XP140:YP4017REAS BASED ON RECTANGLES USE THE SAME SIMPLE SUBROUTINE FOR DRAWING ONE BOX RHb\BW30:BH25tpK23016040K15023060XPK1:YPK2:260:--- DRAW BOXK1,K2::120 8 ROWS BY 8 COLS OF SMALLER BOXES; COULD BE A GAME BOARTOOL FOR PLACING 'TARGET' AREAS ON THE SCREEN AND DETECTING IF THECURSOR IS WITHIN THE HIT-TEST AREA."o120 ::6:"PRESS A BUTTON AFTER EACH PAGE..":120L4 4 ROWS X 4 COLUMNS OF BOXES, WITH DOTS IN CENTER. NOTE *** THIS AND ALL FOLLOWING A KEYBOARD IDEAS"::`6:"HERE ARE SOME EARLY IDEAS ABOUT WAYS THAT AREAS OF DIFFERENT SIZES AND SHAPES CAN BE PUT ON THE SCREEN. "i:"ALONG WITH THE ROUTINE THAT IS SHOWN IN THE TUTORIAL 'LEVEL2.PARTB', ";ft"YOU HAVE A VERY FLEXIBLE YP%(R(AN)1)090YM:=4ANA1ēXP%,YP%:XT%XP%:YT%YP%eHANA3A2A3ēXT%,YT%:ANAN5:880s\XP%,YP%p::  START HERE 1:3B116287:B2B11:KB16384: -- STANDARD VARIABLES FOR BUTTONSAND KEYBOARDV:3:9:"SOFTT1S2KXPT1TF,YPT1XP,YPT1XPT1TF,YPT1XPT1TF,YPT1:QQ2ıiXPXP1:YPYP0:QQ2:700o SUBROUTINE DRAWS SINGLE CIRCLE, BASED ON CENTER AND RADIUS; USES POLAR COORDINATE FORMULA ANA1A2A3 XP%(R(AN)1)100XM LINES IF IN COLORV  DRAWS THREE LARGE 'STANDARD' SIZE BOXES WITH A SINGLE GOSUB BW70:BH53: -- HERE ARE BOX WIDTH AND BOX HEIGHT PARAMETERS XP5026085:260:: 0YP60:520: DYP130:520: l DRAWS ONE TRIANGLE TF1.2TT3,T4T3BW,T4T3BW,T4BHT3,T4BHT3,T42 hL  DRAWS ONE DIAMOND V TS2 XP,YPSXPS,YPXP,YPSXPS,YPXP,YPS:QQ2QQ0: XPXP1:YPYP0:QQ2:440: -- NOTE THAT IT IS DRAWN AGAIN WITH ONE DOT HORIZONTAL OFFSET, TO ENSURE SOLID( (B1)128(B2)128KQKQ1:KQ2ı1 220  THIS SUBROUTINE GETS CENTER, HEIGHT AND WIDTH PARAMETERS, THEN DRAWS ONE BOX. USED HEAVILY BY MANY OTHER PARTS OF THIS PROGRAM XP%(XP):YP%(YP) ,T1BW2:T2BH2 @T3XP%T1:T4YP%T2, CONTINUE..." KQ0A (B1)127(B2)127KQKQ1:KQ0200 (KB)155ė::6:" OK, BACK TO THE MAIN MENU":(4)"RUN HELLO.K--2" X(0):QQ(123):Y(1):X12Y12X140:Y90 Y191Y191 1X,Y:KW135::1X,Y 160 KQ0 k  THERE IS ROOM FOR A LOT MORE CREATIVITIY THAN IS SHOWN HERE; E.G., COLOR, SHAPES, LOCATIONS... Z8000: -- SETUP CURSOR VIA SHAPE TABLE d1000 n STANDARD ROUTINE TO WAIT FOR BUTTON TO BE PRESSED x23:" PRESS EITHER BUTTON TOK SOFT KEYBOARD IDEAS -- A SET OF SUBROUTINES FOR DRAWING VARIOUS GEOMETRIC SHAPES ON THE SCREEN, FOR USE AS TARGETS FOR POINTING; THE PURPOSE IS TO SHOW VARIETY, AND STIMULATE IDEAS. ALL ROUTINES HAVE SIMPLE PARAMETERS  FOR EASE OF USE !! ! ! ! ! !!!!!!!!! ALA TECHNOLOGIES JULY 1983B2((B22)256)256bB12,9-lB13,202;vB14,208IB15,245WB16,174B17,B(B256)256:B18,(B256)B19,76B20,B2((B2)256)256:B21,((B2)256)B22,96: ` BY JEB EDDY KO JULY 1983BVIA POKES; THEN A CALL g BMU: THIS ADDRESS IS ARBITRARY; CAN BE IN ANY FREE SPACEB2,173:B3,48:B4,192&B5,1360B6,208:B7,5:B8,206:B9,B1((B1)256)256DB10,((B1)256)NB11,240XB12,B2"P.S.-- WE WILL BE EXPANDING AND IMPROVING THIS PROGRAMMER'S GUIDE, TOO.":90b QUIT ~ :11:15:"R.S.V.P.": " LET'S RETURN TO THE MAIN MENU (4)"RUN HELLO.K--2" ` BY JEB EDDY KOALA TECHNOLOGIES SELVES AND WHICH WE WILL ASK YOU SOFTWARE AUTHORS TO USE ALSO.":90K: 10< :"THE PROGRAMS ON THIS DISKETTE CONTAIN MANY ELEMENTS OF WHAT WE WILL PROPOSE INTHESE STANDARDS. WRITE TO OUR SOFTWARE ENGINEERING DEPARTMENT FOR DETAILS.":90UF :16::::HT:"KOALA TECHNOLOGIES CORP.":HT:"SOFTWARE MARKETING":HT:"3100 PATRICK HENRY DRIVE":HT:"SANTA CLARA, CA 95050":90 ( NEXT PAGE C2 :5:"FINALLY, WE ARE NOW IN THE PROCESS OF WRITING SOME 'INTERFACE STANDARDS' WHICHWE WILL USE OUR :5 "IF YOU WRITE OR HAVE IDEAS FOR FRIENDLY,RELIABLE, INNOVATIVE SOFTWARE BASED ON THE TABLET, PLEASE CONTACT US. WE CAN PROVIDE SUPPORT IN BOTH THE DEVELOPMENT AND MARKETING OF YOUR PROGRAMS."  90 HT10 11:::05:"WRITE TO:"."0 j :"WE HOPE YOU AGREE.":90: NEXT PAGE 9 ~ :5N 16:"WOULD"::X 34,7` 17 13:2:"Y-O-U (YOU!)":255:: QQ109:912:Q11100:: 12 "LIKE TO WRITE SOME OF THAT SOFTWARE? QQ12000::90: NEXT PAGE2)128QQQQ1:QQ3ı s110L X(0):QQ(123):Y(1):: START HERE R r  B116287:B2B11:16368,0{ . :5 V "WE AT KOALA BELIEVE THAT THERE ARE MANY OPPORTUNITIES FOR NEW AND BETTER SOFTWARE PRODUCTS WHICH USE THE TOUCH TABLETNEXT IS STANDARD TEST TO SEE IF BUTTON IS PRESSED : Z23i _3:"PRESS EITHER BUTTON TO CONTINUE...";:r cQQ0 d(B1)127(B2)127QQQQ1:QQ3108 g(KB)155ė:6:" OK, BACK TO THE MAIN MENU...":2735 i100 lQQ0 n(B1)128(B  -- AN INVITATION... -- JULY 1983 -- THE TABLET OPENS NEW SOFTWARE OPPORTUNITIES. IF YOU WOULD LIKE TO WRITE AND SELL SOFTWARE BASED ON THE TABLET, PLEASE CONTACT US. WE CAN PROVIDE HELP IN BOTH DEVELOPMENT AND MARKETING F23002 X "" " " " " """""