Metropoli BBS
VIEWER: edit.bas MODE: TEXT (CP437)
' Mukava ikonieditori, BootSector4:n omaa tekoa, saa käyttää vapaasti.
' Vaatii ADVBAS-alikirjaston  (MBNETISSÄ ADVBAS*.ZIP, 120kt)





DECLARE SUB hiiri ()
DECLARE SUB tauko ()
DECLARE SUB drawlabel ()
DECLARE SUB drawcolors (vari1, vari2)
DECLARE SUB drawcolorboxes ()
DECLARE SUB allcolors ()
DECLARE SUB frame ()
DECLARE SUB teksti (xxx, yyy, nimi$, vari)
DECLARE SUB colornumber (vari1, vari2)
DIM SHARED mouse%(5)              ' Hiiri
DIM SHARED colors(8)              ' Värien muistipaikat
DIM kuva(30, 30)                  ' Kuva
DIM tavu1 AS STRING * 1
CLEAR

FILENAME$ = "Untitled.ROM"


SCREEN 13: CLS
 leveys = 15                ' leveys
 korkeus = 15               ' korkeus

alku:
PLAY "p64"
CALL clrkbd                      ' tyhjennetään näppäimistöpuskuri

frame                            ' Piirretään alkuruutu


vari1 = 15                       ' 1. väri
vari2 = 20                       ' 2. väri
                               
 allcolors                        ' Piirtää väripaletin oikeaan alanurkkaan
  drawcolorboxes                   ' Piirtää kahdeksan värin muistipaikat
  CALL drawcolors(vari1, vari2)    ' Piirtää 1.- ja 2.värit
 drawlabel                         ' Piirtää nimen oikeaan ylänurkkaan


LOCATE 2, 28: PRINT FILENAME$

CALL teksti(289, 42, "C 1-", 16)
CALL teksti(288, 43, "C 1-", 31)
CALL teksti(289, 54, "C2-", 16)
CALL teksti(288, 55, "C2-", 31)
CALL colornumber(vari1, vari2)

PALETTE 255, (65536 * 1 * 13 * 4) + (256 * 1 * 13 * 4) + (1 * 13 * 4)
GOSUB drawcrossword
CALL teksti(291, 29, STR$(leveys) + " X" + STR$(korkeus), 16)
CALL teksti(290, 30, STR$(leveys) + " X" + STR$(korkeus), 31)


' mouse%(0) = x-akseli
' mouse%(1) = y-akseli
' mouse%(2) = vasen nappi pohjassa/ei pohjassa
' mouse%(3) = oikea nappi pohjassa/ei pohjassa
' mouse%(4) = vasen 'klikkaus'
' mouse%(5) = oikea 'klikkaus'
aloitus:
DO
hiiri

'New
IF mouse%(0) >= 241 AND mouse%(0) <= 283 AND mouse%(1) >= 22 AND mouse%(1) <= 30 AND mouse%(4) <> 0 THEN
  CALL mmcursoroff: CLEAR
    GOTO new
      END IF
'Save
IF mouse%(0) >= 241 AND mouse%(0) <= 283 AND mouse%(1) >= 31 AND mouse%(1) <= 38 AND mouse%(4) <> 0 THEN
  GOSUB save
    END IF
'Load
IF mouse%(0) >= 241 AND mouse%(0) <= 283 AND mouse%(1) >= 39 AND mouse%(1) <= 46 AND mouse%(4) <> 0 THEN
  GOSUB load
    END IF
'Quit
IF mouse%(0) >= 241 AND mouse%(0) <= 283 AND mouse%(1) >= 47 AND mouse%(1) <= 55 AND mouse%(4) <> 0 THEN
  GOTO quit
    END IF
