** 512** HI$(5)** SO$(6,5)** UL$(6)** DA(12)** 31,28,31,30,31,30,31,31,30,31,30,31** I 1 12: DA(I): I** YY1** :**:'MD=1 ' USE 1 TO MANUALLY ENTER DATE DEFAULT OF 0 USES SYSTEM DATE$** 8000: :SET DF$ (date format) TO "USA", "NEC", or "K85".** 8100**RF0**DB0:VR$"v0.l": :V UPDATE**WN0** 4000**VX1: VY1**CO$AT$(322)(3230)**DL30:QL$"!@#$%^&*()": :DELAY'**CC1**SV0** I1 6** G$(I)AT$(32I)(321)**!H$(I)AT$(32I)(327)**" I**$PX14:PY4**%P1$AT$(32PY) (32PX): A1$"ABCDEFGHIJKLM": :ALPHABET BOARD**&P2$AT$(32PY1)(32PX): A2$"NOPQRSTUVWXYZ"**' I1 6: J1 5:SO$(I,J)".": J: I**) 0,0*****, I1 6**- G$(I)"_____";: H$(I)".....";**. I**0VY0:VX16: 4200: "-m100le-": P1$A1$;: P2$A2$;**1VX28:VY1: 4200: VY1 6: "|";DN$;LT$;: VY**2 9000**< CV$;**AWF$"": :YEAR'S WORDLIST FILENAME**I RF1 DY0**KGN1**NTW$"":TM$"" :TODAY'S WORD/TEMP WORD**ON0:I0:R0:C0**R 8200**T 8300** 6000**VX1: VYGN** 4200**:** 7000** 7100** 1000**:** 2100**ID(1)**: RD: RAM DIRECTORY ADDRESS. (Anderson's "Programming Tips" gives RD=63842 for M100/102 and 62034 for T200.)**RD( 63842(ID51 ID167) 62034(ID171) 63633(ID148) 63849(ID225 ID35 ID125) )** RD0 "Error: Unknown machine ID";ID;". Please file a bug report.": ** RD125 "This is an M10 (USA)! Please file a bug report if this works or not.": T0 1000: T** T1 RD 65535 11**: Attribute flag: See Oppedahl's "Inside the TRS-80 Model 100" for details.**FL(T1)** FL255 2080** (FL 128)0 T1**WA(T11)256(T12)**  T21 8: ((WL$,T2, 1)) (T12T2) T1: : T2** T29 ** :**% 52***WA0: **4:**5 E.g. "FOO.DO" -> "FOO DO"**>T1(1,WL$,".")**CFN$WL$:EX$""**H T10 FN$(WL$,1,T11): EX$(WL$,T11,2)**R (FN$)6 "filename too long": **\ (FN$)6 FN$FN$" ": 2140**f (EX$)2 EX$EX$" ": 2150**pFN$FN$EX$: WL$""**z T11 8**|T2((FN$,T1,1)): (T2("a")) (T2("z")) T2T232**}WL$WL$(T2)** T1**** :** CO$AT$(322)(3230)** CO$;** CC1 "HMMM...";** CC 2 "OK...";** CC 3 "NICE";** CC4 "WELL DONE";** NQ1 DL: NQ** CO$;" ";** **:**ES$(27)**AT$ES$"Y" : Move cursor at**RV$ES$"p" : Reverse Video**NV$ES$"q" : Normal Video**UP$ES$"A" : Up 1 step**DN$ES$"B" : Down 1 step**RT$ES$"C" : Right 1 step**LT$ES$"D" : Left 1 step**LT$(8)**CV$ES$"P" : Cursor Visible**CI$ES$"Q" : Cursor Invisible**UL$(0)""**" I1 6**,UL$(I)UL$(I1)LT$**6 I**@ I1 6**JUL$(I)(I, "_")UL$(I)**T I**^**h:**r AT$;(32VY);(32VX);**|**0:**: QZ1 ((1)DL)1:QR((1)10)1: (QL$,QR,1);: QI1 10: QI: LT$;" ";LT$;: QZ:**:**:VX16:VY0: 4200** "-m100le-"**VY1: VX40(WF$): 4200: WF$;** RF1 DY$((DY), ((DY))1): AD$((Y), 2)"/"DY$**VYVY1: VX40(AD$): 4200: AD$;**VYVY1: VX40(VR$): 4200: VR$;**VYVY1: VX40((DY)): 4200: DY;** I1 6: VX13: VYI** 4200: I;"- ";: J1 5: SO$(I,J);: J: I** WN0 GN0**VY1: VX25: 4200** RV$;GN: 4200: RT$RT$;"/6 "NV$**VX1: VY1: 4200: "WORDLE FOR"**VY2: 4200: "m100"**K$: K$"" 5100**|**VY0:VX16: 4200** "-m100le-"**SV1: 8910**p:**rVY1: VX32: 4200**s RV$ "LOADING" NV$;**uWL$WF$**y: Search directory for "WL20xx.CO", set WA to its address in RAM.**z 2000** WA0 "Error: File '";WF$;"' File not found.": ** 4200: "LOADING";** Set TW$ to today** (WF$,2)"CO" 6100 : 6200** 4200: " ": VY1: VX40((DY)): 4200: DY;: :CLEAR LOADING TEXT, PRINT WORD SEQ. NUM** DB1 TW$"HIPPY": :OVERRIDE CURRENT WORD IF DB=1(DEBUG ON)'****:**XWA6(DY1)3**A(X)256(X1)256256(X2)** I1 5**B(A26)**TW$TW$(AB26("A"))**AB**$ I**.**8:**BXWA(DY1)7**V I0 4**`A((XI) 95)**jTW$TW$(A)**~ I****N 10000**X:**bK$ : K$"" 7010**gX(K$)**l X8 X13 X21 :K$"":: :BKSP, ENTER, ^U. EXIT. NO MORE PROCESSING NEEDED'**n X65 K$"": :FILTER FOR NON-LETTERS**q X90 X97 K$""**r X122 K$""** K$"" 7010** (K$)97 K$(X32)****:** X8 7200:** X13 7300** X21 TM$"": 7600: : CTRL-U CLEAR INPUT** (TM$)5 TM$(TM$,4): LT$;** K$;**TM$TM$K$** RETURN FROM ENTER CHECK AND UPDATE'**** :***N(TM$)**4 N1 TM$(TM$,N1) : : **> LT$"_"LT$;**z**:** (TM$) 5 7000** RT$;**:'** I1 5: HI$(I)".": SO$(GN,I)".": I** I 1 5** (TM$,I,1) (TW$,I,1) HI$(I) (TW$,I,1): SO$(GN,I) "*" :CCCC1** I** I 1 5** SO$(GN,I)"*" 7358: : IF TEST CHARACTER HAS BEEN FOUND THEN MOVE ON TO NEXT I** J 1 5** HI$(J)"." 7356: : IF FOUND FLAG FOUND, NEXT J** (TM$,J,1) (TW$,I,1) HI$(J)"?":SO$(GN,J)"?":CCCC1: J5 :MARK THE GUESS AND INCREMENT COMMENT VALUE'** J** I** 7400** H$(GN);** I1 5: HI$(I);: I**VX1: VYGN1** TM$TW$ I1 100: I: WN1: VX15: VY1: 4400: 4200: RV$ " CONGRATS! " NV$;: I 1 DL: I: 8900: :WIN. SET WIN FLAGS'** 3000:CC1** WN1 8900** GN6 8900**GNGN1: TM$"": 7600: 7190: :RESET AND GET NEXT GUESS'**:**: SO$(GN,I) is replacement symbol, "*" for right place, "?" for wrong place, "." for wrong letter.** I 1 5**T((TM$,I,1))64** T13 VYPY : VXPX1T: : VYPY1: VXPX14T** 4200** SO$(GN,I);** T13 VYVY1:VXPX1T:: VYVY1: VXPX14T** 4200** SO$(GN,I)"*" RV$;(T64);NV$;**  SO$(GN,I)"?" (T64);**$ I**K**:** 4200** G$(GN)TM$UL$(5(TM$));**** ID148 @(VY40VX), "_____": @(VY40VX), TM$;: : ATE VX,VY: "_____":ATE VX,VY: TM$;**** 10000**@:**D: "NEC", "USA", or "K85"**JID(1)**T ID148 DF$"NEC": : (ID225 ID35) DF$"K85": : DF$"USA"**^**:** AD$ "" AD$ݫ** MD1 **** "Input date as ";** DF$"NEC" "YY/MM/DD";:: DF$"K85" "DD/MM/YY";: : "MM/DD/YY";** " or YY/DAY or DAY"** "hit ENTER for ";AD$: ** " DATE";** "";AD$**** Set YY, two-digit year and DY, Ordinal ("Julian") day** I0: IX0** D(I)((AD$, IX1, 15))**& IX(IX1, AD$, "/")**0 IX0 II1: 8220**: I0 DYD(0): CM0: YY1 DF$"NEC" YY((, 2)): : YY((, 2))**D I1 YYD(0): DYD(1): CM0**N I2 DF$"NEC" YYD(0): CMD(1): DYD(2)**X I2 DF$"K85" YYD(2): CMD(1): DYD(0)**b I2 DF$"USA" YYD(2): CMD(0): DYD(1)**g YYYY 100**j **l :**n : OUTPUT: DY is day of year (ordinal) Y is four digit year YY$ is 2 digit year (str) LP is 1 if Y is a leap year WF$ is "WL20yy.CO"**v CM1 : I 1 CM1: DYDYDA(I): I** Y2000YY** LP( (Y 4 0) ( (Y 100 0) (Y 400 0) ) )** CM2 DYDYLP** DY0 DY365LP 6** WF$"WL20"((Y), 2)".CO" :2-digit year** VY0: VX40(WF$): 4200: WF$;** **"**":**" CI$;**" GN6 WN1 VX16: VY1: 4400: 4200: RV$ " SORRY! " NV$: :CANADIAN 'EH?'**" SV1 CO$AT$(322)(3216)**" CO$;"[A]GAIN?": CO$DN$;"[R]ANDOM?": CO$DN$DN$;"[S]OCIAL?": CO$DN$DN$DN$;"[Q]UIT?";**":'**"K$ : K$"" 8920**" K$"a" K$"A" :MD1: 10: :COMPLETE RESTART, ASK FOR DATE**" K$"r" K$"R" : RF1:RT((,2)): I1 RT:DY((RT)(365LP)): I: DY$((DY), ((DY))1): AD$((Y), 2)"/"DY$: MD0: 20**" K$"s" K$"S" 5000: :GOTO SOCIAL THEN END**" K$"q" K$"Q" **" CO$LT$LT$;" ": CO$DN$;" ": CO$DN$DN$;" ": CO$;"ENDING...";: I 1 DL: I: : **(#:**2# 52 : "PROGAM STOP": "DATA FILE NOT FOUND (";WF$")": 9900**<# 6 : "PROGRAM STOP": "DATE OUT OF RANGE (";AD$")": 9900**&VX30: VY1: 4200: RV$ ;"-"; NV$**&"Error"; ;"in line"; **' **' "ERROR - YOU SHOULD NOT HAVE GOTTEN SO FAR":