You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4965 lines
240 KiB

4 months ago
( disk B, side 0)
( REGULAR FONT )
code romanfont nx ) jsr, ;c ( define font table )
here maxi to
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 chr ( )
00 00 00 00 00 7e 7e 00 00 00 00 00 00 00 ff 01 01 chr ( )
00 00 00 00 00 00 00 00 00 00 aa 55 00 00 ff 01 02 chr ( )
00 00 00 00 00 00 00 00 00 00 aa aa 00 00 ff 01 03 chr ( )
00 00 00 00 00 00 00 00 00 00 00 22 00 00 ff 01 04 chr ( )
00 00 00 aa 55 aa 55 aa 55 aa 55 aa 55 aa ff 01 05 chr ( )
55 aa 55 aa 55 aa 55 aa 55 aa 55 00 00 00 ff 01 06 chr ( )
55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa ff 01 07 chr ( )
00 00 00 00 00 00 aa 55 aa 00 00 00 00 00 ff 01 08 chr ( )
00 00 00 50 28 14 aa 55 aa 14 28 50 00 00 ff 01 09 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 0a chr ( )
00 00 00 00 aa 55 aa 55 aa 55 aa 55 00 00 ff 01 0b chr ( )
00 00 00 00 00 00 00 00 00 aa aa aa 00 00 ff 01 0c chr ( )
00 00 00 00 06 06 06 36 66 fe fc 60 30 00 ff 01 0d chr ( )
00 00 00 00 00 00 00 00 00 00 00 22 00 00 ff 01 0e chr ( )
ff ff ff ff ff ff ff 00 00 aa aa aa 00 00 ff 01 0f chr ( )
00 00 3c 66 66 66 66 66 3c 00 00 00 00 00 ff 01 10 chr ( )
00 00 18 38 58 18 18 18 7e 00 00 00 00 00 ff 01 11 chr ( )
00 00 3c 66 66 0c 38 62 7e 00 00 00 00 00 ff 01 12 chr ( )
00 00 3c 66 06 1c 06 66 3c 00 00 00 00 00 ff 01 13 chr ( )
00 00 0e 16 36 66 7f 06 06 00 00 00 00 00 ff 01 14 chr ( )
00 00 7e 60 7c 46 06 66 3c 00 00 00 00 00 ff 01 15 chr ( )
00 00 1c 30 60 7c 66 66 3c 00 00 00 00 00 ff 01 16 chr ( )
00 00 7e 7e 44 08 18 18 18 00 00 00 00 00 ff 01 17 chr ( )
00 00 3c 66 66 3c 66 66 3c 00 00 00 00 00 ff 01 18 chr ( )
00 00 3c 66 66 3e 06 0c 38 00 00 00 00 00 ff 01 19 chr ( )
00 00 00 0c 1e 1c 1c 0c 0e 07 03 00 00 00 ff ff 1a chr ( )
00 00 00 00 00 00 00 00 20 f0 f0 e0 00 00 ff ff 1b chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 1c chr ( )
00 00 00 00 00 00 aa 55 aa 00 00 00 00 00 ff 01 1d chr ( )
00 00 41 41 41 41 7f 41 41 41 41 00 00 00 ff 01 1e chr ( )
00 00 14 14 14 7f 14 7f 14 14 14 00 00 00 ff 01 1f chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 20 chr ( )
00 00 00 08 08 08 08 08 00 08 08 00 00 00 ff 01 21 chr ( ! )
00 00 00 24 24 24 00 00 00 00 00 00 00 00 ff 01 22 chr ( " )
00 00 00 12 12 7f 24 24 fe 48 48 00 00 00 ff 01 23 chr ( # )
00 00 08 08 3c 42 40 3c 02 42 3c 10 10 00 d7 01 24 chr ( $ )
00 00 00 60 92 94 68 16 29 49 06 00 00 00 ff 01 25 chr ( % )
00 00 00 18 24 20 31 51 4a 44 3b 00 00 00 ff 01 26 chr ( & )
00 00 00 08 08 08 00 00 00 00 00 00 00 00 ff 01 27 chr ( ' )
00 00 04 08 08 10 10 10 10 10 10 08 08 04 e9 01 28 chr ( ( )
00 00 20 10 10 08 08 08 08 08 08 10 10 20 97 01 29 chr ( )
00 00 08 2a 1c 2a 08 00 00 00 00 00 00 00 ff 01 2a chr ( * )
00 00 00 00 00 08 08 3e 08 08 00 00 00 00 ff 01 2b chr ( + )
00 00 00 00 00 00 00 00 00 08 08 08 10 00 d3 01 2c chr ( , )
00 00 00 00 00 00 00 7e 00 00 00 00 00 00 ff 01 2d chr ( - )
00 00 00 00 00 00 00 00 00 08 08 00 00 00 ff 01 2e chr ( . )
00 00 02 02 04 04 08 08 10 10 20 20 00 00 ff 01 2f chr ( / )
00 00 00 1c 22 22 22 22 22 22 1c 00 00 00 ff 01 30 chr ( 0 )
00 00 00 08 18 28 08 08 08 08 3e 00 00 00 ff 01 31 chr ( 1 )
00 00 00 1c 22 22 04 08 10 22 3e 00 00 00 ff 01 32 chr ( 2 )
00 00 00 1c 22 02 0c 02 02 22 1c 00 00 00 ff 01 33 chr ( 3 )
00 00 00 02 06 0a 12 22 3f 02 02 00 00 00 ff 01 34 chr ( 4 )
00 00 00 3e 20 3c 22 02 02 22 1c 00 00 00 ff 01 35 chr ( 5 )
00 00 00 0c 10 20 3c 22 22 22 1c 00 00 00 ff 01 36 chr ( 6 )
00 00 00 3e 22 04 04 08 08 08 08 00 00 00 ff 01 37 chr ( 7 )
00 00 00 1c 22 22 1c 22 22 22 1c 00 00 00 ff 01 38 chr ( 8 )
00 00 00 1c 22 22 22 1e 02 04 18 00 00 00 ff 01 39 chr ( 9 )
00 00 00 00 00 08 08 00 00 08 08 00 00 00 ff 01 3a chr ( : )
00 00 00 00 00 08 08 00 00 08 08 08 10 00 d3 01 3b chr ( ; )
00 00 00 00 00 06 18 60 18 06 00 00 00 00 ff 01 3c chr ( < )
00 00 00 00 00 00 7e 00 7e 00 00 00 00 00 ff 01 3d chr ( = )
00 00 00 00 00 60 18 06 18 60 00 00 00 00 ff 01 3e chr ( > )
00 00 00 1c 22 22 04 08 00 08 08 00 00 00 ff 01 3f chr ( ? )
00 00 3c 42 81 9d a5 a5 9a 80 40 3e 00 00 ff 01 40 chr ( @ )
00 00 00 18 18 24 24 42 7e 42 42 00 00 00 ff 00 41 chr ( A )
00 00 00 7c 42 42 7c 42 42 42 7c 00 00 00 ff 00 42 chr ( B )
00 00 00 1c 22 40 40 40 40 22 1c 00 00 00 ff 00 43 chr ( C )
00 00 00 78 44 42 42 42 42 44 78 00 00 00 ff 00 44 chr ( D )
00 00 00 3e 20 20 3c 20 20 20 3e 00 00 00 ff 00 45 chr ( E )
00 00 00 3e 20 20 3c 20 20 20 20 00 00 00 ff 00 46 chr ( F )
00 00 00 1c 22 40 40 4f 42 22 1e 00 00 00 ff 00 47 chr ( G )
00 00 00 42 42 42 7e 42 42 42 42 00 00 00 ff 00 48 chr ( H )
00 00 00 1c 08 08 08 08 08 08 1c 00 00 00 ff 00 49 chr ( I )
00 00 00 0e 04 04 04 04 44 44 38 00 00 00 ff 00 4a chr ( J )
00 00 00 22 24 28 30 28 24 22 21 00 00 00 ff 00 4b chr ( K )
00 00 00 20 20 20 20 20 20 20 3e 00 00 00 ff 00 4c chr ( L )
00 00 00 41 63 63 55 55 49 49 41 00 00 00 ff 00 4d chr ( M )
00 00 00 62 62 52 52 4a 4a 46 46 00 00 00 ff 00 4e chr ( N )
00 00 00 1c 22 41 41 41 41 22 1c 00 00 00 ff 00 4f chr ( O )
00 00 00 7c 42 42 42 7c 40 40 40 00 00 00 ff 00 50 chr ( P )
00 00 00 1c 22 41 41 41 41 22 1c 23 00 00 ff 00 51 chr ( Q )
00 00 00 7c 42 42 42 7c 48 44 42 00 00 00 ff 00 52 chr ( R )
00 00 00 3c 42 40 30 0c 02 42 3c 00 00 00 ff 00 53 chr ( S )
00 00 00 7f 08 08 08 08 08 08 08 00 00 00 ff 00 54 chr ( T )
00 00 00 42 42 42 42 42 42 42 3c 00 00 00 ff 00 55 chr ( U )
00 00 00 42 42 42 24 24 24 18 18 00 00 00 ff 00 56 chr ( V )
00 00 00 41 41 49 49 55 36 22 22 00 00 00 ff 00 57 chr ( W )
00 00 00 42 42 24 18 18 24 42 42 00 00 00 ff 00 58 chr ( X )
00 00 00 42 42 24 18 08 08 08 08 00 00 00 ff 00 59 chr ( Y )
00 00 00 7e 02 04 08 10 20 40 7e 00 00 00 ff 00 5a chr ( Z )
00 00 1c 10 10 10 10 10 10 10 10 10 10 1c d1 01 5b chr ( [ )
00 00 20 20 10 10 08 08 04 04 02 02 00 00 ff 01 5c chr ( \ )
00 00 38 08 08 08 08 08 08 08 08 08 08 38 8b 01 5d chr ( ] )
00 00 18 24 42 00 00 00 00 00 00 00 00 00 ff 01 5e chr ( ^ )
00 00 00 00 00 00 00 00 00 00 00 00 ff 00 ff 01 5f chr ( _ )
00 00 00 10 10 08 00 00 00 00 00 00 00 00 ff 01 60 chr ( ` )
00 00 00 00 00 3c 02 3e 42 46 3b 00 00 00 ff 01 61 chr ( a )
00 00 40 40 40 5c 62 42 42 42 7c 00 00 00 ff 00 62 chr ( b )
00 00 00 00 00 3c 42 40 40 42 3c 00 00 00 ff 01 63 chr ( c )
00 00 02 02 02 3e 42 42 42 46 3a 00 00 00 ff 00 64 chr ( d )
00 00 00 00 00 3c 42 7e 40 42 3c 00 00 00 ff 01 65 chr ( e )
00 00 0e 11 10 7e 10 10 10 10 10 00 00 00 ff 00 66 chr ( f )
00 00 00 00 00 3e 42 42 42 46 3a 02 42 3c 42 01 67 chr ( g )
00 00 40 40 40 5c 62 42 42 42 42 00 00 00 ff 00 68 chr ( h )
00 00 08 08 00 38 08 08 08 08 08 00 00 00 ff 01 69 chr ( i )
00 00 04 04 00 3c 04 04 04 04 04 04 44 38 45 01 6a chr ( j )
00 00 40 40 40 44 48 70 48 44 42 00 00 00 ff 00 6b chr ( k )
00 00 38 08 08 08 08 08 08 08 08 00 00 00 ff 00 6c chr ( l )
00 00 00 00 00 76 49 49 49 49 49 00 00 00 ff 01 6d chr ( m )
00 00 00 00 00 5c 62 42 42 42 42 00 00 00 ff 01 6e chr ( n )
00 00 00 00 00 3c 42 42 42 42 3c 00 00 00 ff 01 6f chr ( o )
00 00 00 00 00 5c 62 42 42 42 7c 40 40 40 5f 01 70 chr ( p )
00 00 00 00 00 3a 46 42 42 46 3a 02 02 02 fa 01 71 chr ( q )
00 00 00 00 00 2e 32 20 20 20 20 00 00 00 ff 01 72 chr ( r )
00 00 00 00 00 3c 42 30 0c 42 3c 00 00 00 ff 01 73 chr ( s )
00 00 00 10 10 7e 10 10 10 12 0c 00 00 00 ff 00 74 chr ( t )
00 00 00 00 00 42 42 42 42 46 3a 00 00 00 ff 01 75 chr ( u )
00 00 00 00 00 42 42 24 24 18 18 00 00 00 ff 01 76 chr ( v )
00 00 00 00 00 41 49 49 55 36 22 00 00 00 ff 01 77 chr ( w )
00 00 00 00 00 42 24 18 18 24 42 00 00 00 ff 01 78 chr ( x )
00 00 00 00 00 42 42 24 24 18 08 10 10 60 17 01 79 chr ( y )
00 00 00 00 00 7e 04 08 10 20 7e 00 00 00 ff 01 7a chr ( z )
00 00 0c 10 10 10 10 60 10 10 10 10 10 0c d1 01 7b chr ( { )
08 08 08 08 08 08 08 08 08 08 08 08 08 08 eb 01 7c chr ( | )
00 00 30 08 08 08 08 06 08 08 08 08 08 30 8b 01 7d chr ( } )
00 00 00 00 00 00 32 4c 00 00 00 00 00 00 ff 01 7e chr ( ~ )
00 00 00 00 18 18 24 24 42 42 7e 00 00 00 ff 01 7f chr ( )
00 00 00 1c 22 40 40 40 40 22 1c 08 30 00 b3 00 80 chr ( )
00 00 00 00 08 08 3e 08 08 00 3e 00 00 00 ff 01 81 chr ( )
14 14 14 14 14 14 14 14 14 14 14 14 14 14 d5 01 82 chr ( )
00 00 02 1e 26 45 49 49 51 32 3c 20 00 00 ff 00 83 chr ( )
00 00 00 00 04 3c 4a 4a 52 52 3c 20 00 00 ff 01 84 chr ( )
00 00 38 44 44 48 44 42 42 42 4c 00 00 00 ff 01 85 chr ( )
00 00 18 24 18 3c 02 3e 42 46 3b 00 00 00 ff 01 86 chr ( )
00 00 00 00 00 3c 42 40 40 42 3c 08 30 00 b3 01 87 chr ( )
00 00 00 20 20 22 22 20 20 20 3e 00 00 00 ff 00 88 chr ( )
00 00 70 10 10 12 12 10 10 10 10 00 00 00 ff 01 89 chr ( )
00 00 70 48 70 48 72 04 08 13 23 00 00 00 ff 01 8a chr ( )
00 00 00 e0 90 93 e4 96 93 91 e6 00 00 00 ff 01 8b chr ( )
00 00 00 80 80 ac 32 22 22 22 22 00 00 00 ff 01 8c chr ( )
00 00 80 a2 b2 32 2a 2a 26 26 22 00 00 00 ff 01 8d chr ( )
00 00 18 24 24 24 24 28 30 d2 0c 00 00 00 ff 01 8e chr ( )
00 18 24 18 18 24 24 42 7e 42 42 00 00 00 ff 00 8f chr ( )
00 00 18 24 24 18 00 00 00 00 00 00 00 00 ff 01 90 chr ( )
00 00 00 00 00 36 09 3f 48 49 3e 00 00 00 ff 01 91 chr ( )
00 00 00 1f 18 28 2e 48 78 88 8f 00 00 00 ff 00 92 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 93 chr ( )
00 00 00 36 74 74 74 34 14 14 14 00 00 00 ff 01 94 chr ( )
00 00 00 3c 42 20 58 44 22 1a 04 42 3c 00 3c 01 95 chr ( )
00 20 60 20 20 72 04 08 10 26 09 06 09 06 e9 01 96 chr ( )
00 70 08 30 08 72 04 08 10 26 09 06 09 06 e9 01 97 chr ( )
00 78 40 70 08 72 04 08 10 26 09 06 09 06 e9 01 98 chr ( )
00 70 08 30 08 72 04 08 10 23 05 09 0f 01 ef 01 99 chr ( )
00 78 08 10 20 22 04 08 10 26 09 06 09 06 e9 01 9a chr ( )
00 00 00 08 08 3c 42 40 40 42 3c 10 10 00 ff 01 9b chr ( )
00 00 00 1c 22 20 7c 20 20 22 5c 00 00 00 ff 01 9c chr ( )
00 00 00 22 22 14 3e 08 3e 08 08 00 00 00 ff 01 9d chr ( )
00 00 00 70 4a 4a 4f 72 42 42 43 00 00 00 ff 01 9e chr ( )
00 00 06 08 08 3c 10 10 10 10 20 20 40 00 4f 01 9f chr ( )
00 00 f1 5b 55 55 51 00 00 00 00 00 00 00 ff 01 a0 chr ( )
00 3c 42 b9 a5 b9 a5 42 3c 00 00 00 00 00 ff 01 a1 chr ( )
00 3c 42 99 a1 a1 99 42 3c 00 00 00 00 00 ff 01 a2 chr ( )
00 00 08 08 3e 08 08 08 08 00 00 00 00 00 ff 01 a3 chr ( )
00 00 1c 22 02 1c 20 3e 00 00 00 00 00 00 ff 01 a4 chr ( )
00 00 1c 22 0c 02 22 1c 00 00 00 00 00 00 ff 01 a5 chr ( )
00 00 00 38 04 3c 44 3c 00 7c 00 00 00 00 ff 01 a6 chr ( )
00 00 00 38 44 44 44 38 00 7c 00 00 00 00 ff 01 a7 chr ( )
00 00 00 00 08 08 00 08 10 22 22 1c 00 00 ff 01 a8 chr ( )
00 00 00 00 08 08 00 3e 00 08 08 00 00 00 ff 01 a9 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 aa chr ( )
00 20 60 20 20 72 04 08 10 2e 01 06 08 0f e8 01 ab chr ( )
00 20 60 20 20 72 04 08 10 23 05 09 0f 01 ef 01 ac chr ( )
00 00 00 00 08 08 00 08 08 08 08 08 00 00 ff 01 ad chr ( )
00 00 00 00 00 12 24 48 24 12 00 00 00 00 ff 01 ae chr ( )
00 00 00 00 00 48 24 12 24 48 00 00 00 00 ff 01 af chr ( )
00 04 08 10 00 00 00 00 00 00 00 00 00 00 ff 01 b0 chr ( )
00 20 10 08 00 00 00 00 00 00 00 00 00 00 ff 01 b1 chr ( )
00 18 24 42 00 00 00 00 00 00 00 00 00 00 ff 01 b2 chr ( )
00 00 24 24 00 00 00 00 00 00 00 00 00 00 ff 01 b3 chr ( )
00 00 00 00 00 00 00 00 00 00 ff 00 ff 00 ff 01 b4 chr ( )
00 00 55 00 55 00 55 00 55 00 55 00 00 00 ff 01 b5 chr ( )
00 00 32 4c 00 00 00 00 00 00 00 00 00 00 ff 01 b6 chr ( )
00 00 00 00 00 00 00 ff 00 00 00 00 00 00 ff 01 b7 chr ( )
00 00 3c 42 00 00 00 00 00 00 00 00 00 00 ff 01 b8 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 b9 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 ba chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bb chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bc chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bd chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 be chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bf chr ( )
0c 30 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c0 chr ( )
30 0c 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c1 chr ( )
18 24 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c2 chr ( )
24 24 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c3 chr ( )
00 00 00 00 00 00 00 00 00 00 ff 00 ff 00 ff 01 c4 chr ( )
00 00 55 00 55 00 55 00 55 00 55 00 00 00 ff 01 c5 chr ( )
32 4c 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c6 chr ( )
00 00 00 00 00 00 00 ff 00 00 00 00 00 00 ff 01 c7 chr ( )
3c 42 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c8 chr ( )
b1 6b 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c9 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 ca chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 cb chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 cc chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 cd chr ( )
00 00 00 00 00 aa 55 aa 55 aa 55 aa 55 aa ff 01 ce chr ( )
ff ff 55 aa 55 aa 55 aa 55 aa 55 aa 55 00 ff 01 cf chr ( )
maxi here to ( allot the font )
( BOLD font )
code boldfont nx ) jsr, ;c ( define font table )
here maxi to
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 chr ( )
00 00 00 00 00 7e 7e 00 00 00 00 00 00 00 ff 01 01 chr ( )
00 00 00 00 00 00 00 00 00 00 aa 55 00 00 ff 01 02 chr ( )
00 00 00 00 00 00 00 00 00 00 55 55 00 00 ff 01 03 chr ( )
00 00 00 00 00 00 00 00 00 00 00 22 00 00 ff 01 04 chr ( )
00 00 00 00 aa 55 aa 55 aa 55 aa 55 aa 55 ff 01 05 chr ( )
aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 00 00 ff 01 06 chr ( )
aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 aa 55 ff 01 07 chr ( )
00 00 00 00 00 00 aa 55 aa 00 00 00 00 00 ff 01 08 chr ( )
00 00 00 50 28 14 aa 55 aa 14 28 50 00 00 ff 01 09 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 0a chr ( )
00 00 00 00 aa 55 aa 55 aa 55 aa 55 00 00 ff 01 0b chr ( )
00 00 00 00 00 00 00 00 00 55 55 55 00 00 ff 01 0c chr ( )
00 00 00 06 06 06 06 36 66 fe fc 60 30 00 ff 01 0d chr ( )
00 00 00 00 00 00 00 00 00 00 00 22 00 00 ff 01 0e chr ( )
ff ff ff ff ff ff ff 00 00 55 55 55 00 00 ff 01 0f chr ( )
00 00 3c 66 66 66 66 66 3c 00 00 00 00 00 ff 01 10 chr ( )
00 00 18 38 58 18 18 18 7e 00 00 00 00 00 ff 01 11 chr ( )
00 00 3c 66 66 0c 38 62 7e 00 00 00 00 00 ff 01 12 chr ( )
00 00 3c 66 06 1c 06 66 3c 00 00 00 00 00 ff 01 13 chr ( )
00 00 0e 16 36 66 7f 06 06 00 00 00 00 00 ff 01 14 chr ( )
00 00 7e 60 7c 46 06 66 3c 00 00 00 00 00 ff 01 15 chr ( )
00 00 1c 30 60 7c 66 66 3c 00 00 00 00 00 ff 01 16 chr ( )
00 00 7e 7e 44 08 18 18 18 00 00 00 00 00 ff 01 17 chr ( )
00 00 3c 66 66 3c 66 66 3c 00 00 00 00 00 ff 01 18 chr ( )
00 00 3c 66 66 3e 06 0c 38 00 00 00 00 00 ff 01 19 chr ( )
00 00 00 0c 1e 1c 1c 0c 0e 07 03 00 00 00 ff ff 1a chr ( )
00 00 00 00 00 00 00 00 20 f0 f0 e0 00 00 ff ff 1b chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 1c chr ( )
00 00 00 00 00 00 aa 55 aa 00 00 00 00 00 ff 01 1d chr ( )
00 00 63 63 63 63 7f 63 63 63 63 00 00 00 ff 01 1e chr ( )
00 00 66 66 66 7f 66 7f 66 66 66 00 00 00 ff 01 1f chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 20 chr ( )
00 00 00 18 18 18 18 18 00 18 18 00 00 00 ff 01 21 chr ( ! )
00 00 00 36 36 24 00 00 00 00 00 00 00 00 ff 01 22 chr ( " )
00 00 00 1b 1b 7f 36 36 ff 6c 6c 00 00 00 ff 01 23 chr ( # )
00 00 08 08 3c 66 70 3c 0e 66 3c 10 10 00 d7 01 24 chr ( $ )
00 00 00 70 d8 d6 6c 18 36 6b 1b 0e 00 00 ff 01 25 chr ( % )
00 00 00 3c 64 60 33 d9 ce c6 7b 00 00 00 ff 01 26 chr ( & )
00 00 00 18 18 10 00 00 00 00 00 00 00 00 ff 01 27 chr ( ' )
00 00 0c 18 18 30 30 30 30 30 30 18 18 0c db 01 28 chr ( ( )
00 00 30 18 18 0c 0c 0c 0c 0c 0c 18 18 30 db 01 29 chr ( )
00 00 18 7e 3c 7e 18 00 00 00 00 00 00 00 ff 01 2a chr ( * )
00 00 00 00 18 18 7e 18 18 00 00 00 00 00 ff 01 2b chr ( + )
00 00 00 00 00 00 00 00 00 18 18 18 30 00 b7 01 2c chr ( , )
00 00 00 00 00 00 7e 7e 00 00 00 00 00 00 ff 01 2d chr ( - )
00 00 00 00 00 00 00 00 00 18 18 00 00 00 ff 01 2e chr ( . )
00 00 06 06 0c 0c 18 18 30 30 60 60 00 00 ff 01 2f chr ( / )
00 00 00 3c 66 66 66 66 66 66 3c 00 00 00 ff 01 30 chr ( 0 )
00 00 00 18 38 58 18 18 18 18 7e 00 00 00 ff 01 31 chr ( 1 )
00 00 00 3c 66 66 0c 18 30 62 7e 00 00 00 ff 01 32 chr ( 2 )
00 00 00 3c 66 06 1c 06 06 66 3c 00 00 00 ff 01 33 chr ( 3 )
00 00 00 06 0e 1e 36 66 7f 06 06 00 00 00 ff 01 34 chr ( 4 )
00 00 00 7e 60 7c 46 06 06 66 3c 00 00 00 ff 01 35 chr ( 5 )
00 00 00 1c 30 60 7c 66 66 66 3c 00 00 00 ff 01 36 chr ( 6 )
00 00 00 7e 7e 44 0c 08 18 18 18 00 00 00 ff 01 37 chr ( 7 )
00 00 00 3c 66 66 3c 66 66 66 3c 00 00 00 ff 01 38 chr ( 8 )
00 00 00 3c 66 66 66 3e 06 0c 38 00 00 00 ff 01 39 chr ( 9 )
00 00 00 00 00 18 18 00 00 18 18 00 00 00 ff 01 3a chr ( : )
00 00 00 00 00 18 18 00 00 18 18 18 30 00 b7 01 3b chr ( ; )
00 00 00 00 00 07 1c 70 1c 07 00 00 00 00 ff 01 3c chr ( < )
00 00 00 00 00 7e 7e 00 7e 7e 00 00 00 00 ff 01 3d chr ( = )
00 00 00 00 00 70 1c 07 1c 70 00 00 00 00 ff 01 3e chr ( > )
00 00 00 3c 66 66 0c 18 00 18 18 00 00 00 ff 01 3f chr ( ? )
00 00 3c 42 81 bd ed ed b6 80 40 3e 00 00 ff 01 40 chr ( @ )
00 00 00 18 18 2c 2c 66 7e 66 66 00 00 00 ff 00 41 chr ( A )
00 00 00 7c 66 66 7c 66 66 66 7c 00 00 00 ff 00 42 chr ( B )
00 00 00 1e 33 60 60 60 60 33 1e 00 00 00 ff 00 43 chr ( C )
00 00 00 7c 66 63 63 63 63 66 7c 00 00 00 ff 00 44 chr ( D )
00 00 00 7e 60 60 7c 60 60 60 7e 00 00 00 ff 00 45 chr ( E )
00 00 00 7e 60 60 7c 60 60 60 60 00 00 00 ff 00 46 chr ( F )
00 00 00 1e 33 60 60 67 63 33 1f 00 00 00 ff 00 47 chr ( G )
00 00 00 66 66 66 7e 66 66 66 66 00 00 00 ff 00 48 chr ( H )
00 00 00 3c 18 18 18 18 18 18 3c 00 00 00 ff 00 49 chr ( I )
00 00 00 0e 06 06 06 06 66 66 3c 00 00 00 ff 00 4a chr ( J )
00 00 00 66 6c 78 70 78 6c 66 63 00 00 00 ff 00 4b chr ( K )
00 00 00 60 60 60 60 60 60 60 7e 00 00 00 ff 00 4c chr ( L )
00 00 00 63 63 77 77 5b 5b 43 43 00 00 00 ff 00 4d chr ( M )
00 00 00 62 72 72 5a 5a 4e 4e 46 00 00 00 ff 00 4e chr ( N )
00 00 00 1c 36 63 63 63 63 36 1c 00 00 00 ff 00 4f chr ( O )
00 00 00 7c 66 66 66 7c 60 60 60 00 00 00 ff 00 50 chr ( P )
00 00 00 1c 36 63 63 63 63 36 1c 37 00 00 ff 00 51 chr ( Q )
00 00 00 7c 66 66 66 7c 6c 66 63 00 00 00 ff 00 52 chr ( R )
00 00 00 3c 66 60 7c 3e 06 66 3c 00 00 00 ff 00 53 chr ( S )
00 00 00 7e 18 18 18 18 18 18 18 00 00 00 ff 00 54 chr ( T )
00 00 00 66 66 66 66 66 66 66 3c 00 00 00 ff 00 55 chr ( U )
00 00 00 66 66 66 34 34 34 18 18 00 00 00 ff 00 56 chr ( V )
00 00 00 61 61 6d 6d 6d 76 36 36 00 00 00 ff 00 57 chr ( W )
00 00 00 66 66 34 18 18 2c 66 66 00 00 00 ff 00 58 chr ( X )
00 00 00 66 66 34 34 18 18 18 18 00 00 00 ff 00 59 chr ( Y )
00 00 00 7e 06 0e 1c 38 70 60 7e 00 00 00 ff 00 5a chr ( Z )
00 00 3c 30 30 30 30 30 30 30 30 30 30 3c b1 01 5b chr ( [ )
00 00 60 60 30 30 18 18 0c 0c 06 06 00 00 ff 01 5c chr ( \ )
00 00 3c 0c 0c 0c 0c 0c 0c 0c 0c 0c 0c 3c 8d 01 5d chr ( ] )
00 00 00 18 3c 66 42 00 00 00 00 00 00 00 ff 01 5e chr ( ^ )
00 00 00 00 00 00 00 00 00 00 00 00 ff 00 ff 01 5f chr ( _ )
00 00 00 30 30 18 08 00 00 00 00 00 00 00 ff 01 60 chr ( ` )
00 00 00 00 00 3c 06 3e 66 66 3b 00 00 00 ff 01 61 chr ( a )
00 00 60 60 60 6c 76 66 66 66 7c 00 00 00 ff 00 62 chr ( b )
00 00 00 00 00 3c 66 60 60 66 3c 00 00 00 ff 01 63 chr ( c )
00 00 06 06 06 3e 66 66 66 6e 36 00 00 00 ff 00 64 chr ( d )
00 00 00 00 00 3c 66 7e 60 66 3c 00 00 00 ff 01 65 chr ( e )
00 00 1e 32 30 7c 30 30 30 30 30 00 00 00 ff 00 66 chr ( f )
00 00 00 00 00 3e 66 66 66 6e 36 06 66 3c 66 01 67 chr ( g )
00 00 60 60 60 6c 76 66 66 66 66 00 00 00 ff 00 68 chr ( h )
00 00 18 18 00 38 18 18 18 18 18 00 00 00 ff 01 69 chr ( i )
00 00 0c 0c 00 3c 0c 0c 0c 0c 0c 0c cc 78 cd 01 6a chr ( j )
00 00 60 60 60 66 6c 78 6c 66 63 00 00 00 ff 00 6b chr ( k )
00 00 38 18 18 18 18 18 18 18 18 00 00 00 ff 00 6c chr ( l )
00 00 00 00 00 ee db db db db db 00 00 00 ff 01 6d chr ( m )
00 00 00 00 00 6c 76 66 66 66 66 00 00 00 ff 01 6e chr ( n )
00 00 00 00 00 3c 66 66 66 66 3c 00 00 00 ff 01 6f chr ( o )
00 00 00 00 00 6c 76 66 66 66 7c 60 60 60 6f 01 70 chr ( p )
00 00 00 00 00 3a 66 66 66 6e 36 06 06 06 f6 01 71 chr ( q )
00 00 00 00 00 36 36 38 30 30 30 00 00 00 ff 01 72 chr ( r )
00 00 00 00 00 3e 60 78 1e 06 7c 00 00 00 ff 01 73 chr ( s )
00 00 00 30 30 7c 30 30 30 32 1c 00 00 00 ff 00 74 chr ( t )
00 00 00 00 00 66 66 66 66 6e 36 00 00 00 ff 01 75 chr ( u )
00 00 00 00 00 66 66 34 34 18 18 00 00 00 ff 01 76 chr ( v )
00 00 00 00 00 6d 6d 6d 36 36 36 00 00 00 ff 01 77 chr ( w )
00 00 00 00 00 63 36 1c 1c 36 63 00 00 00 ff 01 78 chr ( x )
00 00 00 00 00 66 66 34 34 18 18 10 30 60 b7 01 79 chr ( y )
00 00 00 00 00 7e 0c 18 30 60 7e 00 00 00 ff 01 7a chr ( z )
00 00 0e 18 18 18 18 70 18 18 18 18 18 0e d8 01 7b chr ( { )
18 18 18 18 18 18 18 18 18 18 18 18 18 18 db 01 7c chr ( | )
00 00 70 18 18 18 18 0e 18 18 18 18 18 70 1b 01 7d chr ( } )
00 00 00 00 00 00 3a 5c 00 00 00 00 00 00 ff 01 7e chr ( ~ )
00 00 00 00 18 18 3c 24 66 42 7e 00 00 00 ff 01 7f chr ( )
00 00 00 1e 33 60 60 60 60 33 1e 0c 38 00 bb 00 80 chr ( )
00 00 00 00 18 18 7e 18 18 00 7e 00 00 00 ff 01 81 chr ( )
36 36 36 36 36 36 36 36 36 36 36 36 36 36 b6 01 82 chr ( )
00 00 02 1e 36 67 6b 6b 73 36 3c 20 00 00 ff 00 83 chr ( )
00 00 00 00 04 3c 6e 6e 76 76 3c 20 00 00 ff 01 84 chr ( )
00 00 3c 66 66 6c 66 63 63 63 6e 00 00 00 ff 01 85 chr ( )
00 00 1c 36 1c 3c 06 3e 66 66 3b 00 00 00 ff 01 86 chr ( )
00 00 00 00 00 3c 66 60 60 66 3c 18 30 00 b7 01 87 chr ( )
00 00 00 60 60 66 66 60 60 60 7e 00 00 00 ff 00 88 chr ( )
00 00 70 30 30 36 36 30 30 30 30 00 00 00 ff 01 89 chr ( )
00 00 f0 d8 f0 db f6 0c 18 33 63 00 00 00 ff 01 8a chr ( )
00 00 00 f0 d8 db f6 de db db f6 00 00 00 ff 01 8b chr ( )
00 00 00 c0 c0 b6 3b 33 33 33 33 00 00 00 ff 01 8c chr ( )
00 00 c0 f2 b2 3a 3a 2e 2e 26 26 00 00 00 ff 01 8d chr ( )
00 00 18 34 34 34 34 34 18 ed 06 00 00 00 ff 01 8e chr ( )
00 1c 36 1c 18 2c 2c 66 7e 66 66 00 00 00 ff 00 8f chr ( )
00 00 1c 36 36 1c 00 00 00 00 00 00 00 00 ff 01 90 chr ( )
00 00 00 00 00 7e 1b 7f d8 db 7e 00 00 00 ff 01 91 chr ( )
00 00 00 1f 1c 2c 2f 6c 7c cc cf 00 00 00 ff 00 92 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 93 chr ( )
00 00 00 3b 7b 7b 7b 3b 0b 0b 0b 00 00 00 ff 01 94 chr ( )
00 00 00 3c 66 30 78 6c 36 1e 0c 66 3c 00 3c 01 95 chr ( )
00 60 e0 60 60 f6 0c 18 30 6e 1b 0e 1b 0e db 01 96 chr ( )
00 f0 18 70 18 f6 0c 18 30 6e 1b 0e 1b 0e db 01 97 chr ( )
00 f8 c0 f0 18 f6 0c 18 30 6e 1b 0e 1b 0e db 01 98 chr ( )
00 f0 18 70 18 f6 0c 18 30 67 0b 1b 1f 03 df 01 99 chr ( )
00 f8 18 30 60 66 0c 18 30 6e 1b 0e 1b 0e db 01 9a chr ( )
00 00 00 08 08 3c 66 60 60 66 3c 10 10 00 ff 01 9b chr ( )
00 00 00 1e 33 30 7c 30 30 33 7e 00 00 00 ff 01 9c chr ( )
00 00 00 66 66 34 7e 18 7e 18 18 00 00 00 ff 01 9d chr ( )
00 00 00 f0 d8 d8 f6 c6 cf c6 c6 03 00 00 ff 01 9e chr ( )
00 00 07 0d 0c 3e 18 18 18 30 30 60 00 00 ff 01 9f chr ( )
00 00 fb 6f 6f 6b 6b 00 00 00 00 00 00 00 ff 01 a0 chr ( )
00 3c 42 b9 b5 b9 b5 42 3c 00 00 00 00 00 ff 01 a1 chr ( )
00 3c 42 9d b1 b1 9d 42 3c 00 00 00 00 00 ff 01 a2 chr ( )
00 00 18 18 7e 18 18 18 18 00 00 00 00 00 ff 01 a3 chr ( )
00 00 3c 66 06 1c 70 7e 00 00 00 00 00 00 ff 01 a4 chr ( )
00 00 3c 66 0c 06 66 3c 00 00 00 00 00 00 ff 01 a5 chr ( )
00 00 00 3c 06 3e 66 3e 00 7e 00 00 00 00 ff 01 a6 chr ( )
00 00 00 3c 66 66 66 3c 00 7e 00 00 00 00 ff 01 a7 chr ( )
00 00 00 00 18 18 00 18 30 66 66 3c 00 00 ff 01 a8 chr ( )
00 00 00 00 18 18 00 7e 00 18 18 00 00 00 ff 01 a9 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 aa chr ( )
00 60 e0 60 60 f6 0c 18 30 6e 03 06 0c 0f ec 01 ab chr ( )
00 60 e0 60 60 f6 0c 18 30 67 0b 1b 1f 03 df 01 ac chr ( )
00 00 00 00 18 18 00 18 18 18 18 18 00 00 ff 01 ad chr ( )
00 00 00 00 00 1b 36 6c 36 1b 00 00 00 00 ff 01 ae chr ( )
00 00 00 00 00 6c 36 1b 36 6c 00 00 00 00 ff 01 af chr ( )
00 06 0c 18 00 00 00 00 00 00 00 00 00 00 ff 01 b0 chr ( )
00 60 30 18 00 00 00 00 00 00 00 00 00 00 ff 01 b1 chr ( )
00 18 3c 66 00 00 00 00 00 00 00 00 00 00 ff 01 b2 chr ( )
00 00 66 66 00 00 00 00 00 00 00 00 00 00 ff 01 b3 chr ( )
00 00 00 00 00 00 00 00 00 00 ff 00 ff 00 ff 01 b4 chr ( )
00 00 55 00 55 00 55 00 55 00 55 00 00 00 ff 01 b5 chr ( )
00 00 3a 5c 00 00 00 00 00 00 00 00 00 00 ff 01 b6 chr ( )
00 00 00 00 00 00 00 ff 00 00 00 00 00 00 ff 01 b7 chr ( )
00 00 3c 66 00 00 00 00 00 00 00 00 00 00 ff 01 b8 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 b9 chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 ba chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bb chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bc chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bd chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 be chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 bf chr ( )
0e 38 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c0 chr ( )
70 1c 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c1 chr ( )
1c 36 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c2 chr ( )
66 66 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c3 chr ( )
00 00 00 00 00 00 00 00 00 00 ff 00 ff 00 ff 01 c4 chr ( )
00 00 55 00 55 00 55 00 55 00 55 00 00 00 ff 01 c5 chr ( )
3a 5c 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c6 chr ( )
00 00 00 00 00 00 00 ff 00 00 00 00 00 00 ff 01 c7 chr ( )
3c 66 00 00 00 00 00 00 00 00 00 00 00 00 ff 01 c8 chr ( )
fe fd fe fe fe fe fe fe fe fe fe 00 00 00 ff 01 c9 chr ( )
f7 f7 fe fb f7 fd f7 fe fd fe fd f7 fe fd ff 01 ca chr ( )
fc fd fb f9 f9 f7 f8 fd fb fb f9 f9 fc fb ff 01 cb chr ( )
fa fa fa fa fa fa fa fa fa fa fd fc fb fa ff 01 cc chr ( )
f7 fa fa fa f9 fa fa f9 f9 fb fa f9 fa f7 ff 01 cd chr ( )
fa f9 f9 fa f9 f9 f9 f9 f9 f9 fa fc fa fc ff 01 ce chr ( )
fc fa fa fa fa fa fb fa fa fd fc fa fc f9 ff 01 cf chr ( )
00 00 00 f8 0c 06 03 01 00 00 00 00 00 00 ff 00 d0 chr ( )
00 00 00 00 00 00 04 87 ff 07 04 00 00 00 ff 00 d1 chr ( )
00 00 00 00 00 00 00 0f cf 0f 00 00 00 00 ff 00 d2 chr ( )
00 00 00 00 00 10 18 08 0c 04 07 00 00 00 ff 00 d3 chr ( )
00 e6 e6 06 e6 e6 06 e6 e6 00 ff 00 00 00 ff 00 d4 chr ( )
00 00 00 00 00 08 18 10 30 20 e0 00 00 00 ff 00 d5 chr ( )
00 07 07 00 07 87 c0 47 67 20 3f 00 00 00 ff 00 d6 chr ( )
00 30 30 31 36 38 31 31 33 02 fe 00 00 00 ff 00 d7 chr ( )
00 10 1c ff 1c 10 80 00 00 00 00 00 00 00 ff 00 d8 chr ( )
00 1f 10 13 10 13 10 13 10 08 07 00 00 00 ff 00 d9 chr ( )
00 fc 04 e4 04 e4 04 e4 04 74 8c 00 00 00 ff 00 da chr ( )
00 00 00 02 06 0f 06 02 00 00 00 00 00 00 ff 00 db chr ( )
07 0d 18 32 03 ff 03 32 18 0d 07 00 00 00 ff 00 dc chr ( )
00 80 c0 60 30 98 30 60 c0 80 00 00 00 00 ff 00 dd chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 de chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 df chr ( )
00 00 00 02 0e 3f 0e 02 00 00 00 00 00 00 ff 00 e0 chr ( )
06 0f 19 30 00 fe 00 30 19 0f 06 00 00 00 ff 00 e1 chr ( )
00 00 80 c0 60 30 60 c0 80 00 00 00 00 00 ff 00 e2 chr ( )
00 30 63 63 3e 18 18 18 18 18 00 00 00 00 ff 00 e3 chr ( )
00 01 03 06 00 00 00 06 03 01 00 00 00 00 ff 00 e4 chr ( )
c0 e0 30 18 0c 06 0c 18 30 e0 c0 00 00 00 ff 00 e5 chr ( )
00 07 04 04 04 04 04 04 07 00 00 00 00 00 ff 00 e6 chr ( )
00 ff f9 f9 01 71 01 01 ff ff ff 00 00 00 ff 00 e7 chr ( )
00 00 00 e0 e0 e0 e0 e0 e0 e0 e0 00 00 00 ff 00 e8 chr ( )
00 07 08 11 20 40 20 11 08 07 00 00 00 00 ff 00 e9 chr ( )
00 ff 00 8c d8 70 d8 8c 00 ff 00 00 00 00 ff 00 ea chr ( )
00 81 83 86 80 80 80 86 83 81 00 00 00 00 ff 00 eb chr ( )
c0 e0 30 18 0c 06 0c 18 30 e0 c0 00 00 00 ff 00 ec chr ( )
00 00 77 77 00 77 77 00 77 77 00 00 00 00 ff 00 ed chr ( )
00 00 77 77 00 77 77 00 77 77 00 00 00 00 ff 00 ee chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 ef chr ( )
00 01 0c 60 00 36 00 60 0c 01 00 00 00 00 ff 00 f0 chr ( )
00 80 00 00 00 c0 00 00 00 80 00 00 00 00 ff 00 f1 chr ( )
00 0f 30 20 40 4f 4f 40 20 30 0f 00 00 00 ff 00 f2 chr ( )
00 e0 18 08 04 c4 c4 04 08 18 e0 00 00 00 ff 00 f3 chr ( )
00 00 00 00 00 00 00 00 00 61 61 00 00 00 ff 00 f4 chr ( )
00 00 00 00 00 00 00 00 00 86 86 00 00 00 ff 00 f5 chr ( )
00 1f 10 11 17 11 10 10 10 10 1f 00 00 00 ff 00 f6 chr ( )
00 ff 40 c0 ff c1 40 00 00 00 ff 00 00 00 ff 00 f7 chr ( )
00 ff 00 00 00 82 c3 7f 03 02 ff 00 00 00 ff 00 f8 chr ( )
00 f8 08 08 08 08 88 e8 88 08 f8 00 00 00 ff 00 f9 chr ( )
00 00 00 00 00 00 00 3e 22 22 3e 00 00 00 ff 00 fa chr ( )
00 7c 7c 7c 7c 00 00 7c 44 44 7c 00 00 00 ff 00 fb chr ( )
00 00 00 00 00 00 00 f8 88 88 f8 00 00 00 ff 00 fc chr ( )
00 00 07 00 07 00 07 00 07 00 07 00 00 00 ff 00 fd chr ( )
00 00 ff 00 ff 00 fe 00 f0 00 80 00 00 00 ff 00 fe chr ( )
00 00 f8 00 c0 00 00 00 00 00 00 00 00 00 ff 00 ff chr ( )
maxi here to ( allot the font)
( New from Scott 27 Mar 87 )
code rulerfont nx ) jsr, ;c
here maxi to
00 08 08 00 00 00 00 00 00 00 00 00 00 00 ff 00 00 chr ( )
00 08 08 08 08 08 00 00 00 00 00 00 00 00 ff 00 01 chr ( )
00 08 08 1c 3e 7f 00 00 00 00 00 00 00 00 ff 00 02 chr ( )
00 08 1c 3e 3e 1c 00 00 00 00 00 00 00 00 ff 00 03 chr ( )
01 09 09 01 01 01 01 01 01 01 01 01 01 01 ff 00 04 chr ( )
01 09 09 09 09 09 01 01 01 01 01 01 01 01 ff 00 05 chr ( )
00 08 08 00 00 00 00 80 80 80 80 80 80 80 ff 00 06 chr ( )
00 08 08 08 08 08 00 80 80 80 80 80 80 80 ff 00 07 chr ( )
80 88 88 80 80 80 80 80 00 00 00 00 00 00 ff 00 08 chr ( )
80 88 88 88 88 88 80 80 00 00 00 00 00 00 ff 00 09 chr ( )
80 88 88 80 80 80 80 80 80 80 80 80 80 80 ff 00 0a chr ( )
80 88 88 88 88 88 80 80 80 80 80 80 80 80 ff 00 0b chr ( )
00 00 3c 7e ff db ff ff e7 db 7e 3c 00 00 ff 00 0c chr ( )
00 07 0f 0f 0f 0f 0f 0f 0f 0f 0f 0f 07 00 ff 00 0d chr ( )
00 e0 f0 f0 f0 f0 f0 f0 f0 f0 f0 f0 e0 00 ff 00 0e chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 0f chr ( )
00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff 00 10 chr ( )
00 00 00 00 00 00 00 00 00 08 38 08 08 3e ff 00 11 chr ( )
00 00 00 00 00 00 00 00 00 3c 02 1c 20 3e ff 00 12 chr ( )
00 00 00 00 00 00 00 00 00 3c 02 1c 02 3c ff 00 13 chr ( )
00 00 00 00 00 00 00 00 00 0c 14 24 3e 04 ff 00 14 chr ( )
00 00 00 00 00 00 00 00 00 3e 20 3c 02 3c ff 00 15 chr ( )
00 00 00 00 00 00 00 00 00 1c 20 3c 22 1c ff 00 16 chr ( )
00 00 00 00 00 00 00 00 00 3e 22 04 08 08 ff 00 17 chr ( )
00 00 00 00 00 00 00 00 00 1c 22 1c 22 1c ff 00 18 chr ( )
ff 81 81 81 81 81 81 81 81 81 81 81 81 ff ff 00 19 chr ( )
00 3f 40 5f 40 5f 40 5f 40 5f 40 40 3f 00 ff 00 1a chr ( )
00 3f 7f 60 7f 60 7f 60 7f 60 7f 7f 3f 00 ff 00 1b chr ( )
00 fc 02 fa 02 c2 02 e2 02 82 02 02 fc 00 ff 00 1c chr ( )
00 fc fe 06 fe 3e fe 1e fe 7e fe fe fc 00 ff 00 1d chr ( )
00 3f 40 5f 40 47 40 4f 40 43 40 40 3f 00 ff 00 1e chr ( )
00 3f 7f 40 7f 70 7f 60 7f 78 7f 7f 3f 00 ff 00 1f chr ( )
00 fc 02 fa 02 e2 02 f2 02 c2 02 02 fc 00 ff 00 20 chr ( )
00 fc fe 06 fe 1e fe 0e fe 3e fe fe fc 00 ff 00 21 chr ( ! )
00 3f 40 5f 40 43 40 47 40 41 40 40 3f 00 ff 00 22 chr ( " )
00 3f 7f 60 7f 7c 7f 78 7f 7e 7f 7f 3f 00 ff 00 23 chr ( # )
00 fc 02 fa 02 fa 02 fa 02 fa 02 02 fc 00 ff 00 24 chr ( $ )
00 fc fe 06 fe 06 fe 06 fe 06 fe fe fc 00 ff 00 25 chr ( % )
00 3f 40 4f 40 4f 40 4f 40 4f 40 40 3f 00 ff 00 26 chr ( & )
00 3f 7f 70 7f 70 7f 70 7f 70 7f 7f 3f 00 ff 00 27 chr ( ' )
00 fc 02 f2 02 f2 02 f2 02 f2 02 02 fc 00 ff 00 28 chr ( ( )
00 fc fe 0e fe 0e fe 0e fe 0e fe fe fc 00 ff 00 29 chr ( )
00 3f 40 41 43 45 41 41 41 41 47 40 3f 00 ff 00 2a chr ( * )
00 3f 7f 7e 7c 7a 7e 7e 7e 7e 78 7f 3f 00 ff 00 2b chr ( + )
00 fc 02 82 82 82 82 82 82 82 e2 02 fc 00 ff 00 2c chr ( , )
00 fc fe 7e 7e 7e 7e 7e 7e 7e 1e fe fc 00 ff 00 2d chr ( - )
00 3f 40 4c 5d 4c 4c 4c 4d 4c 5e 40 3f 00 ff 00 2e chr ( . )
00 3f 7f 73 62 73 73 73 72 73 61 7f 3f 00 ff 00 2f chr ( / )
00 fc 02 82 92 a2 c2 ba 0a 12 3a 02 fc 00 ff 00 30 chr ( 0 )
00 fc fe 7e 6e 5e 26 7a f6 ee e2 fe fc 00 ff 00 31 chr ( 1 )
00 3f 40 43 46 46 40 41 43 46 47 40 3f 00 ff 00 32 chr ( 2 )
00 3f 7f 7c 79 79 7f 7e 7c 79 78 7f 3f 00 ff 00 33 chr ( 3 )
00 fc 02 c2 62 62 c2 82 02 22 e2 02 fc 00 ff 00 34 chr ( 4 )
00 fc fe 3e 9e 9e 3e 7e fe de 1e fe fc 00 ff 00 35 chr ( 5 )
00 3f 40 47 41 41 41 41 41 41 47 40 3f 00 ff 00 36 chr ( 6 )
00 3f 7f 78 7e 7e 7e 7e 7e 7e 78 7f 3f 00 ff 00 37 chr ( 7 )
00 fc 02 e2 82 82 82 82 82 82 e2 02 fc 00 ff 00 38 chr ( 8 )
00 fc fe 1e 7e 7e 7e 7e 7e 7e 1e fe fc 00 ff 00 39 chr ( 9 )
00 3f 40 4f 46 46 46 46 46 46 4f 40 3f 00 ff 00 3a chr ( : )
00 3f 7f 70 79 79 79 79 79 79 70 7f 3f 00 ff 00 3b chr ( ; )
00 fc 02 fa 32 32 32 32 32 32 fa 02 fc 00 ff 00 3c chr ( < )
00 fc fe 06 ce ce ce ce ce ce 06 fe fc 00 ff 00 3d chr ( = )
01 09 09 1d 3f 7f 01 01 01 01 01 01 01 01 ff 00 3e chr ( > )
01 09 1d 3f 3f 1d 01 01 01 01 01 01 01 01 ff 00 3f chr ( ? )
00 08 08 1c 3e 7f 00 80 80 80 80 80 80 80 ff 00 40 chr ( @ )
00 08 1c 3e 3e 1c 00 80 80 80 80 80 80 80 ff 00 41 chr ( A )
80 88 88 9c be ff 80 80 00 00 00 00 00 00 ff 00 42 chr ( B )
80 88 9c be be 9c 80 80 00 00 00 00 00 00 ff 00 43 chr ( C )
80 88 88 9c be ff 80 80 80 80 80 80 80 80 ff 00 44 chr ( D )
80 88 9c be be 9c 80 80 80 80 80 80 80 80 ff 00 45 chr ( E )
00 00 00 f8 c0 c0 f1 c1 c1 c1 f9 00 00 00 ff 00 46 chr ( F )
00 00 00 1f 18 18 9e 98 98 98 98 00 00 00 ff 00 47 chr ( G )
00 00 00 00 00 00 ff 00 00 00 ff 00 00 00 ff 00 48 chr ( H )
00 00 00 00 00 00 ff 80 80 80 ff 00 00 00 ff 00 49 chr ( I )
00 00 00 00 00 00 ff c0 c0 c0 ff 00 00 00 ff 00 4a chr ( J )
00 00 00 00 00 00 ff e0 e0 e0 ff 00 00 00 ff 00 4b chr ( K )
00 00 00 00 00 00 ff f0 f0 f0 ff 00 00 00 ff 00 4c chr ( L )
00 00 00 00 00 00 ff f8 f8 f8 ff 00 00 00 ff 00 4d chr ( M )
00 00 00 00 00 00 ff fc fc fc ff 00 00 00 ff 00 4e chr ( N )
00 00 00 00 00 00 ff fe fe fe ff 00 00 00 ff 00 4f chr ( O )
00 00 00 00 00 00 ff ff ff ff ff 00 00 00 ff 00 50 chr ( P )
00 07 04 04 04 04 04 04 04 04 04 04 07 00 ff 00 51 chr ( Q )
00 ff 01 f9 01 f9 01 f9 01 0f 0a 0c f8 00 ff 00 52 chr ( R )
00 00 00 00 08 18 38 78 38 18 08 00 00 00 ff ff 53 chr ( S )
00 00 00 0c 1e 1c 1c 0c 0e 07 03 00 00 00 ff ff 54 chr ( T )
00 00 00 00 00 00 00 00 20 f0 f0 e0 00 00 ff ff 55 chr ( U )
00 3f 7f 70 77 67 6f 6f 67 77 70 7f 3f 00 ff ff 56 chr ( left batt )
00 fc fe 06 f6 f6 f6 f6 f6 f6 06 fe fc 00 ff ff 57 chr ( right batt )
maxi here to ( allot space for the font )
( tlh 5/30:6:17 )
code cwides nx ) jsr, ;c ( ROM array )
2020202 , 2020202 , 2ff02ff , ffff0202 , ( tab/ds/pb/cr, others unused )
2020202 , 2020202 , 2020202 , 2020202 , ( 10-1f: pseudo-blanks)
2020202 , 2020202 , 2020202 , 2020202 , ( 20-2f: ascii... )
2020202 , 2020202 , 2020202 , 2020202 , ( 30-3f: ascii... )
2020202 , 2020202 , 2020202 , 2020202 , ( 40-4f: ascii... )
2020202 , 2020202 , 2020202 , 2020202 , ( 50-5f: ascii... )
2020202 , 2020202 , 2020202 , 2020202 , ( 60-6f: ascii... )
2020202 , 2020202 , 2020202 , 2020202 , ( 70-7f: ascii... )
2020202 , 2020202 , 2020202 , 2020202 , ( 80-8f: extra chrs )
2020202 , 2020202 , 2020202 , 2020202 , ( 90-9f: extra chrs )
2020202 , 2020202 , 2020202 , 2020202 , ( a0-af: extra chrs )
2020202 , 2020202 , 2020202 , 2020202 , ( b0-bf: extra chrs )
0000000 , 0000000 , 0000000 , 0000000 , ( c0-cf: accent modifiers )
2020202 , 2020202 , 2020202 , 2020202 , ( d0-df: extra chrs )
ff000000 , 0 , 0 , 0 , ( e0-ef: commands, char modifiers)
0 , 0 , 0 , 0 , ( f0-ff: encoded data )
code <#defaults> nx ) jsr, ;c ( default values for format )
esize allot ( it wants to be esize long )
tc' <#defaults> 2+ target + ( leave start of array on stack )
dup esize -1 fill
00 over %pg + !
00 over %pgl + !
text over %wr + !
00 over %ln + !
00 over %lnl + w!
00 over %spr + c!
01 over %lsp + c!
0e over %left + c!
84 over %wide + c!
0e over %indent + c!
84 over %iwide + c!
00 over %just + c!
00 over %tabs + c!
10 over %tabs 1+ + c!
02 over %tabs 2+ + c!
08 over %tabs 3 + + c!
20 over %tabs 4 + + c!
80 over %tabs 5 + + c!
00 over %tabs 6 + + c!
02 over %tabs 7 + + c!
00 over %tabs 8 + + c!
00 over %tabs 9 + + c!
00 over %tabs 0a + + c!
00 over %tabs 0b + + c!
00 over %tabs 0c + + c!
00 over %tabs 0d + + c!
00 over %tabs 0e + + c!
00 over %tabs 0f + + c!
00 over %tabs 10 + + c!
00 over %tabs 11 + + c!
00 over %tabs 12 + + c!
00 over %tabs 13 + + c!
6e over %long + w!
0c over %above + c!
0c over %below + c!
markbl over %lock + c!
01 over %ipage + w!
02 over %iprint + w!
drop
( Decision table for combining graphics elements)
code rulersmarts nx ) jsr, ;c ( decision table for ruler line display )
00 c, ( short tick )
01 c, ( long tick )
0202 w, ( normal tab )
0303 w, ( decimal tab )
0C0C w, ( two tabs: impossible )
04053E3E , 3F3F0C0C , ( Right margin + ticks & tabs )
06074040 , 41410C0C , ( Left margin + ticks & tabs)
0C0C0C0C , 0C0C0C0C , ( LM = RM is impossible )
08094242 , 43430C0C , ( Left indent + ticks & tabs )
0C0C0C0C , 0C0C0C0C , ( Left indent = RM is impossible )
0A0B4444 , 45450C0C , ( Left indent + LM + ticks & tabs)
0C0C0C0C , 0C0C0C0C , ( Indent + LM + RM is impossible )
10 c, ( generate a blank space )
code goldenbytes nx ) jsr, ;c ( pre-built pattern for status modes, etc. )
tc' goldenbytes 2+ target + goldbytes to ( goldbytes is start of array )
5100 w, 5200 w, 5300 w, ( Line # icon )
1 boldbit shl 2000 + 6 w,'s ( total of 9 words )
here goldbytes - indichars to
1 boldbit shl 2000 + 2a w,'s ( indicator area, 42 words, 51 total )
here goldbytes - modechars to
1A00 w, 1C00 w, 1E00 w, 2000 w, 2200 w, 2400 w, 2600 w, 2800 w,
0F00 w, ( paragraph style icons )
2A00 w, 2C00 w, 2E00 w, 3000 w, 3200 w, 3400 w, 0F00 w, ( spacing)
3600 w, 3800 w, 3A00 w, 3C00 w, 0F00 w, ( keyboard modes)
2000 1 boldbit shl + w, ( space before gas gauge )
( End of mode light template [22 words] 73 words total )
here goldbytes - modechars - #goldenmodes to ( length of modechars)
here goldbytes - gaugepos to ( position of the gauge in ruler )
4600 w, ( gauge left edge graphic)
4800 w, 4800 w, 4800 w, 4800 w, 4800 w, 4800 w, ( gas gauge)
4700 w, ( 'Full' mark)
1 boldbit shl 2000 + dup dup w, w, ( Expansion for gas gauge )
1 stopbit shl + w, ( stop mark )
( gas gauge, 11 words, 84 total )
here goldbytes - #goldenbytes to
( statbuff is a ram array, goldenbytess is a rom table, #goldenbytes,
#goldenmodes and modechars are ROM ints )
code <statuslights> nx ) jsr, ;c ( a table of status light positions)
tc' <statuslights> 2+ tromaddr' statuslights ! ( initialize variable )
( Format is: length in words of string, light start position [byte offset] )
indichars target - 2+ ( 8 sequential lights #0-7 )
0006 dup w, over w, 3 + lbufwide * + ( 'Phone' light )
0007 dup w, over w, 3 + lbufwide * + ( 'Learn ?' light )
0005 dup w, over w, 3 + lbufwide * + ( 'Local' light )
000a dup w, over w, 3 + lbufwide * + ( 'Thinking' light )
0002 dup w, over w, 3 + lbufwide * + ( 'Low Bat' light )
0001 dup w, over w, 3 + lbufwide * + ( 'unused' light )
0001 dup w, over w, 3 + lbufwide * + ( 'unused' light )
0001 dup w, over w, 3 + lbufwide * + ( 'unused' light )
drop ( no more, drop position )
( other non-sequential lights starting at 8 )
002c w, indichars target - 2+ w, ( make a general light off end )
code <maptable> nx ) jsr, ;c
tc' <maptable> 2+ tromaddr' maptable ! ( initialize the variable )
patternsize allot
tc' <maptable> 2+ target +
dup patternsize 0 fill ( most chars map to themselves )
93 over 20 + c! ( permanent space is uppercase spc )
41 over 61 + c! ( map lowercase to uppercase )
42 over 62 + c!
43 over 63 + c!
44 over 64 + c!
45 over 65 + c!
46 over 66 + c!
47 over 67 + c!
48 over 68 + c!
49 over 69 + c!
4A over 6A + c!
4B over 6B + c!
4C over 6C + c!
4D over 6D + c!
4E over 6E + c!
4F over 6F + c!
50 over 70 + c!
51 over 71 + c!
52 over 72 + c!
53 over 73 + c!
54 over 74 + c!
55 over 75 + c!
56 over 76 + c!
57 over 77 + c!
58 over 78 + c!
59 over 79 + c!
5A over 7A + c!
92 over 91 + c! ( ae )
8f over 86 + c! ( A circle )
83 over 84 + c! ( o slash )
88 over 89 + c! ( l doc )
80 over 87 + c! ( c cedilla )
8d over 8c + c! ( tic n )
ds swap pb + c! ( page maps to document separator )
code <cursorimage> nx ) jsr, ;c ( the data for the cursor )
tc' <cursorimage> 2+ tromaddr' cursorimage ! ( initialize variable )
tc' <cursorimage> 2+ tromaddr' wcursorimage !
tc' <cursorimage> 2+ tromaddr' ncursorimage !
aa55 scans/image 2/ w,'s ( init cursor image )
code msgtbl nx ) jsr, ;c ( defmsg table )
t' defmsg w, ( standard default )
t' eggmsg w, ( credits, where due )
t' fedmsg w, ( the parody bits )
0000 w, ( indicate end of table )
( tlh 8/12:12:40 )
code ~disp 0 #n d1 moveq,
d1 d2 move, d1 d3 move, d1 d4 move, d1 d5 move, d1 d6 move, d1 d7 move,
0 :l stopbit #n d1 btst, 3 ne .w bra,
smallbit #n d1 btst, 2 ne .w bra, 1 :l
begin, 0 #n d0 moveq, a1 a0 move, a3 )+ d0 .b move, 4 #n d0 .w lsl,
d0 a0 add, a3 )+ d1 .b move, ne
lif, boldbit #n d1 btst, ne if, a4 a0 add, then,
invbit #n d1 btst, ne
lif, a0 )+ d0 .b move, d0 .b not, d0 a2 )+ .b move,
a0 )+ d2 .b move, d2 .b not, a0 )+ d3 .b move, d3 .b not,
a0 )+ d4 .b move, d4 .b not, 5 #n d1 btst, ne
if, d0 d3 .b move, d0 d4 .b move, then,
d2 a2 /scan 1- )d .b move, d3 a2 /scan 2 * 1- )d .b move,
d4 a2 /scan 3 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 4 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 5 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 6 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 7 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 8 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 9 * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 0a * 1- )d .b move,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 0b * 1- )d .b move,
a0 )+ d0 .b move, ulinebit #n d1 btst, ne if, a0 1 )d d0 .b move, then,
d0 .b not, d0 a2 /scan 0c * 1- )d .b move,
a0 )+ d0 .b move, dlinebit #n d1 btst, ne if, 99 #n d0 .b move, then,
d0 .b not, d0 a2 /scan 0d * 1- )d .b move,
a3 )+ d0 .w move, 0 eq .w bra,
c0 #n d0 .b cmpi, nc
if, 0 #n a0 1 )d .b btst, ne if, 10 #n d0 .b sub, then, then, a1 a0 move,
4 #n d0 .w lsl, d0 a0 add, boldbit #n d1 btst, ne if, a4 a0 add, then,
a0 )+ d0 .b move, d0 .b not, d0 a2 -1 )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 2 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 3 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 4 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 5 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 6 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 7 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 8 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 9 * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 0a * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 0b * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 0c * 1- )d .b or,
a0 )+ d0 .b move, d0 .b not, d0 a2 /scan 0d * 1- )d .b or, 0 .w bra,
then, a0 )+ a2 )+ .b move, a0 )+ a2 /scan 1- )d .b move,
a0 )+ a2 /scan 2* 1- )d .b move, a0 )+ a2 /scan 3 * 1- )d .b move,
a0 )+ a2 /scan 4 * 1- )d .b move, a0 )+ a2 /scan 5 * 1- )d .b move,
5 #n d1 btst, ne if, a2 -1 )d a2 /scan 2* 1- )d .b move,
a2 -1 )d a2 /scan 3 * 1- )d .b move, then,
a0 )+ a2 /scan 6 * 1- )d .b move, a0 )+ a2 /scan 7 * 1- )d .b move,
a0 )+ a2 /scan 8 * 1- )d .b move, a0 )+ a2 /scan 9 * 1- )d .b move,
a0 )+ a2 /scan 0a * 1- )d .b move, a0 )+ a2 /scan 0b * 1- )d .b move,
a0 )+ d0 .b move, ulinebit #n d1 btst, ne if, a0 1 )d d0 .b move, then,
d0 a2 /scan 0c * 1- )d .b move, a0 )+ d0 .b move, dlinebit #n d1 btst, ne
if, 99 #n d0 .b move, then, d0 a2 /scan 0d * 1- )d .b move,
a3 )+ d0 .w move, 0 eq .w bra, c0 #n d0 .b cmpi, nc
if, 0 #n a0 1 )d .b btst, ne if, 10 #n d0 .b sub, then, then, a1 a0 move,
4 #n d0 .w lsl, d0 a0 add, boldbit #n d1 btst, ne if, a4 a0 add, then,
a0 )+ d0 .b move, d0 a2 -1 )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 2* 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 3 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 4 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 5 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 6 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 7 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 8 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 9 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0a * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0b * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0c * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0d * 1- )d .b and,
0 .w bra,
then,
a0 )+ a2 )+ .b move, a0 )+ a2 /scan 1- )d .b move,
a0 )+ a2 /scan 2* 1- )d .b move, a0 )+ a2 /scan 3 * 1- )d .b move,
a0 )+ a2 /scan 4 * 1- )d .b move, a0 )+ a2 /scan 5 * 1- )d .b move,
a0 )+ a2 /scan 6 * 1- )d .b move, a0 )+ a2 /scan 7 * 1- )d .b move,
a0 )+ a2 /scan 8 * 1- )d .b move, a0 )+ a2 /scan 9 * 1- )d .b move,
a0 )+ a2 /scan 0a * 1- )d .b move, a0 )+ a2 /scan 0b * 1- )d .b move,
a0 )+ a2 /scan 0c * 1- )d .b move, a0 )+ a2 /scan 0d * 1- )d .b move,
a3 )+ d0 .w move, ne
until,
c0 #n d0 .b cmp, nc
if, 0 #n a0 1 )d .b btst, ne if, 10 #n d0 .b sub, then, then, a1 a0 move,
4 #n d0 .w lsl, d0 a0 add, boldbit #n d1 btst, ne if, a4 a0 add, then,
a0 )+ d0 .b move, d0 a2 -1 )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 2 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 3 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 4 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 5 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 6 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 7 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 8 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 9 * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0a * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0b * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0c * 1- )d .b and,
a0 )+ d0 .b move, d0 a2 /scan 0d * 1- )d .b and, 1 .w bra,
2 :l ( set up for half-offset character loop )
0f #n d0 moveq, d0 a2 -1 )d .b or, d0 a2 /scan 1- )d .b or,
d0 a2 /scan 2 * 1- )d .b or, d0 a2 /scan 3 * 1- )d .b or,
d0 a2 /scan 4 * 1- )d .b or, d0 a2 /scan 5 * 1- )d .b or,
d0 a2 /scan 6 * 1- )d .b or, d0 a2 /scan 7 * 1- )d .b or,
d0 a2 /scan 8 * 1- )d .b or, d0 a2 /scan 9 * 1- )d .b or,
d0 a2 /scan 0a * 1- )d .b or, d0 a2 /scan 0b * 1- )d .b or,
d0 a2 /scan 0c * 1- )d .b or, d0 a2 /scan 0d * 1- )d .b or,
begin, 0 #n d0 moveq, a1 a0 move, a3 )+ d0 .b move, 4 #n d0 .w lsl,
d0 a0 add, a3 )+ d1 .b move, boldbit #n d1 btst, ne if, a4 a0 add, then,
-1 #n d0 moveq, d0 d2 move, d0 d3 move, d0 d4 move, d0 d5 move,
d0 d6 move, d0 d7 move,
a0 )+ d0 .b move, a0 )+ d2 .b move, a0 )+ d3 .b move,
a0 )+ d4 .b move, a0 )+ d5 .b move, a0 )+ d6 .b move, a0 )+ d7 .b move,
5 #n d1 btst, ne if, d0 d3 move, d0 d4 move, then, ( dotless i/j )
invbit #n d1 btst, ne
if, d0 .b not, d2 .b not, d3 .b not, d4 .b not, d5 .b not, d6 .b not,
d7 .b not,
then,
4 #n d0 .w ror, 4 #n d2 .w ror, 4 #n d3 .w ror,
4 #n d4 .w ror, 4 #n d5 .w ror, 4 #n d6 .w ror, 4 #n d7 .w ror,
d0 a2 -1 )d .b and, d2 a2 /scan 1- )d .b and, d3 a2 /scan 2 * 1- )d .b and,
d4 a2 /scan 3 * 1- )d .b and, d5 a2 /scan 4 * 1- )d .b and,
d6 a2 /scan 5 * 1- )d .b and, d7 a2 /scan 6 * 1- )d .b and,
8 #n d0 .w lsr, 8 #n d2 .w lsr, 8 #n d3 .w lsr, 8 #n d4 .w lsr,
8 #n d5 .w lsr, 8 #n d6 .w lsr, 8 #n d7 .w lsr,
d0 a2 ) .b move, d2 a2 /scan )d .b move, d3 a2 /scan 2 * )d .b move,
d4 a2 /scan 3 * )d .b move, d5 a2 /scan 4 * )d .b move,
d6 a2 /scan 5 * )d .b move, d7 a2 /scan 6 * )d .b move,
-1 #n d0 moveq, d0 d2 move, d0 d3 move, d0 d4 move, d0 d5 move,
d0 d6 move, d0 d7 move,
a0 )+ d0 .b move, a0 )+ d2 .b move, a0 )+ d3 .b move, a0 )+ d4 .b move,
a0 )+ d5 .b move, a0 )+ d6 .b move, a0 )+ d7 .b move,
ulinebit #n d1 btst, ne if, a0 ) d6 .b move, then,
dlinebit #n d1 btst, ne if, 99 #n d7 .b move, then,
invbit #n d1 btst, ne
if, d0 .b not, d2 .b not, d3 .b not, d4 .b not, d5 .b not, d6 .b not,
d7 .b not,
then, 4 #n d0 .w ror, 4 #n d2 .w ror, 4 #n d3 .w ror, 4 #n d4 .w ror,
4 #n d5 .w ror, 4 #n d6 .w ror, 4 #n d7 .w ror,
d0 a2 /scan 7 * 1- )d .b and, d2 a2 /scan 8 * 1- )d .b and,
d3 a2 /scan 9 * 1- )d .b and, d4 a2 /scan 0a * 1- )d .b and,
d5 a2 /scan 0b * 1- )d .b and, d6 a2 /scan 0c * 1- )d .b and,
d7 a2 /scan 0d * 1- )d .b and, 8 #n d0 .w lsr, 8 #n d2 .w lsr,
8 #n d3 .w lsr, 8 #n d4 .w lsr, 8 #n d5 .w lsr, 8 #n d6 .w lsr,
8 #n d7 .w lsr,
d0 a2 /scan 7 * )d .b move, d2 a2 /scan 8 * )d .b move,
d3 a2 /scan 9 * )d .b move, d4 a2 /scan 0a * )d .b move,
d5 a2 /scan 0b * )d .b move, d6 a2 /scan 0c * )d .b move,
d7 a2 /scan 0d * )d .b move, 0 #n d0 moveq,
a3 )+ d0 .w move, ne
lif, c0 #n d0 .b cmp, nc
if, 0 #n a0 1 )d .b btst, ne if, 10 #n d0 .b sub, then, then, a1 a0 move,
4 #n d0 .w lsl, d0 a0 add, boldbit #n d1 btst, ne if, a4 a0 add, then,
-1 #n d0 moveq, invbit #n d1 btst, ne if, 0 #n d0 moveq, then,
d0 d2 move, d0 d3 move, d0 d4 move, d0 d5 move,
d0 d6 move, d0 d7 move,
a0 )+ d0 .b move, a0 )+ d2 .b move, a0 )+ d3 .b move, a0 )+ d4 .b move,
a0 )+ d5 .b move, a0 )+ d6 .b move, a0 )+ d7 .b move,
invbit #n d1 btst, ne
if, d0 .b not, d2 .b not, d3 .b not, d4 .b not, d5 .b not, d6 .b not,
d7 .b not, 4 #n d0 .w ror, 4 #n d2 .w ror, 4 #n d3 .w ror,
4 #n d4 .w ror, 4 #n d5 .w ror, 4 #n d6 .w ror, 4 #n d7 .w ror,
d0 a2 -1 )d .b or, d2 a2 /scan 1- )d .b or,
d3 a2 /scan 2 * 1- )d .b or, d4 a2 /scan 3 * 1- )d .b or,
d5 a2 /scan 4 * 1- )d .b or, d6 a2 /scan 5 * 1- )d .b or,
d7 a2 /scan 6 * 1- )d .b or,
else, 4 #n d0 .w ror, 4 #n d2 .w ror, 4 #n d3 .w ror, 4 #n d4 .w ror,
4 #n d5 .w ror, 4 #n d6 .w ror, 4 #n d7 .w ror,
d0 a2 -1 )d .b and, d2 a2 /scan 1- )d .b and,
d3 a2 /scan 2 * 1- )d .b and, d4 a2 /scan 3 * 1- )d .b and,
d5 a2 /scan 4 * 1- )d .b and, d6 a2 /scan 5 * 1- )d .b and,
d7 a2 /scan 6 * 1- )d .b and,
then,
8 #n d0 .w lsr, 8 #n d2 .w lsr, 8 #n d3 .w lsr, 8 #n d4 .w lsr,
8 #n d5 .w lsr, 8 #n d6 .w lsr, 8 #n d7 .w lsr,
invbit #n d1 btst, ne
if, d0 a2 ) .b or, d2 a2 /scan )d .b or, d3 a2 /scan 2* )d .b or,
d4 a2 /scan 3 * )d .b or, d5 a2 /scan 4 * )d .b or,
d6 a2 /scan 5 * )d .b or, d7 a2 /scan 6 * )d .b or,
else, d0 a2 ) .b and, d2 a2 /scan )d .b and, d3 a2 /scan 2* )d .b and,
d4 a2 /scan 3 * )d .b and, d5 a2 /scan 4 * )d .b and,
d6 a2 /scan 5 * )d .b and, d7 a2 /scan 6 * )d .b and,
then,
-1 #n d0 moveq, invbit #n d1 btst, ne if, 0 #n d0 moveq, then,
d0 d2 move, d0 d3 move, d0 d4 move, d0 d5 move,
d0 d6 move, d0 d7 move,
a0 )+ d0 .b move, a0 )+ d2 .b move, a0 )+ d3 .b move, a0 )+ d4 .b move,
a0 )+ d5 .b move, a0 )+ d6 .b move, a0 )+ d7 .b move,
invbit #n d1 btst, ne
if, d0 .b not, d2 .b not, d3 .b not, d4 .b not, d5 .b not, d6 .b not,
d7 .b not, 4 #n d0 .w ror, 4 #n d2 .w ror, 4 #n d3 .w ror,
4 #n d4 .w ror, 4 #n d5 .w ror, 4 #n d6 .w ror, 4 #n d7 .w ror,
d0 a2 /scan 7 * 1- )d .b or, d2 a2 /scan 8 * 1- )d .b or,
d3 a2 /scan 9 * 1- )d .b or, d4 a2 /scan 0a * 1- )d .b or,
d5 a2 /scan 0b * 1- )d .b or, d6 a2 /scan 0c * 1- )d .b or,
d7 a2 /scan 0d * 1- )d .b or,
else, 4 #n d0 .w ror, 4 #n d2 .w ror, 4 #n d3 .w ror, 4 #n d4 .w ror,
4 #n d5 .w ror, 4 #n d6 .w ror, 4 #n d7 .w ror,
d0 a2 /scan 7 * 1- )d .b and, d2 a2 /scan 8 * 1- )d .b and,
d3 a2 /scan 9 * 1- )d .b and, d4 a2 /scan 0a * 1- )d .b and,
d5 a2 /scan 0b * 1- )d .b and, d6 a2 /scan 0c * 1- )d .b and,
d7 a2 /scan 0d * 1- )d .b and,
then,
8 #n d0 .w lsr, 8 #n d2 .w lsr, 8 #n d3 .w lsr, 8 #n d4 .w lsr,
8 #n d5 .w lsr, 8 #n d6 .w lsr, 8 #n d7 .w lsr,
invbit #n d1 btst, ne
if, d0 a2 /scan 7 * )d .b or, d2 a2 /scan 8 * )d .b or,
d3 a2 /scan 9 * )d .b or, d4 a2 /scan 0a * )d .b or,
d5 a2 /scan 0b * )d .b or, d6 a2 /scan 0c * )d .b or,
d7 a2 /scan 0d * )d .b or,
else, d0 a2 /scan 7 * )d .b and, d2 a2 /scan 8 * )d .b and,
d3 a2 /scan 9 * )d .b and, d4 a2 /scan 0a * )d .b and,
d5 a2 /scan 0b * )d .b and, d6 a2 /scan 0c * )d .b and,
d7 a2 /scan 0d * )d .b and,
then,
then, 1 #n a2 addq, smallbit #n d1 btst, ne
until, 1 #n a2 subq,
stopbit #n d1 btst, 1 eq .w bra, 3 :l rts, ;c
( n --- ,blank half-line at position n on screen ) ( tlh 3/07:20:12 )
code halfdisp sp )+ d0 move, /scan tophalf * #n d0 .w mulu,
screenstart #n d0 add, d0 a0 move, tophalf 1- #n d0 moveq,
-1 #n d1 moveq, -1 #n d2 moveq,
lok #n #lock .b cmpi, eq if, 55 #n d2 moveq, then,
begin, /lscan 4 / 2- #n d3 moveq,
1 #n d2 .b rol, d2 a0 )+ .b move,
d1 a0 )+ .b move,
begin, d1 a0 )+ move, d3 nt -until,
d1 a0 )+ .b move,
d2 a0 )+ .b move,
/scan /lscan - #n a0 add,
d0 nt -until, next;
( tlh 5/7:7:24 )
code disp sp )+ d0 move, ( half-line position ) /scan 7 * #n d0 .w mulu,
screenstart #n d0 add,
(regs d4 d5 d6 d7 a2 a3 a4 to) sp -) movem, lbuff #n a3 move, d0 a2 move,
bp bp .b sub, bp a0 move, a0 a0 .w add, a0 a0 .w add,
a0 t' romanfont 4 * )d a1 move, a0 t' boldfont 4 * )d a4 move, a1 a4 sub,
2 #n a1 addq,
tc' ~disp jsr,
(regs d4 d5 d6 d7 a2 a3 a4 from) sp )+ movem, next;
( Cat ruler 19Jun87/dab)
code ~showrule ( display the pre-built ruler line )
( Register usage: d0-d3 various stuff
a0-a1 work pointers, a1 usually display ram
a2 points to rulerfont
a3 points to rulersmarts
a4 points at display ram [rulerstart]
a5 points at rulerbuff )
0 #n bp .b move,
bp a0 move, a0 a0 .w add, a0 a0 .w add,
a0 t' rulerfont 4 * )d a2 move,
2 #n a2 addq, ( a2: font pointer )
tc' rulersmarts 2+ #n a3 move, ( a3: decision table)
( Open Question: should rulersmarts be located at run time?)
i' trkbuf a4 move, a4 a5 move,
480 #n a4 add, ( a4: back buffer )
400 #n a5 add, ( a5: ruler buffer )
0 #n d0 moveq, ( d0: main work reg)
/scan 1- #n d1 moveq, ( d1: loop count)
-1 #n d2 moveq, ( d2: blank space)
a4 a1 move, ( a1: display RAM )
begin, ( display the ruler line )
a5 )+ d0 .b move, ( get next ruler byte)
a3 d0 0 xw)d d0 .b move, ( translate to ruler char)
d0 d3 .w move, ( d3: 00nn character number)
4 #n d3 .w lsl, ( d3: rulerfont index )
a2 d3 0 xw)d a0 lea, ( a0: character address)
a0 )+ d0 .b move,
a0 )+ a1 /scan 1 * )d .b move, ( move image bytes over...)
a0 )+ a1 /scan 2 * )d .b move, ( ...to the screen)
a0 )+ a1 /scan 3 * )d .b move,
a0 )+ a1 /scan 4 * )d .b move,
a0 )+ a1 /scan 5 * )d .b move,
a0 )+ a1 /scan 6 * )d .b move,
a0 )+ a1 /scan 7 * )d .b move,
a0 )+ a1 /scan 8 * )d .b move,
a0 )+ a1 /scan 9 * )d .b move,
a0 )+ a1 /scan 0A * )d .b move,
a0 )+ a1 /scan 0B * )d .b move,
a0 )+ a1 /scan 0C * )d .b move,
a0 )+ a1 /scan 0D * )d .b move,
d2 a1 /scan 0E * )d .b move, ( blank gap below ruler)
d2 a1 /scan 0F * )d .b move,
d2 a1 /scan 10 * )d .b move,
d0 a1 )+ .b move,
d1 nt -until,
d0 d1 move, d0 d2 move, ( clear high bits )
#indent d0 .b move, 1 #n d0 .w lsr, ( d0: indent)
#iwide d1 .b move, 1 #n d1 .w lsr, ( d1: RM - indent)
#left d2 .b move, 1 #n d2 .w lsr, ( d2: left margin)
a4 d0 ruleredge xw)d a1 lea, ( a1: starting address of rule)
0 #n d3 moveq, ( d3: some black bits )
0 bra,
begin, ( render the indent -> RM rule )
d3 a1 )+ .b move,
0 :l d1 nt -until,
a4 0f /scan * ruleredge + )d a1 lea,
d2 a1 add, ( a1: start of bottom rule)
0 #n d1 moveq, #wide d1 .b move, 1 #n d1 .w lsr, ( d1: length)
7F #n a1 /scan negate )d .b move, ( hack left corner of the ruler box )
1 bra,
begin, d3 a1 )+ .b move, 1 :l d1 nt -until, ( make left-right line)
FE #n a1 /scan 1+ negate )d .b move, ( hack right corner of ruler box )
d0 d2 .w cmp, lt if, d0 d2 exg, then, ( d0: min[indent,LM] )
a4 7 /scan * ruleredge + )d a1 lea,
( a1: left edge, line 8 of ruler )
d0 a1 add, d0 d2 sub, ( d2: byte count )
2 bra, ( clever loop entry)
begin, ( render the LM -> indent rule )
d3 a1 )+ .b move, 2 :l
d2 nt -until,
( Now we add the ruler numbering )
110 #n a2 add, ( a2: first legend char image)
a4 0b )d a1 lea, ( a1: display address )
/scan 0c - #n d1 .w move, ( d1: loop counter )
begin,
a2 )+ d0 .b move, d0 a1 ) .b and,
a2 )+ d0 .b move, d0 a1 /scan 1 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 2 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 3 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 4 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 5 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 6 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 7 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 8 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 9 * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 0A * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 0B * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 0C * )d .b and,
a2 )+ d0 .b move, d0 a1 /scan 0D * )d .b and,
2 #n a2 addq, ( a2: next char image [skip uline bytes])
0a #n a1 addq, ( a4: next display position)
0a #n d1 sub, ( d1: new length count)
lt until, ( loop until right edge is hit )
rts, ( End of ruler display routine )
;c
code ~showstatus ( -- \ update statbuff, and disp the status line )
( trashes all registers in the known universe... )
#goldenmodes 2 / 1- #n d0 moveq, ( d0: loop counter)
goldbytes modechars + target - #n a0 move, ( a0: golden pointer )
statbuff modechars 2* + #n a1 move, ( a1: status buffer )
0 #n d1 moveq, ( d1: a zero for overstrike)
begin, a0 )+ a1 )+ .w move, ( copy golden data to buffer)
d1 a1 )+ .w move, ( add a zero for overstrike bytes)
d0 nt -until,
statbuff modechars 2* + #n a1 move, 01 #n d1 moveq, 0 #n d0 moveq,
i' typermode tst, eq
if, #just d0 .b move, eq ( test the paragraph style)
if, d1 a1 ) .b or, d1 a1 4 )d .b or, ( set 'left' icon) then,
1 #n d0 subq, eq if, d1 a1 10 )d .b or, d1 a1 14 )d .b or, then, ( right )
1 #n d0 subq, eq if, d1 a1 08 )d .b or, d1 a1 0c )d .b or, then, ( cntr )
1 #n d0 subq, eq if, d1 a1 18 )d .b or, d1 a1 1c )d .b or, then, ( both )
else, 20020000 #n d1 move, d1 a1 04 )d move, d1 a1 08 )d move,
d1 a1 0c )d move, d1 a1 10 )d move, d1 a1 14 )d move, d1 a1 18 )d move,
d1 a1 1c )d move, d1 a1 ) move, d1 statbuff move, d1 statbuff 4 + move,
d1 statbuff 8 + move, d1 statbuff 0c + move, d1 statbuff 10 + move,
d1 a1 58 )d move, d1 a1 5c )d move, d1 a1 60 )d move, d1 a1 64 )d move,
d1 a1 68 )d move, d1 a1 6c )d move, d1 a1 70 )d move, d1 a1 74 )d move,
d1 a1 78 )d move, d1 a1 7c )d move, d1 a1 80 )d move,
10 #n a1 81 )d .b or, 1 #n d1 moveq,
then,
#lsp d0 .b move, ( test line spacing mode)
1 #n d0 .b cmpi,
eq if, d1 a1 24 )d .b or, d1 a1 28 )d .b or, ( set 'single space')
else, 2 #n d0 .b cmpi,
eq if, d1 a1 2c )d .b or, d1 a1 30 )d .b or, ( set '1 1/2' spacing)
else, 3 #n d0 .b cmpi,
eq if, d1 a1 34 )d .b or, d1 a1 38 )d .b or, ( set 'double space' )
then, then, then,
i' system.status a2 move, a2 kbdI/II )d .b tst, ne
if, ( base of non-saved area )
0 #n a2 modifiers 3 + )d .b btst, ( see which kbd is active )
eq if, d1 a1 40 )d .b or, d1 a1 44 )d .b or, ( set 'keyboard I' )
else, d1 a1 48 )d .b or, d1 a1 4c )d .b or, then, ( set 'keyboard II' )
else, 20020000 #n d1 move, d1 a1 40 )d move, d1 a1 44 )d move,
d1 a1 48 )d move, d1 a1 4c )d move, 1 #n d1 moveq,
then,
( Now decide if we should display black-on-white or white-on-black )
9 bsr,
( The rest of the display line is 'built' as status changes are posted. All we
have to do here is call ~disp to put up the graphics )
i' trkbuf a2 move, scans/image 3 + /scan * 480 + #n a2 add,
( a2: back buffer addr of stat line)
statbuff #n a3 move, ( a3: status 'build' buffer )
bp bp .b sub, bp a0 move, a0 a0 .w add, a0 a0 .w add,
a0 t' rulerfont 4 * )d a1 move, a0 t' boldfont 4 * )d a4 move, a1 a4 sub,
2 #n a1 addq,
tc' ~disp jsr, ( go disp it!)
( now flip things back)
9 bsr,
( special 'don't crush that scan line! hand me the pliers!' loop, )
( blanks out the top line of the status line.)
( Don't ask why, you don't want to know)
i' trkbuf a4 move, scans/image 3 + /scan * 480 + #n a4 add,
( a4: screen ram addr of stat line )
/scan 4 / 1- #n d0 move, ( d0: longs to zap )
i' ruleblink d1 move, d1 not, ( d1: color of the bits )
begin, d1 a4 )+ move, d0 nt -until,
rts, ( end of ~showstatus )
9 :l ( if ruleblink is on, invert the status line )
i' ruleblink tst,
ne if, ( do we have to flip? )
statbuff #n a0 move, ( yes, toggle all invbits )
begin, a0 ) d0 move, invbit 10 + #n d0 bchg,
d0 a0 )+ move, stopbit 10 + #n d0 btst,
ne until, then, rts,
;c
code >lbuff ( source dest count -- \ move 'count' words from 'source',)
( appending a word of zeros at 'dest' for new lbuff format )
sp )+ d0 move, sp )+ a1 move, sp )+ a0 move,
0 #n d1 moveq, 0 bra, ( clever loop entry )
begin, a0 )+ a1 )+ .w move, d1 a1 )+ .w move,
0 :l d0 nt -until, next;
: initruler ( -- \ set up the empty status line )
blackscreen if blackruler off else blackruler on then
ruleblink off
ramend ramstart - 40000 > if 48 else 30 then gaugesize to
oldgauge on oldlnl on ( force rethinking )
[ goldbytes target - ] literal
[ statbuff ] literal
[ #goldenbytes 2/ ] literal >lbuff ;
code rule ( -- \ rethink, then redisplay the ruler )
( Register usage: a0-a2/d0-d3
but remember that ~showrule uses d0-d2,a0-a5
and ~showstatus uses d0-d7/a0-a6 )
(regs d4 d5 d6 d7 a2 a3 a4 a5 a6 to) sp -) movem, ( scram!)
i' trkbuf a2 move, 400 #n a2 add, ( a2: ruler buffer )
a2 a0 move, ( a0: scans rulerbuff)
a2 a1 move, /scan #n a1 .w add, ( a1: end of rulerbuff)
0b #n d2 moveq, ( d2: first long tick posn)
8 #n d3 moveq, ( d3: chars between ticks-1)
0 #n d0 moveq, d0 d1 move,
0 bra, ( enter the loop testing first)
begin,
begin, d0 a0 )+ .b move, 0 :l d2 nt -until,
01 #n a0 )+ .b move, ( add a tick mark )
d3 d2 move, ( reset inner counter)
a1 a0 cmp,
ge until, ( until we hit the right edge)
#left d0 .b move, 1 #n d0 .w lsr, ( d0: Left margin position)
4 #n a2 d0 ruleredge xw)d .b bset, ( set the LM bit)
#wide d1 .b move, 1 #n d1 .w lsr,
d0 d1 add, ( d1: Right margin position)
3 #n a2 d1 ruleredge 1- xw)d .b bset, ( set the RM bit)
#indent d0 .b move, 1 #n d0 .w lsr, ( d0: Indent position)
5 #n a2 d0 ruleredge xw)d .b bset, ( set indent bit)
#tabs #n a1 move, ( a1: tab table )
0 #n d0 moveq, 0 #n d1 moveq, 0 #n d2 moveq, 0 #n d3 moveq,
begin, a1 0a )d d3 .b move, ( 8 bits of decimal tab marks )
a1 )+ d2 .b move, ( 8 bits of tab marks ) ne
if, begin, d1 d2 btst, ne
if, d1 d3 btst, ne
if, 2 #n a2 d0 ruleredge xw)d .b bset,
else, 1 #n a2 d0 ruleredge xw)d .b bset,
then,
then, 1 #n d0 .w addq, 1 #n d1 .w addq, 7 #n d1 .w and, eq
until, ( finished with 8 potential tab stops )
else, 8 #n d0 .w addq,
then, #tabs 0a + #n a1 cmp, nc
until,
4040 #n a2 /scan 2 - )d .w move, ( last char is blank )
4040 #n a2 ) .w move, ( start with 2 blanks )
tc' ~showrule jsr, ( go display ruler line)
tc' ~showstatus jsr, ( display the status line)
( Now that we have done all the rendering, copy the result to the screen )
i' trkbuf a4 move, 480 #n a4 add,
( a4: screen ram addr of stat line )
screenstart /scan 2* - #n a1 move, ( a1: REAL top of screen )
/scan 2/ 1- #n d0 moveq, ( d0: 2 scan lines )
( chose black top and bottom margins in typewriter mode, else white )
i' typermode tst, eq if, -1 #n d1 moveq, else, 0 #n d1 moveq, then,
begin, d1 a1 )+ move, d0 nt -until, ( clear it out )
rulerstart /scan * screenstart + #n a1 move, ( a1: display RAM)
/scan 4 / 1- #n d0 moveq, ( d0: 1 line worth of white)
begin, d1 a1 )+ move, d0 nt -until,
i' blackruler d1 move, d1 not, ( switch to ruler color)
/scan 3 * 4 / 1 - #n d0 moveq, ( 2 lines worth )
begin, d1 a1 )+ move, d0 nt -until,
1e /scan * 4 / 1- #n d2 .w move, ( scanlines to copy over)
d1 tst, eq if, ( need to invert image? )
begin, a4 )+ d0 move, d0 not, d0 a1 )+ move, d2 nt -until,
else,
begin, a4 )+ a1 )+ move, d2 nt -until,
then,
(regs d4 d5 d6 d7 a2 a3 a4 a5 a6 from) sp )+ movem,
next;
code indicate ( addr # light# -- \ set value of light# to string )
( no longer centers the string, statuslight takes string up to limit)
sp )+ d0 move, 2 #n d0 asl, i' statuslights a1 move,
0 #n d2 moveq,
a1 d0 0 xw)d d2 .w move, a1 d0 2 xw)d a1 .w move,
statbuff #n a1 add, ( a1,d2: addr,len in statbuff)
sp )+ d1 move, sp )+ a0 move, ( a0,d1: new string)
ne lif, ( string is not zero length)
0D000000 #n a1 )+ move, ( put down left edge char)
1 invbit shl 1 boldbit shl + #n d0 moveq,
0 #n d3 moveq, ( overstrike & attribute bytes )
1 bra, ( enter main building loop)
begin, ( copy string to statbuff)
a0 )+ a1 )+ .b move, ( copy a text byte)
d0 a1 )+ .b move, ( append an attribute byte)
d3 a1 )+ .w move, ( and two overstrike bytes )
1 :l 1 #n d1 subq, d2 lt -until, ( until either counter expires)
0E000000 #n a1 )+ move, ( right edge of light)
0 #n d2 .w cmpi, ( stuff left to blank out? )
pl if, ( room left)
2000 1 boldbit shl + 10 shl #n d0 move,
2 bra, ( erase any garbage left in the rest of the light)
begin, d0 a1 )+ move, 2 :l d2 nt -until,
then,
next, ( we're done with the non-null case, exit)
then, ( when string length is zero)
1 #n d2 addq, ( loop d2+2 times)
2000 1 boldbit shl + 10 shl #n d0 move,
( d0: a white space )
begin, d0 a1 )+ move, d2 nt -until, ( blank the light)
next; ( all done updating statbuff)
code >status ( addr # offset flags -- \ put string into statbuff )
sp )+ d0 move,
sp )+ a0 move, a0 a0 add, a0 a0 add, statbuff #n a0 add,
sp )+ d1 move,
sp )+ a1 move,
0 bra,
begin, d0 a0 )+ move, a1 )+ a0 -4 )d .b move,
0 :l d1 nt -until, next;
( additional ruler stuff )
: bl# ( num -- num' \ convert output digit, or a blank )
dup if # else spc hold then ;
: checkbattery ( -- \ every few years, whine about the dead SV battery )
[ ga3 pr.cont + ] literal c@ 80 and ( is it dead yet? )
if <"> [ 2 c, 56 c, 57 c, ] ( well, at least coughing up blood... )
else <"> [ 2 c, 0f c, 0f c, ] then