Menu

Routines

Csaba Skrabák

Reusable code fragments in imeight language. Please add yours in the discussion below this page!

Random labyrinth

Outputs DATA lines to be inserted in your game. Value is 1 where there is wall, 0 where one can walk.

HT=16:WT=16

T=TIME()
GOSUB GENMAZE
PRINT "TOOK " + (TIME()-T) + " MILLISECONDS"

FOR RO=0 TO HT-1
  L$="DATA"
  SEP$=" "
  FOR CO=0 TO WT-1
    L$=L$+SEP$+MAZE(RO,CO)
    SEP$=","
  N.
  PRINT L$
N.
END

REM * MAZE GENERATOR *
@GENMAZE
RESTORE PERMUTDATA
DIM PERMUTATIONS(24)
FOR I=0 TO 23
  FOR J=0 TO 3
    READ P
    PERMUTATIONS(I, J)=P
N.:N.

DEF FIRST(A,B)=A
DEF SEC(A,B)=B

DIM CHECKS(6)
FOR DIR=0 TO 3
  FOR I=0 TO 5
    READ X:READ Y
    CHECKS(DIR, I)=X, Y
  NEXT
NEXT

DIM MAZE(HT,WT)
FOR RO=0 TO HT-1:FOR CO=0 TO WT-1
    MAZE(RO, CO)=1
N.:N.
MAZE(HT-1, 1)=0:MAZE(HT-2, 1)=0 'ENTRANCE
RO=HT-2:CO=1

PUSH -1 'STACK BOTTOM MARK

@LOOP
PM=RND(24)
FOR K=0 TO 3
  DIR=PERMUTATIONS(PM, K)
  IF DIR=0 AND RO>1 THEN GOSUB CHECK
  IF DIR=1 AND CO<WT-2 THEN GOSUB CHECK
  IF DIR=2 AND RO<HT-2 THEN GOSUB CHECK
  IF DIR=3 AND CO>1 THEN GOSUB CHECK
NEXT

PULL CO
IF CO<0 THEN RETURN
PULL RO
GOTO LOOP

@CHECK
PROD=1
FOR I=0 TO 5
  PROD=PROD*MAZE(RO+FIRST(CHECKS(DIR, I)), CO+SEC(CHECKS(DIR, I)))
  IF PROD=0 THEN I=5:N.:R. 'CANNOT GO THERE, NOT PUSHING
N.
HYPORO=RO+FIRST(CHECKS(DIR, 4)):HYPOCO=CO+SEC(CHECKS(DIR, 4))
MAZE(HYPORO, HYPOCO)=0
PULL RETA:PUSH HYPORO:PUSH HYPOCO:PUSH RETA
RETURN

@PERMUTDATA
DATA 0,1,2,3
DATA 2,0,1,3
DATA 1,0,2,3
DATA 2,3,1,0
DATA 3,1,2,0
DATA 3,2,0,1
DATA 1,3,2,0
DATA 2,3,0,1
DATA 0,2,1,3
DATA 0,3,2,1
DATA 2,1,0,3
DATA 3,1,0,2
DATA 2,0,3,1
DATA 0,2,3,1
DATA 0,1,3,2
DATA 1,0,3,2
DATA 3,0,1,2
DATA 3,0,2,1
DATA 1,2,3,0
DATA 0,3,1,2
DATA 1,3,0,2
DATA 1,2,0,3
DATA 2,1,3,0
DATA 3,2,1,0
@CHECKDATA
DATA    -2,-1,  -2,0,   -2,1,   -1,-1,  -1,0,   -1,1
DATA    -1,2,   0,2,    1,2,    -1,1,   0,1,    1,1
DATA    2,1,    2,0,    2,-1,   1,1,    1,0,    1,-1
DATA    1,-2,   0,-2,   -1,-2,  1,-1,   0,-1,   -1,-1

Font

Here's a font with more line spacing. It is more legible than the one in the tutorial if you want to print the screen full.