'******
'*************
'************************
'*************
'******
IF mouse%(0) >= 207 AND mouse%(0) <= 232 AND mouse%(1) >= 71 AND mouse%(1) <= 159 AND mouse%(2) <> 0 THEN
 CALL mmcursoroff
  IF POINT(mouse%(0), mouse%(1)) <> 255 THEN
   vari1 = POINT(mouse%(0), mouse%(1))
   CALL drawcolors(vari1, vari2)
  CALL colornumber(vari1, vari2)
 END IF
END IF
IF mouse%(0) >= 207 AND mouse%(0) <= 232 AND mouse%(1) >= 71 AND mouse%(1) <= 159 AND mouse%(3) <> 0 THEN
 CALL mmcursoroff
  IF POINT(mouse%(0), mouse%(1)) <> 255 THEN
   vari2 = POINT(mouse%(0), mouse%(1))
   CALL drawcolors(vari1, vari2)
  CALL colornumber(vari1, vari2)
 END IF
END IF


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
IF mouse%(2) <> 0 AND mouse%(0) <= loppux AND mouse%(1) <= loppuy THEN
CALL mmcursoroff
IF POINT(mouse%(0), mouse%(1)) <> 255 THEN
PAINT (mouse%(0), mouse%(1)), vari1, 255
korkeusarvo = 0
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
IF POINT(i + 1, a + 1) <> 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 1, a + 1)
IF POINT(i + 1, a + 1) = 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 2, a + 2)
END IF
leveysarvo = leveysarvo + 1
NEXT i
 NEXT a
END IF
END IF
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
IF mouse%(3) <> 0 AND mouse%(0) <= loppux AND mouse%(1) <= loppuy THEN
CALL mmcursoroff
IF POINT(mouse%(0), mouse%(1)) <> 255 THEN
PAINT (mouse%(0), mouse%(1)), vari2, 255
korkeusarvo = 0
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
IF POINT(i + 1, a + 1) <> 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 1, a + 1)
IF POINT(i + 1, a + 1) = 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 2, a + 2)
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
END IF
END IF
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''Hiiren pipettitoiminnot''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
IF mouse%(0) >= 239 AND mouse%(0) <= 316 AND mouse%(1) >= 77 AND mouse%(1) <= 196 AND mouse%(2) <> 0 THEN
 CALL mmcursoroff
  vari1 = POINT(mouse%(0), mouse%(1))
   CALL drawcolors(vari1, vari2)    ' Piirtää 1.- ja 2.värit
CALL colornumber(vari1, vari2)
    END IF
    IF mouse%(0) >= 239 AND mouse%(0) <= 316 AND mouse%(1) >= 77 AND mouse%(1) <= 196 AND mouse%(3) <> 0 THEN
   CALL mmcursoroff
  vari2 = POINT(mouse%(0), mouse%(1))
 CALL drawcolors(vari1, vari2)    ' Piirtää 1.- ja 2.värit
CALL colornumber(vari1, vari2)
END IF

'*************************Näppäimistöpuskuri****************************

SELECT CASE INKEY$
  CASE CHR$(0) + ";": colors(0) = vari1: drawcolorboxes         ' F1-nappi
  CASE CHR$(0) + "<": colors(1) = vari1: drawcolorboxes         ' F2-nappi
  CASE CHR$(0) + "=": colors(2) = vari1: drawcolorboxes         ' jne...
  CASE CHR$(0) + ">": colors(3) = vari1: drawcolorboxes
  CASE CHR$(0) + "?": colors(4) = vari1: drawcolorboxes
  CASE CHR$(0) + "@": colors(5) = vari1: drawcolorboxes
  CASE CHR$(0) + "A": colors(6) = vari1: drawcolorboxes
  CASE CHR$(0) + "B": colors(7) = vari1: drawcolorboxes
  CASE CHR$(0) + "C": colors(8) = vari1: drawcolorboxes
 
   CASE CHR$(0) + "^": colors(0) = vari2: drawcolorboxes
   CASE CHR$(0) + "_": colors(1) = vari2: drawcolorboxes
   CASE CHR$(0) + "`": colors(2) = vari2: drawcolorboxes
   CASE CHR$(0) + "a": colors(3) = vari2: drawcolorboxes
   CASE CHR$(0) + "b": colors(4) = vari2: drawcolorboxes
   CASE CHR$(0) + "c": colors(5) = vari2: drawcolorboxes
   CASE CHR$(0) + "d": colors(6) = vari2: drawcolorboxes
   CASE CHR$(0) + "e": colors(7) = vari2: drawcolorboxes
   CASE CHR$(0) + "f": colors(8) = vari2: drawcolorboxes
