www.MethowValley.org-2023

Tristan Glib's Posts
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Today spring is here
and it is dark
and it is cold
and the snow recedes
and I do not despair
For today
there is much
the sun does rise
and my heart does sing
I sing in laughter
I sing in might
I praise the glory
glory of right
might and right
seeing versus sight
insight makes better
better than the mighty might
war sensation
station of the nation
never ending gloom
not enough room
so soon
fly away soldier man
lost in love
and I don't know why
seeing the place
straighter the face
looking without
wanting within
light
to light
fright insight
left in the plight
bully me today
lost for now
eager for the sunrise
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

A hardened heart
will melt as stone
volcanic heart
in the heat
revolves in tenacity
sudden moments
disappear at the turn of the head
pleasant dreams
are what they seem
matter of fact
salt in solution
synapsis burning
how much we want
how often we need
tempers are no more
vacant and open
the lot of the house we need
and never was
how shall i be
freedom lingers
fingers on the trigger
steeper we go
finding a place
for all the madness
of the human race
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

tristanbgilb wrote: Wed Feb 09, 2022 9:11 am
tristanbgilb wrote: Wed Feb 09, 2022 9:07 am
tristanbgilb wrote: Wed Feb 09, 2022 8:57 am Image
Judeo Christian Muslim Rasta Hindu
Black Panther President

ALL ONE People
ALL ONE Creator
LOVING each other
Religion to me is this spirit in my heart and soul that will not be educated, tortured, punished, legislated, or taken from me by any human means. It is the human experience encoded in my DNA and Karmically arranged. It is the path to know my creator and have a relationship with him.
I went to church
And what did I see
people were there
praying to god
and being all there
living life

I am he that is to be. I am he that is now the place I need to be. I am here and no where gone. In this life, there is a song. Loving each other. christ in nature. getting better. living in love. gone is the madness. filled my heart with gladness.

and not that bad
holy water
in my heart
dissolves the evil
and all thats been
how is it here
that sure it was
all natural and pure
nearing
steering
fearing
all that shall be
all that needs
all that sheds
all that heed
all is all
and is was is he
never mind the madness
never being been
all that is
all that needs
all there
all here
never ending
all eyes
no lies
Place is the beast of madness. love is gladness and sadness.
heart is bearing
all is known
shown in laughter
all is grown
several tears
so many years
what is once was
however shall be
set me fee
to pay thee
for free
in be at there now
to shallow water
sheep to slaughter
never mind the go
stay for the show
the end is here
just know
whose seeds you sow
hitch for the toe
off and in
over the edge
rivers in the wet
settling over there
sharing
staring
there is no way here
now what
build a hut
its cold outside
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

When I was young
Younger than this day
I was quiet
and my heart stood idle
and I wondered
what's the last mile
how can it be
when shall it was
better than tomorrow
days of tough stuff
living loving
wondering where to go
stand alone
sit in
walk out
I am here
sometimes gone
leaving a poem
singing a song
one is one
three was once more
hello my friend
lost in love
without a chance
livery stable promises
no tomorrow
when today I have fear
fear for my heart
that sometimes the rare
rare broken tear
sitting sulking with a smile
waiting in time
yesterday tequila and lime
today I grow
for all to know
lest ye be evil
then I hide
bury me not
unless my spirit is gone
my brain is lifeless
without any songs
once and again
I had a lost friend
evil and despair
satans got his share
for god and love
and all the might
for all my children
I gotta do it right
spinning in circles
lifer I live
don't stop me now
its them or they
me and those
stomping to music
watching the toes
when I love
I want to live
give and give
all so filled
time is still
music goes on
simmer me potato
rowing the boat
feeding the goat
I wanna live
John Denver style
Growing and knowing
no airplane the last mile
help me
I might fall
I might fly with you
If you want to travel my way
Beware of me
I am monster enemy
Only seeking peace
Master of Puppets
Jacked the knife strings
Tangled and Broken
Beyond the other
on my own
with a thought I cared to share
for all else fails
hoping
wanting
needing a world
to play
keep evil at bay
my home
my heart
my mountain
Gilbert Mountain
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Sometimes I stand
Other times I lie still
World is on our shoulders
Children in our hearts
Golden Treasures
Taken Measures
How does your garden grow?
Seeds that show
What to know
Heart ache
Small sake
Taken in
without a smile
mile for mile
Not drunk
Roadkill skunk
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

PAL wrote: Mon Feb 13, 2023 2:50 pm Oh, can she play and sing! I remember seeing her when she was 17, playing at the Old Schoolhouse Brewery. Her voice has matured and she has confidence. Yay Leah!
Leah is totally awesome. This is her CD from 2004, almost 10 years ago. She has allowed me to release the album worldwide digitally including youtube and itunes and such. Not only do I get a small commission on sales, I also get to hear her songs on youtube whenever I need them.
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
PAL
Posts: 1307
Joined: Tue May 25, 2021 1:25 pm
Contact:

Re: www.MethowValley.org

Post by PAL »

Oh, can she play and sing! I remember seeing her when she was 17, playing at the Old Schoolhouse Brewery. Her voice has matured and she has confidence. Yay Leah!
Pearl Cherrington
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

tristanbgilb wrote: Mon Feb 13, 2023 2:04 pm CLICK ALBUM COVER FOR LEAH LARSON YOUTUBE PLAYLIST
Image
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Steve Spickard Light.jpg
Steve Spickard was my angel of light that saved me from the darkness of living on the streets in downtown Spokane with a life of alcohol and drugs. He gave me a purpose to live by showing me it is ok to be successful as a man of God in a land of demons in devil control.
Today I cry a river for the loss of my mentor and angel.
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Steve Spickard.jpg
STEVEN SPICKARD OBITUARY

Steven John Spickard (80) passed away peacefully January 7th, 2023, at Sacred Heart Hospital. He joins his late brother (Bob) and their parents John Spickard and Betty (Davis). He is survived by his daughter Janice Mac Avoy and nephew Ryan Spickard.

Born June 27, 1942, in Clarkston, Idaho, Steve grew up working along with his brother in their parents' endeavors which included real estate and construction.

The family soon moved to Seattle where Steve attended Evergreen and Chief Sealth High School and later went on to study Business and Public Administration at University of Puget Sound as well as Law at Gonzaga University.

As the family returned to settle in Spokane, Steve held many interests and professions such as manager of Select Realty Inc, the owner of one of Spokane's most prolific independent music and gathering venues, 'The Big Dipper.' and also owner of the 'Universal Heart Center', founded from Steve's devotion to the Essene Gospel of Peace, which provided the guideposts through which he lived his life.

Steve enjoyed the great community of people that he helped foster in music, spirituality, health-conscious eating and mindfulness, medical cannabis activism, and volunteer work. His cheerfulness, generosity, humor and kind heart will be missed.

Memorial service announcements will be forthcoming.

Published by Spokesman-Review on Jan. 15, 2023.
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Image

This Code creates the circle pixelated image that you are seeing at normal speed.

Code: Select all

     5 REM LETH=34
    10 REM LETK=22
    15 REM PLOTH,K
    20 REM LETR=21
    25 REM LETR=R-1
    30 REM IFR=0GOTO315
    35 REM LETT=R
    40 REM LETU=R
   125 REM LETT=R
   130 REM LETX=T
   135 REM LETY=0
   140 REM LETY=Y+1
   145 REM IFY=RGOTO220
   150 REM LETG=R*R
   155 REM LETJ=Y*Y
   160 REM LETW=G-J
   165 REM LETT=X
   170 REM LETX=W/T
   175 REM LETA=X+H
   180 REM LETB=H-X
   185 REM LETC=Y+K
   190 REM LETD=K-Y
   195 REM PLOTA,C
   200 REM PLOTB,C
   205 REM PLOTA,D
   210 REM PLOTB,D
   215 REM GOTO140
   220 REM LETY=R
   225 REM LETX=0
   230 REM LETX=X+1
   235 REM IFX=RGOTO310
   240 REM LETM=R*R
   245 REM LETN=X*X
   250 REM LETQ=M-N
   255 REM LETU=Y
   260 REM LETY=Q/U
   265 REM LETA=X+H
   270 REM LETB=H-X
   275 REM LETC=K-Y
   280 REM LETD=Y+K
   285 REM PLOTB,C
   290 REM PLOTA,C
   295 REM PLOTB,D
   300 REM PLOTA,D
   305 REM GOTO230
   310 REM GOTO25
   315 REM LETR+21
   335 REM LETR=R-1
   340 REM IFR=0GOTO625
   345 REM LETT=R
   350 REM LETU=R
   435 REM LETT=R
   440 REM LETX=T
   445 REM LETY=0
   450 REM LETY=Y+1
   455 REM IFY=RGOTO530
   460 REM LETG=R*R
   465 REM LETJ=Y*Y
   470 REM LETW=G-J
   475 REM LETT=X
   480 REM LETX=W/T
   485 REM LETA=X+H
   490 REM LETB=H-X
   495 REM LETC=Y+K
   500 REM LETD=K-Y
   505 REM UNPLOTA,C
   510 REM UNPLOTB,C
   515 REM UNPLOTA,D
   520 REM UNPLOTB,D
   525 REM GOTO450
   530 REM LETY=R
   535 REM LETX=0
   540 REM LETX=X+1
   545 REM IFX=RGOTO620
   550 REM LETM=R*R
   555 REM LETN=X*X
   560 REM LETQ=M-N
   565 REM LETU=Y
   570 REM LETY=Q/U
   575 REM LETA=X+H
   580 REM LETB=H-X
   585 REM LETC=K-Y
   590 REM LETD=Y+K
   595 REM UNPLOTB,C
   600 REM UNPLOTA,C
   605 REM UNPLOTB,D
   610 REM UNPLOTA,D
   615 REM GOTO540
   620 REM GOTO335
   625 REM GOTO5
Attachments
ZX81 CircleFillSmall.gif
ZX81 CircleFillSmall.gif (3.6 MiB) Viewed 16597 times
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

This attachment is an assembly language program on a ZX81 Emulator.
Attachments
ZX81 CIRCLEDELETEFULL.gif
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

This is the link to the BEST ZX81 Emulator EVER!!!

http://zx81.vb81.free.fr/

This is the ZX-COMPILER program I wrote pasted on top the ZX- COMPILER program making a circle in machine code with only adding, multiplying, dividing, and subtracting. No square root makes it sort of difficult.

Code: Select all

    10 REM LETH=34
    20 REM LETK=22
    30 REM PLOTH,K
    40 REM LETR=20
    50 REM LETT=R
    60 REM LETU=R
    70 REM LETL=0
    80 REM LETL=L+1
    90 REM IFL=RGOTO150
   100 REM LETE=K+L
   110 REM LETF=K-L
   120 REM PLOTH,E
   130 REM PLOTH,F
   140 REM GOTO80
   150 REM LETL=0
   160 REM LETL=L+1
   170 REM IFL=RGOTO230
   180 REM LETE=H+L
   190 REM LETF=H-L
   200 REM PLOTE,K
   210 REM PLOTF,K
   220 REM GOTO160
   230 REM LETT=R
   240 REM LETX=T
   250 REM LETY=0
   260 REM LETY=Y+1
   270 REM IFY=RGOTO420
   280 REM LETG=R*R
   290 REM LETJ=Y*Y
   300 REM LETW=G-J
   310 REM LETT=X
   320 REM LETX=W/T
   330 REM LETA=X+H
   340 REM LETB=H-X
   350 REM LETC=Y+K
   360 REM LETD=K-Y
   370 REM PLOTA,C
   380 REM PLOTB,C
   390 REM PLOTA,D
   400 REM PLOTB,D
   410 REM GOTO260
   420 REM LETY=R
   430 REM LETX=0
   440 REM LETX=X+1
   450 REM IFX=RGOTO600
   460 REM LETM=R*R
   470 REM LETN=X*X
   480 REM LETQ=M-N
   490 REM LETU=Y
   500 REM LETY=Q/U
   510 REM LETA=X+H
   520 REM LETB=H-X
   530 REM LETC=K-Y
   540 REM LETD=Y+K
   550 REM PLOTB,C
   560 REM PLOTA,C
   570 REM PLOTB,D
   580 REM PLOTA,D
   590 REM GOTO440
   600 REM RETURN

