diff --git a/desk.acc/a2d.inc b/desk.acc/a2d.inc index 24cbe15..4f835a2 100644 --- a/desk.acc/a2d.inc +++ b/desk.acc/a2d.inc @@ -6,7 +6,7 @@ ;;; Direct Calls ;; These must be called from main memory (RAMRDOFF/RAMWRTOFF) -JUMP_TABLE_03 := $4003 ; ??? +JUMP_TABLE_03 := $4003 ; Enter DeskTop input loop JUMP_TABLE_06 := $4006 ; ??? JUMP_TABLE_09 := $4009 ; ??? JUMP_TABLE_0C := $400C ; ??? (made "items/in disk/..." redraw oddly) @@ -18,8 +18,8 @@ JUMP_TABLE_CLEAR_SEL := $401E ; Clear DeskTop selection JUMP_TABLE_MLI := $4021 ; ProDOS MLI call (Y=call, X,A=params addr) JUMP_TABLE_24 := $4024 ; ??? JUMP_TABLE_27 := $4027 ; ??? -JUMP_TABLE_2A := $402A ; ??? -JUMP_TABLE_2D := $402D ; ??? +JUMP_TABLE_2A := $402A ; Just an RTS +JUMP_TABLE_2D := $402D ; Draw type/size/date in non-icon views JUMP_TABLE_30 := $4030 ; ??? JUMP_TABLE_33 := $4033 ; Shows "The syntax of the pathname is invalid.", hangs JUMP_TABLE_36 := $4036 ; ditto @@ -27,6 +27,8 @@ JUMP_TABLE_CUR_POINTER := $4039 ; Changes mouse cursor to pointer JUMP_TABLE_CUR_WATCH := $403C ; Changes mouse cursor to watch JUMP_TABLE_3F := $403F ; ??? + ;; $D000 is relay for A2D call (Y=call, X,A=params addr) + ;;; ================================================== ;;; A2D Calls @@ -411,6 +413,8 @@ DESKTOP := $8E00 DESKTOP_REDRAW_ICONS := $0C ; Repaints desktop icons + ;; $0D used at start of drag-select, $09 at end (then another $0D) + ;;; ================================================== ;;; Macros @@ -470,7 +474,9 @@ end: ;;; Define pattern for A2D_DRAW_BITMAP - low 7 bits are reversed ;;; e.g. .byte px(%1000000) +;;; px() has high bit clear, PX() has high bit set .define px(bits) (((bits&$40)>>6)|((bits&$20)>>4)|((bits&$10)>>2)|(bits&$8)|((bits&$4)<<2)|((bits&$2)<<4)|((bits&$1)<<6)) +.define PX(bits) (((bits&$40)>>6)|((bits&$20)>>4)|((bits&$10)>>2)|(bits&$8)|((bits&$4)<<2)|((bits&$2)<<4)|((bits&$1)<<6)|$80) ;;; ================================================== ;;; DeskTop Internals diff --git a/desk.acc/fonts/.gitignore b/desk.acc/fonts/.gitignore new file mode 100644 index 0000000..8b01b5a --- /dev/null +++ b/desk.acc/fonts/.gitignore @@ -0,0 +1 @@ +*.BIN diff --git a/desk.acc/res/convert_font.pl b/desk.acc/res/convert_font.pl new file mode 100755 index 0000000..b9d5131 --- /dev/null +++ b/desk.acc/res/convert_font.pl @@ -0,0 +1,77 @@ +#!/usr/bin/env perl + +# Input: HCRG-style Font (768 bytes) +# Output: A2D font definition + +# Usage: perl convert.pl < font_data > font.inc + +use strict; +use warnings; +$SIG{__WARN__} = sub { die @_ }; + +my @chars; +my $NCCS = 32; +my $NCHARS = 128; + +# Fill in control characters +for (my $i = 0; $i < $NCCS; ++$i) { + $chars[$i] = "\x00" x 8; +} + +for (my $i = 0; $i < $NCHARS - $NCCS; ++$i) { + read(STDIN, $chars[$i + $NCCS], 8); +} + +my @out; + +push @out, 0x00; +push @out, 0x7f; +push @out, 8; # height + +# widths +for (my $i = 0; $i < $NCHARS; ++$i) { + + my @bytes = map { ord($_) & 0x7f } split('', $chars[$i]); + + + my $bits = 0; + for (my $b = 0; $b < 8; ++$b) { + $bits = $bits | $bytes[$b]; + } + + #while ($bits && (($bits & 0x1) == 0)) { + # $bits = $bits >> 1; + # for (my $b = 0; $b < 8; ++$b) { + # $bytes[$b] = $bytes[$b] >> 1; + # } + #} + + $chars[$i] = join('', map { chr } @bytes); + + my $w = + $bits >= (1<<6) ? 7 : + $bits >= (1<<5) ? 6 : + $bits >= (1<<4) ? 5 : + $bits >= (1<<3) ? 4 : + $bits >= (1<<2) ? 3 : + $bits >= (1<<1) ? 2 : 1; + + $w = 7; + + push @out, $w; +} + +# bits +for (my $b = 0; $b < 8; ++$b) { + for (my $i = 0; $i < $NCHARS; ++$i) { + #print $i, " - ", length($chars[$i]), "\n"; + push @out, ord(substr($chars[$i], $b, 1)); + } +} + +# output for ca65 +while (scalar @out) { + my @chunk = splice(@out, 0, 8); + @chunk = map { sprintf('$%02x', $_) } @chunk; + print " .byte " . join(',', @chunk) . "\n"; +} diff --git a/desk.acc/res/hex2px.pl b/desk.acc/res/hex2px.pl index ab5713d..bc40572 100755 --- a/desk.acc/res/hex2px.pl +++ b/desk.acc/res/hex2px.pl @@ -6,6 +6,7 @@ use strict; use warnings; while () { - s/(\$(..))/'px(%' . reverse(sprintf('%07b', hex($2))) . ')'/eg; + s/(\$([0-7][0-9A-F])\b)/'px(%' . reverse(sprintf('%07b', hex($2))) . ')'/ieg; + s/(\$([89A-F][0-9A-F])\b)/'PX(%' . reverse(sprintf('%07b', 0x7f & hex($2))) . ')'/ieg; print; } diff --git a/desktop/README.md b/desktop/README.md index 83f6b2e..9e8c5f4 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -20,9 +20,14 @@ The file is broken down into multiple segments: * segment 2: aux2 - offset $8580, length $1D00, loaded at $D000 (through $ECFF) * segment 3: aux2 - offset $A280, length $0500, loaded at $FB00 (through $FFFF) * segment 4: main - offset $A780, length $7F00, loaded at $4000 (through $BEFF) + * main $BF00-$BFFF is ProDOS buffers + * main $C000-$CFFF is I/O space + * main $D000-$FFFF is ProDOS * segment 5: _TBD_ - 38k so must be further subdivided. Much of the space is data: * API jump table at $40E5, param details at $4184 * Font is at $8800 + +Icon bitmaps are at $FF00-ish (.SYSTEM file is $FF06), stride 5, $22x$11px diff --git a/desktop/go.sh b/desktop/go.sh index 5267684..f25ec35 100755 --- a/desktop/go.sh +++ b/desktop/go.sh @@ -7,21 +7,32 @@ CAFLAGS="--target apple2enh --list-bytes 0" LDFLAGS="--config apple2-asm.cfg" -function doseg { +function daseg { #../../desk.acc/res/make_info.pl $2 < "orig/DESKTOP2_$1" > "infos/$1.info" echo ".org \$$2" > "$1.s" $CC65/da65 "orig/DESKTOP2_$1" --info "infos/$1.info" >> "$1.s" +} +function asmseg { $CC65/ca65 $CAFLAGS --listing "$1.list" -o "$1.o" "$1.s" $CC65/ld65 $LDFLAGS -o "$1.built" "$1.o" diff "orig/DESKTOP2_$1" "$1.built" } -doseg s0_loader 2000 +daseg s0_loader 2000 +asmseg s0_loader 2000 -doseg s1_aux1 4000 -doseg s2_aux2 D000 -doseg s3_aux3 FB00 -doseg s4_main1 4000 +daseg s1_aux1 4000 +asmseg s1_aux1 4000 -#doseg 12680_1BCDF +daseg s2_aux2 D000 +asmseg s2_aux2 D000 + +# s3 has been disassembled by hand +asmseg s3_aux3 D000 + +daseg s4_main1 4000 +asmseg s4_main1 4000 + +#daseg 12680_1BCDF +#asmseg 12680_1BCDF diff --git a/desktop/s0_loader.s b/desktop/s0_loader.s index d2e6e65..044a975 100644 --- a/desktop/s0_loader.s +++ b/desktop/s0_loader.s @@ -1,6 +1,6 @@ .org $2000 ; da65 V2.16 - Git f5e9b401 -; Created: 2017-09-17 15:06:29 +; Created: 2017-09-27 19:22:24 ; Input file: orig/DESKTOP2_s0_loader ; Page: 1 diff --git a/desktop/s1_aux1.s b/desktop/s1_aux1.s index 220890f..3190662 100644 --- a/desktop/s1_aux1.s +++ b/desktop/s1_aux1.s @@ -1,6 +1,6 @@ .org $4000 ; da65 V2.16 - Git f5e9b401 -; Created: 2017-09-17 15:06:29 +; Created: 2017-09-27 19:22:24 ; Input file: orig/DESKTOP2_s1_aux1 ; Page: 1 diff --git a/desktop/s2_aux2.s b/desktop/s2_aux2.s index bd46add..4ed0325 100644 --- a/desktop/s2_aux2.s +++ b/desktop/s2_aux2.s @@ -1,6 +1,6 @@ .org $D000 ; da65 V2.16 - Git f5e9b401 -; Created: 2017-09-17 15:06:29 +; Created: 2017-09-27 19:22:24 ; Input file: orig/DESKTOP2_s2_aux2 ; Page: 1 diff --git a/desktop/s3_aux3.s b/desktop/s3_aux3.s index 4d68974..1aa8b4d 100644 --- a/desktop/s3_aux3.s +++ b/desktop/s3_aux3.s @@ -1,190 +1,326 @@ -.org $FB00 -; da65 V2.16 - Git f5e9b401 -; Created: 2017-09-17 15:06:29 -; Input file: orig/DESKTOP2_s3_aux3 -; Page: 1 - - + .org $FB00 .setcpu "65C02" -A2D := $4000 -UNKNOWN_CALL := $8E00 -MLI := $BF00 -RAMRDOFF := $C002 -RAMRDON := $C003 -RAMWRTOFF := $C004 -RAMWRTON := $C005 -ALTZPOFF := $C008 -ALTZPON := $C009 -LCBANK1 := $C08B -AUXMOVE := $C311 -XFER := $C314 -FSUB := $E7A7 -FADD := $E7BE -FMULT := $E97F -FDIV := $EA66 -ROUND := $EB2B -FLOAT := $EB93 -FIN := $EC4A -FOUT := $ED34 - .byte $08,$FB,$42,$FB,$11,$FB,$1A,$FB - .byte $08,$00,$B0,$04,$06,$0F,$FF,$FC - .byte $01,$60,$50,$50,$50,$20,$00,$10 - .byte $30,$10,$20,$3F,$3F,$3F,$20,$3F +;;; To find: Hard disk, 5.25 floppy, 3.5 floppy, Trash + + .include "../desk.acc/a2d.inc" + + .addr LFB08 + .addr $FB42 + .addr LFB11 + .addr LFB1A + +LFB08: .byte $08,$00,$B0,$04,$06,$0F,$FF,$FC,$01 +LFB11: .byte $60,$50,$50,$50,$20,$00,$10,$30,$10 +LFB1A: .byte $20,$3F,$3F,$3F,$20,$3F .byte $3F,$3F,$20,$53,$52,$43,$20,$54 .byte $58,$54,$20,$42,$49,$4E,$20,$44 .byte $49,$52,$20,$53,$59,$53,$20,$42 .byte $41,$53,$20,$53,$59,$53,$20,$42 - .byte $41,$44,$52,$FB,$5E,$FB,$5E,$FB + .byte $41,$44 + .byte $52,$FB,$5E,$FB,$5E,$FB .byte $6A,$FB,$76,$FB,$82,$FB,$8E,$FB - .byte $9A,$FB,$A6,$FB,$04,$00,$00,$00 - .byte $00,$00,$1B,$00,$11,$00,$36,$FC + .byte $9A,$FB,$A6,$FB + .byte $04,$00,$00,$00 + .byte $00,$00,$1B,$00,$11,$00 + .byte $36,$FC .byte $04,$00,$00,$00,$00,$00,$1B,$00 - .byte $11,$00,$C6,$FC,$04,$00,$00,$00 - .byte $00,$00,$1B,$00,$11,$00,$56,$FD + .byte $11,$00 + .byte $C6,$FC + .byte $04,$00,$00,$00 + .byte $00,$00,$1B,$00,$11,$00 + .byte $56,$FD .byte $04,$00,$00,$00,$00,$00,$1B,$00 - .byte $11,$00,$E6,$FD,$04,$00,$00,$00 - .byte $00,$00,$1B,$00,$11,$00,$76,$FE + .byte $11,$00 + .byte $E6,$FD + .byte $04,$00,$00,$00 + .byte $00,$00,$1B,$00,$11,$00 + .byte $76,$FE .byte $04,$00,$00,$00,$00,$00,$1B,$00 - .byte $11,$00,$06,$FF,$05,$00,$00,$00 + .byte $11,$00 + .byte $06,$FF + .byte $05,$00,$00,$00 .byte $00,$00,$22,$00,$11,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$FF,$FF - .byte $FF,$01,$01,$00,$C0,$03,$01,$00 - .byte $C0,$06,$01,$00,$C0,$0C,$01,$00 - .byte $C0,$98,$01,$00,$C0,$B0,$01,$00 - .byte $C0,$E0,$01,$00,$C0,$FF,$01,$00 - .byte $00,$C0,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$FF,$FF,$FF,$FF,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$FF,$FF - .byte $FF,$01,$FF,$FF,$FF,$03,$FF,$FF - .byte $FF,$07,$FF,$FF,$FF,$0F,$FF,$FF - .byte $FF,$1F,$FF,$FF,$FF,$3F,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$FF,$FF - .byte $FF,$01,$01,$00,$C0,$03,$19,$3E - .byte $FE,$06,$01,$00,$C0,$0C,$79,$73 - .byte $41,$98,$01,$00,$40,$30,$79,$3C - .byte $46,$E0,$01,$00,$C0,$FF,$01,$00 - .byte $00,$40,$79,$33,$1E,$4F,$01,$00 - .byte $00,$40,$79,$3C,$7F,$40,$01,$00 - .byte $00,$C0,$79,$7C,$79,$43,$01,$00 - .byte $00,$C0,$FF,$FF,$FF,$FF,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$FF,$FF - .byte $FF,$01,$FF,$FF,$FF,$03,$FF,$FF - .byte $FF,$07,$FF,$FF,$FF,$0F,$FF,$FF - .byte $FF,$1F,$FF,$FF,$FF,$3F,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$C0 - .byte $01,$00,$00,$30,$06,$00,$00,$0C - .byte $18,$00,$00,$03,$60,$00,$60,$00 - .byte $00,$03,$18,$0C,$0C,$0C,$06,$12 - .byte $0A,$30,$01,$12,$08,$40,$06,$12 - .byte $08,$30,$18,$0C,$08,$0C,$60,$00 - .byte $00,$03,$00,$03,$60,$00,$00,$0C - .byte $18,$00,$00,$30,$06,$00,$00,$C0 - .byte $01,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$C0,$01,$00,$00,$70 - .byte $07,$00,$00,$FC,$1F,$00,$00,$FF - .byte $FF,$00,$60,$FF,$FF,$03,$F8,$FF - .byte $FF,$0F,$FE,$FF,$FF,$3F,$F8,$FF - .byte $FF,$0F,$60,$FF,$FF,$03,$00,$FF - .byte $FF,$00,$00,$FC,$1F,$00,$00,$70 - .byte $07,$00,$00,$C0,$01,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$FC,$3F - .byte $00,$00,$02,$40,$00,$00,$FE,$FF - .byte $FF,$3F,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$01,$00,$00,$C0,$01,$00 - .byte $00,$C0,$FE,$FF,$FF,$3F,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$FC,$3F - .byte $00,$00,$FE,$FF,$00,$00,$FE,$FF - .byte $FF,$3F,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FE,$FF,$FF,$3F,$78,$7F - .byte $7F,$0F,$06,$00,$00 -COUT: .byte $30,$66,$7F,$7F,$33,$66,$00,$04 - .byte $33,$66,$00,$02,$33,$66,$04,$11 - .byte $33,$66,$02,$08,$33,$66,$7F,$7F - .byte $33,$06,$00,$00,$30,$78,$7F,$7F - .byte $0F,$00,$00,$00,$00,$7F,$7F,$7F - .byte $7F,$03,$00,$00,$60,$33,$00,$00 - .byte $60,$03,$00,$00,$60,$7F,$7F,$7F - .byte $7F,$03,$00,$00,$60,$7F,$7F,$7F - .byte $7F,$00,$00,$00,$00,$78,$7F,$7F - .byte $0F,$78,$7F,$7F,$0F,$78,$7F,$7F - .byte $0F,$78,$7F,$7F,$0F,$78,$7F,$7F - .byte $0F,$78,$7F,$7F,$0F,$78,$7F,$7F - .byte $0F,$78,$7F,$7F,$0F,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$7C,$7F,$7F,$1F,$7C,$7F,$7F - .byte $1F,$7C,$7F,$7F,$1F,$7C,$7F,$7F - .byte $1F,$7C,$7F,$7F,$1F,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$C0,$01,$00,$00,$30,$06 - .byte $00,$00,$0C,$18,$00,$00,$03,$60 - .byte $00,$00,$00,$00,$00,$3E,$0E,$2F - .byte $1E,$22,$11,$21,$31,$1E,$1F,$2F - .byte $01,$22,$11,$28,$31,$3E,$11,$2F - .byte $1E,$00,$00,$00,$00,$00,$03,$60 - .byte $00,$00,$0C,$18,$00,$00,$30,$06 - .byte $00,$00,$C0,$01,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$C0,$01 - .byte $00,$00,$70,$07,$00,$00,$FC,$1F - .byte $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF - .byte $FF,$FF,$FF,$FF,$FF,$00,$FC,$1F - .byte $00,$00,$70,$07,$00,$00,$C0,$01 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$0C,$00,$00,$00,$00 - .byte $33,$00,$00,$00,$60,$40,$01,$00 - .byte $00,$18,$00,$06,$00,$00,$06,$00 - .byte $18,$00,$40,$01,$00,$60,$00,$30 - .byte $00,$00,$00,$03,$0C,$00,$40,$1F - .byte $0C,$03,$00,$30,$60,$30,$0C,$00 - .byte $0C,$07,$0F,$30,$70,$7F,$1F,$3C - .byte $40,$01,$06,$03,$3C,$00,$06,$38 - .byte $00,$3C,$00,$18,$40,$FF,$3F,$00 - .byte $60,$40,$01,$3C,$00,$00,$33,$00 - .byte $00,$00,$00,$0C,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$0C,$00,$00 - .byte $00,$00,$3F,$00,$00,$00,$60,$7F - .byte $01,$00,$00,$78,$7F,$07,$00,$00 - .byte $7E,$7F,$1F,$00,$40,$7F,$7F,$7F - .byte $00,$70,$7F,$7F,$7F,$03,$7C,$7F - .byte $7F,$7F,$0F,$7F,$7F,$7F,$7F,$3F - .byte $7C,$7F,$7F,$7F,$1F,$70,$7F,$7F - .byte $7F,$0F,$40,$7F,$7F,$7F,$0F,$00 - .byte $7E,$7F,$1F,$0F,$00,$78,$7F,$0F - .byte $00,$00,$60,$7F,$01,$00,$00,$00 - .byte $3F,$00,$00,$00,$00,$0C,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00,$00,$00,$00,$00,$00 - .byte $00,$00,$00 + .byte $00,$00 + + +;;; Unknown + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1000000) + .byte px(%1000000),px(%0000000),PX(%0000001),px(%1100000) + .byte px(%1000000),px(%0000000),PX(%0000001),px(%0110000) + .byte px(%1000000),px(%0000000),PX(%0000001),px(%0011000) + .byte px(%1000000),px(%0000000),PX(%0000001),PX(%0001100) + .byte px(%1000000),px(%0000000),PX(%0000001),PX(%0000110) + .byte px(%1000000),px(%0000000),PX(%0000001),PX(%0000011) + .byte px(%1000000),px(%0000000),PX(%0000001),PX(%1111111) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1100000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1110000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1111000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1111100) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1111110) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + +;;; Text File + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1000000) + .byte px(%1000000),px(%0000000),PX(%0000001),px(%1100000) + .byte px(%1001100),px(%0111110),PX(%0111111),px(%0110000) + .byte px(%1000000),px(%0000000),PX(%0000001),px(%0011000) + .byte px(%1001111),px(%1100111),px(%1000001),PX(%0001100) + .byte px(%1000000),px(%0000000),px(%0000001),px(%0000110) + .byte px(%1001111),px(%0011110),px(%0110001),PX(%0000011) + .byte px(%1000000),px(%0000000),PX(%0000001),PX(%1111111) + .byte px(%1000000),px(%0000000),px(%0000000),px(%0000001) + .byte px(%1001111),px(%1100110),px(%0111100),px(%1111001) + .byte px(%1000000),px(%0000000),px(%0000000),px(%0000001) + .byte px(%1001111),px(%0011110),px(%1111111),px(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1001111),px(%0011111),px(%1001111),px(%1100001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1100000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1110000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1111000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1111100) + .byte PX(%1111111),PX(%1111111),PX(%1111111),px(%1111110) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + +;;; Binary + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000110),px(%0110000),px(%0000000) + .byte px(%0000000),px(%0011000),px(%0001100),px(%0000000) + .byte px(%0000000),px(%1100000),px(%0000011),px(%0000000) + .byte px(%0000011),px(%0000000),px(%0000000),px(%1100000) + .byte px(%0001100),px(%0011000),px(%0011000),px(%0011000) + .byte px(%0110000),px(%0100100),px(%0101000),px(%0000110) + .byte px(%1000000),px(%0100100),px(%0001000),px(%0000001) + .byte px(%0110000),px(%0100100),px(%0001000),px(%0000110) + .byte px(%0001100),px(%0011000),px(%0001000),px(%0011000) + .byte px(%0000011),px(%0000000),px(%0000000),px(%1100000) + .byte px(%0000000),px(%1100000),px(%0000011),px(%0000000) + .byte px(%0000000),px(%0011000),px(%0001100),px(%0000000) + .byte px(%0000000),px(%0000110),px(%0110000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000111),px(%1110000),px(%0000000) + .byte px(%0000000),PX(%0011111),px(%1111100),px(%0000000) + .byte px(%0000000),PX(%1111111),PX(%1111111),px(%0000000) + .byte px(%0000011),PX(%1111111),PX(%1111111),px(%1100000) + .byte PX(%0001111),PX(%1111111),PX(%1111111),px(%1111000) + .byte PX(%0111111),PX(%1111111),PX(%1111111),px(%1111110) + .byte PX(%0001111),PX(%1111111),PX(%1111111),px(%1111000) + .byte px(%0000011),PX(%1111111),PX(%1111111),px(%1100000) + .byte px(%0000000),PX(%1111111),PX(%1111111),px(%0000000) + .byte px(%0000000),PX(%0011111),px(%1111100),px(%0000000) + .byte px(%0000000),px(%0000111),px(%1110000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + +;;; Folder + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte PX(%0011111),px(%1111110),px(%0000000),px(%0000000) + .byte px(%0100000),px(%0000001),px(%0000000),px(%0000000) + .byte PX(%0111111),PX(%1111111),PX(%1111111),px(%1111110) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte px(%1000000),px(%0000000),px(%0000000),PX(%0000001) + .byte PX(%0111111),PX(%1111111),PX(%1111111),px(%1111110) + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte PX(%0011111),px(%1111110),px(%0000000),px(%0000000) + .byte PX(%0111111),PX(%1111111),px(%0000000),px(%0000000) + .byte PX(%0111111),PX(%1111111),PX(%1111111),px(%1111110) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%0111111),PX(%1111111),PX(%1111111),px(%1111110) + +;;; System (no .SYSTEM suffix) + + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0110000),px(%0000000),px(%0000000),px(%0000110) + .byte px(%0110011),px(%1111111),px(%1111111),px(%1100110) + .byte px(%0110011),px(%0000000),px(%0010000),px(%1100110) + .byte px(%0110011),px(%0000000),px(%0100000),px(%1100110) + .byte px(%0110011),px(%0010000),px(%1000100),px(%1100110) + .byte px(%0110011),px(%0100000),px(%0001000),px(%1100110) + .byte px(%0110011),px(%1111111),px(%1111111),px(%1100110) + .byte px(%0110000),px(%0000000),px(%0000000),px(%0000110) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%1111111),px(%1111111),px(%1111111),px(%1111111) + .byte px(%1100000),px(%0000000),px(%0000000),px(%0000011) + .byte px(%1100110),px(%0000000),px(%0000000),px(%0000011) + .byte px(%1100000),px(%0000000),px(%0000000),px(%0000011) + .byte px(%1111111),px(%1111111),px(%1111111),px(%1111111) + .byte px(%1100000),px(%0000000),px(%0000000),px(%0000011) + .byte px(%1111111),px(%1111111),px(%1111111),px(%1111111) + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0001111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111100) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111100) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111100) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111100) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111100) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + +;;; Basic + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000110),px(%0110000),px(%0000000) + .byte px(%0000000),px(%0011000),px(%0001100),px(%0000000) + .byte px(%0000000),px(%1100000),px(%0000011),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0111110),px(%0111000),px(%1111010),px(%0111100) + .byte px(%0100010),px(%1000100),px(%1000010),px(%1000110) + .byte px(%0111100),px(%1111100),px(%1111010),px(%1000000) + .byte px(%0100010),px(%1000100),px(%0001010),px(%1000110) + .byte px(%0111110),px(%1000100),px(%1111010),px(%0111100) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%1100000),px(%0000011),px(%0000000) + .byte px(%0000000),px(%0011000),px(%0001100),px(%0000000) + .byte px(%0000000),px(%0000110),px(%0110000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000111),px(%1110000),px(%0000000) + .byte px(%0000000),PX(%0011111),px(%1111100),px(%0000000) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte PX(%1111111),PX(%1111111),PX(%1111111),PX(%1111111) + .byte px(%0000000),PX(%0011111),px(%1111100),px(%0000000) + .byte px(%0000000),px(%0000111),px(%1110000),px(%0000000) + .byte px(%0000000),PX(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000) + +;;; System (with .SYSTEM suffix) + + .byte px(%0000000),px(%0000000),px(%0011000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%1100110),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000011),px(%0000001),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0001100),px(%0000000),px(%0110000),px(%0000000) + .byte px(%0000000),px(%0110000),px(%0000000),px(%0001100),px(%0000000) + .byte px(%0000001),px(%1000000),px(%0000000),px(%0000011),px(%0000000) + .byte px(%0000110),px(%0000000),px(%0000000),px(%0000000),px(%1100000) + .byte px(%0011000),px(%0000000),px(%0000001),px(%1111100),px(%0011000) + .byte px(%1100000),px(%0000000),px(%0000110),px(%0000011),px(%0000110) + .byte px(%0011000),px(%0000000),px(%0011000),px(%1110000),px(%1111000) + .byte px(%0000110),px(%0000111),px(%1111111),px(%1111100),px(%0011110) + .byte px(%0000001),px(%1000000),px(%0110000),px(%1100000),px(%0011110) + .byte px(%0000000),px(%0110000),px(%0001110),px(%0000000),px(%0011110) + .byte px(%0000000),px(%0001100),px(%0000001),PX(%1111111),px(%1111110) + .byte px(%0000000),px(%0000011),px(%0000001),px(%1000000),px(%0011110) + .byte px(%0000000),px(%0000000),px(%1100110),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0011000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) + + .byte px(%0000000),px(%0000000),px(%0011000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%1111110),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000011),px(%1111111),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0001111),px(%1111111),px(%1110000),px(%0000000) + .byte px(%0000000),px(%0111111),px(%1111111),px(%1111100),px(%0000000) + .byte px(%0000001),px(%1111111),px(%1111111),px(%1111111),px(%0000000) + .byte px(%0000111),px(%1111111),px(%1111111),px(%1111111),px(%1100000) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%1111111),px(%1111111),px(%1111111),px(%1111111),px(%1111110) + .byte px(%0011111),px(%1111111),px(%1111111),px(%1111111),px(%1111100) + .byte px(%0000111),px(%1111111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0000001),px(%1111111),px(%1111111),px(%1111111),px(%1111000) + .byte px(%0000000),px(%0111111),px(%1111111),px(%1111100),px(%1111000) + .byte px(%0000000),px(%0001111),px(%1111111),px(%1111000),px(%0000000) + .byte px(%0000000),px(%0000011),px(%1111111),px(%1000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%1111110),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0011000),px(%0000000),px(%0000000) + .byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000) + + .byte 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,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 diff --git a/desktop/s4_main1.s b/desktop/s4_main1.s index 12daa5d..4f7917f 100644 --- a/desktop/s4_main1.s +++ b/desktop/s4_main1.s @@ -1,6 +1,6 @@ .org $4000 ; da65 V2.16 - Git f5e9b401 -; Created: 2017-09-17 15:06:29 +; Created: 2017-09-27 19:22:24 ; Input file: orig/DESKTOP2_s4_main1 ; Page: 1