CASE ELSE
END SELECT

LOOP

'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
'│││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││││
'///////////////////////////////////////////////////////////////////////////
drawcrossword:
xarvo = ((175 + leveys) / leveys)
yarvo = ((175 + korkeus) / korkeus)
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
LINE (i, a)-(i + xarvo, a + yarvo), 0, BF
LINE (i, a)-(i + xarvo, a + yarvo), 255, B
loppux = i + xarvo: loppuy = a + yarvo
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
LINE (198, 165)-(228, 195), 0, BF
RETURN



quit:
PALETTE
FOR i = 0 TO 63
FOR ii = 0 TO 255
OUT (&H3C7), ii
r = ABS(INP(&H3C9) - 1)
g = ABS(INP(&H3C9) - 1)
B = ABS(INP(&H3C9) - 1)
OUT (&H3C8), ii
OUT (&H3C9), r
OUT (&H3C9), g
OUT (&H3C9), B
NEXT ii
NEXT i
END
'████████    ██    ██   ██ ████████
'██         ██ ██  ██   ██ ██
'██        ██   ██ ██   ██ ██
'██████    ██   ██ ██   ██ ██████
'     ██   ███████  ██  ██ ██
'     ██   ██   ██  ██ ██  ██
'████████  ██   ██   ██    ████████

save:
xarvo = ((175 + leveys) / leveys)
yarvo = ((175 + korkeus) / korkeus)
korkeusarvo = 0
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
IF POINT(i + 1, a + 1) <> 255 THEN kuva(leveysarvo, korkeusarvo) = POINT(i + 1, a + 1)
IF POINT(i + 1, a + 1) = 255 THEN kuva(leveysarvo, korkeusarvo) = POINT(i + 2, a + 2)
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a

CALL mmcursoroff
LINE (40, 50)-(230, 100), 145, BF
CALL teksti(61, 59, "New or old ROM...", 16)
CALL teksti(60, 60, "New or old ROM...", 31)
CALL teksti(90, 76, "NEW", 31)
CALL teksti(90, 90, "OLD", 31)
CIRCLE (81, 73), 2, 16: DRAW "p16,16"
CIRCLE (80, 74), 2, 15: DRAW "p15,15"
CIRCLE (81, 87), 2, 16: DRAW "p16,16"
CIRCLE (80, 88), 2, 15: DRAW "p15,15"
LINE (141, 74)-(181, 84), 20, BF
LINE (140, 75)-(180, 85), 26, BF
CALL teksti(155, 81, "OK...", 16)
CALL teksti(154, 82, "OK...", 31)
alkuluku = 1
saveongelma:
CALL mmcursoroff
CIRCLE (81, 73), 2, 16: DRAW "p16,16"
CIRCLE (80, 74), 2, 15: DRAW "p15,15"
CIRCLE (81, 87), 2, 16: DRAW "p16,16"
CIRCLE (80, 88), 2, 15: DRAW "p15,15"
SELECT CASE alkuluku
CASE 1
CIRCLE (80, 74), 1, 16: DRAW "p16,16"
CASE 2
CIRCLE (80, 88), 1, 16: DRAW "p16,16"
CASE ELSE
END SELECT

DO
hiiri
IF mouse%(0) >= 74 AND mouse%(0) <= 108 AND mouse%(1) >= 70 AND mouse%(1) <= 79 AND mouse%(2) <> 0 THEN
  alkuluku = 1: GOTO saveongelma
    END IF
IF mouse%(0) >= 74 AND mouse%(0) <= 108 AND mouse%(1) >= 83 AND mouse%(1) <= 92 AND mouse%(2) <> 0 THEN
  alkuluku = 2: GOTO saveongelma
    END IF
IF mouse%(0) >= 140 AND mouse%(0) <= 180 AND mouse%(1) >= 75 AND mouse%(1) <= 85 AND mouse%(4) <> 0 THEN
  GOTO jatko
    END IF
      IF INKEY$ = CHR$(13) THEN GOTO jatko
        LOOP
jatko:
 CALL mmcursoroff
  LINE (40, 50)-(230, 100), 145, BF
   CALL teksti(61, 59, "Input filename to save...", 16)
    CALL teksti(60, 60, "Input filename to save...", 31)
     LINE (45, 78)-(225, 89), 0, BF
      LINE (45, 78)-(225, 89), 211, B
       LOCATE 11, 7: INPUT "", FILENAME$
        IF FILENAME$ = "" THEN GOTO jatko

'************************************
'***Jos ROM tallennetaan vanhaksi ***
'************************************
IF alkuluku = 2 THEN
OPEN FILENAME$ FOR OUTPUT AS #1
FOR a = 1 TO leveys
FOR i = 1 TO leveys
PRINT #1, kuva(i, a)
NEXT i
NEXT a
CLOSE
END IF
'***********************************
'***Jos ROM tallennetaan uudeksi ***
'***********************************
IF alkuluku = 1 THEN
OPEN FILENAME$ FOR OUTPUT AS #1
PRINT #1, CHR$(leveys + 60);
PRINT #1, CHR$(korkeus + 60);
FOR a = 1 TO leveys
FOR i = 1 TO leveys
PRINT #1, CHR$(kuva(i, a));
NEXT i
NEXT a
CLOSE
END IF

frame
allcolors
drawcolorboxes
CALL drawcolors(vari1, vari2)
drawlabel
LOCATE 2, 28: PRINT FILENAME$
CALL teksti(289, 42, "C 1-", 16)
CALL teksti(288, 43, "C 1-", 31)
CALL teksti(289, 54, "C2-", 16)
CALL teksti(288, 55, "C2-", 31)
CALL colornumber(vari1, vari2)
CALL teksti(291, 29, STR$(leveys) + " X" + STR$(korkeus), 16)
CALL teksti(290, 30, STR$(leveys) + " X" + STR$(korkeus), 31)
LINE (198, 165)-(228, 195), 0, BF
korkeusarvo = 0
xarvo = ((175 + leveys) / leveys)
yarvo = ((175 + korkeus) / korkeus)
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
LINE (i, a)-(i + xarvo, a + yarvo), kuva(leveysarvo, korkeusarvo), BF
LINE (i, a)-(i + xarvo, a + yarvo), 255, B
loppux = i + xarvo: loppuy = a + yarvo
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
LINE (198, 165)-(228, 195), 0, BF
GOTO aloitus
RETURN

'████         ████      ██   ████
'████       ██    ██  ██  ██ ██ ██
'████       ██    ██  ██  ██ ██  ██
'████       ██    ██  ██  ██ ██  ██
'████       ██    ██  ██████ ██  ██
'████       ██    ██  ██  ██ ██ ██
'██████████   ████    ██  ██ ████
load:
CALL mmcursoroff
LINE (40, 50)-(230, 100), 145, BF
CALL teksti(61, 59, "Input filename to open...", 16)
CALL teksti(60, 60, "Input filename to open...", 31)


LINE (45, 78)-(225, 89), 0, BF
LINE (45, 78)-(225, 89), 211, B
LOCATE 11, 7: INPUT "", FILENAME$

CALL exist(FILENAME$ + CHR$(0), find)
IF find = 0 THEN
 LINE (45, 78)-(225, 89), 0, BF
  LINE (45, 78)-(225, 89), 211, B
   LOCATE 11, 7: COLOR 12: PRINT "File not found........"
    tauko
   CLEAR : COLOR 15
  FILENAME$ = "Untitled.ROM"
 leveys = 15                ' leveys
korkeus = 15               ' korkeus
GOTO alku
END IF

OPEN FILENAME$ FOR INPUT AS #1
INPUT #1, XX$
XX$ = LEFT$(XX$, 1)
CLOSE
ROMAIKA = 0
IF XX$ = "0" THEN ROMAIKA = 1
IF XX$ = "1" THEN ROMAIKA = 1
IF XX$ = "2" THEN ROMAIKA = 1
IF XX$ = "3" THEN ROMAIKA = 1
IF XX$ = "4" THEN ROMAIKA = 1
IF XX$ = "5" THEN ROMAIKA = 1
IF XX$ = "6" THEN ROMAIKA = 1
IF XX$ = "7" THEN ROMAIKA = 1
IF XX$ = "8" THEN ROMAIKA = 1
IF XX$ = "9" THEN ROMAIKA = 1
'***********************************************
'*** Jos ROMAIKA = 1 niin se on vanhaa muotoa***
'***********************************************
IF ROMAIKA = 1 THEN
frame
allcolors
drawcolorboxes
CALL drawcolors(vari1, vari2)
drawlabel
leveys = 15                ' leveys on vanhoissa rommeissa AINA 15
korkeus = 15               ' korkeus on vanhoissa rommeissa AINA 15
LOCATE 2, 28: PRINT FILENAME$
CALL teksti(289, 42, "C 1-", 16)
CALL teksti(288, 43, "C 1-", 31)
CALL teksti(289, 54, "C2-", 16)
CALL teksti(288, 55, "C2-", 31)
CALL colornumber(vari1, vari2)
CALL teksti(291, 29, STR$(leveys) + " X" + STR$(korkeus), 16)
CALL teksti(290, 30, STR$(leveys) + " X" + STR$(korkeus), 31)
LINE (198, 165)-(228, 195), 0, BF
OPEN FILENAME$ FOR INPUT AS #1
leveysarvo = 0: korkeusarvo = 0
xarvo = ((175 + leveys) / leveys)
yarvo = ((175 + korkeus) / korkeus)
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
INPUT #1, VARIARVO
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
LINE (i, a)-(i + xarvo, a + yarvo), VARIARVO, BF
LINE (i, a)-(i + xarvo, a + yarvo), 255, B
loppux = i + xarvo: loppuy = a + yarvo
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
CLOSE
korkeusarvo = 0
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
IF POINT(i + 1, a + 1) <> 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 1, a + 1)
IF POINT(i + 1, a + 1) = 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 2, a + 2)
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
END IF

'*******************************************
'*** Jos ROMAIKA = 0 niin se on uusi ROM ***
'*******************************************
IF ROMAIKA = 0 THEN
frame
allcolors
drawcolorboxes
CALL drawcolors(vari1, vari2)
drawlabel
LOCATE 2, 28: PRINT FILENAME$
CALL teksti(289, 42, "C 1-", 16)
CALL teksti(288, 43, "C 1-", 31)
CALL teksti(289, 54, "C2-", 16)
CALL teksti(288, 55, "C2-", 31)
CALL colornumber(vari1, vari2)
CALL teksti(291, 29, STR$(leveys) + " X" + STR$(korkeus), 16)
CALL teksti(290, 30, STR$(leveys) + " X" + STR$(korkeus), 31)
LINE (198, 165)-(228, 195), 0, BF

OPEN FILENAME$ FOR BINARY AS #1
GET #1, 1, tavu1: leveys = ASC(tavu1) - 60
GET #1, 2, tavu1: korkeus = ASC(tavu1) - 60
FOR a = 1 TO korkeus
FOR i = 1 TO leveys
GET #1, , tavu1
kuva(i, a) = ASC(tavu1)
NEXT i
NEXT a
CLOSE
korkeusarvo = 0
xarvo = ((175 + leveys) / leveys)
yarvo = ((175 + korkeus) / korkeus)
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
LINE (i, a)-(i + xarvo, a + yarvo), kuva(leveysarvo, korkeusarvo), BF
LINE (i, a)-(i + xarvo, a + yarvo), 255, B
loppux = i + xarvo: loppuy = a + yarvo
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
LINE (198, 165)-(228, 195), 0, BF
korkeusarvo = 0
FOR a = 0 TO korkeus * yarvo STEP yarvo
leveysarvo = 1: korkeusarvo = korkeusarvo + 1
FOR i = 0 TO leveys * xarvo STEP xarvo
IF leveysarvo <= leveys AND korkeusarvo <= korkeus THEN
IF POINT(i + 1, a + 1) <> 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 1, a + 1)
IF POINT(i + 1, a + 1) = 255 THEN PSET (197 + leveysarvo, 164 + korkeusarvo), POINT(i + 2, a + 2)
END IF
leveysarvo = leveysarvo + 1
NEXT i
NEXT a
END IF
RETURN

'████     ██ ████████  ██        ██
'██ ██   ██  ██        ██        ██
'██  ██  ██  ██        ██        ██
'██  ██  ██  ██████    ██        ██
'██   ██ ██  ██        ██   ██   ██
'██   ██ ██  ██        ██ ██  ██ ██
'██     ██   ████████  ████    ████
new:
CALL mmcursoroff
LINE (40, 50)-(230, 100), 145, BF
CALL teksti(61, 59, "Input width and height...", 16)
CALL teksti(60, 60, "Input width and height...", 31)

LINE (78, 72)-(90, 86), 18, BF
LINE (78, 72)-(90, 86), 221, B
PSET (90, 86), 221: DRAW "e7h7bd2br1p221,221"
PSET (78, 86), 221: DRAW "h7e7bd2bl1p221,221"
          
LINE (118, 72)-(130, 86), 18, BF
LINE (118, 72)-(130, 86), 221, B
PSET (130, 86), 221: DRAW "e7h7bd2br1p221,221"
PSET (118, 86), 221: DRAW "h7e7bd2bl1p221,221"

CALL teksti(103, 81, "X", 221)

LINE (161, 74)-(201, 84), 20, BF
LINE (160, 75)-(200, 85), 26, BF
CALL teksti(175, 81, "OK...", 16)
CALL teksti(174, 82, "OK...", 31)
leveys = 15
korkeus = 15
newongelma:
IF leveys < 1 THEN leveys = 1
IF korkeus < 1 THEN korkeus = 1

IF leveys > 30 THEN leveys = 30
IF korkeus > 30 THEN korkeus = 30

LINE (78, 72)-(90, 86), 18, BF
LINE (78, 72)-(90, 86), 221, B
LINE (118, 72)-(130, 86), 18, BF
LINE (118, 72)-(130, 86), 221, B

CALL teksti(79, 81, STR$(leveys), 31)
CALL teksti(119, 81, STR$(korkeus), 31)


DO
hiiri
'*******leveys********
IF mouse%(4) <> 0 AND mouse%(0) >= 71 AND mouse%(0) <= 78 AND mouse%(1) >= 72 AND mouse%(1) <= 86 THEN
  CALL mmcursoroff
    leveys = leveys - 1
      GOTO newongelma
        END IF
IF mouse%(4) <> 0 AND mouse%(0) >= 90 AND mouse%(0) <= 97 AND mouse%(1) >= 72 AND mouse%(1) <= 86 THEN
  CALL mmcursoroff
    leveys = leveys + 1
      GOTO newongelma
        END IF
'*******korkeus********
IF mouse%(4) <> 0 AND mouse%(0) >= 111 AND mouse%(0) <= 118 AND mouse%(1) >= 72 AND mouse%(1) <= 86 THEN
  CALL mmcursoroff
    korkeus = korkeus - 1
      GOTO newongelma
        END IF
IF mouse%(4) <> 0 AND mouse%(0) >= 130 AND mouse%(0) <= 137 AND mouse%(1) >= 72 AND mouse%(1) <= 86 THEN
  CALL mmcursoroff
    korkeus = korkeus + 1
      GOTO newongelma
        END IF

IF mouse%(4) <> 0 AND mouse%(0) >= 160 AND mouse%(0) <= 200 AND mouse%(1) >= 75 AND mouse%(1) <= 85 THEN
  CALL mmcursoroff
   FILENAME$ = "Untitled.ROM"
    GOTO alku
      END IF

IF INKEY$ = CHR$(13) THEN
 FILENAME$ = "Untitled.ROM"
  GOTO alku
   END IF
LOOP

SUB allcolors
LINE (240, 78)-(317, 197), 16, BF
vari = 0
FOR a = 77 TO 193 STEP 6
FOR i = 239 TO 311 STEP 6
LINE (i, a)-(i + 5, a + 5), vari, BF
vari = vari + 1
IF vari = 248 THEN vari = 0
NEXT i
NEXT a
END SUB

SUB colornumber (vari1, vari2) STATIC
LINE (302, 35)-(318, 60), 0, BF
CALL teksti(302, 43, STR$(vari1), 31)
CALL teksti(302, 55, STR$(vari2), 31)
END SUB

SUB drawcolorboxes STATIC
a = 0
FOR i = 70 TO 157 STEP 10
LINE (206, i)-(234, i + 10), colors(a), BF
LINE (206, i)-(234, i + 10), 26, B
a = a + 1
NEXT i

END SUB

SUB drawcolors (vari1, vari2)
LINE (206, 39)-(236, 59), vari2, BF
LINE (204, 24)-(234, 44), vari1, BF
END SUB

SUB drawlabel
LINE (214, 6)-(314, 16), 0, BF
LINE (214, 6)-(314, 16), 225, B
END SUB

SUB frame
LINE (1, 1)-(201, 199), 25, BF
LINE (0, 0)-(200, 198), 221, BF

LINE (203, 1)-(319, 199), 25, BF
LINE (202, 0)-(318, 198), 241, BF

LINE (241, 19)-(286, 63), 9, B
LINE (240, 18)-(285, 62), 30, B
LINE (241, 19)-(284, 61), 0, BF

LOCATE 4, 32: PRINT "NEW"
LOCATE 5, 32: PRINT "SAVE"
LOCATE 6, 32: PRINT "LOAD"
LOCATE 7, 32: PRINT "QUIT"

END SUB

SUB hiiri STATIC
CALL mmcursoron
CALL mmclick(mouse%(4), mouse%(5))
CALL mmbutton(mouse%(2), mouse%(3))
CALL mmgetloc(mouse%(0), mouse%(1))
mouse%(0) = CINT(mouse%(0) / 2)
END SUB

SUB tauko
DO: LOOP WHILE INKEY$ = ""
END SUB