# REM **COMPILER**
  1000  REM [HEX:\
17,17,28,34,32,35,2E,31,\
2A,37,17,17,76 ]

  1010 FAST 
  1011 LET Q=3950
  1012 LET Q1=2830
  1013 LET Q2=3320
  1014 LET Q3=3630
  1015 LET Q4=3970
  1016 LET Q5=1320
  1017 LET Q6=4
  1020 LET P=28858
  1030 LET P1=16514
  1040 GOSUB 2920
  1050 IF PEEK (P1-1)<>234 THEN GOTO Q1
  1060 IF PEEK P1=118 THEN GOTO Q1
  1070 GOSUB 2880
  1080 LET A$=""
  1090 LET A$=A$+CHR$ PEEK P1
  1100 LET P1=P1+1
  1110 IF PEEK (P1-1)<>118 THEN GOTO 1090
  1120 IF PEEK (P1+1)*256+PEEK (P1+2)=1010 THEN GOTO 3690
  1130 LET P1=P1-3
  1140 LET T$=A$( TO 2)
  1150 LET B$=A$+"      "
  1160 LET J=0
  1170 LET J=J+(T$="RE")*2170+(T$="SC")*1200+(T$="PR")*1360+(T$="GE")*1530+(T$="EN")*1620+(T$="PA")*1670+(T$="CL")*1720+(T$="MO")*1770+(T$="LE")*1890+(A$( TO 3)="GOT")*2060+(A$( TO 3)="GOS")*2130+(T$="IF")*2200+(T$="PO")*2430+(T$="UN")*2550+(T$="PL")*2580+(T$="DO")*2720
  1180 IF NOT J THEN LET J=Q1
  1190 GOTO J
  1201 IF B$(7)<>CHR$ 118 THEN GOTO Q1
  1202 LET U$="2A0C40112100EB1901F702EDB00620AF131210FC"
  1203 GOSUB Q3
  1204 GOTO Q5
  1320 LET P1=P1+8
  1330 GOTO 1050
  1360 LET B$=B$(6 TO )
  1370 IF B$(1)=CHR$ 11 THEN GOTO 1420
  1380 GOSUB Q2
  1390 LET U$="7DD7"
  1400 GOSUB Q3
  1410 GOTO Q5
  1420 GOSUB Q
  1430 LET U$="CDBA40"
  1440 GOSUB Q3
  1450 POKE P,CODE (B$(1))
  1460 GOSUB Q
  1470 IF B$(1)=CHR$ 11 THEN POKE P+1,255
  1480 LET P=P+1
  1490 IF B$(1)=CHR$ 11 THEN GOTO 1510
  1500 GOTO 1450
  1510 LET P=P+1
  1520 GOTO Q5
  1530 LET B$=B$(Q6 TO )
  1540 LET U$="CDBB02444D51142808CDBD077ECB7728023E8021004077233600"
  1550 GOSUB Q3
  1560 LET V=CODE B$(1)
  1570 IF CODE B$(2)<>118 THEN GOTO Q1
  1580 IF V<38 OR V>63 THEN GOTO Q1
  1590 LET V=(V-38)*2+130
  1600 POKE P-6,V
  1610 GOTO Q5
  1620 LET B$=B$(Q6 TO )
  1630 IF B$(1)<>CHR$ 118 THEN GOTO Q1
  1640 LET U$="CFFF"
  1650 GOSUB Q3
  1660 GOTO Q5
  1670 LET B$=B$(6 TO )
  1680 GOSUB Q2
  1690 LET U$="2B7CB520FB"
  1700 GOSUB Q3
  1710 GOTO Q5
  1720 LET B$=B$(Q6 TO )
  1730 IF B$(1)<>CHR$ 118 THEN GOTO Q1
  1740 LET U$="2A0C40161823062036002310FB1520F5010000CDF508"
  1750 GOSUB Q3
  1760 GOTO Q5
  1770 LET B$=B$(5 TO )
  1780 GOSUB Q2
  1790 GOSUB Q4
  1830 LET U$="45"
  1840 GOSUB Q3
  1850 GOSUB Q2
  1860 LET U$="4DCDF508"
  1870 GOSUB Q3
  1880 GOTO Q5
  1890 LET B$=B$(Q6 TO )
  1900 LET L=(CODE B$-38)*2+130
  1910 LET B$=B$(3 TO )
  1920 GOSUB Q2
  1930 GOSUB 3570
  1940 IF CODE B$=118 THEN GOTO 2020
  1950 LET U$="EB"
  1960 GOSUB Q3
  1970 LET S$=B$(1)
  1980 GOSUB Q
  1990 GOSUB Q2
  1991 LET N$="CD0913"
  1992 IF PEEK 4869=197 THEN LET N$="CD0513"
  2000 LET U$=(N$ AND S$="*")+("EBCDC440" AND S$="/")+("19" AND S$="+")+("EBA7ED52" AND S$="-")
  2010 GOSUB Q3
  2020 LET U$="220040"
  2030 GOSUB Q3
  2040 POKE P-2,L
  2050 GOTO Q5
  2060 LET B$=B$(5 TO )
  2070 GOSUB Q2
  2080 POKE P-3,195
  2090 LET G(N1,1)=PEEK (P-2)+PEEK (P-1)*256
  2100 LET G(N1,2)=P-2
  2110 LET N1=N1+1
  2120 GOTO Q5
  2130 LET B$=B$(6 TO )
  2140 GOSUB Q2
  2150 POKE P-3,205
  2160 GOTO 2090
  2170 LET U$="C9"
  2180 GOSUB Q3
  2190 GOTO Q5
  2200 LET B$=B$(3 TO )
  2210 GOSUB Q2
  2220 GOSUB 3570
  2230 LET U$="EB"
  2240 GOSUB Q3
  2250 LET S$=B$(1)
  2260 GOSUB Q
  2270 GOSUB Q2
  2280 IF CODE B$>37 THEN GOSUB Q
  2290 IF CODE B$<38 THEN GOSUB 3600
  2300 LET U$="A7ED52"
  2310 IF S$="<>" THEN LET U$=U$+"CA"
  2320 IF S$="=" THEN LET U$=U$+"C2"
  2330 IF S$="<" THEN LET U$=U$+"DA"
  2340 IF S$=">" THEN LET U$=U$+"D2"
  2350 LET U$=U$+"0000"
  2360 IF S$<>">" AND S$<>"=" AND S$<>"<" AND S$<>"<>" THEN GOTO Q1
  2370 GOSUB Q3
  2380 LET G(N1,2)=P-2
  2390 LET G(N1,1)=1000
  2400 LET N1=N1+1
  2410 LET A$=B$
  2420 GOTO 1140
  2430 LET B$=B$(5 TO )
  2440 GOSUB Q2
  2450 GOSUB Q4
  2490 LET U$="EB"
  2500 GOSUB Q3
  2510 GOSUB Q2
  2520 LET U$="EB73"
  2530 GOSUB Q3
  2540 GOTO Q5
  2550 LET B$=B$(3 TO )
  2560 LET U$="3EA0323040"
  2570 GOTO 2590
  2580 LET U$="3E9B323040"
  2590 GOSUB Q3
  2600 LET B$=B$(5 TO )
  2610 GOSUB Q2
  2620 LET U$="4D"
  2630 GOSUB Q3
  2640 GOSUB Q4
  2680 GOSUB Q2
  2690 LET U$="45CDB20B"
  2700 GOSUB Q3
  2710 GOTO Q5
  2720 LET B$=B$(5 TO )
  2730 GOSUB Q2
  2740 GOSUB Q4
  2771 LET U$="EB"
  2780 GOSUB Q3
  2790 GOSUB Q2
  2800 LET U$="EB732372"
  2810 GOSUB Q3
  2820 GOTO Q5
  2830 IF PEEK (P1-1)=118 THEN GOTO 3180
  2840 IF P1=16509 THEN GOTO 3180
  2850 LET P1=P1-1
  2860 GOTO 2830
  2870 SLOW 
  2880 LET L(N,1)=PEEK (P1-5)*256+PEEK (P1-4)
  2890 LET L(N,2)=P-12288
  2900 LET N=N+1
  2910 RETURN 
  2920 DIM L(100,2)
  2930 DIM G(70,2)
  2940 LET N=1
  2950 LET N1=N
  2960 LET U$="E17E23E5FEFFC8D718F601FFFFA7ED520330FAC5E1C9A6AFAC"
  2965 LET U$=U$+"FD3622002182403600237DFEBA20F8"
  2970 GOSUB Q3
  2980 RETURN 
  2990 IF N1=1 THEN RETURN 
  3000 FOR X=1 TO N1-1
  3010 LET PO=G(X,2)
  3020 LET L=G(X,1)
  3030 LET G=1
  3040 GOTO 3120
  3050 LET G=G+1
  3060 IF G=N THEN GOTO 3150
  3070 GOTO 3040
  3080 POKE PO,L(G,2)-256*INT (L(G,2)/256)
  3090 POKE PO+1,INT (L(G,2)/256)
  3100 NEXT X
  3110 RETURN 
  3120 IF L=1000 THEN IF PO-12288<=L(G,2) THEN GOTO 3080
  3130 IF L=L(G,1) THEN GOTO 3080
  3140 GOTO 3050
  3160 GOTO 3200
  3170 RETURN 
  3190 LET L=PEEK P1*256+PEEK (P1+1)
  3200 SLOW 
  3201 POKE 16418,0
  3202 PRINT AT 22,0;"*******ERROR IN ";L;"******";AT 0,0;
  3203 POKE 16418,2
  3204 LIST L
  3205 GOTO 3200
  3230 LET V=CODE B$
  3240 IF V<38 OR V>63 THEN GOTO Q1
  3250 LET V=(V-38)*2+16514
  3260 LET U$="2A"
  3270 GOSUB Q3
  3280 POKE P,V-16384
  3290 POKE P+1,64
  3300 LET P=P+2
  3310 RETURN 
  3320 LET V=1
  3330 IF CODE B$(V)>37 OR CODE B$(V)<28 THEN GOTO 3360
  3340 LET V=V+1
  3350 GOTO 3330
  3360 IF V=1 THEN GOTO 3420
  3370 LET V=VAL (B$( TO V-1))
  3380 IF V<>INT V OR V>65536 THEN GOTO Q1
  3390 GOSUB 3530
  3400 POKE P+1,INT (V/256)
  3405 LET P=P+2
  3410 RETURN 
  3420 LET U$=""
  3430 IF B$( TO 3)="TOP" THEN LET U$="2A0C4023"
  3440 GOSUB 3780
  3450 IF B$( TO 3)<>"USR" THEN GOTO 3850
  3460 LET B$=B$(Q6 TO )
  3470 GOSUB Q2
  3480 POKE P-3,205
  3490 RETURN 
  3500 IF U$="" THEN GOTO 3220
  3510 GOSUB Q3
  3520 RETURN 
  3530 LET U$="21"
  3540 GOSUB Q3
  3550 POKE P,V-256*INT (V/256)
  3560 RETURN 
  3570 IF CODE B$<28 OR CODE B$>63 THEN RETURN 
  3580 GOSUB Q
  3590 GOTO 3570
  3600 IF CODE B$<28 OR CODE B$>37 THEN RETURN 
  3610 GOSUB Q
  3620 GOTO 3600
  3630 POKE P,CODE U$*16+CODE U$(2)-476
  3640 LET U$=U$(3 TO )
  3650 LET P=P+1
  3660 IF P>=32700 THEN STOP 
  3670 IF U$="" THEN RETURN 
  3680 GOTO Q3
  3690 GOSUB 2990
  3700 LET J=P-12287
  3710 LET P=28672
  3720 LET U$="210000E5C103E52182401182701A7723137DB920F87CB820F4E136A62336AF2336AC233676E5118040A7ED52227F40E123C30304"
  3730 GOSUB Q3
  3740 LET P=J
  3750 POKE 28673,P-256*INT (P/256)
  3760 POKE 28674,INT (P/256)
  3770 RAND USR 28672
  3780 IF B$( TO 3)<>"RND" THEN RETURN 
  3790 LET U$="D92A3240545D29291929292919223240EB"
  3800 GOSUB Q3
  3810 LET B$=B$(Q6 TO )
  3820 GOSUB Q2
  3830 LET U$="EBA7ED5230FB19E5D9E1"
  3840 RETURN 
  3850 IF B$( TO Q6)<>"PEEK" THEN GOTO 3900
  3860 LET B$=B$(5 TO )
  3870 GOSUB Q2
  3880 LET U$="6E2600"
  3890 GOTO 3500
  3900 IF B$( TO Q6)<>"DEEK" THEN GOTO 3500
  3910 LET B$=B$(5 TO )
  3920 GOSUB Q2
  3930 LET U$="D55E2356EBD1"
  3940 GOTO 3500
  3950 LET B$=B$(2 TO )
  3960 RETURN 
  3970 IF B$(1)="," THEN GOTO 4000
  3980 GOSUB Q
  3990 GOTO Q4
  4000 GOSUB Q
  4010 RETURN 
This is my machine code program that the ZX-COMPILER Created along with a BASIC program calling the machine code.

Code: Select all

# REM Q : , > P ? (_6   ( - =         
#       =   < =    _= _       __7____
    10  REM [HEX:\
36,00,0E,00,1A,00,12,00,\
35,00,0F,00,90,01,22,00,\
00,00,10,00,16,00,14,00,\
00,00,00,00,00,00,00,00,\
00,00,14,00,00,00,13,00,\
14,00,00,00,80,01,14,00,\
04,00,00,00,00,00,00,00,\
E1,7E,23,E5,FE,FF,C8,D7,\
18,F6,01,FF,FF,A7,ED,52,\
03,30,FA,C5,E1,C9,A6,AF,\
AC,FD,36,22,00,21,82,40,\
36,00,23,7D,FE,BA,20,F8,\
21,22,00,22,90,40,21,16,\
00,22,96,40,3E,9B,32,30,\
40,2A,90,40,4D,2A,96,40,\
45,CD,B2,0B,21,14,00,22,\
A4,40,2A,A4,40,22,A8,40,\
2A,A4,40,22,AA,40,21,00,\
00,22,98,40,2A,98,40,EB,\
21,01,00,19,22,98,40,2A,\
98,40,EB,2A,A4,40,A7,ED,\
52,C2,31,41,C3,6D,41,2A,\
96,40,EB,2A,98,40,19,22,\
8A,40,2A,96,40,EB,2A,98,\
40,EB,A7,ED,52,22,8C,40,\
3E,9B,32,30,40,2A,90,40,\
4D,2A,8A,40,45,CD,B2,0B,\
3E,9B,32,30,40,2A,90,40,\
4D,2A,8C,40,45,CD,B2,0B,\
C3,16,41,21,00,00,22,98,\
40,2A,98,40,EB,21,01,00,\
19,22,98,40,2A,98,40,EB,\
2A,A4,40,A7,ED,52,C2,8E,\
41,C3,CA,41,2A,90,40,EB,\
2A,98,40,19,22,8A,40,2A,\
90,40,EB,2A,98,40,EB,A7,\
ED,52,22,8C,40,3E,9B,32,\
30,40,2A,8A,40,4D,2A,96,\
40,45,CD,B2,0B,3E,9B,32,\
30,40,2A,8C,40,4D,2A,96,\
40,45,CD,B2,0B,C3,73,41,\
2A,A4,40,22,A8,40,2A,A8,\
40,22,B0,40,21,00,00,22,\
B2,40,2A,B2,40,EB,21,01,\
00,19,22,B2,40,2A,B2,40,\
EB,2A,A4,40,A7,ED,52,C2,\
F7,41,C3,A8,42,2A,A4,40,\
EB,2A,A4,40,CD,09,13,22,\
8E,40,2A,B2,40,EB,2A,B2,\
40,CD,09,13,22,94,40,2A,\
8E,40,EB,2A,94,40,EB,A7,\
ED,52,22,AE,40,2A,B0,40,\
22,A8,40,2A,AE,40,EB,2A,\
A8,40,EB,CD,C4,40,22,B0,\
40,2A,B0,40,EB,2A,90,40,\
19,22,82,40,2A,90,40,EB,\
2A,B0,40,EB,A7,ED,52,22,\
84,40,2A,B2,40,EB,2A,96,\
40,19,22,86,40,2A,96,40,\
EB,2A,B2,40,EB,A7,ED,52,\
22,88,40,3E,9B,32,30,40,\
2A,82,40,4D,2A,86,40,45,\
CD,B2,0B,3E,9B,32,30,40,\
2A,84,40,4D,2A,86,40,45,\
CD,B2,0B,3E,9B,32,30,40,\
2A,82,40,4D,2A,88,40,45,\
CD,B2,0B,3E,9B,32,30,40,\
2A,84,40,4D,2A,88,40,45,\
CD,B2,0B,C3,DC,41,2A,A4,\
40,22,B2,40,21,00,00,22,\
B0,40,2A,B0,40,EB,21,01,\
00,19,22,B0,40,2A,B0,40,\
EB,2A,A4,40,A7,ED,52,C2,\
CF,42,C3,80,43,2A,A4,40,\
EB,2A,A4,40,CD,09,13,22,\
9A,40,2A,B0,40,EB,2A,B0,\
40,CD,09,13,22,9C,40,2A,\
9A,40,EB,2A,9C,40,EB,A7,\
ED,52,22,A2,40,2A,B2,40,\
22,AA,40,2A,A2,40,EB,2A,\
AA,40,EB,CD,C4,40,22,B2,\
40,2A,B0,40,EB,2A,90,40,\
19,22,82,40,2A,90,40,EB,\
2A,B0,40,EB,A7,ED,52,22,\
84,40,2A,96,40,EB,2A,B2,\
40,EB,A7,ED,52,22,86,40,\
2A,B2,40,EB,2A,96,40,19,\
22,88,40,3E,9B,32,30,40,\
2A,84,40,4D,2A,86,40,45,\
CD,B2,0B,3E,9B,32,30,40,\
2A,82,40,4D,2A,86,40,45,\
CD,B2,0B,3E,9B,32,30,40,\
2A,84,40,4D,2A,88,40,45,\
CD,B2,0B,3E,9B,32,30,40,\
2A,82,40,4D,2A,88,40,45,\
CD,B2,0B,C3,B4,42,C9,45,\
A6,AF,AC ]

   100 LET X=USR 16595
   120 SLOW 
   130 FOR D=1 TO 100
   140 NEXT D
   145 CLS 
   150 GOTO 100
ZX81 Circle.gif
ZX81 Circle.gif (592.49 KiB) Viewed 16560 times
Attachments
ZX81 Circle.gif
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

I wrote a program for the ZX81 that draws a circle with only adding, subtracting, multiplying, or dividing. Square Root won't be allowed after I convert it into ZX-COMPILER BASIC. I want to get the ZX81 to draw a circle in Machine Code to see how fast it goes.

