a2d/desktop
2017-10-05 21:18:28 -07:00
..
infos Bytes to code 2017-10-02 20:46:01 -07:00
orig Rearrange files 2017-09-17 11:28:57 -07:00
res
.gitignore Add .gitignore for DeskTop dir 2017-09-18 20:31:16 -07:00
go.sh Bytes to code 2017-10-02 20:25:53 -07:00
README.md DeskTop: Icon disassembly WIP 2017-09-27 19:41:40 -07:00
s0_loader.s DeskTop: Strings and icons in seg2 2017-09-28 08:45:05 -07:00
s1_aux1.s DeskTop Seg 1: A2D dispatching 2017-10-05 21:18:28 -07:00
s2_aux2.s DeskTop: more seg2 structuring 2017-09-29 16:57:02 -04:00
s3_aux3.s DeskTop: Strings and icons in seg2 2017-09-28 08:45:05 -07:00
s4_main1.s DeskTop: Strings and icons in seg2 2017-09-28 08:45:05 -07:00

DeskTop diassembly notes

DESKTOP.SYSTEM

A short (8k) loader program. This is likely responsible for copying the rest to a RAM card (if available), then invoking the main app.

DESKTOP2.$F1

This is large - 111k. It includes a loader, the DeskTop app (with both main memory and aux memory segments, filling everything from $4000 to $FFFF (except for I/O space and ProDOS), and still having more code - probably the disk copy code which is swapped in dynamically.

The file is broken down into multiple segments:

  • segment 0: load - offset $0000, length $0580, loaded at $2000
  • segment 1: aux1 - offset $0580, length $8000, loaded at $4000 (through $BFFF)
  • 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