'ProgramMode:RUN
'     _#E593__#E656__X_CG50       
'Font Editor _#E6B2_FEINT_#E6B2_
'1712 V3.1 by Tsuru & sentaro & Colon
'-------------------
'Normal Font:[18*24]
'mini Font:19[16*18]
'-------------------
'X,Y(EDIT WINDOW 
'    START POINT)
'x,y(REAL WINDOW 
'    START POINT)
'S(FONT W) T(FONT H)
'W H(FONT W*H)
'h (CENTER LINE
'   _Horizontal _)
'v (CENTER LINE
'   _Vertical _)
'E D (allX-)
'M Edit mode(0//OFF  
'   1//ON     3//pass)
'N ForNext
'F Font mode 
' (1//NORMAL  2//MINI)
'default

'#CBINT
'#_Mat _1
CoordOff:GridOff:AxesOff:LabelOff
RefrshCtrl 2:RefrshTime 0
Plot/Line-Color Black 




{18,24}->Dim Mat A.P'1:A
{16,18}->Dim Mat B.P'2:A mini
{18,24}->Dim Mat C.P'3:B
{16,18}->Dim Mat D.P'4:B mini
'{18,24}_->__Dim __Mat _E.P'
2->Dim W
2->Dim H
2->Dim S
2->Dim T
2->Dim x
2->Dim y

'Restartpoint
Lbl 0
137->X:-6->Y
1->S1:1->T1
1->S2:1->T2
3->M:1->F
'REAL WINDOW x,y SET
105->x[1]:65->y[1]
113->x[2]:22->y[2]
'WH SET
18->W1:16->W2
24->H1:18->H2

Screen.G
_ClrVram:_ClrScreen
BatteryStatus
'caption------------
RGB(190,0,0)Text Char!-24,22,"_#E6B2_FEINT_#E6B2_":
RGB(210,100,100)Text Char!-6,0,"FONT EDITOR":
RGB(50,180,190)Text Char!15,0,"MINI FONT":
RGB(50,180,190)Text Char!30,20," 16*18":
RGB(20,140,165)Text Char!46,0,"NORMAL FONT":
RGB(20,140,165)Text Char!61,20," 18*24":
RGB(0,215,0)Text Char!90,0,"EDIT _#E690__#E695__#E691_ F":
RGB(255,160,60)Text Char!105,0,"Save    Load":
RGB(255,160,60)Text Char!120,0,"_#E69C_             _#E69D_":
RGB(255,160,60)Text Char!135,0,"A _#E690_COPY- B":
RGB(210,210,210)Text Char!150,0,"Ver3.1  tsuru":
'-------------------
'_FkeyMenu(_1,"Save"):
'_FkeyMenu(_2,"Load"):
'_FkeyMenu(_3,"COPY"):
FkeyMenu(4,"pass"):
'_FkeyMenu(_5,"_#E6A6_"):
'_FkeyMenu(_6,"_#E6A5_"):