Code: Select all

   
          
    10 LET H=34
    20 LET K=22
    30 PLOT (H),(K)
    40 LET R=20
    50 LET T=R
    60 LET U=R
    70 LET L=0
    80 LET L=L+1
    90 IF L=R THEN GOTO 150
   100 LET E=K+L
   110 LET F=K-L
   120 PLOT (H),(E)
   130 PLOT (H),(F)
   140 GOTO 80
   150 LET L=0
   160 LET L=L+1
   170 IF L=R THEN GOTO 230
   180 LET E=(H+L)
   190 LET F=(H-L)
   200 PLOT (E),(K)
   210 PLOT (F),(K)
   220 GOTO 160
   230 LET T=R
   240 LET X=T
   250 LET Y=0
   260 LET Y=Y+1
   270 IF Y=R THEN GOTO 420
   280 LET G=R*R
   290 LET J=Y*Y
   300 LET W=(G-J)
   310 LET T=X
   320 LET X=(W/T)
   330 LET A=(X+H)
   340 LET B=(H-X)
   350 LET C=(Y+K)
   360 LET D=(K-Y)
   370 PLOT (A),(C)
   380 PLOT (B),(C)
   390 PLOT (A),(D)
   400 PLOT (B),(D)
   410 GOTO 260
   420 LET Y=R
   430 LET X=0
   440 LET X=X+1
   450 IF X=R THEN GOTO 600
   460 LET M=R*R
   470 LET N=X*X
   480 LET Q=(M-N)
   490 LET U=Y
   500 LET Y=(Q/U)
   510 LET A=(X+H)
   520 LET B=(H-X)
   530 LET C=(K-Y)
   540 LET D=(Y+K)
   550 PLOT (B),(C)
   560 PLOT (A),(C)
   570 PLOT (B),(D)
   580 PLOT (A),(D)
   590 GOTO 440
   600 STOP 

   



Last edited by tristanbgilb on Sun Jan 29, 2023 12:27 pm, edited 1 time in total.
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

tristanbgilb wrote: Tue Dec 27, 2022 4:59 am Image
For my NO BUDGET MOVIE, in my brainstorm, page 27 requires a working Z80 Processor that we can reprogram to get the detonators to function after the Y2K bug. We will use the ZX-Compiler to create the machine code since none of us know how to program in machine code directly. It is decided we will have better success and less chance of blowing ourselves up using the compiler program. I am hoping out of my dozen Sinclairs with Z80 processors that I can get one working good enough for the movie.
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

pasayten wrote: Fri Jan 27, 2023 5:11 pm I second the raspberry pi... They are great!!!
The Timex Sinclair 1000 ZX81 was my first home computer and will always be my favorite.

Image
Developer Sinclair Research
Manufacturer Timex Corporation
Type Home computer
Release date 5 March 1981; 41 years ago[1]
Introductory price £49.95 kit, £69.95 assembled[2] (£204–285/$279–390 at 2023 prices)
Discontinued 1984
Units sold More than 1.5 million[3]
Operating system Sinclair BASIC[4]
CPU Z80 @ 3.25 MHz[4]
Memory 1 KB (64 KB max. 56 KB usable)[4]
Storage External Compact Cassette recorder at a claimed 250 bps[4] or an average 300 bps[5]
Display Monochrome display on UHF television[4]
Graphics 24 lines × 32 characters or
64 × 48 pixels graphics mode[4]
Power 9V DC[4]
Dimensions 167 millimetres (6.6 in) wide by 175 millimetres (6.9 in) deep[6]
Mass 350 grams (12 oz)[4]
Predecessor ZX80
Successor ZX Spectrum
Related Timex Sinclair 1000,
Timex Sinclair 1500
Attachments
Sinclair-ZX81.png
Sinclair-ZX81.png (35.92 KiB) Viewed 16558 times
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
pasayten
Posts: 2452
Joined: Thu Mar 11, 2021 8:03 pm
Contact:

Re: www.MethowValley.org

Post by pasayten »

I second the raspberry pi... They are great!!!
pasayten
Ray Peterson
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Terry and I produced this album of him and our friends. Click Album Cover to be sent to youtube to hear songs.

Image
Attachments
the last outlaws cover.jpg
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
mister_coffee
Posts: 1405
Joined: Thu Jul 16, 2020 7:35 pm
Location: Winthrop, WA
Contact:

Re: www.MethowValley.org

Post by mister_coffee »

