home *** CD-ROM | disk | FTP | other *** search
- 00005 REM Basic Program
- 00007 REM created : 13.06.87
- 00009 REM from : Volker Sasse
- 00011 REM Structogram saved on disk : Basic-Sicher
- 00013 REM filename : fontedit.spe
- 00015 REM
- 00017 REM This program is a font editor for the structogram printer
- 00023 REM Druckmatrix : Hight = 9 Points, Wwidth = 8 Points
- 00025 Hight = 10 : Wwidth = 8
- 00027 DIM Char$(10, 12)
- 00029 Free$ = CHR$(249) : Taken$ = CHR$(178)
- 00031 DIM High$(255), Low$(255)
- 00033 Number = 0 : Vorschub1 = 5 : Vorschub2 = 5 : Font$ = ""
- 00035 PWwidth = 4 : PHight = 2 : Oben = 4 : Links = 15
- 00041 REM Initialisierungen
- 00043 COLOR 7,0 : CLS : KEY OFF
- 00045 gosub 00497
- 00053 FOR T=1 TO Wwidth
- 00063 Hilf$=Hilf$ + CHR$(0)
- 00065 next
- 00066 rem
- 00073 FOR T=0 TO 255
- 00083 High$(T)=Hilf$ : Low$(T)=High$(T)
- 00085 next
- 00086 rem
- 00095 FOR Z=1 TO Hight
- 00107 FOR S=1 TO Wwidth
- 00117 Char$( Z, S) = Free$
- 00119 next
- 00120 rem
- 00121 next
- 00122 rem
- 00129 gosub 00533
- 00131 Z=1 : S=1
- 00133 gosub 00587
- 00139 rem
- 00151 REM Main menu
- 00153 a$=INKEY$
- 00165 rem
- 00169 IF LEN(a$)=1 AND a$="q" goto 00173 else goto 00211
- 00173 rem
- 00177 LOCATE 4,1 : PRINT STRING$(79," ")
- 00179 LOCATE 4,1 : INPUT "Do you want to leave (y)"; a$
- 00187 IF a$="y" goto 00191 else goto 00199
- 00191 rem
- 00193 CLS
- 00195 goto 00250
- 00198 goto 00203
- 00199 rem
- 00201 gosub 00497
- 00203 rem
- 00207 goto 00245
- 00211 rem
- 00215 IF LEN(a$)=1 goto 00219 else goto 00227
- 00219 rem
- 00221 gosub 00261
- 00223 goto 00245
- 00227 rem
- 00231 IF LEN(a$)=2 goto 00235 else goto 00243
- 00235 rem
- 00237 gosub 00381
- 00239 goto 00245
- 00243 rem
- 00245 rem
- 00249 goto 00139
- 00250 rem
- 00255 END
- 00260 end
- 00261 rem
- 00263 rem Befehl
- 00281 rem
- 00285 IF a$= "+" goto 00289 else goto 00299
- 00289 rem
- 00291 Char$(Z,S)=Taken$
- 00293 gosub 00587
- 00295 goto 00367
- 00299 rem
- 00303 IF a$= "-" goto 00307 else goto 00317
- 00307 rem
- 00309 Char$(Z,S)=Free$
- 00311 gosub 00587
- 00313 goto 00367
- 00317 rem
- 00321 IF a$= "l" goto 00325 else goto 00333
- 00325 rem
- 00327 gosub 00975
- 00329 goto 00367
- 00333 rem
- 00337 IF a$= "s" goto 00341 else goto 00349
- 00341 rem
- 00343 gosub 01071
- 00345 goto 00367
- 00349 rem
- 00353 IF a$= CHR$(13) goto 00357 else goto 00365
- 00357 rem
- 00359 gosub 00677
- 00361 goto 00367
- 00365 rem
- 00367 rem
- 00375 return
- 00380 end
- 00381 rem
- 00383 rem Cursorsteuerung
- 00401 rem
- 00405 IF MID$(a$, 2, 1)= CHR$(80) AND Z>1 goto 00409 else goto 00421
- 00409 rem
- 00411 gosub 00619
- 00413 Z=Z-1
- 00415 gosub 00587
- 00417 goto 00483
- 00421 rem
- 00425 IF MID$(a$, 2, 1)= CHR$(72) AND Z<Hight goto 00429 else goto 00441
- 00429 rem
- 00431 gosub 00619
- 00433 Z=Z+1
- 00435 gosub 00587
- 00437 goto 00483
- 00441 rem
- 00445 IF MID$(a$, 2, 1)= CHR$(77) AND S<Wwidth goto 00449 else goto 00461
- 00449 rem
- 00451 gosub 00619
- 00453 S=S+1
- 00455 gosub 00587
- 00457 goto 00483
- 00461 rem
- 00465 IF MID$(a$, 2, 1)= CHR$(75) AND S>1 goto 00469 else goto 00481
- 00469 rem
- 00471 gosub 00619
- 00473 S=S-1
- 00475 gosub 00587
- 00477 goto 00483
- 00481 rem
- 00483 rem
- 00491 return
- 00496 end
- 00497 rem
- 00499 rem HeadLine
- 00509 LOCATE 1,1
- 00511 PRINT "Cursor=move field, Return=choose char, +=field on, -=field off"
- 00513 PRINT "q=quit, l=load font, s=save font"
- 00515 PRINT
- 00517 PRINT STRING$(79, " ")
- 00519 LOCATE 4,1
- 00521 PRINT "Font="; Font$; ".fon"; " shown char="; Number; " screen char "; CHR$(Number);
- 00527 return
- 00532 end
- 00533 rem
- 00535 rem PrintChar
- 00547 FOR BZ=PHight TO PHight * (Hight + 1) - 1
- 00559 LOCATE BZ + Oben, Links
- 00561 FOR BS=PWwidth TO PWwidth * (Wwidth + 1) - 1
- 00571 PRINT Char$( Hight + 1 - INT(BZ / PHight), INT(BS / PWwidth));
- 00573 next
- 00574 rem
- 00575 next
- 00576 rem
- 00581 return
- 00586 end
- 00587 rem
- 00589 rem PrintCurField
- 00601 COLOR 0, 7
- 00603 gosub 00619
- 00605 COLOR 7, 0
- 00613 return
- 00618 end
- 00619 rem
- 00621 rem HideCurField
- 00635 FOR BZ=PHight * Z TO PHight * (Z + 1) - 1
- 00647 LOCATE (Hight + 1) * PHight - BZ + Oben + 1, PWwidth * (S - 1) + Links
- 00649 FOR BS=PWwidth * S TO PWwidth * (S + 1) - 1
- 00659 PRINT Char$( INT(BZ / PHight), INT(BS / PWwidth));
- 00661 next
- 00662 rem
- 00663 next
- 00664 rem
- 00671 return
- 00676 end
- 00677 rem
- 00679 rem Charwaehlen
- 00689 gosub 00715
- 00691 LOCATE 4,1 : PRINT STRING$(79, " ")
- 00693 LOCATE 4,1 : INPUT "Which char "; Number
- 00695 gosub 00497
- 00697 gosub 00851
- 00699 gosub 00533
- 00701 Z=1 : S=1
- 00703 gosub 00587
- 00709 return
- 00714 end
- 00715 rem
- 00717 rem SaveChar
- 00729 High$(Number)="" : Low$(Number)=""
- 00739 FOR t=1 to Wwidth
- 00753 Summe=0
- 00755 FOR g=Vorschub1 + 1 TO Hight
- 00767 IF Char$(g, t)=Taken$ goto 00771 else goto 00781
- 00771 rem
- 00775 Summe=Summe + 2^(g - Vorschub1 - 1)
- 00781 rem
- 00783 rem
- 00785 next
- 00786 rem
- 00793 High$(Number)=High$(Number) + CHR$(Summe)
- 00795 Summe=0
- 00797 FOR g=1 TO Hight - Vorschub1
- 00809 IF Char$(g, t)=Taken$ goto 00813 else goto 00819
- 00813 rem
- 00815 Summe=Summe + 2^(g - 1)
- 00818 goto 00823
- 00819 rem
- 00821 REM Leer
- 00823 rem
- 00825 next
- 00826 rem
- 00831 Low$(Number)=Low$(Number) + CHR$(Summe)
- 00835 next
- 00836 rem
- 00845 return
- 00850 end
- 00851 rem
- 00853 rem GetChar
- 00867 FOR t=1 to Wwidth
- 00881 Summe=ASC(MID$(High$(Number), t, 1))
- 00883 FOR g=Hight TO Vorschub1 + 1 STEP -1
- 00895 IF Summe>=2^(g - Vorschub1 - 1) goto 00899 else goto 00911
- 00899 rem
- 00903 Summe=Summe - 2^(g - Vorschub1 - 1)
- 00905 Char$(g, t)=Taken$
- 00910 goto 00915
- 00911 rem
- 00913 Char$(g, t)=Free$
- 00915 rem
- 00917 next
- 00918 rem
- 00925 Summe=ASC(MID$(Low$(Number), t, 1))
- 00927 FOR g=Hight - Vorschub1 TO 1 STEP -1
- 00939 IF Summe>=2^(g - 1) goto 00943 else goto 00951
- 00943 rem
- 00945 Summe=Summe - 2^(g - 1)
- 00947 Char$(g, t)=Taken$
- 00950 goto 00955
- 00951 rem
- 00953 Char$(g, t)=Free$
- 00955 rem
- 00957 next
- 00958 rem
- 00961 next
- 00962 rem
- 00969 return
- 00974 end
- 00975 rem
- 00977 rem LoadFont
- 00989 LOCATE 4,1 : PRINT STRING$(79, " ")
- 00991 LOCATE 4,1 : INPUT "Which font "; Font$
- 00993 LOCATE 4,1 : PRINT "Loading font : "; Font$; ".fon "
- 00995 OPEN Font$ + ".fon" FOR INPUT AS #2
- 01003 FOR T=0 TO 255
- 01015 High$(T)="" : Low$(T)=""
- 01023 FOR Q=1 TO Wwidth
- 01033 INPUT #2, High% : High$(T)=High$(T) + CHR$(High%)
- 01035 INPUT #2, Low% : Low$(T) =Low$(T) + CHR$(Low%)
- 01037 next
- 01038 rem
- 01041 next
- 01042 rem
- 01047 CLOSE #2
- 01049 gosub 00497
- 01051 gosub 00851
- 01053 gosub 00533
- 01055 Z=1 : S=1
- 01057 gosub 00587
- 01065 return
- 01070 end
- 01071 rem
- 01073 rem SaveFont
- 01085 gosub 00715
- 01087 LOCATE 4,1 : PRINT "Saving font : "; Font$; ".fon "
- 01089 OPEN Font$ + ".fon" FOR OUTPUT AS #2
- 01097 FOR T=0 TO 255
- 01111 FOR Q=1 TO Wwidth
- 01121 High%=ASC(MID$(High$(T), Q, 1)) : PRINT #2, High%
- 01123 Low% =ASC(MID$(Low$(T) , Q, 1)) : PRINT #2, Low%
- 01125 next
- 01126 rem
- 01129 next
- 01130 rem
- 01135 CLOSE #2
- 01137 gosub 00497
- 01145 return