SUB teksti (xxx, yyy, nimi$, vari)
a$ = "u2e1u1r1d1f1d2br2"
B$ = "u4r2f1g1f1g1l2br5"
c$ = "u4r3l3d4r3br2"
d$ = "u4r1f1d2g1l1br4"
e$ = "u4r3l3d2r2l2d2r3br2"
f$ = "u4r3l3d2r2bd2br3"
g$ = "u4r3l3d4r3u1bd1br2"
h$ = "u4d2r2u2d4br2"
i$ = "u4bd4br2"
j$ = "r1u4br2bd4"
k$ = "u4d2r1e1u1g1d2f1br2"
l$ = "u4d4r3br2"
m$ = "u4r1f1e1r1d4br2"
n$ = "u4f3u3d4br2"
o$ = "u4r3d4l3br5"
p$ = "u4r3d2l3br5bd2"
q$ = "u4r3d4l3br2d1bu1br3"
r$ = "u4r3d2l3r2d1f1br2"
s$ = "r3u2l3u2r3br2bd4"
t$ = "br1u4l1r2br2bd4"
u$ = "u4d4r3u4br2bd4"
v$ = "bu4d2f1d1r1u1e1u2br2bd4"
w$ = "u4d4r1e1f1r1u4br2bd4"
x$ = "u1e2u1bl2d1f2d1br2"
y$ = "u2h1u1d1f1e1u1br2bd4"
z$ = "r3l3u1e2u1l3br5bd4"
a1$ = "u4g1e1br2bd4"
a2$ = "r3l3e3h1l1g1br5bd3"
a3$ = "r1e1h1e1h1l1br4bd4"
a4$ = "br2u2r1l3e2br3bd4"
a5$ = "r2e1h1l2u2r3br2bd4"
a6$ = "u4r3l3d4r3u2l3br5bd2"
a7$ = "br2u2e1u1l3br5bd4"
a8$ = "u4r3d4l3u2r3bd2br2"
a9$ = "r3u4l3d2r3br2bd2"
a0$ = "u4r3d4l3br5"
aa$ = "bu3u1br2d1bd3br2"
piste$ = "u1d1br2"
PSET (xxx, yyy), POINT(xxx, yyy)
DRAW "c" + STR$(vari)
nimi$ = LCASE$(nimi$)
etu2 = 0
etu = LEN(nimi$)
DO UNTIL etu2 = etu
etu2 = etu2 + 1
etu$ = MID$(nimi$, etu2, 1)
IF etu$ = "a" THEN DRAW a$
IF etu$ = "b" THEN DRAW B$
IF etu$ = "c" THEN DRAW c$
IF etu$ = "d" THEN DRAW d$
IF etu$ = "e" THEN DRAW e$
IF etu$ = "f" THEN DRAW f$
IF etu$ = "g" THEN DRAW g$
IF etu$ = "h" THEN DRAW h$
IF etu$ = "i" THEN DRAW i$
IF etu$ = "j" THEN DRAW j$
IF etu$ = "k" THEN DRAW k$
IF etu$ = "l" THEN DRAW l$
IF etu$ = "m" THEN DRAW m$
IF etu$ = "n" THEN DRAW n$
IF etu$ = "o" THEN DRAW o$
IF etu$ = "p" THEN DRAW p$
IF etu$ = "q" THEN DRAW q$
IF etu$ = "r" THEN DRAW r$
IF etu$ = "s" THEN DRAW s$
IF etu$ = "t" THEN DRAW t$
IF etu$ = "u" THEN DRAW u$
IF etu$ = "v" THEN DRAW v$
IF etu$ = "w" THEN DRAW w$
IF etu$ = "x" THEN DRAW x$
IF etu$ = "y" THEN DRAW y$
IF etu$ = "z" THEN DRAW z$
IF etu$ = "1" THEN DRAW a1$
IF etu$ = "2" THEN DRAW a2$
IF etu$ = "3" THEN DRAW a3$
IF etu$ = "4" THEN DRAW a4$
IF etu$ = "5" THEN DRAW a5$
IF etu$ = "6" THEN DRAW a6$
IF etu$ = "7" THEN DRAW a7$
IF etu$ = "8" THEN DRAW a8$
IF etu$ = "9" THEN DRAW a9$
IF etu$ = "0" THEN DRAW a0$
IF etu$ = " " THEN DRAW "br2"
IF etu$ = "-" THEN DRAW "bu2r2bd2br2"
IF etu$ = "." THEN DRAW piste$
LOOP
END SUB

[ RETURN TO DIRECTORY ]