tristanbgilb wrote: Fri Jan 27, 2023 6:08 am ...
[I wonder if this is what I want. It is inexpensive compared to my Vintage Computer Collection. I think I own a Raspberry Pi that is modified to be a peripheral interface for my TI-99/4a Home Computer.
What I'd probably recommend is a good Raspberry Pi starter kit like this one:

https://www.amazon.com/CanaKit-Raspberr ... r=8-6&th=1

A 1GB Pi is probably fine for starting unless you have some specific project in mind. This gives you a Pi, a 128GB Micro SD Card, a reader for the card, a good power supply (very important), a fan, and a case. The fan and the case are nice but not strictly necessary.

There are weatherproof outdoor cases available with varying capabilities. You can plausibly run a Pi from a solar panel and batteries if you want as well.

You'll need a keyboard, mouse, and HDMI display. Chances are you have those laying around your house, but if you don't any cheap ones will do the job fine.

Also it is a Good Idea to invest (about $60) in a USB Hard Drive. Running Linux continuously from an SD card limits the SD card's life (so back them up frequently, usually bulk-copying the SD card image is Good Enough). I can walk you through how to set up the USB hard drive and also walk you through trickery that greatly extends an SD card's life if you like.

Also, if you want a book about starting out I can recommend this one:

https://www.amazon.com/Programming-Rasp ... 198&sr=8-1
:arrow: David Bonn :idea:
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

mister_coffee wrote: Thu Jan 26, 2023 7:21 pm
tristanbgilb wrote: Thu Jan 26, 2023 10:55 am ...
I am not strong in any computer language. I am a wimp programmer. I just like the logic and hope to understand a computer by studying the ZX81.
In 2023 I'd recommend accomplishing that by getting your hands on a Raspberry Pi and starting to play.

Oh, and subject to US Patent #11145090

NEW Raspberry Pi 4 Compute Module (CM4) 1GB RAM 16GB Wi-Fi CM4101016 FAST S&H!
US $84.99
Compute Module 4 (CM4) brings the power of Raspberry Pi 4 to the popular Compute Module family. For the first time wireless connectivity is an option, and this includes a built-in antenna on the PCB as well as a connector for an external antenna.

This model features Wireless connectivity, 1GB RAM and 16GB eMMC storage.
I wonder if this is what I want. It is inexpensive compared to my Vintage Computer Collection. I think I own a Raspberry Pi that is modified to be a peripheral interface for my TI-99/4a Home Computer.
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
mister_coffee
Posts: 1405
Joined: Thu Jul 16, 2020 7:35 pm
Location: Winthrop, WA
Contact:

Re: www.MethowValley.org

Post by mister_coffee »

tristanbgilb wrote: Thu Jan 26, 2023 10:55 am ...
I am not strong in any computer language. I am a wimp programmer. I just like the logic and hope to understand a computer by studying the ZX81.
In 2023 I'd recommend accomplishing that by getting your hands on a Raspberry Pi and starting to play.

Oh, and subject to US Patent #11145090

Code: Select all

def detect_flames(g, ir):
    """detect regions likely to have flames: how:
        A. locate hot areas in the thermal image, and turbulent areas in the image
        B. generate contours for each
        C. locate contours that overlap and where the centroid of the turbulent area
           is above the centroid of the hot area, mask these areas
        D. Generate contours from the masks found in C and choose the biggest bounding box
           for each mask
    """
    global Min_value

    ret, r = cv2.threshold(ir, Min_value + ir_threshold, 65535, cv2.THRESH_BINARY)
    ret, g = cv2.threshold(g, 192, 255, cv2.THRESH_BINARY)

    numpy.right_shift(r, 8, r)
    r = r.astype(numpy.uint8)

    # try this erode step...
    #g = erode(g)
    g = dilate(g)
    r = dilate(r)

    candidates = []
    ir_contours = cv2.findContours(r, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0]
    motion_contours = cv2.findContours(g, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0]

    m_centroids = []

    for (j, m) in enumerate(motion_contours):
        m_centroids.append(y_centroid(m))

    for (i, c) in enumerate(ir_contours):
        irp = numpy.zeros(r.shape, numpy.uint8)
        irp = cv2.drawContours(irp, [c], 0, 255, -1)
        ir_y = y_centroid(c)

        for (j, m) in enumerate(motion_contours):
            m_y = m_centroids[j]

            # turbulent motion should be above hot spot
            # FIXME:  rethink because thermal column becomes too large...
            if ir_y < m_y:
                continue

            mp = numpy.zeros(g.shape, numpy.uint8)
            mp = cv2.drawContours(mp, [m], 0, 255, -1)

            result = cv2.bitwise_and(irp, mp)

            if cv2.countNonZero(result) > 0:
                print(f"[ir:info] motion area {cv2.contourArea(m)}, ir area {cv2.contourArea(c)}")
                candidates.append(result)
                break

    for i in range(0, len(candidates)):
        candidates[i] = biggest_rect(candidates[i])
        if verbose:
            print("[ir:info] candidate:  (%d,%d)+(%d,%d)" % candidates[i])

    return candidates
... and ...

Code: Select all

def process_flicker(delta):
    """helper function that detects areas of turbulent motion in the image:
        from:  'A real-time video fire flame and smoke detection algorithm', 2013,
                Yu, Mei, and Zhang
    """
    global flicker, flicker_data, b1, b2

    ret, add_mask = cv2.threshold(delta, motiondelta, 1, cv2.THRESH_BINARY)
    sub_mask = numpy.logical_not(add_mask)

    add_mask = numpy.multiply(add_mask, b1).astype(flicker_data.dtype)
    sub_mask = numpy.multiply(sub_mask, b2).astype(flicker_data.dtype)

    flicker_data = cv2.add(flicker_data, add_mask)
    flicker_data = cv2.subtract(flicker_data, sub_mask)

    ret, flicker = cv2.threshold(flicker_data, flickerdelta, 255, cv2.THRESH_BINARY)

:arrow: David Bonn :idea:
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Image

I used the ZX COMPILER by Silversoft to make BASIC GRAPHICS into ASSEMBLY Language.

BASIC

Code: Select all

515 PRINT AT 7,7;"½½½½½½½½½½½½½½½½½½"
   516 PRINT AT 6,7;"½½½½½½½½½½½½½½½½½½"
   517 PRINT AT 8,7;"¿½½½½½½½½½½½½½½½½¿"
   518 PRINT AT 5,7;"¾½½½½½½½½½½½½½½½½¾"
   519 PRINT AT 9,10;"½½½½½½½½½½½½"
   520 PRINT AT 4,8;"¾½½½½½½½½½½½½½½¾"
   521 PRINT AT 10,11;"¿½½½½½½½½¿"
   522 PRINT AT 3,9;"¾½½½½½½½½½½½½¾"
   523 PRINT AT 11,14;"½½½½"
   524 PRINT AT 2,11;"¾½½½½½½½½¾"
   525 PRINT AT 12,14;"½½½½"
   526 PRINT AT 13,11;"¾¾½½½½½½¾¾"
   527 PRINT AT 14,11;"¿¿½½½½½½¿¿"
   528 PRINT AT 15,14;"½½½½";AT 16,14;"½½½½"
   529 PRINT AT 17,12;"¾½½½½½½¾";AT 18,12;"¿½½½½½½¿"
   530 PRINT AT 19,14;"½½½½";AT 20,14;"½½½½";AT 21,14;"½½½½"
MACHINE CODE

Code: Select all

# REM                                 
#                             __7____
   145  REM [HEX:\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
00,00,00,00,00,00,00,00,\
E1,7E,23,E5,FE,FF,C8,D7,\
18,F6,01,FF,FF,A7,ED,52,\
03,30,FA,C5,E1,C9,A6,AF,\
AC,FD,36,22,00,21,82,40,\
36,00,23,7D,FE,BA,20,F8,\
21,07,00,45,21,07,00,4D,\
CD,F5,08,CD,BA,40,08,08,\
08,08,08,08,08,08,08,08,\
08,08,08,08,08,08,08,08,\
FF,21,06,00,45,21,07,00,\
4D,CD,F5,08,CD,BA,40,08,\
08,08,08,08,08,08,08,08,\
08,08,08,08,08,08,08,08,\
08,FF,21,08,00,45,21,07,\
00,4D,CD,F5,08,CD,BA,40,\
0A,08,08,08,08,08,08,08,\
08,08,08,08,08,08,08,08,\
08,0A,FF,21,05,00,45,21,\
07,00,4D,CD,F5,08,CD,BA,\
40,09,08,08,08,08,08,08,\
08,08,08,08,08,08,08,08,\
08,08,09,FF,21,09,00,45,\
21,0A,00,4D,CD,F5,08,CD,\
BA,40,08,08,08,08,08,08,\
08,08,08,08,08,08,FF,21,\
04,00,45,21,08,00,4D,CD,\
F5,08,CD,BA,40,09,08,08,\
08,08,08,08,08,08,08,08,\
08,08,08,08,09,FF,21,0A,\
00,45,21,0B,00,4D,CD,F5,\
08,CD,BA,40,0A,08,08,08,\
08,08,08,08,08,0A,FF,21,\
03,00,45,21,09,00,4D,CD,\
F5,08,CD,BA,40,09,08,08,\
08,08,08,08,08,08,08,08,\
08,08,09,FF,21,0B,00,45,\
21,0E,00,4D,CD,F5,08,CD,\
BA,40,08,08,08,08,FF,21,\
02,00,45,21,0B,00,4D,CD,\
F5,08,CD,BA,40,09,08,08,\
08,08,08,08,08,08,09,FF,\
21,0C,00,45,21,0E,00,4D,\
CD,F5,08,CD,BA,40,08,08,\
08,08,FF,21,0D,00,45,21,\
0B,00,4D,CD,F5,08,CD,BA,\
40,09,09,08,08,08,08,08,\
08,09,09,FF,21,0E,00,45,\
21,0B,00,4D,CD,F5,08,CD,\
BA,40,0A,0A,08,08,08,08,\
08,08,0A,0A,FF,21,0F,00,\
45,21,0E,00,4D,CD,F5,08,\
CD,BA,40,08,08,08,08,FF,\
21,10,00,45,21,0E,00,4D,\
CD,F5,08,CD,BA,40,08,08,\
08,08,FF,21,11,00,45,21,\
0C,00,4D,CD,F5,08,CD,BA,\
40,09,08,08,08,08,08,08,\
09,FF,21,12,00,45,21,0C,\
00,4D,CD,F5,08,CD,BA,40,\
0A,08,08,08,08,08,08,0A,\
FF,21,13,00,45,21,0E,00,\
4D,CD,F5,08,CD,BA,40,08,\
08,08,08,FF,21,14,00,45,\
21,0E,00,4D,CD,F5,08,CD,\
BA,40,08,08,08,08,FF,21,\
15,00,45,21,0E,00,4D,CD,\
F5,08,CD,BA,40,08,08,08,\
08,FF,21,E8,03,2B,7C,B5,\
20,FB,C9,CF,FF,00,A6,AF,\
AC ]

   190 SLOW 
   200 LET X=USR 16595
   210 CLS 
   500 GOTO 190

Translated in ZX-COMPILER BASIC

Code: Select all

   145 REM MOVE7,7
   150 REM PRINT"½½½½½½½½½½½½½½½½½½"
   155 REM MOVE6,7
   160 REM PRINT"½½½½½½½½½½½½½½½½½½"
   165 REM MOVE8,7
   170 REM PRINT"¿½½½½½½½½½½½½½½½½¿"
   175 REM MOVE5,7
   180 REM PRINT"¾½½½½½½½½½½½½½½½½¾"
   185 REM MOVE9,10
   190 REM PRINT"½½½½½½½½½½½½"
   195 REM MOVE4,8
   200 REM PRINT"¾½½½½½½½½½½½½½½¾"
   205 REM MOVE10,11
   210 REM PRINT"¿½½½½½½½½¿"
   215 REM MOVE3,9
   220 REM PRINT"¾½½½½½½½½½½½½¾"
   225 REM MOVE11,14
   230 REM PRINT"½½½½"
   235 REM MOVE2,11
   240 REM PRINT"¾½½½½½½½½¾"
   245 REM MOVE12,14
   250 REM PRINT"½½½½"
   255 REM MOVE13,11
   260 REM PRINT"¾¾½½½½½½¾¾"
   265 REM MOVE14,11
   270 REM PRINT"¿¿½½½½½½¿¿"
   275 REM MOVE15,14
   280 REM PRINT"½½½½"
   281 REM MOVE16,14
   282 REM PRINT"½½½½"
   285 REM MOVE17,12
   290 REM PRINT"¾½½½½½½¾"
   292 REM MOVE18,12
   293 REM PRINT"¿½½½½½½¿"
   295 REM MOVE19,14
   300 REM PRINT"½½½½"
   305 REM MOVE20,14
   310 REM PRINT"½½½½"
   315 REM MOVE21,14
   320 REM PRINT"½½½½"
   350 REM PAUSE1000
   400 REM RETURN
   500 REM END
# REM **COMPILER**
  1000  REM [HEX:\
17,17,28,34,32,35,2E,31,\
2A,37,17,17,76 ]
  1010 FAST 
  1011 LET Q=3950
  1012 LET Q1=2830
  1013 LET Q2=3320
  1014 LET Q3=3630
  1015 LET Q4=3970
  1016 LET Q5=1320
  1017 LET Q6=4
  1020 LET P=28858
  1030 LET P1=16514
  1040 GOSUB 2920
  1050 IF PEEK (P1-1)<>234 THEN GOTO Q1
  1060 IF PEEK P1=118 THEN GOTO Q1
  1070 GOSUB 2880
  1080 LET A$=""
  1090 LET A$=A$+CHR$ PEEK P1
  1100 LET P1=P1+1
  1110 IF PEEK (P1-1)<>118 THEN GOTO 1090
  1120 IF PEEK (P1+1)*256+PEEK (P1+2)=1010 THEN GOTO 3690
  1130 LET P1=P1-3
  1140 LET T$=A$( TO 2)
  1150 LET B$=A$+"      "
  1160 LET J=0
  1170 LET J=J+(T$="RE")*2170+(T$="SC")*1200+(T$="PR")*1360+(T$="GE")*1530+(T$="EN")*1620+(T$="PA")*1670+(T$="CL")*1720+(T$="MO")*1770+(T$="LE")*1890+(A$( TO 3)="GOT")*2060+(A$( TO 3)="GOS")*2130+(T$="IF")*2200+(T$="PO")*2430+(T$="UN")*2550+(T$="PL")*2580+(T$="DO")*2720
  1180 IF NOT J THEN LET J=Q1
  1190 GOTO J
  1201 IF B$(7)<>CHR$ 118 THEN GOTO Q1
  1202 LET U$="2A0C40112100EB1901F702EDB00620AF131210FC"
  1203 GOSUB Q3
  1204 GOTO Q5
  1320 LET P1=P1+8
  1330 GOTO 1050
  1360 LET B$=B$(6 TO )
  1370 IF B$(1)=CHR$ 11 THEN GOTO 1420
  1380 GOSUB Q2
  1390 LET U$="7DD7"
  1400 GOSUB Q3
  1410 GOTO Q5
  1420 GOSUB Q
  1430 LET U$="CDBA40"
  1440 GOSUB Q3
  1450 POKE P,CODE (B$(1))
  1460 GOSUB Q
  1470 IF B$(1)=CHR$ 11 THEN POKE P+1,255
  1480 LET P=P+1
  1490 IF B$(1)=CHR$ 11 THEN GOTO 1510
  1500 GOTO 1450
  1510 LET P=P+1
  1520 GOTO Q5
  1530 LET B$=B$(Q6 TO )
  1540 LET U$="CDBB02444D51142808CDBD077ECB7728023E8021004077233600"
  1550 GOSUB Q3
  1560 LET V=CODE B$(1)
  1570 IF CODE B$(2)<>118 THEN GOTO Q1
  1580 IF V<38 OR V>63 THEN GOTO Q1
  1590 LET V=(V-38)*2+130
  1600 POKE P-6,V
  1610 GOTO Q5
  1620 LET B$=B$(Q6 TO )
  1630 IF B$(1)<>CHR$ 118 THEN GOTO Q1
  1640 LET U$="CFFF"
  1650 GOSUB Q3
  1660 GOTO Q5
  1670 LET B$=B$(6 TO )
  1680 GOSUB Q2
  1690 LET U$="2B7CB520FB"
  1700 GOSUB Q3
  1710 GOTO Q5
  1720 LET B$=B$(Q6 TO )
  1730 IF B$(1)<>CHR$ 118 THEN GOTO Q1
  1740 LET U$="2A0C40161823062036002310FB1520F5010000CDF508"
  1750 GOSUB Q3
  1760 GOTO Q5
  1770 LET B$=B$(5 TO )
  1780 GOSUB Q2
  1790 GOSUB Q4
  1830 LET U$="45"
  1840 GOSUB Q3
  1850 GOSUB Q2
  1860 LET U$="4DCDF508"
  1870 GOSUB Q3
  1880 GOTO Q5
  1890 LET B$=B$(Q6 TO )
  1900 LET L=(CODE B$-38)*2+130
  1910 LET B$=B$(3 TO )
  1920 GOSUB Q2
  1930 GOSUB 3570
  1940 IF CODE B$=118 THEN GOTO 2020
  1950 LET U$="EB"
  1960 GOSUB Q3
  1970 LET S$=B$(1)
  1980 GOSUB Q
  1990 GOSUB Q2
  1991 LET N$="CD0913"
  1992 IF PEEK 4869=197 THEN LET N$="CD0513"
  2000 LET U$=(N$ AND S$="*")+("EBCDC440" AND S$="/")+("19" AND S$="+")+("EBA7ED52" AND S$="-")
  2010 GOSUB Q3
  2020 LET U$="220040"
  2030 GOSUB Q3
  2040 POKE P-2,L
  2050 GOTO Q5
  2060 LET B$=B$(5 TO )
  2070 GOSUB Q2
  2080 POKE P-3,195
  2090 LET G(N1,1)=PEEK (P-2)+PEEK (P-1)*256
  2100 LET G(N1,2)=P-2
  2110 LET N1=N1+1
  2120 GOTO Q5
  2130 LET B$=B$(6 TO )
  2140 GOSUB Q2
  2150 POKE P-3,205
  2160 GOTO 2090
  2170 LET U$="C9"
  2180 GOSUB Q3
  2190 GOTO Q5
  2200 LET B$=B$(3 TO )
  2210 GOSUB Q2
  2220 GOSUB 3570
  2230 LET U$="EB"
  2240 GOSUB Q3
  2250 LET S$=B$(1)
  2260 GOSUB Q
  2270 GOSUB Q2
  2280 IF CODE B$>37 THEN GOSUB Q
  2290 IF CODE B$<38 THEN GOSUB 3600
  2300 LET U$="A7ED52"
  2310 IF S$="<>" THEN LET U$=U$+"CA"
  2320 IF S$="=" THEN LET U$=U$+"C2"
  2330 IF S$="<" THEN LET U$=U$+"DA"
  2340 IF S$=">" THEN LET U$=U$+"D2"
  2350 LET U$=U$+"0000"
  2360 IF S$<>">" AND S$<>"=" AND S$<>"<" AND S$<>"<>" THEN GOTO Q1
  2370 GOSUB Q3
  2380 LET G(N1,2)=P-2
  2390 LET G(N1,1)=1000
  2400 LET N1=N1+1
  2410 LET A$=B$
  2420 GOTO 1140
  2430 LET B$=B$(5 TO )
  2440 GOSUB Q2
  2450 GOSUB Q4
  2490 LET U$="EB"
  2500 GOSUB Q3
  2510 GOSUB Q2
  2520 LET U$="EB73"
  2530 GOSUB Q3
  2540 GOTO Q5
  2550 LET B$=B$(3 TO )
  2560 LET U$="3EA0323040"
  2570 GOTO 2590
  2580 LET U$="3E9B323040"
  2590 GOSUB Q3
  2600 LET B$=B$(5 TO )
  2610 GOSUB Q2
  2620 LET U$="4D"
  2630 GOSUB Q3
  2640 GOSUB Q4
  2680 GOSUB Q2
  2690 LET U$="45CDB20B"
  2700 GOSUB Q3
  2710 GOTO Q5
  2720 LET B$=B$(5 TO )
  2730 GOSUB Q2
  2740 GOSUB Q4
  2771 LET U$="EB"
  2780 GOSUB Q3
  2790 GOSUB Q2
  2800 LET U$="EB732372"
  2810 GOSUB Q3
  2820 GOTO Q5
  2830 IF PEEK (P1-1)=118 THEN GOTO 3180
  2840 IF P1=16509 THEN GOTO 3180
  2850 LET P1=P1-1
  2860 GOTO 2830
  2870 SLOW 
  2880 LET L(N,1)=PEEK (P1-5)*256+PEEK (P1-4)
  2890 LET L(N,2)=P-12288
  2900 LET N=N+1
  2910 RETURN 
  2920 DIM L(100,2)
  2930 DIM G(70,2)
  2940 LET N=1
  2950 LET N1=N
  2960 LET U$="E17E23E5FEFFC8D718F601FFFFA7ED520330FAC5E1C9A6AFAC"
  2965 LET U$=U$+"FD3622002182403600237DFEBA20F8"
  2970 GOSUB Q3
  2980 RETURN 
  2990 IF N1=1 THEN RETURN 
  3000 FOR X=1 TO N1-1
  3010 LET PO=G(X,2)
  3020 LET L=G(X,1)
  3030 LET G=1
  3040 GOTO 3120
  3050 LET G=G+1
  3060 IF G=N THEN GOTO 3150
  3070 GOTO 3040
  3080 POKE PO,L(G,2)-256*INT (L(G,2)/256)
  3090 POKE PO+1,INT (L(G,2)/256)
  3100 NEXT X
  3110 RETURN 
  3120 IF L=1000 THEN IF PO-12288<=L(G,2) THEN GOTO 3080
  3130 IF L=L(G,1) THEN GOTO 3080
  3140 GOTO 3050
  3160 GOTO 3200
  3170 RETURN 
  3190 LET L=PEEK P1*256+PEEK (P1+1)
  3200 SLOW 
  3201 POKE 16418,0
  3202 PRINT AT 22,0;"*******ERROR IN ";L;"******";AT 0,0;
  3203 POKE 16418,2
  3204 LIST L
  3205 GOTO 3200
  3230 LET V=CODE B$
  3240 IF V<38 OR V>63 THEN GOTO Q1
  3250 LET V=(V-38)*2+16514
  3260 LET U$="2A"
  3270 GOSUB Q3
  3280 POKE P,V-16384
  3290 POKE P+1,64
  3300 LET P=P+2
  3310 RETURN 
  3320 LET V=1
  3330 IF CODE B$(V)>37 OR CODE B$(V)<28 THEN GOTO 3360
  3340 LET V=V+1
  3350 GOTO 3330
  3360 IF V=1 THEN GOTO 3420
  3370 LET V=VAL (B$( TO V-1))
  3380 IF V<>INT V OR V>65536 THEN GOTO Q1
  3390 GOSUB 3530
  3400 POKE P+1,INT (V/256)
  3405 LET P=P+2
  3410 RETURN 
  3420 LET U$=""
  3430 IF B$( TO 3)="TOP" THEN LET U$="2A0C4023"
  3440 GOSUB 3780
  3450 IF B$( TO 3)<>"USR" THEN GOTO 3850
  3460 LET B$=B$(Q6 TO )
  3470 GOSUB Q2
  3480 POKE P-3,205
  3490 RETURN 
  3500 IF U$="" THEN GOTO 3220
  3510 GOSUB Q3
  3520 RETURN 
  3530 LET U$="21"
  3540 GOSUB Q3
  3550 POKE P,V-256*INT (V/256)
  3560 RETURN 
  3570 IF CODE B$<28 OR CODE B$>63 THEN RETURN 
  3580 GOSUB Q
  3590 GOTO 3570
  3600 IF CODE B$<28 OR CODE B$>37 THEN RETURN 
  3610 GOSUB Q
  3620 GOTO 3600
  3630 POKE P,CODE U$*16+CODE U$(2)-476
  3640 LET U$=U$(3 TO )
  3650 LET P=P+1
  3660 IF P>=32700 THEN STOP 
  3670 IF U$="" THEN RETURN 
  3680 GOTO Q3
  3690 GOSUB 2990
  3700 LET J=P-12287
  3710 LET P=28672
  3720 LET U$="210000E5C103E52182401182701A7723137DB920F87CB820F4E136A62336AF2336AC233676E5118040A7ED52227F40E123C30304"
  3730 GOSUB Q3
  3740 LET P=J
  3750 POKE 28673,P-256*INT (P/256)
  3760 POKE 28674,INT (P/256)
  3770 RAND USR 28672
  3780 IF B$( TO 3)<>"RND" THEN RETURN 
  3790 LET U$="D92A3240545D29291929292919223240EB"
  3800 GOSUB Q3
  3810 LET B$=B$(Q6 TO )
  3820 GOSUB Q2
  3830 LET U$="EBA7ED5230FB19E5D9E1"
  3840 RETURN 
  3850 IF B$( TO Q6)<>"PEEK" THEN GOTO 3900
  3860 LET B$=B$(5 TO )
  3870 GOSUB Q2
  3880 LET U$="6E2600"
  3890 GOTO 3500
  3900 IF B$( TO Q6)<>"DEEK" THEN GOTO 3500
  3910 LET B$=B$(5 TO )
  3920 GOSUB Q2
  3930 LET U$="D55E2356EBD1"
  3940 GOTO 3500
  3950 LET B$=B$(2 TO )
  3960 RETURN 
  3970 IF B$(1)="," THEN GOTO 4000
  3980 GOSUB Q
  3990 GOTO Q4
  4000 GOSUB Q
  4010 RETURN 
Attachments
nukeuncut2023-01-26 17-45-35.gif
nukeuncut2023-01-26 17-45-35.gif (2.91 MiB) Viewed 16474 times
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

Adventure games are about one of the neatest programs created on early computers. Here is an example of hexadecimal mixed with Sinclair BASIC. This assembly language has me baffled I am am eager to understand what is happening here.

ADVENTURE
ZX81

Code: Select all

# REM _P_E£_7"___4___5 ______K__KJ____
#     (__E£__Q__6:_E:_Q _V_A4__V____=
     1  REM [HEX:\
01,B5,02,2A,0C,40,23,0B,\
7E,FE,82,20,F9,C5,01,21,\
00,09,54,5D,09,C1,ED,B0,\
C9,06,B0,AF,D7,D7,D7,D7,\
10,FA,C9,2A,0C,40,01,B6,\
02,09,22,0E,40,2A,0E,40,\
36,80,CD,BB,02,26,20,FA,\
CD,BB,02,44,4D,51,14,28,\
F7,CD,BD,07,7E,FE,76,28,\
27,FE,77,28,15,FE,0B,28,\
E1,CB,77,20,DD,2A,0E,40,\
77,23,7E,FE,76,20,CB,2B,\
18,C8,2A,0E,40,AF,77,2B,\
7E,FE,76,20,BD,23,18,BA,\
2A,0E,40,AF,77,11,16,41,\
2A,0C,40,01,B6,02,09,01,\
1F,00,ED,B0,C9,1B,1B,1B,\
1B,1B ]

     2 LET C$="                               "
     3 RETURN 
     4 SLOW 
     5 LET IN=USR VAL "16549"
     6 IF F$="F" THEN FAST 
     7 GOTO VAL "2"
     8 PRINT AT VAL "21",USR VAL "16514";
     9 RETURN 
    10 PRINT AT PI-PI,PI-PI;
    20 LET CL=USR 16539
    25 IF LN>15 AND (LAMP=0 OR P(23)<>99) THEN PRINT AT PI-PI,PI-PI;"ITS TOO DARK TO SEE."
    26 IF LN>15 AND (P(23)<>99 OR LAMP=0) THEN GOTO 135
    30 PRINT AT 0,0;"LOCATION : ";L$(LN)
    40 IF E$(LN)="    " THEN GOTO 100
    50 PRINT "EXITS : ";
    60 FOR Z=1 TO 4
    70 LET U$=E$(LN)(Z)
    80 IF U$="N" THEN PRINT "NORTH.";
    82 IF U$="S" THEN PRINT "SOUTH.";
    84 IF U$="E" THEN PRINT "EAST.";
    86 IF U$="W" THEN PRINT "WEST.";
    87 IF U$="U" THEN PRINT "UP.";
    88 IF U$="D" THEN PRINT "DOWN.";
    90 NEXT Z
    95 PRINT 
   100 PRINT "I CAN SEE : ";
   101 LET FZ=0
   110 FOR Z=1 TO NO
   120 IF P(Z)<>LN THEN GOTO 130
   121 PRINT O$(Z),
   122 LET FZ=1
   130 NEXT Z
   132 IF FZ=0 THEN PRINT "NOTHING SPECIAL",
   135 PRINT 
   140 PRINT "ª®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®¬"
   145 IF TU=PI-PI THEN PRINT AT VAL "7",PI-PI;"YOU MUST SEARCH FOR THE 3 PIECESOF THE ROYAL SCEPTER , REMAKE ITAND RETURN IT TO THE EMPEROR."
   150 IF (LAMP=0 OR P(23)<>99) AND LN>15 THEN GOSUB S
   151 IF (LAMP=0 OR P(23)<>99) AND LN>15 THEN PRINT "ITS RISKY MOVING IN THE DARK"
   152 GOSUB S
   155 LET TU=TU+1
   160 PRINT "TELL ME WHAT TO DO NEXT :"
   170 GOSUB S
   180 GOSUB 4
   190 GOSUB S
   200 IF C$(1)=" " THEN GOTO 155
   202 LET T$=C$( TO 3)
   204 IF T$="NOR" OR T$="SOU" OR T$="EAS" OR T$="WES" OR T$="UP " OR T$="DOWN" OR T$="U  " OR T$="D  " OR T$="N  " OR T$="S  " OR T$="E  " OR T$="W  " THEN GOTO 1000
   208 IF T$="I  " THEN GOTO 1100
   218 IF LEN C$>26 THEN LET C$=C$( TO 26)
   219 GOSUB 5500
   220 IF C$="SLO" THEN LET F$="S"
   230 IF C$="FAS" THEN LET F$="F"
   240 IF C$="SLO" OR C$="FAS" THEN GOTO 150
   250 IF C$="TAK" OR C$="GRA" OR C$="GET" THEN GOTO 2000
   260 IF C$="LEAV" OR C$="PUT" OR C$="DRO" THEN GOTO 2100
   270 IF C$="SEA" OR C$="LOO" OR C$="EXA" THEN GOTO 2500
   280 IF C$="INV" THEN GOTO 1100
   290 IF C$="HEL" THEN GOTO 7500
   300 IF C$="SCO" THEN GOTO 2700
   310 IF C$="ENT" OR C$="BOA" THEN GOTO 2800
   320 IF C$="LEA" OR C$="JUM" THEN GOTO 2810
   330 IF C$="REA" THEN GOTO 3100
   340 IF C$="CLI" THEN GOTO 2820
   350 IF C$="SHA" THEN GOTO 2840
   360 IF C$="CLE" OR C$="WAS" THEN GOTO 2850
   370 IF C$="MAK" OR C$="BUI" OR C$="COM" THEN GOTO 3800
   380 IF C$="CUT" OR C$="CHO" THEN GOTO 2860
   390 IF C$="KIC" THEN GOTO 2870
   400 IF C$="PUS" OR C$="PRE" THEN GOTO 2890
   410 IF C$="SWI" THEN GOTO 4500
   420 IF C$="UNL" THEN GOTO 2950
   430 IF C$="OPE" THEN GOTO 6000
   440 IF C$="UNL" THEN GOTO 6100
   450 IF C$="LIF" THEN GOTO 6100
   460 IF C$="LIG" THEN GOTO 2960
   470 IF C$="SAV" THEN GOTO 8000
   480 IF C$="QUI" THEN GOTO 2900
   490 IF C$="TIM" THEN GOTO 2760
   500 IF C$="OFF" OR C$="GIV" THEN GOTO 4000
   510 IF C$="RUB" THEN GOTO 4020
   520 IF C$="ROL" THEN GOTO 4050
   530 IF C$="SAY" THEN GOTO 4200
   540 IF C$="PIC" THEN GOTO 4300
   550 IF C$="MEL" THEN GOTO 4400
   560 IF C$="INS" THEN GOTO 4600
   570 IF C$="ATT" OR C$="KIL" THEN GOTO 4700
   580 IF C$="EXC" OR C$="SWA" THEN GOTO 7000
   590 IF C$="FOR" THEN GOTO 7050
   600 IF C$="WAV" THEN GOTO 7200
   980 PRINT "I DO NOT UNDESRTAND WHAT"
   981 GOSUB S
   982 PRINT "À";A$;"À IS."
   990 GOTO M
  1000 LET C$=C$(1)
  1010 FOR Z=1 TO 4
  1020 IF E$(LN)(Z)=C$ THEN GOTO 1060
  1030 NEXT Z
  1035 IF (P(23)<>99 OR LAMP=0) AND LN>15 THEN GOTO 1081 
  1040 PRINT "I CANT GO THERE."
  1050 GOTO M
  1060 LET TV=(Z-1)*2+1
  1070 LET LN=VAL D$(LN)(TV TO TV+1)
  1080 GOTO 10
  1081 PRINT "YOU FELL IN THE DARK AND BROKE"
  1082 GOSUB S
  1083 PRINT "YOUR NECK,SO SORRY."
  1085 GOTO 2900
  1100 PRINT "I AM CARRYING :"
  1105 IF IC=0 THEN GOTO 1150
  1110 FOR Z=1 TO NO
  1120 IF P(Z)=99 THEN PRINT AT 21,USR 16514;O$(Z)
  1130 NEXT Z
  1140 GOTO M
  1150 GOSUB S
  1160 PRINT "NOTHING AT ALL."
  1170 GOTO M
  1200 PRINT "I CANT DO THAT...YET."
  1210 GOTO M
  1220 PRINT "I CANT DO THAT."
  1230 GOTO M
  1240 PRINT "NOTHING HAPPENS."
  1250 GOTO M
  2000 IF IC<8 THEN GOTO 2010
  2001 PRINT "MY HANDS ARE FULL."
  2002 GOTO M
  2010 GOSUB CH
  2011 IF P(Z)<>99 THEN GOTO 2020
  2012 PRINT "I ALREADY HAVE."
  2013 GOTO M
  2020 IF P(Z)=LN THEN GOTO 2030
  2021 PRINT "IT IS NOT HERE."
  2022 GOTO M
  2030 IF G$(Z)="Y" THEN GOTO 2040
  2031 PRINT "I CANT."
  2032 GOTO M
  2040 IF ((Z=3 AND SW=0) OR (Z=4 AND SW=1)) AND LN=26 THEN GOTO 2043
  2041 GOTO 2049
  2043 PRINT "THE WEIGHT IMBALANCE ON THE"
  2044 GOSUB S
  2045 PRINT "PEDASTOL RELEASES A CLOUD OF"
  2046 GOSUB S
  2047 PRINT "DEADLY GAS."
  2048 GOTO 2900
  2049 LET P(Z)=99
  2050 LET IC=IC+1
  2060 PRINT "OK."
  2070 GOTO DL
  2100 GOSUB CH
  2110 IF P(Z)=99 THEN GOTO 2140
  2120 PRINT "I HAVE NOT GOT IT."
  2130 GOTO M
  2140 LET P(Z)=LN
  2150 LET IC=IC-1
  2160 GOTO OK
  2500 GOSUB CH
  2505 IF P(Z)<>LN AND P(Z)<>99 THEN GOTO 1200
  2510 PRINT "I SEE"
  2520 GOSUB S
  2530 LET R$="NOTHING SPECIAL"
  2531 IF X$<>"FEN" OR P(8)<>0 THEN GOTO 2540
  2532 PRINT "A LOOSE WIRE"
  2533 LET P(8)=LN
  2534 GOTO DL
  2540 IF X$="GOB" THEN LET R$="AN ENGRAVING : ÀMELT MEÀ"
  2550 IF X$="SWO" THEN LET R$="THAT IT IS VERY SHARP"
  2560 IF X$="CRY" THEN LET R$="A GOBLET AND A FURNACE"
  2570 IF X$="MAC" THEN LET R$="A SLOT"
  2580 IF X$="FUR" THEN LET R$="THAT IT IS VERY HOT"
  2590 IF X$="SKU" OR X$="STA" OR X$="RUB" THEN LET R$="THAT IT IS PART OF THE SCEPTER"
  2680 PRINT R$;"."
  2685 IF X$="BRI" THEN GOTO DL
  2690 GOTO M
  2700 LET P=0
  2701 IF P(35)<>99 THEN GOTO 2710
  2702 PRINT "YOU HAVE ALL OF THE PIECES."
  2703 GOTO M
  2710 LET P=P+(1 AND P(1)=99)+(1 AND P(2)=99)+(1 AND P(3)=99)
  2720 PRINT "YOU HAVE ";P;" PIECE";("S" AND P<>1);" OF THE SCEPTER"
  2730 GOTO M
  2760 PRINT "YOU HAVE USED ";TU;" TURN";("S" AND TU>1);"."
  2770 GOTO M
  2800 GOSUB CH
  2801 IF X$<>"BOA" THEN GOTO CD
  2802 IF LN<>5 THEN GOTO NY
  2803 LET LN=8
  2804 GOTO OK
  2810 GOSUB CH
  2811 IF X$<>"FEN" THEN GOTO 2815
  2812 IF LN<>3 THEN GOTO NY
  2813 LET LN=7
  2814 GOTO OK
  2815 IF X$<>"PIT" OR LN<>20 THEN GOTO CD
  2816 PRINT "YOU FALL TO YOUR DEATH."
  2817 GOTO 2900
  2820 GOSUB CH
  2821 IF X$="ROP" THEN GOTO 2830
  2822 IF X$<>"TRE" THEN GOTO CD
  2823 IF O$(15)(1)<>"C" THEN GOTO 2826
  2824 PRINT "ITS TOO LATE FOR THAT."
  2825 GOTO M
  2826 IF LN<>4 THEN GOTO NY
  2827 LET LN=6
  2828 GOTO OK
  2830 IF LN<>28 THEN GOTO NY
  2831 LET LN=29
  2832 GOTO OK
  2840 GOSUB CH
  2841 IF P(Z)<>99 THEN GOTO CD
  2842 IF X$<>"BOO" OR P(12)<>0 THEN GOTO NH
  2843 PRINT "SOMETHING FALLS TO THE FLOOR."
  2844 LET P(12)=LN
  2845 GOTO DL
  2850 GOSUB CH
  2851 IF P(Z)<>99 OR LN<>5 THEN GOTO NY
  2852 IF Z=13 THEN GOTO 2855
  2853 PRINT "IT IS NOW VERY CLEAN."
  2854 GOTO M
  2855 LET P(13)=0
  2856 LET P(14)=99
  2857 PRINT "THE MUD WASHES OFF THE BALL....."
  2858 GOSUB S
  2859 GOTO 1100
  2860 GOSUB CH
  2861 IF X$<>"TRE" THEN GOTO CD
  2862 IF P(6)<>99 OR LN<>4 OR O$(15)(1)="C" THEN GOTO NY
  2863 LET O$(15)="CHOPPED TREE"
  2864 PRINT "TIMBER..."
  2865 GOTO DL
  2870 GOSUB CH
  2871 IF P(Z)<>LN THEN GOTO NY
  2872 IF O$(17)(1)<>"B" AND X$="GAT" THEN GOTO 2875
  2873 PRINT "OUCH,MY FOOT."
  2874 GOTO M
  2875 PRINT "IT FALLS TO THE FLOOR."
  2876 LET O$(17)="BROKEN GATE"
  2877 LET E$(LN)="NE"
  2878 GOSUB S
  2879 PRINT "I CAN NOW GO EAST."
  2880 GOTO DL
  2890 GOSUB CH
  2891 IF P(Z)<>LN AND P(Z)<>99 THEN GOTO NY
  2892 IF X$<>"BEL" THEN GOTO NH
  2893 PRINT "BUZZ....."
  2894 GOSUB S
  2895 PRINT "IM ELECTROCUTED."
  2900 GOSUB S
  2905 PRINT "THE GAME IS OVER."
  2910 GOSUB S
  2920 PRINT "DO YOU WISH TO PLAY AGAIN? (Y/N)"
  2925 GOSUB S
  2930 GOSUB 4
  2935 IF C$(1)="Y" THEN GOTO 9000
  2940 IF C$(1)="N" THEN STOP 
  2945 GOTO 2910
  2950 GOSUB CH
  2951 IF P(Z)<>LN THEN GOTO CD
  2952 IF X$="CHE" THEN PRINT "HOW?"
  2953 IF X$="CHE" THEN GOTO M
  2954 IF X$<>"DOO" THEN GOTO CD
  2955 IF LN<>10 OR P(12)<>99 OR O$(18)(1)<>"D" THEN GOTO NY
  2956 LET O$(18)="UNLOCKED DOOR"
  2957 GOTO OK
  2960 GOSUB CH
  2961 IF X$<>"LAM" THEN GOTO CD
  2962 IF P(23)<>99 OR LAMP=1 THEN GOTO NY
  2963 LET LAMP=1
  2964 LET O$(23)="LIT LAMP"
  2965 GOTO OK
  3100 GOSUB CH
  3110 IF X$<>"SCR" THEN GOTO CD
  3120 IF P(Z)<>99 THEN GOTO NY
  3130 PRINT "ZAPP..."
  3135 LET LN=16
  3140 GOTO DL
  3300 IF F$="F" THEN PAUSE 100
  3305 FOR D=1 TO 50
  3310 NEXT D
  3320 GOTO 10
  3800 GOSUB CH
  3810 IF X$<>"SCE" THEN GOTO CD
  3820 IF P(1)=99 AND P(2)=99 AND P(3)=99 THEN GOTO 3830
  3821 PRINT "YOU HAVE NOT GOT ALL THE PIECES"
  3822 GOTO M
  3830 IF P(35)<>0 THEN GOTO NY
  3840 LET P(1)=0
  3850 LET P(2)=0
  3860 LET P(3)=0
  3870 LET P(35)=99
  3880 LET IC=IC-2
  3890 GOTO 1100
  4000 GOSUB CH
  4001 IF X$<>"ACO" AND X$<>"DIA" THEN GOTO CD
  4002 IF P(Z)<>99 THEN GOTO NY
  4003 IF X$="DIA" THEN GOTO 4012
  4004 IF P(24)=0 OR LN<>27 THEN GOTO NY
  4005 PRINT "THE DEMON TAKES IT AND RUNS OFF."
  4006 LET P(Z)=0
  4007 LET P(24)=0
  4008 LET E$(27)="WE"
  4009 GOSUB 4030
  4010 PRINT "I CAN NOW GO EAST."
  4011 GOTO DL
  4012 IF P(7)=0 OR LN<>25 THEN GOTO NY
  4013 PRINT "THE DRAGON IS NOW VERY HAPPY."
  4014 LET O$(33)="HAPPY DRAGON"
  4015 LET P(Z)=0
  4016 LET E$(25)="WE"
  4017 GOTO 4009
  4020 GOSUB CH
  4021 IF X$<>"CRY" THEN GOTO CD
  4022 IF P(Z)<>99 THEN GOTO NY
  4023 IF LN<>20 THEN GOTO NH
  4024 PRINT "I SLOWLY FLOAT ACROSS THE PIT..."
  4025 LET LN=21
  4026 GOTO DL
  4030 LET IC=IC-1
  4032 GOSUB S
  4034 RETURN 
  4050 GOSUB CH
  4055 IF X$<>"WHE" THEN GOTO CD
  4060 IF P(Z)<>99 THEN GOTO NY
  4065 IF LN=17 THEN GOTO 4100
  4070 PRINT "THE WHEEL ROLLS FOR A WHILE....."
  4072 FOR D=1 TO 25
  4074 NEXT D
  4076 IF F$="F" THEN PAUSE 100
  4080 GOSUB S
  4085 PRINT "AND FALLS OVER."
  4086 LET IC=IC-1
  4087 LET P(Z)=LN
  4088 GOTO M
  4100 IF O$(26)(1)="B" THEN GOTO 4108
  4101 PRINT "THE WHEEL ROLLS AWAY."
  4102 GOTO 4135
  4108 PRINT "THE WHEEL ROLLS AWAY AND YOU"
  4109 GOSUB S
  4110 PRINT "HEAR A SQUELCHING SOUND TO THE"
  4115 GOSUB S
  4120 PRINT "SOUTH."
  4125 LET O$(26)="FLAT SPIDER"
  4130 LET E$(18)="NS"
  4135 LET IC=IC-1
  4140 LET P(10)=18
  4141 IF F$="F" THEN PAUSE 100
  4145 GOTO DL
  4200 PRINT "OK."
  4210 GOSUB S
  4220 PRINT "À";B$;"À."
  4230 GOSUB S
  4240 IF LN<>21 OR P(29)=0 OR X$<>"HEL" THEN GOTO NH
  4250 PRINT "THE GHOST SAYS :"
  4255 GOSUB S
  4260 PRINT "ÀWAVE THE STAFF BY THE FALLEN"
  4265 GOSUB S
  4270 PRINT "OAK.À AND VANISHES."
  4280 LET P(29)=0
  4290 GOTO DL
  4300 IF X$<>"LOC" THEN GOTO CD
  4301 IF LN<>19 OR P(8)<>99 OR O$(27)(1)="O" THEN GOTO NY
  4302 PRINT "THE CHEST SPRINGS OPEN."
  4303 LET O$(27)="OPEN CHEST"
  4304 LET P(2)=LN
  4305 GOTO DL
  4400 GOSUB CH
  4401 IF P(Z)<>99 OR LN<>23 THEN GOTO NY
  4402 IF X$<>"GOB" THEN GOTO 4410
  4403 LET O$(21)="GOLD COIN"
  4404 LET N$(21)="COI"
  4405 PRINT "SOMETHING HAPPENS."
  4406 LET IC=IC-1
  4407 LET P(Z)=LN
  4408 GOTO DL
  4410 PRINT "IT VANISHES IN A PUFF OF SMOKE."
  4411 LET P(Z)=-1
  4412 LET IC=IC-1
  4413 GOTO M
  4500 PRINT "NO THANKS."
  4510 GOTO M
  4600 GOSUB CH
  4610 IF X$<>"COI" THEN GOTO CD
  4620 IF LN<>22 OR P(Z)<>99 THEN GOTO NY
  4630 LET P(Z)=LN
  4640 LET O$(Z)="SCROLL"
  4650 LET N$(Z)="SCR"
  4660 LET IC=IC-1
  4670 GOTO OK
  4700 GOSUB CH
  4705 IF X$<>"DOG" THEN GOTO CD
  4710 IF LN<>24 OR O$(32)(1)<>"F" THEN GOTO NY
  4715 IF P(20)=99 THEN GOTO 4720
  4716 PRINT "I WILL NEED SOMETHING SHARP."
  4717 GOTO M
  4720 LET O$(32)="DEAD DOG"
  4725 LET E$(LN)="NE"
  4726 PRINT "WITH A BLOW OF THE SWORD THE DOG"
  4727 GOSUB S
  4728 PRINT "KEELS OVER."
  4729 GOSUB S
  4730 PRINT "I CAN NOW GO EAST."
  4735 GOTO DL
  5000 FOR Z=1 TO NO
  5010 IF N$(Z)=X$ THEN RETURN 
  5020 NEXT Z
  5030 PRINT "I DO NOT KNOW WHAT À";B$;"À IS."
  5040 GOTO M
  5500 FOR Z=1 TO LEN C$
  5510 IF C$(Z)=" " THEN GOTO 5600
  5520 NEXT Z
  5530 LET A$=C$
  5540 LET C$=C$( TO 3)
  5550 RETURN 
  5600 LET A$=C$( TO Z-1)
  5610 LET B$=C$(Z+1 TO )
  5615 IF LEN B$<6 OR LEN A$<3 THEN GOTO 980
  5620 LET C$=A$( TO 3)
  5630 LET X$=B$( TO 3)
  5640 LET B$=B$( TO 6)
  5650 RETURN 
  6000 GOSUB CH
  6001 IF X$<>"DOO" THEN GOTO 6010
  6002 IF LN<>10 THEN GOTO NY
  6003 IF O$(18)(1)="D" THEN PRINT "ITS LOCKED."
  6004 IF O$(18)(1)="O" THEN PRINT "IT ALREADY IS."
  6005 IF O$(18)(1)="D" OR O$(18)(1)="O" THEN GOTO M
  6006 LET O$(18)="OPEN DOOR"
  6007 PRINT "I CAN NOW GO SOUTH."
  6008 LET E$(10)="WS"
  6009 GOTO DL
  6010 IF X$<>"CHE" THEN GOTO CD
  6011 IF LN<>19 OR O$(27)(1)="O" THEN GOTO NY
  6012 PRINT "IT IS SHUT TIGHT AND LOCKED."
  6013 GOTO M
  6100 GOSUB CH
  6101 IF X$<>"PAN" THEN GOTO CD
  6102 IF LN<>14 OR O$(22)(1)="O" THEN GOTO NY
  6103 LET O$(22)="OPEN PANEL"
  6104 PRINT "I CAN NOW GO DOWN."
  6105 LET E$(14)="NED"
  6106 GOTO DL
  7000 GOSUB CH
  7010 IF X$<>"RUB" THEN GOTO CD
  7020 IF LN<>26 OR SW=1 THEN GOTO NY
  7030 PRINT "WHAT FOR?"
  7040 GOTO M
  7050 GOSUB CH
  7060 IF LN<>26 OR SW=1 THEN GOTO NY
  7070 IF P(Z)<>99 THEN GOTO NY
  7080 IF X$="DIR" THEN GOTO 7100
  7081 PRINT "NOT THE RIGHT WEIGHT."
  7082 GOSUB S
  7089 GOTO 2043
  7100 LET P(3)=99
  7110 LET P(Z)=LN
  7120 LET SW=1
  7130 GOTO OK
  7200 GOSUB CH
  7205 IF P(Z)<>VAL "99" THEN GOTO NY
  7210 IF LN<>VAL "4" OR O$(15)(1)="O" OR X$<>"SCE" THEN GOTO NH
  7220 PRINT AT PI-PI,PI-PI;
  7225 LET CL=USR VAL "16539"
  7226 PRINT AT PI-PI,PI-PI;"YOU ARE TELEPORTED TO THE PALACE",," OF THE EMPEROR AND MADE A HERO",,,"    FOR FINDING THE STAFF."
  7230 PRINT ,,"CONGRATULATIONS.YOU HAVE BEATEN THE ADVENTURE."
  7240 PRINT "ª®®®®®®®®®®®®®®®®®®®®®®®®®®®®®®¬"
  7250 GOTO VAL "2900"
  7500 LET R$="TRY EXAMINING THINGS."
  7510 IF LN=VAL "3" THEN LET R$="WHATS OVER THE FENCE?"
  7520 IF LN=VAL "27" THEN LET R$="DEMONS LIKE NUTS."
  7530 IF LN=VAL "21" THEN LET R$="SAY SOMETHING THEN."
  7540 IF LN=VAL "26" THEN LET R$="THINGS MUST BE PROPERLY BALANCED."
  7550 IF P(10)=VAL "99" THEN LET R$="WHAT DO WHEELS DO?"
  7560 PRINT R$
  7570 GOTO M
  8000 PRINT "PRESS ÀNEWLINEÀ WHEN READY."
  8010 GOSUB S
  8020 GOSUB 4
  8030 SAVE "ADVENTURe"
  8040 GOSUB 9500
  8050 GOTO 9800
  9000 GOSUB VAL "9500"
  9010 LET F$="S"
  9070 LET IC=1
  9080 LET TU=0
  9115 LET LN=1
  9117 LET LAMP=0
  9118 LET SW=0
  9120 LET G$="YYYYNYYYNYYYYYNYNNNYYYYNNNNNNNNNNNY"
  9130 LET P$="2900269905080800030707000200040609101012131415272818192021232224252600"
  9140 FOR Z=1 TO NO
  9150 LET Z1=VAL "2*Z-1"
  9160 LET P(Z)=VAL P$(Z1 TO Z1+1)
  9170 NEXT Z
  9200 LET O$(15)="OAK TREE"
  9210 LET O$(17)="GATE"
  9220 LET E$(9)="N"
  9230 LET O$(18)="DOOR"
  9240 LET E$(10)="W"
  9250 LET O$(22)="PANEL"
  9260 LET O$(21)="GOLD GOBLET"
  9270 LET N$(21)="GOB"
  9280 LET E$(14)="NE"
  9290 LET O$(23)="LAMP"
  9300 LET E$(27)="W"
  9310 LET O$(33)="SAD DRAGON"
  9320 LET O$(26)="BIG SPIDER"
  9330 LET E$(18)="N"
  9340 LET O$(27)="ANCIENT CHEST"
  9370 LET E$(24)="N"
  9380 LET O$(32)="FIERCE DOG"
  9490 GOTO 9800
  9500 CLS 
  9501 SLOW 
  9502 POKE 16418,0
  9505 PRINT "ADVENTURE NUMBER 1.ÀTHE SCEPTERÀ"
  9510 PRINT "¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿"
  9520 PRINT "  WITH THIS PROGRAM YOU MAY HAVEAN ÀADVENTUREÀ WITHOUT HAVING TOLEAVE THE COMFORT OF YOUR CHAIR."
  9530 PRINT ,,"  THE COMPUTER WILL ACT AS YOUR GUIDE AND WILL RESPOND TO ONE ORTWO WORD ENGLISH PHRASES,SUCH AS"
  9540 PRINT "ÀGET SWORDÀ,ÀNORTHÀ,ÀOPEN BOXÀ."
  9550 PRINT ,,"SOME USEFUL COMMANDS ARE :"
  9560 PRINT "ÀSAVE GAMEÀ,ÀINVENTORYÀ,ÀGETÀ,  ÀDROPÀ,ÀNORTHÀ,ÀSOUTHÀ,ÀEASTÀ,  ÀWESTÀ";
  9570 PRINT ",ÀEXAMINEÀ AND ÀTIMEÀ."
  9580 PRINT ,,"  DIRECTIONS MAY BE ABBRIEVIATEDTO ONLY THE FIRST LETTER EG. ÀNTAB FOR ÀNORTHÀ."
  9590 PRINT "  YOUR GUIDE KNOWS MORE THAN 80 WORDS."
  9600 PRINT AT 23,0;"««author««‰««simon««wadsworth«««"
  9700 RETURN 
  9800 PRINT AT 22,4;"PRESS ÀNEWLINEÀ TO PLAY"
  9810 GOSUB 4
  9820 PRINT AT 22,0;"                                "
  9980 PRINT AT 23,0;"««‹cŒ«˜ Ÿ™«‘«bug«byte«software««"
  9990 GOTO 10
  9998 SAVE "ADVENTURe"
  9999 GOTO 9000
I think the attachment is more accurate. There might be errors in text editor settings.
Attachments
ADVENTURE_[ZX81 BASIC TEXT CODES].txt
(16.71 KiB) Downloaded 448 times
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
User avatar
tristanbgilb
Posts: 1051
Joined: Tue Sep 01, 2020 9:20 pm
Contact:

Re: www.MethowValley.org

Post by tristanbgilb »

pasayten wrote: Thu Jan 26, 2023 10:15 am No wimps here... OCEC Electric Rate Calulator... Support program to https://methow.chewack.com/getmybill2022.php

Code: Select all

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<title>My Methow Information Web Pages</title>
	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	<meta name="keywords" content="">
	<meta name="description" content="">
	<!-- master default -->
<link rel="stylesheet" type="text/css" href="mymetbill2.css" />

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript" src="https://methow.chewack.com/getbill_function24mo2022.js"></script>


<?php
echo '<script type="text/javascript">';
echo 'google.load("visualization", "1", {packages:["corechart","gauge"]});';
echo 'var qsParm = new Array();';
echo 'var kary = new Array();';
echo 'var dary = new Array();';
echo 'var nary = new Array();';

echo 'var pary = new Array();';
echo 'var ravg = new Array();';
echo 'var crb = new Array();';
echo 'var prb = new Array();';
echo 'var chb = new Array();';
echo 'var cbill = 0.0;';
echo 'var pbill = 0.0;';
echo 'var chgbill = 0.0;';
echo 'var kavg = 0;';
echo 'var crank = 0;';
echo 'var kmax = 0;';
echo 'var dmax = 0;';
echo 'var grank = 0;';
echo 'var xtemp = 0.0;';
echo 'var origrate = 0;';
echo 'var newcls = "G1";';
echo 'var oldcls = "Residential";';
echo 'var mary = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];';
// ***********************************
// set default starts
// ***********************************
echo 'var enddat = 2212;';
echo 'var maxrank = 4000;';
$enddat = "2212";


if(isset($_GET['recsel'])) $xkey = $_GET['recsel'];
if(isset($_GET['enddat'])) $enddat = $_GET['enddat'];
$fd = fopen("membertool.log", "a");
$msg = "[" . date("Y/m/d h:i:s", time()) . "] ";
$msg = $msg.' RateCalc Member key: '.$xkey.'/';
$msg = $msg.' End date: '.$enddat.'/';
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) {
  if (array_key_exists($key, $_SERVER) === true) {
    foreach (explode(',', $_SERVER[$key]) as $ip) {
      if (filter_var($ip, FILTER_VALIDATE_IP) !== false) {
          $msg = $msg.$ip.'/';
      }
    }
  }
}
fwrite($fd, $msg . "\n");
fclose($fd);

 // Otherwise we connect to our Database