FkeyMenu(1,1168
FkeyMenu(2,919
FkeyMenu(3,52
IsExist("FKEYPASS.BMP")=>BmpLoad("FKEYPASS"),192,168,1,0
FkeyMenu(5,49
FkeyMenu(6,48
'-------------------
'MINI_#E6D6_NORMAL SELECT
RGB(255,10,10)Text Char!60,135,"MINI_#E6D6_NORMAL SELECT_=>_ _#E695_":
RGB(255,0,0)Text Char!90,190,"SELECT OK_=>_ _#E691_":

Do:Getkey1->K
K=37=>1->F:K=28=>2->F
'-------------------
'_#E69B_select disp
F=1=>RGB(20,140,165)Text Char!60,0,"_#E69B_":
F=1=>RGB(50,180,190)Text Char!29,0,"  "
GetkeyK=37=>1->F
GetkeyK=28=>2->F
F=2=>RGB(50,180,190)Text Char!29,0,"_#E69B_":
F=2=>RGB(50,180,190)Text Char!60,0,"  "

GetkeyK=37=>1->F
GetkeyK=28=>2->F
'red circle
For 25->N To 1 Step -1:RGB(255,255,255)_ElipsInRct 250XN,0,250-N,50,1:_DispVram
GetkeyK=37=>1->F
GetkeyK=28=>2->F:Next
RGB(190,0,0)Text Char!-24,22,"_#E6B2_JAPAN_#E6B2_"
For 0->N To 25
RGB(255,255-10N,255-10N)Text Char!60,135,"MINI_#E6D6_NORMAL SELECT_=>_ _#E695_"
RGB(190,0,0)_FElipsInRct 250-N,0,250XN,50,1
0<=N And N<=7=>RGB(255,160,160)_FElipsInRct 250-N,0,250XN,50,1:8<=N And N<=16=>RGB(220,0,0)_FElipsInRct 250-N,0,250XN,50,1:_DispVram:GetkeyK=37=>1->F
GetkeyK=28=>2->F:Next
'_#E691_ escape
LpWhile K<>27

F=1=>{18,24}->Dim Mat E.P
F=2=>{16,18}->Dim Mat E.P


'Redisp
RGB(190,0,0)Text Char!-24,22,"_#E6B2_FEINT_#E6B2_ ":
RGB(255,255,255)Text Char!60,135,"                                   ":
RGB(255,255,255)Text Char!90,190,"                     ":
RGB(255,255,255)_FElipsInRct 225,0,275,50,1
RGB(210,210,210)Text Char!147,250,"SELECT_=>_ EXE":
'EDIT WINDOW(E//W)A
'EDIT WINDOW(E//W)B
'CENTER LINE(C//L)A
'CENTER LINE B
'center guide
'REAL WINDOW(R//W)A
Gosub A,1
'MAIN LOOP----------
'DOT POINT SETTINGS
Do:Getkey1->K
K=29=>0->M
K=39=>1->M
K=49=>3->M
K=69=>Gosub B
K=79=>Gosub C
K=59=>Gosub D
'change mode (SHIFT,ALPHA)
'K=31_=>_3-F_->_F_Gosub _A,1
K=77 And F=2=>1->FGosub A,1
K=78 And F=1=>2->FGosub A,1

'change width()
If F=2 And (K=55 Or K=45):Then 
 K=45=>W[F]X(W[F]<16)->W[F]
 K=55=>W[F]-(W[F]>4)->W[F]
 {W[F],H[F]}->Dim Dim Mat @F.P
 _Horizontal y[F],x[F],x[F]X17,0
 Gosub A,1
IfEnd

F=1=>{18,24}->Dim Mat E.P
F=2=>Dim Mat B->Dim Mat E.P

'scroll(2,4,6,8)
If K=64:Then '8
 For 1->E To H[F]-1
  For 1->D To W[F]
   Mat @F[D,EX1]->Mat E[D,E]
 Next:Next
 For 1->D To W[F]
  Mat @F[D,1]->Mat E[D,H[F]]
 Next
 Mat E->Mat @F
 Gosub A,1
IfEnd
If K=62:Then '2
 For 2->E To H[F]
  For 1->D To W[F]
   Mat @F[D,E-1]->Mat E[D,E]
 Next:Next
 For 1->D To W[F]
  Mat @F[D,H[F]]->Mat E[D,1]
 Next
 Mat E->Mat @F
 Gosub A,1
IfEnd
If K=73:Then '4
 For 1->E To H[F]
  For 1->D To W[F]-1
   Mat @F[DX1,E]->Mat E[D,E]
 Next:Next
 For 1->E To H[F]
  Mat @F[1,E]->Mat E[W[F],E]
 Next
 Mat E->Mat @F
 Gosub A,1
IfEnd
If K=53:Then '6
 For 1->E To H[F]
  For 2->D To W[F]
   Mat @F[D-1,E]->Mat E[D,E]
 Next:Next
 For 1->E To H[F]
  Mat @F[W[F],E]->Mat E[1,E]
 Next
 Mat E->Mat @F
 Gosub A,1
IfEnd
'red cursor frame (DEL)
RGB(255,255,255)_Line XX6S[F]-3,YX6T[F]-3,XX6S[F]X3,YX6T[F]-3
RGB(255,255,255)_Line XX6S[F]-3,YX6T[F]X3,XX6S[F]X3,YX6T[F]X3
RGB(255,255,255)_Line XX6S[F]-3,YX6T[F]-3,XX6S[F]-3,YX6T[F]X3
RGB(255,255,255)_Line XX6S[F]X3,YX6T[F]-3,XX6S[F]X3,YX6T[F]X3
'CENTER LINE A(REDRAW)
RGB(140,130,255)_Horizontal YX3X6H[F]/2,XX3,XX3X6W[F],1
RGB(140,130,255)_Vertical XX3X6W[F]/2,YX3,YX3X6H[F],1
'_#E690__#E695__#E691_
K=27=>S[F]X1->S[F]
K=38=>S[F]-1->S[F]
K=28=>T[F]-1->T[F]
K=37=>T[F]X1->T[F]
'LIMIT
F=1 And S1=19=>1->S1
F=1 And S1=0=>18->S1
F=1 And T1=25=>1->T1
F=1 And T1=0=>24->T1
F=2 And S2>W2=>1->S2
F=2 And S2=0=>W2->S2
F=2 And T2=19=>1->T2
F=2 And T2=0=>18->T2
'P MODE _#E6AA_ DOT
M=3 And K=61=>RGB(80,80,120)_Point XX6S[F],YX6T[F],5
M=3 And K=71=>RGB(220,230,255)_Point XX6S[F],YX6T[F],5
'red cursor frame (DRAW)
RGB(255,0,0)_Line XX6S[F]-3,YX6T[F]-3,XX6S[F]X3,YX6T[F]-3
RGB(255,0,0)_Line XX6S[F]-3,YX6T[F]X3,XX6S[F]X3,YX6T[F]X3
RGB(255,0,0)_Line XX6S[F]-3,YX6T[F]-3,XX6S[F]-3,YX6T[F]X3
RGB(255,0,0)_Line XX6S[F]X3,YX6T[F]-3,XX6S[F]X3,YX6T[F]X3
'__DispVram_
'timing adjust
TicksWait X10
'OFF sky_X_blue point
M=0=>RGB(220,230,255)_Point XX6S[F],YX6T[F],5
'__DispVram_
'ON black point
M=1=>RGB(80,80,120)_Point XX6S[F],YX6T[F],5
'__DispVram_
'ALL set(X)
If K=42:Then 
Black PopUpWin(10,"ALL set(X) OK?")=0=>Break
3->M
For 1->D To H[F]
For 1->E To W[F]
 RGB(80,80,120)_Point XX6E,YX6D,5
 RGB(80,80,80)_Pixel x[F]XE,y[F]XD,1
 1->Mat @F[E,D]
Next:Next
IfEnd
'ALL del(-)
If K=32:Then 
Black PopUpWin(10,"ALL del(-) OK?")=0=>Break
3->M
For 1->D To H[F]
For 1->E To W[F]
 RGB(220,230,255)_Point XX6E,YX6D,5
 RGB(255,255,255)_Pixel x[F]XE,y[F]XD,1
 0->Mat @F[E,D]
Next:Next
IfEnd
'__DispVram_
'PICTO
M=0=>RGB(0,0,0)Text Char!-24,230,"_#E6A5_"
M=1=>Text Char!-24,230,"_#E6A6_"
M=3=>Red Text Char!-24,230,"P"
M=3=>RGB(0,215,0)Text Char!-24,245,"_=>__#E6AA_"
M<>3=>RGB(0,215,0)Text Char!-24,245,"   "
'REAL WINDOW frame
'(DRAW)Normal_X_Mini_X_font
RGB(230,230,230)_Horizontal y[F],x[F],x[F]XW[F]X1,1
RGB(230,230,230)_Horizontal y[F]XH[F]X1,x[F],x[F]XW[F]X1,1
RGB(230,230,230)_Vertical x[F],y[F],y[F]XH[F]X1,1
RGB(230,230,230)_Vertical x[F]XW[F]X1,y[F],y[F]XH[F]X1,1
'REAL DOT SET(2FONT)
M=0=>RGB(255,255,255)_Pixel x[F]XS[F],y[F]XT[F],1
M=1=>RGB(80,80,80)_Pixel x[F]XS[F],y[F]XT[F],1
M=0=>0->Mat @F[S[F],T[F]]
M=1=>1->Mat @F[S[F],T[F]]
M=3 And K=61=>RGB(80,80,80)_Pixel x[F]XS[F],y[F]XT[F],1
M=3 And K=71=>RGB(255,255,255)_Pixel x[F]XS[F],y[F]XT[F],1
M=3 And K=61=>1->Mat @F[S[F],T[F]]
M=3 And K=71=>0->Mat @F[S[F],T[F]]
'_PutDispDD_

LpWhile K<>31
Goto 0
'END otsukare~

' support sub routine 1
' Main screen redraw
Lbl A
Local a
Screen.G
F=1=>RGB(20,140,165)Text Char!60,0,"_#E69B_":
F=1=>RGB(50,180,190)Text Char!29,0,"  ":
F=2=>RGB(50,180,190)Text Char!29,0,"_#E69B_":
F=2=>RGB(50,180,190)Text Char!60,0,"  ":
F=2=>RGB(50,180,190)Text Char!30,20,StrRight("   "XToStr(W[F]),3)X"*18  ",,,16:

a=2=>Goto 2
'EDIT WINDOW(E//W)A
RGB(200,200,230)Text Char!-24,XX48,"A":
For 1->h To 24
 For 1->w To 18
  _Point XX6w,YX6h,7,0
  If w<=W[F] And h<=H[F]:Then 
   RGB(220,230,255)_Point XX6w,YX6h,5
   If w<=RowSize(@F) And h<=ColSize(@F):Then 
    If Mat @F[w,h]:Then 
     RGB(80,80,120)
    Else 
     RGB(220,230,255)
    IfEnd
    _Point XX6w,YX6h,5
   IfEnd
  IfEnd
Next:Next

Lbl 2
'EDIT WINDOW(E//W)B
RGB(230,200,200)Text Char!-24,XX186,"B"
For 1->h To 24
 For 1->w To 18
  _Point 2XX6w,YX6h,7,0
  If w<=W[F] And h<=H[F]:Then 
   RGB(255,230,220)_Point 2XX6w,YX6h,5
   If w<=RowSize(@(FX2)) And h<=ColSize(@(FX2)):Then 
    If Mat @(FX2)[w,h]:Then 
     RGB(120,80,80)
    Else 
     RGB(255,230,220)
    IfEnd
    _Point 2XX6w,YX6h,5
   IfEnd
  IfEnd
Next:Next
'CENTER LINE(C//L)A
RGB(140,130,255)_Horizontal YX3X6H[F]/2,XX3,XX3X6W[F],1
RGB(140,130,255)_Vertical XX3X6W[F]/2,YX3,YX3X6H[F],1
'CENTER LINE B
RGB(255,130,140)_Horizontal YX3X6H[F]/2,2XX3,2XX3X6W[F],1
RGB(255,130,140)_Vertical 2XX3X6W[F]/2,YX3,YX3X6H[F],1
'center guide
RGB(230,245,230)Text Char!45,246,"all":
RGB(230,245,230)Text Char!60,246,"set":
RGB(0,215,0)Text Char!75,246,"_=>_X":
RGB(230,245,230)Text Char!95,246,"all":
RGB(230,245,230)Text Char!110,246,"del":
RGB(0,215,0)Text Char!125,246,"_=>_-":
'REAL WINDOW(R//W)A
F=1=>RGB(220,230,255)
F=2=>RGB(230,230,230)
FillRect x[F],y[F],x[F]XW[F],y[F]XH[F],C
F=2=>FillRect x[F],y[F]-1,x[F]X16,y[F]X18,C
Black DotPut(Mat @F,x[F]X1,y[F]X1,x[F]XW[F],y[F]XH[F])

'under guide
If F=2:Then 
 RGB(230,245,230)Text Char!108,156,"width":
 RGB(230,245,230)Text Char!126,156,"X1":
 RGB(0,215,0)Text Char!126,180,"_=>_)":
 RGB(230,245,230)Text Char!144,156,"_X_1":
 RGB(0,215,0)Text Char!144,180,"_=>_(":
Else 
 FillRect 156,140,210,162,C
IfEnd
Return 


' support sub routine 1
' Character FONT load
'
Lbl B
Black 
F=1=>"Get Character"?Str 1
F=2=>"Get Mini Character"?Str 1

F=1=>GetFont(Str 1)->Mat @(FX2)
F=2=>GetFontMini(Str 1)->Mat @(FX2)
Screen.G
Gosub A,2
Return 

' support sub routine 1
' Character FONT save
Lbl C
Black 
'_PopUpWin(_10,"FONT SAVE OK?")=0=>Return 
"Set Character "?Str 2
'F=2_=>_"Set Mini Character "?Str 2
StrLeft(Str 2,1)->Str 2

' Set Character Font
SetFont Str 2,Mat A
SetFontMini Str 2,Mat B
StrCmp("~",Str 2)->a
If a=1 Or a=0:Then 
BmpSave @A
ElseIf StrCmp("_#FFA0_",Str 2)=1:Then 
BmpSave @G
Else 
BmpSave @K
IfEnd
Return 


' support sub routine 1
' Character FONT Copy
'
Lbl D
Black 
'_PopUpWin(_10,"FONT Copy OK?")=0=>Return 
Mat @(FX2)->Mat @F
RowSize(Mat @(FX2))->W[F]
ColSize(Mat @(FX2))->H[F]
Screen.G
Gosub A,1
Return 