FOR I=0 TO 287:READ B:POKE I,B:NEXT
DATA 0,0,124,198,198,198,124,0,0,0,56,24,24,24,126,0,0,0,252,6,124,192,254,0,0,0,252,6,124,6,252,0,0,0,12,28,108,254,12,0,0,0,254,192,252,6,252,0,0,0,124,192,252,198,124,0,0,0,254,6,24,48,48,0,0,0,124,198,124,198,124,0,0,0,124,198,126,6,124,0,0,0,124,198,198,254,198,0,0,0,252,198,252,198,252,0,0,0,124,198,192,198,124,0,0,0,248,204,198,198,252,0,0,0,254,192,252,192,254,0,0,0,254,192,252,192,192,0,0,0,124,192,222,198,126,0,0,0,198,198,254,198,198,0,0,0,126,24,24,24,126,0,0,0,30,6,6,198,124,0,0,0,198,204,248,204,198,0,0,0,192,192,192,192,254,0,0,0,130,198,238,214,198,0,0,0,198,230,214,206,198,0,0,0,124,198,198,198,124,0,0,0,252,198,198,252,192,0,0,0,124,198,214,124,24,14,0,0,252,198,252,216,206,0,0,0,124,192,124,6,124,0,0,0,126,24,24,24,24,0,0,0,198,198,198,198,124,0,0,0,198,198,108,56,16,0,0,0,198,198,214,238,68,0,0,0,198,108,56,108,198,0,0,0,102,102,60,24,24,0,0,0,126,6,24,96,126,0
FONTALNUM=0

Your options using it:

  • Run once and leave it in the memory. Only add FONTALNUM=0 in your program.
  • If your first memory slot is already used, you can modify the POKE instruction to something like POKE 288+I,B - it'll use the second slot instead. FONTALNUM=0 goes then FONTALNUM=288.
  • You can alternatively copy this whole code into your program.

FONTALNUM built-in variable was called CHARGEN in the old version of the emulator.

Scripting

Create a new text file in your favorite text editor, containing the following:

SCRIPT
NEW
FOR I=0 TO 287:READ B:POKE I,B:NEXT
DATA ... 'HERE COMES THE ACTUAL DATA LIKE ABOVE
RUN
NEW
FONTALNUM=0
'HERE COMES THE LIST OF YOUR PROGRAM USING THE MEMORY

Copy the content to the Program Listing screen. Press PLAY button. You can distribute your program for development environment users in this scripted format.

Direct copy to memory

Only available in the upstream version of the imeight emulator, which is deployed to sourceforge web.

00007cc6c6c67c000000381818187e00
0000fc067cc0fe000000fc067c06fc00
00000c1c6cfe0c000000fec0fc06fc00
00007cc0fcc67c000000fe0618303000
00007cc67cc67c0000007cc67e067c00
00007cc6c6fec6000000fcc6fcc6fc00
00007cc6c0c67c000000f8ccc6c6fc00
0000fec0fcc0fe000000fec0fcc0c000
00007cc0dec67e000000c6c6fec6c600
00007e1818187e0000001e0606c67c00
0000c6ccf8ccc6000000c0c0c0c0fe00
000082c6eed6c6000000c6e6d6cec600
00007cc6c6c67c000000fcc6c6fcc000
00007cc6d67c180e0000fcc6fcd8ce00
00007cc07c067c0000007e1818181800
0000c6c6c6c67c000000c6c66c381000
0000c6c6d6ee44000000c66c386cc600
000066663c18180000007e0618607e00

This hex dump can be copy-pasted directly to a memory slot in the emulator. Open Design Util screen mode, select a slot and change MODE until a text area appears with hexadecimal digits in it. Copy from here and paste there. Push PUT.

Copying so has the same effect as the DATA loading code above, but you don't have to begin NEW program.

Uppercasing a string

@UPPER
R$ = ""
FOR I=1 TO LEN(MOVE$)
    R$ = R$ + CHR$(ASC(MID$(MOVE$, I, 1)) AND $5F)
N.
MOVE$ = R$
R.

Usage:

INPUT MOVE$
GOSUB UPPER
PRINT MOVE$ 'PRINTS THE SAME IN UPPER CASE

Chess piece designs

FOR I=576 TO 4031:READ B:POKE I,B:N.
DATA 0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,0,127,112,0,0,0,0,0,0,0,0,0,119,127,119,112,0,0,0,0,0,0,0,0,127,255,255,112,0,0,0,0,0,0,0,0,119,127,119,112,0,0,0,0,0,0,0,0,0,127,112,0,0,0,0,0,0,0,0,0,0,127,112,0,0,0,0,0,0,119,119,0,7,255,247,0,7,119,112,0,7,255,255,119,127,255,255,119,127,255,247,0,127,255,255,255,127,255,255,127,255,255,255,112,127,255,255,255,247,255,247,255,255,255,255,112,127,255,255,255,255,127,127,255,255,255,255,112,7,255,255,255,255,127,127,255,255,255,247,0,7,255,255,255,255,247,255,255,255,255,247,0,0,119,255,255,255,247,255,255,255,247,112,0,0,0,119,255,247,119,119,255,247,112,0,0,0,0,0,119,127,255,255,119,112,0,0,0,0,0,7,255,255,255,255,255,247,0,0,0,0,0,7,255,247,119,119,255,247,0,0,0,0,0,0,119,127,255,255,119,112,0,0,0,0,0,7,255,255,255,255,255,247,0,0,0,0,0,7,255,247,119,119,255,247,0,0,0,0,0,0,119,112,0,0,119,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,112,0,127,112,0,119,0,0,0,7,0,127,247,0,127,112,7,255,112,7,0,127,112,7,112,0,7,0,0,119,0,127,112,127,112,7,247,0,127,112,7,247,0,127,112,7,112,7,247,0,127,112,7,247,0,119,0,7,247,7,247,0,127,112,7,247,7,247,0,7,247,0,127,112,127,112,127,112,7,247,0,0,127,112,127,112,127,112,127,112,127,112,0,0,127,112,127,112,127,112,127,112,127,112,0,0,127,112,127,112,127,112,127,112,127,112,0,0,7,247,7,247,127,119,247,7,247,0,0,0,7,247,7,247,127,119,247,7,247,0,0,0,0,127,119,247,127,119,247,127,112,0,0,0,0,127,119,247,127,119,247,127,112,0,0,0,0,7,119,119,119,119,119,119,0,0,0,0,0,127,255,255,255,255,255,255,112,0,0,0,0,119,119,119,119,119,119,119,112,0,0,0,0,127,255,255,255,255,255,255,112,0,0,0,0,119,119,119,119,119,119,119,112,0,0,0,7,127,255,255,255,255,255,255,119,0,0,0,7,255,255,255,255,255,255,255,247,0,0,0,7,119,119,119,119,119,119,119,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,7,127,119,0,0,0,0,0,0,0,0,0,7,255,247,0,0,0,0,0,0,0,0,0,7,127,119,0,0,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,7,127,119,0,0,0,0,0,0,0,0,0,127,255,255,112,0,0,0,0,0,0,0,7,255,248,255,247,0,0,0,0,0,0,0,127,255,248,255,255,112,0,0,0,0,0,0,127,248,136,136,255,112,0,0,0,0,0,7,255,255,248,255,255,247,0,0,0,0,0,7,255,255,248,255,255,247,0,0,0,0,0,7,255,255,255,255,255,247,0,0,0,0,0,0,119,255,255,255,247,112,0,0,0,0,0,0,7,119,119,119,119,0,0,0,0,0,0,0,127,255,255,255,255,112,0,0,0,0,0,0,119,119,119,119,119,112,0,0,0,0,0,0,127,255,255,255,255,112,0,0,0,0,0,0,7,119,119,119,119,0,0,0,0,0,7,119,119,119,127,119,119,119,119,0,0,7,127,255,255,255,247,255,255,255,255,119,0,127,247,119,119,119,112,119,119,119,119,255,112,119,112,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,127,127,112,0,0,0,0,0,0,0,7,127,255,255,119,0,0,0,0,0,0,0,127,255,255,247,247,0,0,0,0,0,0,7,255,255,255,255,127,112,0,0,0,0,0,7,255,255,255,255,247,247,0,0,0,0,0,7,255,119,255,255,247,247,0,0,0,0,0,127,247,248,127,255,255,127,112,0,0,0,0,127,247,136,127,255,255,127,112,0,0,0,7,255,255,119,255,255,255,127,112,0,0,0,127,255,255,255,255,255,255,127,112,0,0,7,255,255,255,255,255,255,255,127,112,0,0,7,247,255,255,247,127,255,255,127,112,0,0,0,127,255,247,119,255,255,255,127,112,0,0,0,7,255,112,127,255,255,247,247,0,0,0,0,0,119,7,255,255,255,247,247,0,0,0,0,0,0,7,255,255,255,247,247,0,0,0,0,0,0,127,255,255,255,247,247,0,0,0,0,0,0,127,255,255,255,247,247,0,0,0,0,0,7,255,255,255,255,247,247,0,0,0,0,0,7,255,255,255,255,247,247,0,0,0,0,0,7,255,255,255,255,247,247,0,0,0,0,0,7,119,119,119,119,119,119,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,7,119,112,119,119,7,119,112,0,0,0,0,7,255,112,127,247,7,255,112,0,0,0,0,7,255,119,127,247,119,255,112,0,0,0,0,7,255,255,255,255,255,255,112,0,0,0,0,7,119,119,119,119,119,119,112,0,0,0,0,0,127,255,255,255,255,247,0,0,0,0,0,0,7,119,119,119,119,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,255,112,0,0,0,0,0,0,7,119,119,119,119,112,0,0,0,0,0,0,127,255,255,255,255,247,0,0,0,0,0,7,119,119,119,119,119,119,112,0,0,0,0,7,255,255,255,255,255,255,112,0,0,0,0,7,255,255,255,255,255,255,112,0,0,0,7,119,119,119,119,119,119,119,119,112,0,0,7,255,255,255,255,255,255,255,255,112,0,0,7,119,119,119,119,119,119,119,119,112,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,119,112,0,0,0,0,0,0,0,0,0,7,255,247,0,0,0,0,0,0,0,0,0,127,255,255,112,0,0,0,0,0,0,0,0,127,255,255,112,0,0,0,0,0,0,0,0,127,255,255,112,0,0,0,0,0,0,0,0,7,255,247,0,0,0,0,0,0,0,0,0,0,127,112,0,0,0,0,0,0,0,0,0,119,255,247,112,0,0,0,0,0,0,0,7,255,255,255,247,0,0,0,0,0,0,0,7,255,255,255,247,0,0,0,0,0,0,0,127,255,255,255,255,112,0,0,0,0,0,0,127,255,255,255,255,112,0,0,0,0,0,0,127,255,255,255,255,112,0,0,0,0,0,0,7,255,255,255,247,0,0,0,0,0,0,0,7,255,255,255,247,0,0,0,0,0,0,0,0,119,255,247,112,0,0,0,0,0,0,0,119,255,255,255,247,112,0,0,0,0,0,7,255,255,255,255,255,247,0,0,0,0,0,127,255,255,255,255,255,255,112,0,0,0,7,255,255,255,255,255,255,255,247,0,0,0,7,119,119,119,119,119,119,119,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,0,120,112,0,0,0,0,0,0,0,0,0,119,120,119,112,0,0,0,0,0,0,0,0,120,136,136,112,0,0,0,0,0,0,0,0,119,120,119,112,0,0,0,0,0,0,0,0,0,120,112,0,0,0,0,0,0,0,0,0,0,120,112,0,0,0,0,0,0,119,119,0,7,136,135,0,7,119,112,0,7,136,136,119,120,136,136,119,120,136,135,0,120,136,136,136,120,136,136,120,136,136,136,112,120,136,136,136,135,136,135,136,136,136,136,112,120,136,136,136,136,120,120,136,136,136,136,112,7,136,136,136,136,120,120,136,136,136,135,0,7,136,136,136,136,135,136,136,136,136,135,0,0,119,136,136,136,135,136,136,136,135,112,0,0,0,119,136,135,119,119,136,135,112,0,0,0,0,0,119,120,136,136,119,112,0,0,0,0,0,7,136,136,136,136,136,135,0,0,0,0,0,7,136,135,119,119,136,135,0,0,0,0,0,0,119,120,136,136,119,112,0,0,0,0,0,7,136,136,136,136,136,135,0,0,0,0,0,7,136,135,119,119,136,135,0,0,0,0,0,0,119,112,0,0,119,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,112,0,120,112,0,119,0,0,0,7,0,120,135,0,120,112,7,136,112,7,0,120,112,7,112,0,7,0,0,119,0,120,112,120,112,7,135,0,120,112,7,135,0,120,112,7,112,7,135,0,120,112,7,135,0,119,0,7,135,7,135,0,120,112,7,135,7,135,0,7,135,0,120,112,120,112,120,112,7,135,0,0,120,112,120,112,120,112,120,112,120,112,0,0,120,112,120,112,120,112,120,112,120,112,0,0,120,112,120,112,120,112,120,112,120,112,0,0,7,135,7,135,120,119,135,7,135,0,0,0,7,135,7,135,120,119,135,7,135,0,0,0,0,120,119,135,120,119,135,120,112,0,0,0,0,120,119,135,120,119,135,120,112,0,0,0,0,7,119,119,119,119,119,119,0,0,0,0,0,120,136,136,136,136,136,136,112,0,0,0,0,119,119,119,119,119,119,119,112,0,0,0,0,120,136,136,136,136,136,136,112,0,0,0,0,119,119,119,119,119,119,119,112,0,0,0,7,120,136,136,136,136,136,136,119,0,0,0,7,136,136,136,136,136,136,136,135,0,0,0,7,119,119,119,119,119,119,119,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,7,120,119,0,0,0,0,0,0,0,0,0,7,136,135,0,0,0,0,0,0,0,0,0,7,120,119,0,0,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,7,120,119,0,0,0,0,0,0,0,0,0,120,136,136,112,0,0,0,0,0,0,0,7,136,143,136,135,0,0,0,0,0,0,0,120,136,143,136,136,112,0,0,0,0,0,0,120,143,255,255,136,112,0,0,0,0,0,7,136,136,143,136,136,135,0,0,0,0,0,7,136,136,143,136,136,135,0,0,0,0,0,7,136,136,136,136,136,135,0,0,0,0,0,0,119,136,136,136,135,112,0,0,0,0,0,0,7,119,119,119,119,0,0,0,0,0,0,0,120,136,136,136,136,112,0,0,0,0,0,0,119,119,119,119,119,112,0,0,0,0,0,0,120,136,136,136,136,112,0,0,0,0,0,0,7,119,119,119,119,0,0,0,0,0,7,119,119,119,120,119,119,119,119,0,0,7,120,136,136,136,135,136,136,136,136,119,0,120,135,119,119,119,112,119,119,119,119,136,112,119,112,0,0,0,0,0,0,0,0,119,112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,120,120,112,0,0,0,0,0,0,0,7,120,136,136,119,0,0,0,0,0,0,0,120,136,136,135,135,0,0,0,0,0,0,7,136,136,136,136,120,112,0,0,0,0,0,7,136,136,136,136,135,135,0,0,0,0,0,7,136,119,136,136,135,135,0,0,0,0,0,120,135,248,120,136,136,120,112,0,0,0,0,120,135,136,120,136,136,120,112,0,0,0,7,136,136,119,136,136,136,120,112,0,0,0,120,136,136,136,136,136,136,120,112,0,0,7,136,136,136,136,136,136,136,120,112,0,0,7,135,136,136,135,120,136,136,120,112,0,0,0,120,136,135,119,136,136,136,120,112,0,0,0,7,136,112,120,136,136,135,135,0,0,0,0,0,119,7,136,136,136,135,135,0,0,0,0,0,0,7,136,136,136,135,135,0,0,0,0,0,0,120,136,136,136,135,135,0,0,0,0,0,0,120,136,136,136,135,135,0,0,0,0,0,7,136,136,136,136,135,135,0,0,0,0,0,7,136,136,136,136,135,135,0,0,0,0,0,7,136,136,136,136,135,135,0,0,0,0,0,7,119,119,119,119,119,119,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,7,119,112,119,119,7,119,112,0,0,0,0,7,136,112,120,135,7,136,112,0,0,0,0,7,136,119,120,135,119,136,112,0,0,0,0,7,136,136,136,136,136,136,112,0,0,0,0,7,119,119,119,119,119,119,112,0,0,0,0,0,120,136,136,136,136,135,0,0,0,0,0,0,7,119,119,119,119,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,136,112,0,0,0,0,0,0,7,119,119,119,119,112,0,0,0,0,0,0,120,136,136,136,136,135,0,0,0,0,0,7,119,119,119,119,119,119,112,0,0,0,0,7,136,136,136,136,136,136,112,0,0,0,0,7,136,136,136,136,136,136,112,0,0,0,7,119,119,119,119,119,119,119,119,112,0,0,7,136,136,136,136,136,136,136,136,112,0,0,7,119,119,119,119,119,119,119,119,112,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,119,112,0,0,0,0,0,0,0,0,0,7,136,135,0,0,0,0,0,0,0,0,0,120,255,136,112,0,0,0,0,0,0,0,0,120,248,136,112,0,0,0,0,0,0,0,0,120,136,136,112,0,0,0,0,0,0,0,0,7,136,135,0,0,0,0,0,0,0,0,0,0,120,112,0,0,0,0,0,0,0,0,0,119,136,135,112,0,0,0,0,0,0,0,7,136,136,136,135,0,0,0,0,0,0,0,7,136,136,136,135,0,0,0,0,0,0,0,120,136,136,136,136,112,0,0,0,0,0,0,120,136,136,136,136,112,0,0,0,0,0,0,120,136,136,136,136,112,0,0,0,0,0,0,7,136,136,136,135,0,0,0,0,0,0,0,7,136,136,136,135,0,0,0,0,0,0,0,0,119,136,135,112,0,0,0,0,0,0,0,119,136,136,136,135,112,0,0,0,0,0,7,136,136,136,136,136,135,0,0,0,0,0,120,136,136,136,136,136,136,112,0,0,0,7,136,136,136,136,136,136,136,135,0,0,0,7,119,119,119,119,119,119,119,119,0,0,0,0,0,0,0,0,0,0,0,0,0,0