$hostname = 'localhost';
$username = '????????';
$password = '????????';
$database = '????????';

$link = mysqli_connect($hostname, $username, $password) or die("Unable to Connect to '$hostname'");
mysqli_select_db($link, $database) or die("Could not open the db '$database'");

 //Now we search for our search term, in the field the user specified
$query="SELECT * FROM mem_tool2022 WHERE member_fake = ";
$query=$query.$xkey;
//$query=$query."'";
//$data = mysql_query($query);
$data = mysqli_query($link, $query);

//echo "data query=".$query.":<br>";
//echo $data;
 //And we display the results
 $i =0;
 // ************************************
 // arrays set for 2001 thru 2212...
 // ************************************
 $kary=array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1);
 $dary=array(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
 $ravg=array(0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0);
 $totk = 0.0;
 $totd = 0.0;

 while($result = mysqli_fetch_array( $data ))

 {
 $i = $i + 1;
 // Get all regular stuff for meter
 if ($i == 1)
   {
   $cls = $result['class'];
   echo 'crank = '.$result['rank'].';';
   //echo 'debug';
   //echo $result['kwhavg_2022'];
   //echo $result['rank'];
   //echo 'debug';

   echo 'kavg = '.$result['kwhavg_2022'].';';
   //echo 'totk = '.$result['tot_kwh'].';';
   //echo 'totd = '.$result['tot_kw'].';';
   //echo 'totbil = '.$result['tot_rev'].';';
   echo 'phase = '.$result['rate'].';';
   echo 'cur_rate = '.$result['cur_rate'].';';
   // WAS COMMENTED OUT
   echo 'origrate = '.$result['cur_rate'].';';
   $gcls = $result['kwhavg_2022'];
   $xnm = "G1 (0-1200 avg kwh/mth)";
   if ( $gcls > 1200 ) $xnm ="G2 (1200-5000 avg kwh/mth)";
   if ( $gcls > 5000 ) $xnm ="G3 (5000-16,667 avg kwh/mth)";
   if ( $gcls > 16667 ) $xnm ="G4 (Abv 16,667 avg kwh/mth)";
   echo 'newcls = "'.$xnm.'";';
   }
 // Now load kwh/kw arrays
 $xd = $result['billyrmo'];
 $xkwh = $result['kwh'];
 $xdem = $result['kwdemand'];
 if ($xd < 2101) {
   $xd = $xd - 2000;
   $xd = $xd -1;
 } elseif ($xd < 2201) {
   $xd = $xd - 2100;
   $xd = $xd +11;
 } else {
   $xd = $xd - 2200;
   $xd = $xd +23;
 }




 //echo 'xd:'.$xd.' kwh:'.$xkwh.' <br>';
 $kary[$xd] = $xkwh;
 $dary[$xd] = $xdem;
 }

//  Calculate annual running averages
 $rtot = 0;
 $rnum = 0;
 for ($i=11; $i<=35; $i++)
   {
   if ($kary[$i] > -1) {
     // Have value, do running average
     $j = $i - 11;
     $rtot = 0;
	 $rnum = 0;
     for ($j=$i-11; $j<=$i; $j++)
     {
        if ($kary[$j] > -1)
        {
           $rtot = $rtot + $kary[$j];
           $rnum = $rnum + 1;
        }
     }
     $ravg[$i] = $rtot / $rnum;
     //echo 'i: '.$i.' kwh:'.$ravg[$i].' <br>';
   }
 }




 // Now set up annual values for chosen end month
 // VERIFY OFFSET data starts at 1201, not 1101

 if ($enddat == 2112) $istrt = 12;
 if ($enddat > 2112)  $istrt = $enddat - 2200 +12;
 if ($enddat > 2212)  $istrt = $enddat - 2300 +24;
 //if ($enddat == 1309) $istrt = 12;
 //if ($enddat > 1212)  $istrt = $enddat - 1300 +12;
 //if ($enddat > 1312)  $istrt = $enddat - 1400 +12;

 for ($i=0; $i<=11; $i++)
   {
   $ioff = $i + $istrt;
   if ($kary[$ioff] == -1)
   {
     echo 'kary['.$i.'] = -1;';
     echo 'dary['.$i.'] = 0.0;';
     echo 'ravg['.$i.'] = 0.0;';
   } else {
     $totk = $totk + $kary[$ioff];
     $totd = $totd + $dary[$ioff];
     echo 'kary['.$i.'] = '.$kary[$ioff].';';
     echo 'dary['.$i.'] = '.$dary[$ioff].';';
     echo 'ravg['.$i.'] = '.round($ravg[$ioff],1).';';
   }

   if ($kary[$ioff-12] == -1)
   {
     echo 'pary['.$i.'] = -1;';
   } else {
     echo 'pary['.$i.'] = '.$kary[$ioff-12].';';
   }

   }
 echo 'totk = '.$totk.';';
 echo 'totd = '.$totd.';';
 echo 'enddat = '.$enddat.';';
 //$xkey = 792194002;
 echo 'frec = '.$xkey.';';
 $mrec = ( $xkey -1994 ) / 4;
 echo 'mrec = '.$mrec.';';


echo 'google.setOnLoadCallback(getMemberData);';
//echo 'getMemberData();';

echo '</script>';
?>


</head>
<body>
<div style="float: left; width: 800px;border:1px solid black;">

<div style="float: left; clear: left; width: 327px; height: 110px; border-right:1px solid black;border-bottom:1px solid black;border-top:1px solid black;background: rgb(200,229,238);">
<center id="cursive18">My Methow<br>
Electrical<br>
Information</b></center>
</div>

<div style="float: right; width: 470px; height: 110px; border:1px solid black;background: rgb(200,229,238);">
<img src="https://methow.chewack.com/images/mymetlogo3.jpg" />
</div>

<div id="body" style="width:800px;">


<p id="mediumcursive"><center><b>Your OCEC electrical bill summary analysis</b></center><br>

<div style="width:800;height:320px;">
<div id="chart_div" style="width:580;height:320px;float:left;margin-left:10px;border:1px solid black;">
<br><br><span style="width:580px;text-align:center;float:left;">... loading data ...</span></div>

<div style="width:170px;height:240px;float:left;margin-left:20px;margin-top:0px;border:1px solid black;">

<div style="width:170px;height:40px;margin-top:5px;">
<span style="width:165px;text-align:center;float:left;"><p class="txsmall">Your Average Monthly<br>kwh Usage Rank</p></span>
</div>

<div id="gage_div" style="width:160px;height:150px;margin-left:10px;"></div>

<div style="width:170px;height:40px;margin-top:0px;">
<span style="width:165px;text-align:center;float:left;"><p class="txsmall">Scale of 0-100<br> for 4000 meters @ OCEC</p></span>
</div>

<div style="width:170px;height:75px; margin-top:10px; border:1px solid black;">
<span style="width:165px;text-align:center;float:left;"><p class="txsmall">
Choose dates to analyze:<br>
<form name="disptype" method="get" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<select name="enddat" style="float:left;height:22px;margin-left:8px;margin-top:5px;background:rgb(200,229,238);">
<?php
$xx = "";
if ($enddat == 2112) $xx = "selected";
echo '<option value="2112" '.$xx.'>Jan 2021-Dec 2021</option>';
$xx = "";
if ($enddat == 2209) $xx = "selected";
echo '<option value="2209" '.$xx.'>Oct 2021-Sep 2022</option>';
$xx = "";
if ($enddat == 2212) $xx = "selected";
echo '<option value="2212" '.$xx.'>Jan 2022-Dec 2022</option>';



echo '</select><br>';
echo '<input style="margin-left:0px;line-height:18px;text-align:center;background: rgb(200,229,238);" type="submit" value="Submit New Dates" />';
echo '<input name="recsel" type="hidden" value="'.$xkey.'" />';


//Pulled out of rate summary
//Energy Chg:
//<span id="pener">0.00</span>
//    Inc kwh:
//<span id="ptier1">0</span>
//<br>








?>

</form>
</p></span>
</div>

</div>

</div>

<div style="width:770px;margin-top:20px;margin-left:20px;">

<p class="tzsmall">
Member Account: <b id="mrec">0</b> Data Record: <b id="frec">0</b><br>
<b>Summary stats are for the 2022 base year:</b> Your monthly avg kwh was <b id="mavg">0</b> and ranked <b id="krank">0</b> from the highest of the approx 4000
OCEC meter accounts.  This is converted to <b id="grk">0</b> out of 100 to display on the gage.
Under the current policies, your average monthly kwh usage would place you in the
<b>General Service Class <span id="newgx">G1</span></b> and
<b>Rate Code <span id="ratecd">1</span></b>.
Your rate class is currently set to <b id="currate">00</b>.
Your current average kwh usage
<span id="classchg">and existing rate meet policies. You might check if a higher rate code would save you money</span>.

<br>
<b>Summary for the selected dates:</b> Your total energy usage for the 12 month period was <b id="tkwh">0</b> kwh.   Your peak monthly usage was <b id="mxkwh">0</b> kwh
and your peak monthly demand was <b id="mxkw">0</b> kw. Following is a summary of your monthly usage and billings using the 2021/22 rates which you can compare with the
a new rate class and other utility/coop/class rates.
Also note yard lights/local taxes have not been included.
</p><br>
<br>
<div style="width:520px;float:left;margin-top:0px;margin-left:0px;border:0px solid black;">

<table class="billtab" border="1">
<tr>
<th>Month</th>
<th>Total kwh</th>
<th>Dem kw</th>
<th id="g2015">2021 xx Rate</th>
<th>Compare Rate</th>
<th>% Change</th>
</tr>

<tr><td id="m1" style="text-align:left;">Jan</td>
<td id="k1">0</td>
<td id="kw1">0</td>
<td id="o1">0.00</td>
<td id="n1">0.00</td>
<td id="c1">0.0%</td></tr>

<tr><td id="m2" style="text-align:left;">Feb</td>
<td id="k2">0</td>
<td id="kw2">0</td>
<td id="o2">0.00</td>
<td id="n2">0.00</td>
<td id="c2">0.0%</td></tr>

<tr><td id="m3" style="text-align:left;">Mar</td>
<td id="k3">0</td>
<td id="kw3">0</td>
<td id="o3">0.00</td>
<td id="n3">0.00</td>
<td id="c3">0.0%</td></tr>

<tr><td id="m4" style="text-align:left;">Apr</td>
<td id="k4">0</td>
<td id="kw4">0</td>
<td id="o4">0.00</td>
<td id="n4">0.00</td>
<td id="c4">0.0%</td></tr>

<tr><td id="m5" style="text-align:left;">May</td>
<td id="k5">0</td>
<td id="kw5">0</td>
<td id="o5">0.00</td>
<td id="n5">0.00</td>
<td id="c5">0.0%</td></tr>

<tr><td id="m6" style="text-align:left;">Jun</td>
<td id="k6">0</td>
<td id="kw6">0</td>
<td id="o6">0.00</td>
<td id="n6">0.00</td>
<td id="c6">0.0%</td></tr>

<tr><td id="m7" style="text-align:left;">Jul</td>
<td id="k7">0</td>
<td id="kw7">0</td>
<td id="o7">0.00</td>
<td id="n7">0.00</td>
<td id="c7">0.0%</td></tr>

<tr><td id="m8" style="text-align:left;">Aug</td>
<td id="k8">0</td>
<td id="kw8">0</td>
<td id="o8">0.00</td>
<td id="n8">0.00</td>
<td id="c8">0.0%</td></tr>

<tr><td id="m9" style="text-align:left;">Sep</td>
<td id="k9">0</td>
<td id="kw9">0</td>
<td id="o9">0.00</td>
<td id="n9">0.00</td>
<td id="c9">0.0%</td></tr>

<tr><td id="m10" style="text-align:left;">Oct</td>
<td id="k10">0</td>
<td id="kw10">0</td>
<td id="o10">0.00</td>
<td id="n10">0.00</td>
<td id="c10">0.0%</td></tr>

<tr><td id="m11" style="text-align:left;">Nov</td>
<td id="k11">0</td>
<td id="kw11">0</td>
<td id="o11">0.00</td>
<td id="n11">0.00</td>
<td id="c11">0.0%</td></tr>

<tr><td id="m12" style="text-align:left;">Dec</td>
<td id="k12">0</td>
<td id="kw12">0</td>
<td id="o12">0.00</td>
<td id="n12">0.00</td>
<td id="c12">0.0%</td></tr>

<tr><td style="text-align:left;"><b>Total</b></td>
<td><b id="k13">0</b></td>
<td><b id="kw13">-</b></td>
<td><b id="o13">0.00</b></td>
<td><b id="n13">0.00</b></td>
<td><b id="c13">0.0%</b></td></tr>
</table>
</div>

<div style="width:250px;float:left;margin-top:0px;margin-left:0px;border:0px solid black;">
<form name="rateform" action="" >
<p class="txsmall"><b>Choose a rate to compare your bill:</b><br>
<select id="kratex" name="kratex" style="float:left;width:240px;height:22px;margin-left:0px;margin-top:10px;background:rgb(200,229,238);" onChange="newbill();">
<option value="1" selected="0">Need rate selection</option>
<option value="201"> OCEC Apr 2023 Gen Serv 1 rate</option>
<option value="202"> OCEC Apr 2023 Gen Serv 2 rate</option>
<option value="203"> OCEC Apr 2023 Gen Serv 3 rate</option>
<option value="204"> OCEC Apr 2023 Gen Serv 4 rate</option>
<option value="205"> OCEC Apr 2023 Irrigation 1P</option>
<option value="206"> OCEC Apr 2023 Irrigation 3P</option>
<option value="181"> OCEC 2021/22 Gen Serv 1 rate</option>
<option value="182"> OCEC 2021/22 Gen Serv 2 rate</option>
<option value="183"> OCEC 2021/22 Gen Serv 3 rate</option>
<option value="184"> OCEC 2021/22 Gen Serv 4 rate</option>
<option value="185"> OCEC 2021/22 Irrigation 1P</option>
<option value="186"> OCEC 2021/22 Irrigation 3P</option>
<option value="18">Big Bend residential rate (chk Nov22)</option>
<option value="15">Chelan PUD residential rate (chk Nov22)</option>
<option value="22">Columbia REA residential rate (chk Jan19)</option>
<option value="4">Colville (Avista) residential rate (chk Nov22)</option>
<option value="12">Ferry County PUD residential rate (chk Nov22)</option>
<option value="11">Inland Power residential rate (chk Nov22)</option>
<option value="19">Kittitas PUD residential rate (chk Nov22)</option>
<option value="91">Lakeview residential rate (chk Nov22)</option>
<option value="9">Nespelum Electric residential rate (chk Nov22)</option>
<option value="2">Okanogan PUD Apr 23 residential rate (chk Jan23)</option>
<option value="3">OPALCO (Island Cty) residential winter rate (chk Nov22)</option>
<option value="5">Oregon Trail Coop residential rate (chk Nov22)</option>
<option value="17">Parkland Light Coop residential rate (chk Nov22)</option>
<option value="21">Pend Oreille PUD residential rate (chk Nov22)</option>
<option value="20">Skamania residential rate (chk Nov22)</option>
<option value="10">Snohomish County PUD residential rate (chk Nov22)</option>
<option value="8">Tanner Electric residential rate (chk Nov22)</option>
<option value="200">Umatilla Electric residential rate Winter (chk Nov22)</option>
<option value="7">Western Oregon Coop residential rate (chk Nov22)</option>
</select>

<br><br>
<span style="width:150px;float:left;">Existing 12mth bill:</span>
<b id="zold" style="width:70px;float:left;text-align:right;">$0.00</b>
<br>
<span style="width:150px;float:left;">Compare 12mth bill:</span>
<b id="znew" style="width:70px;float:left;text-align:right;">$0.00</b>
<br>
<span style="width:230px;float:left;">Inc/(Dec):  
<b id="zchg">$0.00</b>/yr or
<b id="zchgm">$0.00</b>/mth
</span><br></p>
<p class="cursive12">Rate structure used to compare:<br>
<span><b id="pcomp">OCEC current rate</b></span><br>
Base Meter 1P:
<span id="pbase">0.00</span>
    3P:
<span id="pbase3">0.00</span>
<br>
Demand Chg:
<span id="pdem">0.00</span>
    Inc kw:
<span id="pdinc">0</span>
<br>
Base kwh rate:
<span id="prate1">0.0000</span>
<br>
Tier 2 rate:
<span id="prate2">0.0000</span>
    Abv kwh:
<span id="ptier2">0</span>
<br>
Tier 3 rate:
<span id="prate3">0.0000</span>
    Abv kwh:
<span id="ptier3">0</span>
<br>
Cost of power adj:
<span id="pkopa">0.0000</span>
</p>
<input name="kwh01" value="0" type="hidden">
<input name="kwh02" value="0" type="hidden">
<input name="kwh03" value="0" type="hidden">
<input name="kwh04" value="0" type="hidden">
<input name="kwh05" value="0" type="hidden">
<input name="kwh06" value="0" type="hidden">
<input name="kwh07" value="0" type="hidden">
<input name="kwh08" value="0" type="hidden">
<input name="kwh09" value="0" type="hidden">
<input name="kwh10" value="0" type="hidden">
<input name="kwh11" value="0" type="hidden">
<input name="kwh12" value="0" type="hidden">
<input name="kw01" value="0" type="hidden">
<input name="kw02" value="0" type="hidden">
<input name="kw03" value="0" type="hidden">
<input name="kw04" value="0" type="hidden">
<input name="kw05" value="0" type="hidden">
<input name="kw06" value="0" type="hidden">
<input name="kw07" value="0" type="hidden">
<input name="kw08" value="0" type="hidden">
<input name="kw09" value="0" type="hidden">
<input name="kw10" value="0" type="hidden">
<input name="kw11" value="0" type="hidden">
<input name="kw12" value="0" type="hidden">
<input name="kwhtot" value="0" type="hidden">
<input name="kwhavg" value="0" type="hidden">
<input name="kwtot" value="0" type="hidden">
<input name="rank" value="0" type="hidden">
<input name="mtype" value="1" type="hidden">
<input name="xphase" value="1" type="hidden">
<input name="orate" value="0" type="hidden">
<input name="enddat" value="1309" type="hidden">
</form>
</div>

</div>

<div id="footer" style="width:760px;margin-left:20px;margin-top:10px;">
<hr>
<center><p class="txxsmall">This application is provided as a free service to all members of the Okanogan
County Electric Coop<br>
Copyright January 2012 by Ray Peterson of Pasayten Consulting,
Phone: 425-239-3777, email: pasayten@yahoo.com
</p>
</center></div>
</div>
</body>
</html>

I am curious about mixing machine code with basic.

Code: Select all

# REM X
     1  REM [HEX:\
3D ]


# REM **COMPILER**
  1000  REM [HEX:\
17,17,28,34,32,35,2E,31,\
2A,37,17,17,76 ]

  1010 FAST 
  1011 LET Q=3950
  1012 LET Q1=2830
  1013 LET Q2=3320
  1014 LET Q3=3630
  1015 LET Q4=3970
  1016 LET Q5=1320
  1017 LET Q6=4
  1020 LET P=28858
  1030 LET P1=16514
  1040 GOSUB 2920
  1050 IF PEEK (P1-1)<>234 THEN GOTO Q1
  1060 IF PEEK P1=118 THEN GOTO Q1
  1070 GOSUB 2880
  1080 LET A$=""
  1090 LET A$=A$+CHR$ PEEK P1
  1100 LET P1=P1+1
  1110 IF PEEK (P1-1)<>118 THEN GOTO 1090
  1120 IF PEEK (P1+1)*256+PEEK (P1+2)=1010 THEN GOTO 3690
  1130 LET P1=P1-3
  1140 LET T$=A$( TO 2)
  1150 LET B$=A$+"      "
  1160 LET J=0
  1170 LET J=J+(T$="RE")*2170+(T$="SC")*1200+(T$="PR")*1360+(T$="GE")*1530+(T$="EN")*1620+(T$="PA")*1670+(T$="CL")*1720+(T$="MO")*1770+(T$="LE")*1890+(A$( TO 3)="GOT")*2060+(A$( TO 3)="GOS")*2130+(T$="IF")*2200+(T$="PO")*2430+(T$="UN")*2550+(T$="PL")*2580+(T$="DO")*2720
  1180 IF NOT J THEN LET J=Q1
  1190 GOTO J
  1201 IF B$(7)<>CHR$ 118 THEN GOTO Q1
  1202 LET U$="2A0C40112100EB1901F702EDB00620AF131210FC"
  1203 GOSUB Q3
  1204 GOTO Q5
  1320 LET P1=P1+8
  1330 GOTO 1050
  1360 LET B$=B$(6 TO )
  1370 IF B$(1)=CHR$ 11 THEN GOTO 1420
  1380 GOSUB Q2
  1390 LET U$="7DD7"
  1400 GOSUB Q3
  1410 GOTO Q5
  1420 GOSUB Q
  1430 LET U$="CDBA40"
  1440 GOSUB Q3
  1450 POKE P,CODE (B$(1))
  1460 GOSUB Q
  1470 IF B$(1)=CHR$ 11 THEN POKE P+1,255
  1480 LET P=P+1
  1490 IF B$(1)=CHR$ 11 THEN GOTO 1510
  1500 GOTO 1450
  1510 LET P=P+1
  1520 GOTO Q5
  1530 LET B$=B$(Q6 TO )
  1540 LET U$="CDBB02444D51142808CDBD077ECB7728023E8021004077233600"
  1550 GOSUB Q3
  1560 LET V=CODE B$(1)
  1570 IF CODE B$(2)<>118 THEN GOTO Q1
  1580 IF V<38 OR V>63 THEN GOTO Q1
  1590 LET V=(V-38)*2+130
  1600 POKE P-6,V
  1610 GOTO Q5
  1620 LET B$=B$(Q6 TO )
  1630 IF B$(1)<>CHR$ 118 THEN GOTO Q1
  1640 LET U$="CFFF"
  1650 GOSUB Q3
  1660 GOTO Q5
  1670 LET B$=B$(6 TO )
  1680 GOSUB Q2
  1690 LET U$="2B7CB520FB"
  1700 GOSUB Q3
  1710 GOTO Q5
  1720 LET B$=B$(Q6 TO )
  1730 IF B$(1)<>CHR$ 118 THEN GOTO Q1
  1740 LET U$="2A0C40161823062036002310FB1520F5010000CDF508"
  1750 GOSUB Q3
  1760 GOTO Q5
  1770 LET B$=B$(5 TO )
  1780 GOSUB Q2
  1790 GOSUB Q4
  1830 LET U$="45"
  1840 GOSUB Q3
  1850 GOSUB Q2
  1860 LET U$="4DCDF508"
  1870 GOSUB Q3
  1880 GOTO Q5
  1890 LET B$=B$(Q6 TO )
  1900 LET L=(CODE B$-38)*2+130
  1910 LET B$=B$(3 TO )
  1920 GOSUB Q2
  1930 GOSUB 3570
  1940 IF CODE B$=118 THEN GOTO 2020
  1950 LET U$="EB"
  1960 GOSUB Q3
  1970 LET S$=B$(1)
  1980 GOSUB Q
  1990 GOSUB Q2
  1991 LET N$="CD0913"
  1992 IF PEEK 4869=197 THEN LET N$="CD0513"
  2000 LET U$=(N$ AND S$="*")+("EBCDC440" AND S$="/")+("19" AND S$="+")+("EBA7ED52" AND S$="-")
  2010 GOSUB Q3
  2020 LET U$="220040"
  2030 GOSUB Q3
  2040 POKE P-2,L
  2050 GOTO Q5
  2060 LET B$=B$(5 TO )
  2070 GOSUB Q2
  2080 POKE P-3,195
  2090 LET G(N1,1)=PEEK (P-2)+PEEK (P-1)*256
  2100 LET G(N1,2)=P-2
  2110 LET N1=N1+1
  2120 GOTO Q5
  2130 LET B$=B$(6 TO )
  2140 GOSUB Q2
  2150 POKE P-3,205
  2160 GOTO 2090
  2170 LET U$="C9"
  2180 GOSUB Q3
  2190 GOTO Q5
  2200 LET B$=B$(3 TO )
  2210 GOSUB Q2
  2220 GOSUB 3570
  2230 LET U$="EB"
  2240 GOSUB Q3
  2250 LET S$=B$(1)
  2260 GOSUB Q
  2270 GOSUB Q2
  2280 IF CODE B$>37 THEN GOSUB Q
  2290 IF CODE B$<38 THEN GOSUB 3600
  2300 LET U$="A7ED52"
  2310 IF S$="<>" THEN LET U$=U$+"CA"
  2320 IF S$="=" THEN LET U$=U$+"C2"
  2330 IF S$="<" THEN LET U$=U$+"DA"
  2340 IF S$=">" THEN LET U$=U$+"D2"
  2350 LET U$=U$+"0000"
  2360 IF S$<>">" AND S$<>"=" AND S$<>"<" AND S$<>"<>" THEN GOTO Q1
  2370 GOSUB Q3
  2380 LET G(N1,2)=P-2
  2390 LET G(N1,1)=1000
  2400 LET N1=N1+1
  2410 LET A$=B$
  2420 GOTO 1140
  2430 LET B$=B$(5 TO )
  2440 GOSUB Q2
  2450 GOSUB Q4
  2490 LET U$="EB"
  2500 GOSUB Q3
  2510 GOSUB Q2
  2520 LET U$="EB73"
  2530 GOSUB Q3
  2540 GOTO Q5
  2550 LET B$=B$(3 TO )
  2560 LET U$="3EA0323040"
  2570 GOTO 2590
  2580 LET U$="3E9B323040"
  2590 GOSUB Q3
  2600 LET B$=B$(5 TO )
  2610 GOSUB Q2
  2620 LET U$="4D"
  2630 GOSUB Q3
  2640 GOSUB Q4
  2680 GOSUB Q2
  2690 LET U$="45CDB20B"
  2700 GOSUB Q3
  2710 GOTO Q5
  2720 LET B$=B$(5 TO )
  2730 GOSUB Q2
  2740 GOSUB Q4
  2771 LET U$="EB"
  2780 GOSUB Q3
  2790 GOSUB Q2
  2800 LET U$="EB732372"
  2810 GOSUB Q3
  2820 GOTO Q5
  2830 IF PEEK (P1-1)=118 THEN GOTO 3180
  2840 IF P1=16509 THEN GOTO 3180
  2850 LET P1=P1-1
  2860 GOTO 2830
  2870 SLOW 
  2880 LET L(N,1)=PEEK (P1-5)*256+PEEK (P1-4)
  2890 LET L(N,2)=P-12288
  2900 LET N=N+1
  2910 RETURN 
  2920 DIM L(100,2)
  2930 DIM G(70,2)
  2940 LET N=1
  2950 LET N1=N
  2960 LET U$="E17E23E5FEFFC8D718F601FFFFA7ED520330FAC5E1C9A6AFAC"
  2965 LET U$=U$+"FD3622002182403600237DFEBA20F8"
  2970 GOSUB Q3
  2980 RETURN 
  2990 IF N1=1 THEN RETURN 
  3000 FOR X=1 TO N1-1
  3010 LET PO=G(X,2)
  3020 LET L=G(X,1)
  3030 LET G=1
  3040 GOTO 3120
  3050 LET G=G+1
  3060 IF G=N THEN GOTO 3150
  3070 GOTO 3040
  3080 POKE PO,L(G,2)-256*INT (L(G,2)/256)
  3090 POKE PO+1,INT (L(G,2)/256)
  3100 NEXT X
  3110 RETURN 
  3120 IF L=1000 THEN IF PO-12288<=L(G,2) THEN GOTO 3080
  3130 IF L=L(G,1) THEN GOTO 3080
  3140 GOTO 3050
  3160 GOTO 3200
  3170 RETURN 
  3190 LET L=PEEK P1*256+PEEK (P1+1)
  3200 SLOW 
  3201 POKE 16418,0
  3202 PRINT AT 22,0;"*******ERROR IN ";L;"******";AT 0,0;
  3203 POKE 16418,2
  3204 LIST L
  3205 GOTO 3200
  3230 LET V=CODE B$
  3240 IF V<38 OR V>63 THEN GOTO Q1
  3250 LET V=(V-38)*2+16514
  3260 LET U$="2A"
  3270 GOSUB Q3
  3280 POKE P,V-16384
  3290 POKE P+1,64
  3300 LET P=P+2
  3310 RETURN 
  3320 LET V=1
  3330 IF CODE B$(V)>37 OR CODE B$(V)<28 THEN GOTO 3360
  3340 LET V=V+1
  3350 GOTO 3330
  3360 IF V=1 THEN GOTO 3420
  3370 LET V=VAL (B$( TO V-1))
  3380 IF V<>INT V OR V>65536 THEN GOTO Q1
  3390 GOSUB 3530
  3400 POKE P+1,INT (V/256)
  3405 LET P=P+2
  3410 RETURN 
  3420 LET U$=""
  3430 IF B$( TO 3)="TOP" THEN LET U$="2A0C4023"
  3440 GOSUB 3780
  3450 IF B$( TO 3)<>"USR" THEN GOTO 3850
  3460 LET B$=B$(Q6 TO )
  3470 GOSUB Q2
  3480 POKE P-3,205
  3490 RETURN 
  3500 IF U$="" THEN GOTO 3220
  3510 GOSUB Q3
  3520 RETURN 
  3530 LET U$="21"
  3540 GOSUB Q3
  3550 POKE P,V-256*INT (V/256)
  3560 RETURN 
  3570 IF CODE B$<28 OR CODE B$>63 THEN RETURN 
  3580 GOSUB Q
  3590 GOTO 3570
  3600 IF CODE B$<28 OR CODE B$>37 THEN RETURN 
  3610 GOSUB Q
  3620 GOTO 3600
  3630 POKE P,CODE U$*16+CODE U$(2)-476
  3640 LET U$=U$(3 TO )
  3650 LET P=P+1
  3660 IF P>=32700 THEN STOP 
  3670 IF U$="" THEN RETURN 
  3680 GOTO Q3
  3690 GOSUB 2990
  3700 LET J=P-12287
  3710 LET P=28672
  3720 LET U$="210000E5C103E52182401182701A7723137DB920F87CB820F4E136A62336AF2336AC233676E5118040A7ED52227F40E123C30304"
  3730 GOSUB Q3
  3740 LET P=J
  3750 POKE 28673,P-256*INT (P/256)
  3760 POKE 28674,INT (P/256)
  3770 RAND USR 28672
  3780 IF B$( TO 3)<>"RND" THEN RETURN 
  3790 LET U$="D92A3240545D29291929292919223240EB"
  3800 GOSUB Q3
  3810 LET B$=B$(Q6 TO )
  3820 GOSUB Q2
  3830 LET U$="EBA7ED5230FB19E5D9E1"
  3840 RETURN 
  3850 IF B$( TO Q6)<>"PEEK" THEN GOTO 3900
  3860 LET B$=B$(5 TO )
  3870 GOSUB Q2
  3880 LET U$="6E2600"
  3890 GOTO 3500
  3900 IF B$( TO Q6)<>"DEEK" THEN GOTO 3500
  3910 LET B$=B$(5 TO )
  3920 GOSUB Q2
  3930 LET U$="D55E2356EBD1"
  3940 GOTO 3500
  3950 LET B$=B$(2 TO )
  3960 RETURN 
  3970 IF B$(1)="," THEN GOTO 4000
  3980 GOSUB Q
  3990 GOTO Q4
  4000 GOSUB Q
  4010 RETURN 
This is the SILVERSOFT ZX-COMPILER Code.
Attachments
zxcompiler_[ZX81 BASIC TEXT CODES].txt
(7.49 KiB) Downloaded 429 times
Image

Image <=NUCLEAR BUTTONImage

Image

KFAC-LP 105.5 FM Twisp WA
Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests