Psion 3a - Any good freeware? - Scion

This is a discussion on Psion 3a - Any good freeware? - Scion ; I see that there is quite a lot of interesting freeware available for the Psion 3a. Have any of you tried some which you can recommend? Evi...

+ Reply to Thread
Results 1 to 8 of 8

Thread: Psion 3a - Any good freeware?

  1. Psion 3a - Any good freeware?

    I see that there is quite a lot of interesting freeware available for the
    Psion 3a. Have any of you tried some which you can recommend?

    Evi



  2. Re: Psion 3a - Any good freeware?

    Evi wrote:
    > I see that there is quite a lot of interesting freeware available for
    > the Psion 3a. Have any of you tried some which you can recommend?
    >
    > Evi


    Anything by John Boyce, especially his "Data" program.

    Otherwise depends on your interests!

    Cheers, Mike.
    --
    If reply address = connectfee, add an r because it is free not fee.



  3. Re: Psion 3a - Any good freeware?

    > Evi wrote:
    > > I see that there is quite a lot of interesting freeware available for
    > > the Psion 3a. Have any of you tried some which you can recommend?
    > >
    > > Evi

    >
    > Anything by John Boyce, especially his "Data" program.
    >
    > Otherwise depends on your interests!
    >
    > Cheers, Mike.


    Thanks Mike



  4. Re: Psion 3a - Any good freeware?

    Evi wrote:

    > I see that there is quite a lot of interesting freeware available for the
    > Psion 3a. Have any of you tried some which you can recommend?


    In -95 I wrote this mastermind program just for fun.
    Special feature: two levels - 4 or 5 bits to solve.
    Never 'published' before but, I think, the best of it's kind
    Hereby given to the small community of Psioners.
    It even runs on my NetBook, looks a bit ancient though...
    Absolutely beerware and if someone around here wish to send it to some
    freeware site it's of course fine by me.

    Following is the code, will have to be compiled / translated
    (and Evi, don't try to actually write this, wait for the cable if
    interested...)

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

    proc main: rem main program "MASTER MIND"
    global sos%,ti%
    global ke%
    ke%=key
    sos%=1
    mm:
    endp

    PROC mm:
    local c%,pos%,g% rem see below for more info on processes
    global swin%,fwin%,inwin%,codewin%,guess%(5),code%(5),try %
    global ink%,ncode%,inpos%,figsize%,solved%,max%
    global k%,h$(6),a$(5)
    h$="nscpax"
    ti%=0
    ti%=ti%+1
    defaultwin 1 :gborder 2 :gfont 11
    solved%=0
    minit
    select:
    rem initg:
    figwin:
    drawb:
    hide:
    coder:
    while c% inwpos%)
    incursor:
    test:
    moveitpos%)
    pos%=pos%+36
    c%=c%+1 :try%=try%+1
    if try%>=10 and try% moveleft: os%=pos%-36
    endif
    endwh
    if try%<=max% and solved%=1
    guse codewin% :gvisible on
    guse swin% :gat 10,8
    gcopy fwin%,270,10,55,145,3 :get
    else showit:
    endif
    rem menu
    again:
    ENDP



    proc showit:
    guse codewin% :gvisible on
    guse swin% :gat 10,8
    gcopy fwin%,370,10,55,145,3 :get
    endp

    proc initg:
    if sos%>2 or sos%<1 :initg: :endif
    if sos%=1 :sos%=6 :ncode%=4 :inpos%=29 :figsize%=72 :ink%=20 :max%=10
    endif
    if sos%=2 :sos%=7 :ncode%=5 :inpos%=23 :figsize%=100 :ink%=16 :max%=14
    endif
    endp

    Proc select:
    dinit
    dtext "","Select level",$102
    dchoice sos%,"Level ","Beginner, Expert "
    dialog
    if sos%>2 or sos%<1 :select: :endif
    if sos%=1 :sos%=6 :ncode%=4 :inpos%=29 :figsize%=72 :ink%=20 :max%=10
    endif
    if sos%=2 :sos%=7 :ncode%=5 :inpos%=23 :figsize%=100 :ink%=16 :max%=14
    gat 150,10
    endif
    endp

    PROC again:
    guse 1 :gfont 5
    dinit
    dtext "","Once again?",$102
    dbuttons "Yes,Yes,Yes",13,"OohNoo",%n
    if(dialog)=13
    gclose 2 :gclose 3 :gclose 4
    mm:
    else :stop
    endif
    endp

    PROC drawb: rem the gameboard
    local c%,ypos%
    ypos%=int(124/(sos%-1))
    guse 1 :gfont 9 :gstyle 9
    gat 47,0 :gpatt-1,396,35,3
    gat 0,35 :glineby 444,0
    gat 0,36 :glineby 444,0
    gat 28,30 :gprint max%
    gat 13,28 :glineby 20,-20
    gat 13,29 :glineby 20,-20
    gat 13,30 :glineby 20,-20

    do
    gat 47+c%,0 :glineby 0,159
    c%=c%+36
    until c%>=412
    c%=0
    swin%=gcreate (407,0,74,159,1,1)
    gxborder 1,1
    do
    gat 40,10+(ypos%*c%)
    gcopy fwin%,50+(30*c%),figsize%,20,20,3
    gat 25,25+(ypos%*c%) :gprint c%+1
    c%=c%+1
    until c%=sos%
    guse 1
    gfont 12
    gat 0,36 :gpatt-1,47,123,0
    gat 20,67 :gprint "C"
    gat 20,96:gprint "O"
    gat 20,125 :gprint "D"
    gat 20,154 :gprint "E"
    gtmode 3
    ENDP

    PROC inwpos%) rem the input window
    inwin%=gcreate (48+pos%,37,35,121,1,1)
    gmove 1,1
    gbox 33,119
    ENDP

    PROC incursor: rem input function
    local c%,x%,y%,f%(5),full% rem k%
    guse inwin% :gat 2,7
    cursor inwin%,0,3,ink%,2
    while (k%<>13 or full% k%=get :y%=gY
    if k%<49 or k%>(48+sos%)
    else :gat 2,y%
    gcopy fwin%,45+(30*(k%-49)),figsize%,25,20,3
    guess1+(y%-7)/inpos%,k%-48)
    if y%=7 :f%(1)=1
    elseif y%=7+(1*inpos%) :f%(2)=1
    elseif y%=7+(2*inpos%) :f%(3)=1
    elseif y%=7+(3*inpos%) :f%(4)=1
    elseif y%=7+(4*inpos%) :f%(5)=1
    endif
    endif
    full%=f%(1)+f%(2)+f%(3)+f%(4)+f%(5)
    if k%=256 rem up arrow up and down to move corsor
    if y%<=7 :y%=7+((ncode%)*inpos%)
    endif rem wrap around
    gAT 2,y%-inpos%
    endif
    if k%=257
    if y%>=7+((ncode%-1)*inpos%) :y%=7-inpos%
    endif rem wrap around
    gAT 2,y%+inpos%
    endif
    if k%=32
    gat 2,y%
    gcopy fwin%,2,2,25,20,3 :f%(1+((y%-7)/inpos%))=0
    endif
    rem ***********************************
    if k%=$122
    m:
    k%=menu
    if k% and (loc(h$,chr$(k%))<>0)
    a$="proc"+chr$(k%)
    @(a$):
    endif
    elseif k% and $200
    k%=k%-$200
    if loc(h$,chr$(k%))
    a$="proc"+chr$(k%)
    @(a$):
    endif
    rem return k%
    endif
    rem ***************************************
    endwh
    ENDP

    proc procx:
    stop
    endp

    proc proca:
    local aboutw%
    aboutw%=gcreate(100,40,260,115,1,1)
    gborder 3
    gfont 5 :gstyle 1
    gat 10,10 :gprint " MasterMind (c) 1995 Iordani"
    gstyle 0
    gat 10,20 :gprint " email: somewhere@earth.net"
    gat 30,30 :gprint " Keys, features and rules:"
    gat 10,40 :gprint "Use arrows up and/or down to move cursor."
    gat 10,50 :gprint "Number 1-6 for level 1. Max. no. of tries = 10"
    gat 10,60 :gprint "Number 1-7 for level 2. Max no of tries = 14"
    gat 10,70 :gprint "SPACE to delete entry or just overwrite it"
    gat 10,80 :gprint "Black peg = right symbol in right position"
    gat 10,90 :gprint "White peg = right symbol in wrong position"
    gstyle 1
    gat 90,100 :gprint "Hit any key"
    gat 95,110 :gprint "Good luck"
    get
    guse inwin% :gclose aboutw%
    endp


    proc procn:
    guse codewin% :gvisible on
    guse swin% :gat 10,8
    gcopy fwin%,370,10,55,145,3 :get
    gclose 2 :gclose 3 :gclose 4 :gclose 5
    main:
    endp

    proc procp:
    mm:
    select:
    endp

    proc procs:
    guse codewin% :gvisible on
    guse swin% :gat 10,8
    gcopy fwin%,370,10,55,145,3 :get
    endp

    PROC moveitpos%) rem copy the "colours" to window 1
    guse 1 rem and move input window to next
    gat 51+pos%,40 rem location
    gcopy inwin%,3,3,30,116,0
    gclose inwin%
    ENDP

    PROC guessplace%,fig%) rem make an array of the guess
    guess%(place%)=fig% rem for futher use
    rem print place%,guess%(place%)
    ENDP


    PROC hide: rem make a hidden codewindow
    codewin%=gcreate (4,38,40,119,0,0)
    gborder 1
    ENDP

    PROC coder: rem sets the nasty codes for you to solve
    local c%,ypos%
    c%=1
    randomize second*minute rem prevent the same code to appear
    guse codewin% rem at every start of the program
    do
    code%(c%)=(sos%*rnd+1)
    gat 10,6+ypos%
    gcopy fwin%,50+(30*(code%(c%)-1)),figsize%,20,20,3
    ypos%=ypos%+inpos%
    c%=c%+1
    until c%=ncode%+1
    endp

    PROC test: rem test the players guess
    local c%,g%,bpeg%,wpeg%,codecop%(5)
    c%=1 :g%=1
    do
    codecop%(c%)=code%(c%) rem copy code
    if codecop%(c%)=guess%(c%) rem find clean match
    bpeg%=bpeg%+1 rem count it/them
    codecop%(c%)=-1 :guess%(c%)=-2 rem destroy copy of code
    endif rem and guess to
    c%=c%+1 rem prevent multiple counts
    until c%=ncode%+1
    c%=1
    do rem find rigth "color" in
    do rem wrong place. then same
    if codecop%(c%)=guess%(g%) rem as above
    wpeg%=wpeg%+1 :codecop%(c%)=-1
    guess%(g%)=-2
    endif
    g%=g%+1
    until g%=ncode%+1
    c%=c%+1 :g%=1
    until c%=ncode%+1
    markbpeg%,wpeg%) rem send result for registration
    ENDP rem on screen

    PROC markb%,w%) rem give player his feedback
    local c%,c1%,bpeg%,wpeg%,xpos%
    guse 1 :bpeg%=b% :wpeg%=w%
    xpos%=51+(try%*36)
    if try%>=10 :xpos%=375 :endif
    c%=1
    while b%>=c%
    mposc%,xpos%)
    gfill 12,12,0 :ggmode 1 :gbox 12,12 :ggmode 0
    c%=c%+1
    endwh
    c1%=1
    while w%>=c1%
    mposc%,xpos%)
    gfill 12,12,1 :gbox 12,12
    c1%=c1%+1 :c%=c%+1
    endwh
    gfont 5 :gstyle 9 rem 11 9
    gat 9-5*int(log(try%+1)),21 :gprint try%+1
    if b%=ncode%
    solved%=1
    endif
    endp

    proc mposc%,x%) rem where do we put thoose markings?
    local xpos%
    xpos%=x%
    vector c%
    func1,func2,func3,func4,func5
    endv
    func1::
    gat xpos%,4 :return
    func2::
    gat xpos%+17,4 :return
    func3::
    gat xpos%,20 :return
    func4::
    gat xpos%+17,20 :return
    func5::
    gat xpos%+8,12 :return
    endp

    PROC moveleft: rem move gameboard when total tries exceed 10
    guse 1
    gat 47,0
    gcopy 1,83,0,359,159,3
    endp

    proc m:
    minit
    mcard "Game","New",%n,"Quit",%x
    mcard "Special","About",%a
    endp

    PROC figwin: rem make a window for, and draw the symbols
    local a%,b%,c%,y% rem (really a drag without a drawing program!)
    fwin%=gcreate (0,0,460,159,0,0)





    rem white box*******************
    gat 52,100
    gbox 16,16 :gmove 1,1 :gbox 14,14
    rem grey box *******************
    gat 82,100 :gbox 16,16 :gmove 1,1 :gbox 14,14
    gmove 2,2 :gpatt -1,10,10,0
    rem black box*******************
    gat 112,100 :gbox 16,16 :gmove 1,1 :gbox 14,14
    gmove 2,2 :gfill 10,10,0
    rem white circle****************
    gat 142,100
    gmove 5,0 :gfill 6,2,0 :gmove 6,1 :gfill 2,2,0
    gmove 1,1 :gfill 2,2,0 :gmove 1,1 :gfill 2,2,0
    gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    gmove -1,1 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    gmove -6,1 :gfill 6,2,0 :gmove -2,-1 :gfill 2,2,0
    gmove -1,-1 :gfill 2,2,0 :gmove -1,-1 :gfill 2,2,0
    gmove -1,-6 :gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    gmove 1,-1 :gfill 2,2,0 :gmove 1,-1 :gfill 2,2,0
    rem grey circle ******************************
    gat 172,100
    gmove 5,0 :gfill 6,2,0 :gmove 6,1 :gfill 2,2,0
    gmove 1,1 :gfill 2,2,0 :gmove 1,1 :gfill 2,2,0
    gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    gmove -1,1 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    gmove -6,1 :gfill 6,2,0 :gmove -2,-1 :gfill 2,2,0
    gmove -1,-1 :gfill 2,2,0 :gmove -1,-1 :gfill 2,2,0
    gmove -1,-6 :gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    gmove 1,-1 :gfill 2,2,0 :gmove 1,-1 :gfill 2,2,0
    gmove 3,2 :gpatt -1,4,10,0 :gmove -3,3 :gpatt -1,10,4,0
    gmove 1,-2 :gpatt -1,2,2,0 :gmove 6,0 :gpatt -1,2,2,0
    gmove 0,6 :gpatt -1,2,2,0 :gmove -6,0 :gpatt -1,2,2,0

    rem black circle******************************
    gat 202,100
    gmove 5,0 :gfill 6,2,0 :gmove 6,1 :gfill 2,2,0
    gmove 1,1 :gfill 2,2,0 :gmove 1,1 :gfill 2,2,0
    gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    gmove -1,1 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    gmove -6,1 :gfill 6,2,0 :gmove -2,-1 :gfill 2,2,0
    gmove -1,-1 :gfill 2,2,0 :gmove -1,-1 :gfill 2,2,0
    gmove -1,-6 :gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    gmove 1,-1 :gfill 2,2,0 :gmove 1,-1 :gfill 2,2,0
    rem fill it**********************
    gmove 3,2 :gfill 4,10,0 :gmove -3,3 :gfill 10,4,0
    gmove 1,-2 :gfill 2,2,0 :gmove 6,0 :gfill 2,2,0
    gmove 0,6 :gfill 2,2,0 :gmove -6,0 :gfill 2,2,0
    rem crossed box***********************
    gat 232,100
    gbox 16,16 :gmove 1,1 :gbox 14,14 :gmove 0,6
    gfill 13,2,0 :gmove 6,-5 :gfill 2,12,0
    rem and here comes the biggies puh! ********************
    gat 50,72
    rem white box*********************
    gbox 20,20 :gmove 1,1 :gbox 18,18
    gmove -1,-1 rem :gmove 0,25
    rem grey box************************
    gat 80,72
    gbox 20,20 :gmove 1,1 :gbox 18,18 :gmove 2,2
    gpatt -1,14,14,0
    gmove -3,-3 rem :gmove 0,25
    rem black box***********************
    gat 110,72
    ggrey 0
    gfill 20,20,0 rem :gmove 1,1 :gbox 18,18
    gmove 2,2 :ggmode 1 :gbox 16,16
    ggmode 0
    rem white circle********************
    gat 140,79
    gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    gmove 1,-2 :gfill 2,2,0 :gmove 1,-1
    gfill 2,2,0 :gmove 2,-1 :gfill 2,2,0
    gmove 2,-1 :gfill 6,2,0
    gmove 6,1 :gfill 2,2,0 :gmove 2,1 :gfill 2,2,0
    gmove 1,1 :gfill 2,2,0 :gmove 1,2 :gfill 2,2,0
    gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    gmove -1,2 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    gmove -2,1 :gfill 2,2,0 :gmove -6,1 :gfill 6,2,0
    gmove -2,-1 :gfill 2,2,0 :gmove -2,-1 :gfill 2,2,0
    gmove -1,-1 :gfill 2,2,0 :gmove -1,-2 :gfill 2,2,0
    rem gmove -1,19
    rem grey circle***************************
    gat 170,79
    gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    gmove 1,-2 :gfill 2,2,0 :gmove 1,-1
    gfill 2,2,0 :gmove 2,-1 :gfill 2,2,0
    gmove 2,-1 :gfill 6,2,0
    gmove 6,1 :gfill 2,2,0 :gmove 2,1 :gfill 2,2,0
    gmove 1,1 :gfill 2,2,0 :gmove 1,2 :gfill 2,2,0
    gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    gmove -1,2 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    gmove -2,1 :gfill 2,2,0 :gmove -6,1 :gfill 6,2,0
    gmove -2,-1 :gfill 2,2,0 :gmove -2,-1 :gfill 2,2,0
    gmove -1,-1 :gfill 2,2,0 :gmove -1,-2 :gfill 2,2,0
    gmove 7,-10 :gpatt -1, 4,14,0 :gmove -2,1
    gpatt -1,8,12,0 :gmove -1,1 :gpatt -1,10,10,0
    gmove -1,1 :gpatt -1,12,8,0 :gmove -1,2 :gpatt -1,14,4,0
    gmove -2,5
    rem gmove -1,19 :ggrey 0
    rem black circle**************************
    gat 200,79
    gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    gmove 1,-2 :gfill 2,2,0 :gmove 1,-1
    gfill 2,2,0 :gmove 2,-1 :gfill 2,2,0
    gmove 2,-1 :gfill 6,2,0
    gmove 6,1 :gfill 2,2,0 :gmove 2,1 :gfill 2,2,0
    gmove 1,1 :gfill 2,2,0 :gmove 1,2 :gfill 2,2,0
    gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    gmove -1,2 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    gmove -2,1 :gfill 2,2,0 :gmove -6,1 :gfill 6,2,0
    gmove -2,-1 :gfill 2,2,0 :gmove -2,-1 :gfill 2,2,0
    gmove -1,-1 :gfill 2,2,0 :gmove -1,-2 :gfill 2,2,0
    gmove 7,-10 :gfill 4,14,0 :gmove -2,1
    gfill 8,12,0 :gmove -1,1 :gfill 10,10,0
    gmove -1,1 :gfill 12,8,0 :gmove -1,2 :gfill 14,4,0
    rem crossed box****************************
    gat 230,72
    gbox 20,20 :gmove 1,1 :gbox 18,18
    gmove 0,8 :gfill 17,2,0
    gmove 8,-8 :gfill 2,17,0
    gfont 11 :gstyle 9
    rem ****************************
    gat 281,37 :gprint "Well"
    gat 278,62 :gprint "done"
    gat 286,99 :gprint "Hit"
    gat 282,119 :gprint "any"
    gat 282,142 :gprint "key"
    rem *************************************
    gat 374,36 :gprint "Tough"
    gat 382,64 :gprint "luck"
    gat 386,99 :gprint "Hit"
    gat 382,119 :gprint "any"
    gat 382,142 :gprint "key"

    ENDP


  5. Re: Psion 3a - Any good freeware?


    "Iordani" wrote in message
    news:5i6qt8F3nbupoU1@mid.individual.net...
    > Evi wrote:
    >
    > > I see that there is quite a lot of interesting freeware available for

    the
    > > Psion 3a. Have any of you tried some which you can recommend?

    >
    > In -95 I wrote this mastermind program just for fun.
    > Special feature: two levels - 4 or 5 bits to solve.
    > Never 'published' before but, I think, the best of it's kind
    > Hereby given to the small community of Psioners.
    > It even runs on my NetBook, looks a bit ancient though...
    > Absolutely beerware and if someone around here wish to send it to some
    > freeware site it's of course fine by me.
    >
    > Following is the code, will have to be compiled / translated
    > (and Evi, don't try to actually write this, wait for the cable if
    > interested...)
    >
    > ********************************************
    >
    > proc main: rem main program "MASTER MIND"
    > global sos%,ti%
    > global ke%
    > ke%=key
    > sos%=1
    > mm:
    > endp
    >
    > PROC mm:
    > local c%,pos%,g% rem see below for more info on processes
    > global swin%,fwin%,inwin%,codewin%,guess%(5),code%(5),try %
    > global ink%,ncode%,inpos%,figsize%,solved%,max%
    > global k%,h$(6),a$(5)
    > h$="nscpax"
    > ti%=0
    > ti%=ti%+1
    > defaultwin 1 :gborder 2 :gfont 11
    > solved%=0
    > minit
    > select:
    > rem initg:
    > figwin:
    > drawb:
    > hide:
    > coder:
    > while c% > inwpos%)
    > incursor:
    > test:
    > moveitpos%)
    > pos%=pos%+36
    > c%=c%+1 :try%=try%+1
    > if try%>=10 and try% > moveleft: os%=pos%-36
    > endif
    > endwh
    > if try%<=max% and solved%=1
    > guse codewin% :gvisible on
    > guse swin% :gat 10,8
    > gcopy fwin%,270,10,55,145,3 :get
    > else showit:
    > endif
    > rem menu
    > again:
    > ENDP
    >
    >
    >
    > proc showit:
    > guse codewin% :gvisible on
    > guse swin% :gat 10,8
    > gcopy fwin%,370,10,55,145,3 :get
    > endp
    >
    > proc initg:
    > if sos%>2 or sos%<1 :initg: :endif
    > if sos%=1 :sos%=6 :ncode%=4 :inpos%=29 :figsize%=72 :ink%=20 :max%=10
    > endif
    > if sos%=2 :sos%=7 :ncode%=5 :inpos%=23 :figsize%=100 :ink%=16 :max%=14
    > endif
    > endp
    >
    > Proc select:
    > dinit
    > dtext "","Select level",$102
    > dchoice sos%,"Level ","Beginner, Expert "
    > dialog
    > if sos%>2 or sos%<1 :select: :endif
    > if sos%=1 :sos%=6 :ncode%=4 :inpos%=29 :figsize%=72 :ink%=20 :max%=10
    > endif
    > if sos%=2 :sos%=7 :ncode%=5 :inpos%=23 :figsize%=100 :ink%=16 :max%=14
    > gat 150,10
    > endif
    > endp
    >
    > PROC again:
    > guse 1 :gfont 5
    > dinit
    > dtext "","Once again?",$102
    > dbuttons "Yes,Yes,Yes",13,"OohNoo",%n
    > if(dialog)=13
    > gclose 2 :gclose 3 :gclose 4
    > mm:
    > else :stop
    > endif
    > endp
    >
    > PROC drawb: rem the gameboard
    > local c%,ypos%
    > ypos%=int(124/(sos%-1))
    > guse 1 :gfont 9 :gstyle 9
    > gat 47,0 :gpatt-1,396,35,3
    > gat 0,35 :glineby 444,0
    > gat 0,36 :glineby 444,0
    > gat 28,30 :gprint max%
    > gat 13,28 :glineby 20,-20
    > gat 13,29 :glineby 20,-20
    > gat 13,30 :glineby 20,-20
    >
    > do
    > gat 47+c%,0 :glineby 0,159
    > c%=c%+36
    > until c%>=412
    > c%=0
    > swin%=gcreate (407,0,74,159,1,1)
    > gxborder 1,1
    > do
    > gat 40,10+(ypos%*c%)
    > gcopy fwin%,50+(30*c%),figsize%,20,20,3
    > gat 25,25+(ypos%*c%) :gprint c%+1
    > c%=c%+1
    > until c%=sos%
    > guse 1
    > gfont 12
    > gat 0,36 :gpatt-1,47,123,0
    > gat 20,67 :gprint "C"
    > gat 20,96:gprint "O"
    > gat 20,125 :gprint "D"
    > gat 20,154 :gprint "E"
    > gtmode 3
    > ENDP
    >
    > PROC inwpos%) rem the input window
    > inwin%=gcreate (48+pos%,37,35,121,1,1)
    > gmove 1,1
    > gbox 33,119
    > ENDP
    >
    > PROC incursor: rem input function
    > local c%,x%,y%,f%(5),full% rem k%
    > guse inwin% :gat 2,7
    > cursor inwin%,0,3,ink%,2
    > while (k%<>13 or full% > k%=get :y%=gY
    > if k%<49 or k%>(48+sos%)
    > else :gat 2,y%
    > gcopy fwin%,45+(30*(k%-49)),figsize%,25,20,3
    > guess1+(y%-7)/inpos%,k%-48)
    > if y%=7 :f%(1)=1
    > elseif y%=7+(1*inpos%) :f%(2)=1
    > elseif y%=7+(2*inpos%) :f%(3)=1
    > elseif y%=7+(3*inpos%) :f%(4)=1
    > elseif y%=7+(4*inpos%) :f%(5)=1
    > endif
    > endif
    > full%=f%(1)+f%(2)+f%(3)+f%(4)+f%(5)
    > if k%=256 rem up arrow up and down to move corsor
    > if y%<=7 :y%=7+((ncode%)*inpos%)
    > endif rem wrap around
    > gAT 2,y%-inpos%
    > endif
    > if k%=257
    > if y%>=7+((ncode%-1)*inpos%) :y%=7-inpos%
    > endif rem wrap around
    > gAT 2,y%+inpos%
    > endif
    > if k%=32
    > gat 2,y%
    > gcopy fwin%,2,2,25,20,3

    :f%(1+((y%-7)/inpos%))=0
    > endif
    > rem ***********************************
    > if k%=$122
    > m:
    > k%=menu
    > if k% and (loc(h$,chr$(k%))<>0)
    > a$="proc"+chr$(k%)
    > @(a$):
    > endif
    > elseif k% and $200
    > k%=k%-$200
    > if loc(h$,chr$(k%))
    > a$="proc"+chr$(k%)
    > @(a$):
    > endif
    > rem return k%
    > endif
    > rem ***************************************
    > endwh
    > ENDP
    >
    > proc procx:
    > stop
    > endp
    >
    > proc proca:
    > local aboutw%
    > aboutw%=gcreate(100,40,260,115,1,1)
    > gborder 3
    > gfont 5 :gstyle 1
    > gat 10,10 :gprint " MasterMind (c) 1995 Iordani"
    > gstyle 0
    > gat 10,20 :gprint " email: somewhere@earth.net"
    > gat 30,30 :gprint " Keys, features and rules:"
    > gat 10,40 :gprint "Use arrows up and/or down to move cursor."
    > gat 10,50 :gprint "Number 1-6 for level 1. Max. no. of tries = 10"
    > gat 10,60 :gprint "Number 1-7 for level 2. Max no of tries = 14"
    > gat 10,70 :gprint "SPACE to delete entry or just overwrite it"
    > gat 10,80 :gprint "Black peg = right symbol in right position"
    > gat 10,90 :gprint "White peg = right symbol in wrong position"
    > gstyle 1
    > gat 90,100 :gprint "Hit any key"
    > gat 95,110 :gprint "Good luck"
    > get
    > guse inwin% :gclose aboutw%
    > endp
    >
    >
    > proc procn:
    > guse codewin% :gvisible on
    > guse swin% :gat 10,8
    > gcopy fwin%,370,10,55,145,3 :get
    > gclose 2 :gclose 3 :gclose 4 :gclose 5
    > main:
    > endp
    >
    > proc procp:
    > mm:
    > select:
    > endp
    >
    > proc procs:
    > guse codewin% :gvisible on
    > guse swin% :gat 10,8
    > gcopy fwin%,370,10,55,145,3 :get
    > endp
    >
    > PROC moveitpos%) rem copy the "colours" to window 1
    > guse 1 rem and move input window to next
    > gat 51+pos%,40 rem location
    > gcopy inwin%,3,3,30,116,0
    > gclose inwin%
    > ENDP
    >
    > PROC guessplace%,fig%) rem make an array of the guess
    > guess%(place%)=fig% rem for futher use
    > rem print place%,guess%(place%)
    > ENDP
    >
    >
    > PROC hide: rem make a hidden codewindow
    > codewin%=gcreate (4,38,40,119,0,0)
    > gborder 1
    > ENDP
    >
    > PROC coder: rem sets the nasty codes for you to solve
    > local c%,ypos%
    > c%=1
    > randomize second*minute rem prevent the same code to appear
    > guse codewin% rem at every start of the program
    > do
    > code%(c%)=(sos%*rnd+1)
    > gat 10,6+ypos%
    > gcopy fwin%,50+(30*(code%(c%)-1)),figsize%,20,20,3
    > ypos%=ypos%+inpos%
    > c%=c%+1
    > until c%=ncode%+1
    > endp
    >
    > PROC test: rem test the players guess
    > local c%,g%,bpeg%,wpeg%,codecop%(5)
    > c%=1 :g%=1
    > do
    > codecop%(c%)=code%(c%) rem copy code
    > if codecop%(c%)=guess%(c%) rem find clean match
    > bpeg%=bpeg%+1 rem count it/them
    > codecop%(c%)=-1 :guess%(c%)=-2 rem destroy copy of code
    > endif rem and guess to
    > c%=c%+1 rem prevent multiple counts
    > until c%=ncode%+1
    > c%=1
    > do rem find rigth "color" in
    > do rem wrong place. then same
    > if codecop%(c%)=guess%(g%) rem as above
    > wpeg%=wpeg%+1 :codecop%(c%)=-1
    > guess%(g%)=-2
    > endif
    > g%=g%+1
    > until g%=ncode%+1
    > c%=c%+1 :g%=1
    > until c%=ncode%+1
    > markbpeg%,wpeg%) rem send result for registration
    > ENDP rem on screen
    >
    > PROC markb%,w%) rem give player his feedback
    > local c%,c1%,bpeg%,wpeg%,xpos%
    > guse 1 :bpeg%=b% :wpeg%=w%
    > xpos%=51+(try%*36)
    > if try%>=10 :xpos%=375 :endif
    > c%=1
    > while b%>=c%
    > mposc%,xpos%)
    > gfill 12,12,0 :ggmode 1 :gbox 12,12 :ggmode 0
    > c%=c%+1
    > endwh
    > c1%=1
    > while w%>=c1%
    > mposc%,xpos%)
    > gfill 12,12,1 :gbox 12,12
    > c1%=c1%+1 :c%=c%+1
    > endwh
    > gfont 5 :gstyle 9 rem 11 9
    > gat 9-5*int(log(try%+1)),21 :gprint try%+1
    > if b%=ncode%
    > solved%=1
    > endif
    > endp
    >
    > proc mposc%,x%) rem where do we put thoose markings?
    > local xpos%
    > xpos%=x%
    > vector c%
    > func1,func2,func3,func4,func5
    > endv
    > func1::
    > gat xpos%,4 :return
    > func2::
    > gat xpos%+17,4 :return
    > func3::
    > gat xpos%,20 :return
    > func4::
    > gat xpos%+17,20 :return
    > func5::
    > gat xpos%+8,12 :return
    > endp
    >
    > PROC moveleft: rem move gameboard when total tries exceed 10
    > guse 1
    > gat 47,0
    > gcopy 1,83,0,359,159,3
    > endp
    >
    > proc m:
    > minit
    > mcard "Game","New",%n,"Quit",%x
    > mcard "Special","About",%a
    > endp
    >
    > PROC figwin: rem make a window for, and draw the symbols
    > local a%,b%,c%,y% rem (really a drag without a drawing program!)
    > fwin%=gcreate (0,0,460,159,0,0)
    >
    >
    >
    >
    >
    > rem white box*******************
    > gat 52,100
    > gbox 16,16 :gmove 1,1 :gbox 14,14
    > rem grey box *******************
    > gat 82,100 :gbox 16,16 :gmove 1,1 :gbox 14,14
    > gmove 2,2 :gpatt -1,10,10,0
    > rem black box*******************
    > gat 112,100 :gbox 16,16 :gmove 1,1 :gbox 14,14
    > gmove 2,2 :gfill 10,10,0
    > rem white circle****************
    > gat 142,100
    > gmove 5,0 :gfill 6,2,0 :gmove 6,1 :gfill 2,2,0
    > gmove 1,1 :gfill 2,2,0 :gmove 1,1 :gfill 2,2,0
    > gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    > gmove -1,1 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    > gmove -6,1 :gfill 6,2,0 :gmove -2,-1 :gfill 2,2,0
    > gmove -1,-1 :gfill 2,2,0 :gmove -1,-1 :gfill 2,2,0
    > gmove -1,-6 :gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    > gmove 1,-1 :gfill 2,2,0 :gmove 1,-1 :gfill 2,2,0
    > rem grey circle ******************************
    > gat 172,100
    > gmove 5,0 :gfill 6,2,0 :gmove 6,1 :gfill 2,2,0
    > gmove 1,1 :gfill 2,2,0 :gmove 1,1 :gfill 2,2,0
    > gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    > gmove -1,1 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    > gmove -6,1 :gfill 6,2,0 :gmove -2,-1 :gfill 2,2,0
    > gmove -1,-1 :gfill 2,2,0 :gmove -1,-1 :gfill 2,2,0
    > gmove -1,-6 :gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    > gmove 1,-1 :gfill 2,2,0 :gmove 1,-1 :gfill 2,2,0
    > gmove 3,2 :gpatt -1,4,10,0 :gmove -3,3 :gpatt -1,10,4,0
    > gmove 1,-2 :gpatt -1,2,2,0 :gmove 6,0 :gpatt -1,2,2,0
    > gmove 0,6 :gpatt -1,2,2,0 :gmove -6,0 :gpatt -1,2,2,0
    >
    > rem black circle******************************
    > gat 202,100
    > gmove 5,0 :gfill 6,2,0 :gmove 6,1 :gfill 2,2,0
    > gmove 1,1 :gfill 2,2,0 :gmove 1,1 :gfill 2,2,0
    > gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    > gmove -1,1 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    > gmove -6,1 :gfill 6,2,0 :gmove -2,-1 :gfill 2,2,0
    > gmove -1,-1 :gfill 2,2,0 :gmove -1,-1 :gfill 2,2,0
    > gmove -1,-6 :gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    > gmove 1,-1 :gfill 2,2,0 :gmove 1,-1 :gfill 2,2,0
    > rem fill it**********************
    > gmove 3,2 :gfill 4,10,0 :gmove -3,3 :gfill 10,4,0
    > gmove 1,-2 :gfill 2,2,0 :gmove 6,0 :gfill 2,2,0
    > gmove 0,6 :gfill 2,2,0 :gmove -6,0 :gfill 2,2,0
    > rem crossed box***********************
    > gat 232,100
    > gbox 16,16 :gmove 1,1 :gbox 14,14 :gmove 0,6
    > gfill 13,2,0 :gmove 6,-5 :gfill 2,12,0
    > rem and here comes the biggies puh! ********************
    > gat 50,72
    > rem white box*********************
    > gbox 20,20 :gmove 1,1 :gbox 18,18
    > gmove -1,-1 rem :gmove 0,25
    > rem grey box************************
    > gat 80,72
    > gbox 20,20 :gmove 1,1 :gbox 18,18 :gmove 2,2
    > gpatt -1,14,14,0
    > gmove -3,-3 rem :gmove 0,25
    > rem black box***********************
    > gat 110,72
    > ggrey 0
    > gfill 20,20,0 rem :gmove 1,1 :gbox 18,18
    > gmove 2,2 :ggmode 1 :gbox 16,16
    > ggmode 0
    > rem white circle********************
    > gat 140,79
    > gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    > gmove 1,-2 :gfill 2,2,0 :gmove 1,-1
    > gfill 2,2,0 :gmove 2,-1 :gfill 2,2,0
    > gmove 2,-1 :gfill 6,2,0
    > gmove 6,1 :gfill 2,2,0 :gmove 2,1 :gfill 2,2,0
    > gmove 1,1 :gfill 2,2,0 :gmove 1,2 :gfill 2,2,0
    > gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    > gmove -1,2 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    > gmove -2,1 :gfill 2,2,0 :gmove -6,1 :gfill 6,2,0
    > gmove -2,-1 :gfill 2,2,0 :gmove -2,-1 :gfill 2,2,0
    > gmove -1,-1 :gfill 2,2,0 :gmove -1,-2 :gfill 2,2,0
    > rem gmove -1,19
    > rem grey circle***************************
    > gat 170,79
    > gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    > gmove 1,-2 :gfill 2,2,0 :gmove 1,-1
    > gfill 2,2,0 :gmove 2,-1 :gfill 2,2,0
    > gmove 2,-1 :gfill 6,2,0
    > gmove 6,1 :gfill 2,2,0 :gmove 2,1 :gfill 2,2,0
    > gmove 1,1 :gfill 2,2,0 :gmove 1,2 :gfill 2,2,0
    > gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    > gmove -1,2 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    > gmove -2,1 :gfill 2,2,0 :gmove -6,1 :gfill 6,2,0
    > gmove -2,-1 :gfill 2,2,0 :gmove -2,-1 :gfill 2,2,0
    > gmove -1,-1 :gfill 2,2,0 :gmove -1,-2 :gfill 2,2,0
    > gmove 7,-10 :gpatt -1, 4,14,0 :gmove -2,1
    > gpatt -1,8,12,0 :gmove -1,1 :gpatt -1,10,10,0
    > gmove -1,1 :gpatt -1,12,8,0 :gmove -1,2 :gpatt -1,14,4,0
    > gmove -2,5
    > rem gmove -1,19 :ggrey 0
    > rem black circle**************************
    > gat 200,79
    > gfill 2,6,0 :gmove 1,-2 :gfill 2,2,0
    > gmove 1,-2 :gfill 2,2,0 :gmove 1,-1
    > gfill 2,2,0 :gmove 2,-1 :gfill 2,2,0
    > gmove 2,-1 :gfill 6,2,0
    > gmove 6,1 :gfill 2,2,0 :gmove 2,1 :gfill 2,2,0
    > gmove 1,1 :gfill 2,2,0 :gmove 1,2 :gfill 2,2,0
    > gmove 1,2 :gfill 2,6,0 :gmove -1,6 :gfill 2,2,0
    > gmove -1,2 :gfill 2,2,0 :gmove -1,1 :gfill 2,2,0
    > gmove -2,1 :gfill 2,2,0 :gmove -6,1 :gfill 6,2,0
    > gmove -2,-1 :gfill 2,2,0 :gmove -2,-1 :gfill 2,2,0
    > gmove -1,-1 :gfill 2,2,0 :gmove -1,-2 :gfill 2,2,0
    > gmove 7,-10 :gfill 4,14,0 :gmove -2,1
    > gfill 8,12,0 :gmove -1,1 :gfill 10,10,0
    > gmove -1,1 :gfill 12,8,0 :gmove -1,2 :gfill 14,4,0
    > rem crossed box****************************
    > gat 230,72
    > gbox 20,20 :gmove 1,1 :gbox 18,18
    > gmove 0,8 :gfill 17,2,0
    > gmove 8,-8 :gfill 2,17,0
    > gfont 11 :gstyle 9
    > rem ****************************
    > gat 281,37 :gprint "Well"
    > gat 278,62 :gprint "done"
    > gat 286,99 :gprint "Hit"
    > gat 282,119 :gprint "any"
    > gat 282,142 :gprint "key"
    > rem *************************************
    > gat 374,36 :gprint "Tough"
    > gat 382,64 :gprint "luck"
    > gat 386,99 :gprint "Hit"
    > gat 382,119 :gprint "any"
    > gat 382,142 :gprint "key"
    >
    > ENDP


    That looks brilliant Iordani and (LOL) I definitely won't be trying to copy
    it down but it looks like it will be great fun.
    I've got a horrible suspicion that I won't be seeing the 'Well Done' message
    very often. I downloaded a freebie called Vexed for my Palm Vx. It's one of
    those puzzle solving games where you have to move blocks around. I got as
    far as level 30 and have stuck there for days now.
    Evi



  6. Re: Psion 3a - Any good freeware?

    Evi wrote:


    > That looks brilliant Iordani and (LOL) I definitely won't be trying to
    > copy it down but it looks like it will be great fun.
    > I've got a horrible suspicion that I won't be seeing the 'Well Done'
    > message very often. I downloaded a freebie called Vexed for my Palm Vx.
    > It's one of those puzzle solving games where you have to move blocks
    > around. I got as far as level 30 and have stuck there for days now.


    I have Vexed on my NetBook.
    Can really really drive me nuts
    I'm currently on the Confusion Pack / Disturbance... is that one really
    solvable...??? Anyone here solved that one?

  7. Re: Psion 3a - Any good freeware?

    Evi wrote:
    >> Evi wrote:
    >>> I see that there is quite a lot of interesting freeware available
    >>> for the Psion 3a. Have any of you tried some which you can
    >>> recommend?
    >>>
    >>> Evi

    >>
    >> Anything by John Boyce, especially his "Data" program.
    >>
    >> Otherwise depends on your interests!
    >>
    >> Cheers, Mike.


    I already mentioned a bit of very specialist freeware of mine in your other
    thread. I was always disappointed in the lack of interest in one of my other
    Psion freebies (a list is on http://www.mjcoon.connectfree.co.uk/page8.htm):
    John Horton Conway's "Game of Life" artificial intelligence cellular
    automaton. But I guess that's another that appeals only to
    computers-for-their-own-sakes buffs!

    Regards, Mike.
    --
    If reply address = connectfee, add an r because it is free not fee.



  8. Re: Psion 3a - Any good freeware?


    "Mike Coon" wrote in message
    news:13buej0cgaqdb59@corp.supernews.com...
    > Evi wrote:
    > >> Evi wrote:
    > >>> I see that there is quite a lot of interesting freeware available
    > >>> for the Psion 3a. Have any of you tried some which you can
    > >>> recommend?
    > >>>
    > >>> Evi
    > >>
    > >> Anything by John Boyce, especially his "Data" program.
    > >>
    > >> Otherwise depends on your interests!
    > >>
    > >> Cheers, Mike.

    >
    > I already mentioned a bit of very specialist freeware of mine in your

    other
    > thread. I was always disappointed in the lack of interest in one of my

    other
    > Psion freebies (a list is on

    http://www.mjcoon.connectfree.co.uk/page8.htm):
    > John Horton Conway's "Game of Life" artificial intelligence cellular
    > automaton. But I guess that's another that appeals only to
    > computers-for-their-own-sakes buffs!
    >
    > Regards, Mike.

    Don't be disappointed Mike. I just didn't understand most of it - not smart
    enough. I've never
    heard of Garmin GPS waypoints and can't guess at what an artificial
    intelligence cellular automaton does.

    Evi





+ Reply to Thread