See Font above for options using this.

Zoom a font into a set of tile designs

SRC=22752 'MEMORY SLOT WHERE THE FONT IS FOUND
DST=52992 'START OF FREE MEMORY OF 36 SLOTS
PAT=52704 'A TILE DESIGN FROM WHICH CHARACTERS WILL BE CUT OUT
FOR CH=0 TO 35
FOR ROW=0 TO 7
BYTE=PEEK(SRC)
FOR BIT=0 TO 7
RESTORE OFFSETS
FOR PX=1 TO 9
READ BNOFF
NOFF=BNOFF+BIT*3
BOFF=INT(NOFF/2)
COLOR=0
IF 128 AND BYTE THEN COLOR=PEEK(PAT+36*ROW+BOFF)
ON NOFF AND 1 G.IMP,PAIR
@PAIR
POKE DST+BOFF,COLOR
G.EXIT
@IMP
POKE DST+BOFF,(PEEK(DST+BOFF)AND $F0)OR(COLOR AND $F)
@EXIT
N.PX
BYTE=BYTE*2
N.BIT
SRC=SRC+1
DST=DST+36
N.ROW
N.CH

@OFFSETS
DATA 0, 1, 2, 24, 25, 26, 48, 49, 50

Related

Wiki: Home
Wiki: Sample Programs

Discussion

  • Csaba Skrabák

    Csaba Skrabák - 2020-06-17

    Dear programmer! Please share your routines here if you have any.

     
  • Csaba Skrabák

    Csaba Skrabák - 2020-06-21

    More font hex dumps.

    5-pixels-tall caps revised:
    00007cc6c6c67c000000381818187e00
    0000fc067cc0fe000000fc067c06fc00
    00001c3c6cfe0c000000fec0fc06fc00
    00007cc0fcc67c000000fe060c183000
    00007cc67cc67c0000007cc67e067c00
    00007cc6c6fec6000000fcc6fcc6fc00
    00007cc6c0c67c000000f8ccc6c6fc00
    0000fec0fcc0fe000000fec0fcc0c000
    00007cc0dec67e000000c6c6fec6c600
    00007e1818187e0000001e0606c67c00
    0000c6ccf8ccc6000000c0c0c0c0fe00
    000082c6eed6c600000086e6fecec200
    00007cc6c6c67c000000fcc6c6fcc000
    00007cc6d67c180e0000fcc6fcd8ce00
    00007cc07c067c0000007e1818181800
    0000c6c6c6c67c000000c66c6c381000
    0000c6c6d6ee44000000c66c386cc600
    000066663c18180000007e0c18307e00

    Serif:
    7cc6c6c6c6c67c000838181818187e00
    7cc6067cc0c2fe007cc6061c06c67c00
    0c1c3c6cccfe0c00fec2c0fc06c67c00
    7cc6c0fcc6c67c00fe860c1818303000
    7cc6c67cc6c67c007cc6c6c67e067c00
    386c6cc6fec6c600fc66667c6666fc00
    7cc6c0c0c0c67c00fc6666666666fc00
    fe6260786062fe00fe6260786060f000
    7cc2c0dec6c67a00c6c6c6fec6c6c600
    7e18181818187e001e0c0c0ccccc7800
    e66c7870786ce600f06060606062fe00
    c6eefed6c6c6c600c6e6f6decec6c200
    7cc6c6c6c6c67c00fc6666667c60f000
    7cc6c6c6d67c180efc66667c786ce600
    7cc6c07c06c67c007e5a181818183c00
    c6c6c6c6c6c67a00c6c6c66c6c381000
    c6c6c6d6feee4400c6c66c386cc6c600
    6666663c18183c007e460c1830627e00

    Minuscules:
    007cc6c6c67c0000007e1818187e0000
    007c067cc0fe0000007c061c0606fc00
    000c1c3c6cfe0c00007e607c0606fc00
    7cc0fcc6c67c000000fec60c18303000
    007cc67cc67c0000007cc6c67e067c00
    00780c7ccc760000e06c7666663c0000
    0078ccc0c47800000c6cdccccc760000
    0078ccf8c27c00001c3630fe30780000
    007ecc78603c867ce06c766666e60000
    18003818187e00000c001c0c0c0ccc78
    e0666c786ce6000038181818187e0000
    00ecd6d6d6d6000000ec766666e60000
    007cc6c6c67c000000ec7666667c60f0
    007cccccdc6c0c0e00ec766060f00000
    007cc07c06fc00002060f860663c0000
    00ec6c6c6c36000000c6c66c6c380000
    00d6d6d6d66c000000c66c386cc60000
    00c6c66c6c38187000fe8c3862fe0000

    Signs aligned with minuscules:
    00000000000000001818181800180000
    666644000000000066ff6666ff660000
    107ed0fe16fc100068a8d0162a2c0000
    f0c0feccec0c00001818180000000000
    0c181818180c00003018181818300000
    00185a3c5a1800000018187e18180000
    0000000000181830000000fe00000000
    00000000001800000204081020400000
    1e181818181e0000c06030180c060000
    7818181818780000183c660000000000
    00000000000000fe0e18183018180e00
    18181818181800007018180c18187000
    76dc00000000000010386cc6c6c6fe00
    00181800181800000018180000181830
    0c18306030180c0000007e007e000000
    30180c060c1830003c660c1800180000
    70d8f8de0c0c000030180c0000000000
    00000000000000000000000000000000

     

    Last edit: Csaba Skrabák 2020-06-21
  • Csaba Skrabák

    Csaba Skrabák - 2020-07-05

    Bold font:
    7ceeeeeeeeee7c00183878383838fe00
    7cee0e7ce0eefe007cee0e3c0eee7c00
    1e3e7eeeeefe0e00feeee0fc0eee7c00
    7ceee0fceeee7c00feee0e1c38383800
    7ceeee7ceeee7c007ceeee7e0eee7c00
    00007c0e7eee7700e0e0fceeeeee7c00
    00007ceee0e67c000e0e7eeeeeee7700
    00007ceefee07e003c7670fe707070e0
    000077eeee7e0efce0e0fceeeeeee700
    7000f07070763c000e003e0e4eeece7c
    e0e0eeeefceee700f070707070763c00
    0000ecfed6eee7000000dceeeeeee700
    00007ceeeeee7c000000dceeeefce0e0
    000077eeee7e0e0e0000dceeeee0e000
    00007ee07c0efc001838fe38383b1e00
    0000eeeeeeee77000000eeee6c7c3800
    0000eeeefeee44000000eeee7ceeee00
    0000eeeeee7e0efc0000fe0e7ce0fe00

    Bold signs:
    00000000000000003838383838003800
    eeee224400000000eeeefeeefeeeee00
    387ee0783c0efc38e6ee1c3870eece00
    7ceee07eeeee77003838081000000000
    1c38383838381c00381c1c1c1c1c3800
    ee7cfe7cee000000003838fe38380000
    0000000038380810000000fe00000000
    0000000000003800060e1c3870e0c000
    3c38383838383c00c0e070381c0e0600
    3c1c1c1c1c1c3c00387cee0000000000
    000000000000fe001c38387038381c00
    1818181818181818381c1c0e1c1c3800
    70ba1c00000000000000387ceeeefe00
    00003838003838000000380038380810
    0e1c3870381c0e000000fe00fe000000
    70381c0e1c3870007cee0e1c38003800
    fc0e7eee7e00fe0070381c0000000000
    00000000000000000000000000000000

     

Anonymous
Anonymous

Add attachments
Cancel





Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.