+-------------------------------+
|       	                |
|  LODRAW.TOOLBOX  Disassembly  |
|  By Craig Bower - July  6/05  |
|			        |
+-------------------------------+

DISK VOLUME 254

*A 026 LODRAW				; Requires LODRAW.TOOLBOX
*B 012 LODRAW.TOOLBOX			; A$6FFF L$AD2

+-------------------------------------------+
|					    |
|      LODRAW.TOOLBOX Quick guide to        |
| Subroutine entry points and end locations |
|					    |
+-------------------------------------------+

(00) $6FFF >> RTS to allow for BRUN without crashing
(01) $7000 -> $73FF >> Undo Buffer Picture storage
(02) $7400 -> $7427 >> Move picture to/From Undo buffer
	a) $7411 (29713) >> ADC ($6C) offset (page select)*
	b) $7415 (29717) >> Source Page (GBASCALC)*
	c) $7417 (29719) >> Destination Page (GBASCALC)*
(03) $7428 -> $7447 >> Inverse
(04) $7448 -> $7461 >> Paint screen to current color
	a) Color is plotting color, plot must be on
(05) $7462 -> $748D >> EOR $6C00 w/ $0400
(06) $748E -> $74CB >> Display Help Screen
(07) $74CC -> $74E3 >> Return Undo buffer to Display
(08) $7500 -> $78FF >> Help text screen
(09) $7900 -> $7932 >> Replace Color ($FC) with $(FD)
(10) $7933 -> $7957 >> Move Screen Right 1 pixel
(11) $7958 -> $797E >> Move Screen Left 1 pixel
(12) $797F -> $79E2 >> Move Screen Up 1 pixel
(13) $79E3 -> $7A4E >> Move Screen Down 1 pixel
(14) $7A4F -> $7A86 >> Horizontal Flip of Screen
(15) $7A87 -> $7AD1 >> Vertical Flip of Screen

* The Source and Destination pages get switched around to determine
which way the transfer will go.  Initially, it's $26 (ZP) at $7415 and a
$FA (ZP) at $7417 which moves from $0400 to $7000.  Some routines change
these values to $FA (ZP) at $7415 and $26 (ZP) at $7417 to move from
$7000 to $0400.  The ADC ($6C) offset is simply page select minus $04
to offset the GBASCALC $04 at ZP location $26 after a call to GBASCALC
($F847) with $00 (line 1) in the Accumulator.

+------------------------------------------------------------------+
|            Miscellaneous Memory usage (buffers)	           |
+------------------------------------------------------------------+
| 4000-43FF - [File operations picture 'Load' area]		   |
| 4B00-4B28 - [One line 'work-area' for up/down move of screen]	   |
| 6C00-6FFF - [Picture 'Merge buffer' storage space]		   |
| 7000-73FF - [Initially title page, becomes undo buffer @ runtime |
| 7500-78FF - [Help Screen / Command Chart storage area]	   |
+------------------------------------------------------------------+

6FFF-   60	    RTS			; RTS / BRUN or BLOAD

7000-73FF - [Initially title page.  Becomes 'undo buffer' @ runtime]

7400-   A9 00       LDA   #$00		; Undo Buffer Store/Move
7402-   85 FE       STA   $FE
7404-   A8          TAY
7405-   A5 FE       LDA   $FE
7407-   20 47 F8    JSR   $F847		; F8ROM:GBASCALC
740A-   A5 26       LDA   $26
740C-   85 FA       STA   $FA
740E-   A5 27       LDA   $27
7410-   69 6C       ADC   #$6C
7412-   85 FB       STA   $FB
7414-   B1 26       LDA   ($26),Y
7416-   91 FA       STA   ($FA),Y
7418-   C8          INY
7419-   C0 28       CPY   #$28
741B-   D0 F7       BNE   $7414
741D-   A0 00       LDY   #$00
741F-   E6 FE       INC   $FE
7421-   A5 FE       LDA   $FE
7423-   C9 14       CMP   #$14
7425-   D0 DE       BNE   $7405
7427-   60          RTS

7428-   A9 00       LDA   #$00		; Inverse Screen
742A-   85 FC       STA   $FC
742C-   A5 FC       LDA   $FC
742E-   20 47 F8    JSR   $F847		; F8ROM:GBASCALC
7431-   A0 00       LDY   #$00
7433-   18          CLC
7434-   A9 FF       LDA   #$FF
7436-   51 26       EOR   ($26),Y
7438-   91 26       STA   ($26),Y
743A-   C8          INY
743B-   C0 28       CPY   #$28
743D-   D0 F4       BNE   $7433
743F-   E6 FC       INC   $FC
7441-   A5 FC       LDA   $FC
7443-   C9 14       CMP   #$14
7445-   D0 E7       BNE   $742E
7447-   60          RTS

7448-   A9 00       LDA   #$00		; Fill Screen to Color
744A-   AA          TAX
744B-   A8          TAY
744C-   20 00 F8    JSR   $F800		; F8ROM:PLOT
744F-   8A          TXA
7450-   C8          INY
7451-   C0 28       CPY   #$28
7453-   D0 F7       BNE   $744C
7455-   A0 00       LDY   #$00
7457-   E8          INX
7458-   8A          TXA
7459-   E0 28       CPX   #$28
745B-   D0 EF       BNE   $744C
745D-   60          RTS
745E-   28          PLP
745F-   D0 EF       BNE   $7450
7461-   60          RTS

7462-   A9 00       LDA   #$00		; EOR $6C00 w/ $0400
7464-   85 FE       STA   $FE		; Merge pics $6C00 -> $0400
7466-   A8          TAY
7467-   A5 FE       LDA   $FE
7469-   20 47 F8    JSR   $F847		; F8ROM:GBASCALC
746C-   A5 26       LDA   $26
746E-   85 FA       STA   $FA
7470-   A5 27       LDA   $27
7472-   69 68       ADC   #$68
7474-   85 FB       STA   $FB
7476-   B1 FA       LDA   ($FA),Y
7478-   51 26       EOR   ($26),Y
747A-   18          CLC
747B-   91 26       STA   ($26),Y
747D-   C8          INY
747E-   C0 28       CPY   #$28
7480-   D0 F4       BNE   $7476
7482-   E6 FE       INC   $FE
7484-   A9 00       LDA   #$00
7486-   A8          TAY
7487-   A5 FE       LDA   $FE
7489-   C9 14       CMP   #$14
748B-   D0 DA       BNE   $7467
748D-   60          RTS

748E-   A9 71       LDA   #$71		; Display Help Screen
7490-   8D 11 74    STA   $7411
7493-   A9 18       LDA   #$18
7495-   8D 24 74    STA   $7424
7498-   A9 FA       LDA   #$FA
749A-   8D 15 74    STA   $7415
749D-   A9 26       LDA   #$26
749F-   8D 17 74    STA   $7417
74A2-   20 00 74    JSR   $7400
74A5-   A9 00       LDA   #$00
74A7-   8D 10 C0    STA   $C010		; r:KBDSTRB
74AA-   18          CLC
74AB-   AD 00 C0    LDA   $C000		; r:KBD
74AE-   69 80       ADC   #$80
74B0-   90 F8       BCC   $74AA
74B2-   A9 00       LDA   #$00
74B4-   8D 10 C0    STA   $C010		; r:KBDSTRB
74B7-   A9 6C       LDA   #$6C
74B9-   8D 11 74    STA   $7411
74BC-   A9 14       LDA   #$14
74BE-   8D 24 74    STA   $7424
74C1-   A9 26       LDA   #$26
74C3-   8D 15 74    STA   $7415
74C6-   A9 FA       LDA   #$FA
74C8-   8D 17 74    STA   $7417
74CB-   60          RTS

74CC-   A9 FA       LDA   #$FA		; Return Undo buffer to display
74CE-   8D 15 74    STA   $7415
74D1-   A9 26       LDA   #$26
74D3-   8D 17 74    STA   $7417
74D6-   20 00 74    JSR   $7400
74D9-   A9 26       LDA   #$26
74DB-   8D 15 74    STA   $7415
74DE-   A9 FA       LDA   #$FA
74E0-   8D 17 74    STA   $7417
74E3-   60          RTS

7500-78FF - [Help Screen / Command Chart storage area]

7900-   A5 FD       LDA   $FD		; Replace Color in $FC with $FD
7902-   20 64 F8    JSR   $F864		; F8ROM:SETCOL
7905-   A9 00       LDA   #$00
7907-   85 FA       STA   $FA
7909-   85 FB       STA   $FB
790B-   A8          TAY
790C-   20 71 F8    JSR   $F871		; F8ROM:SCRN
790F-   C5 FC       CMP   $FC
7911-   D0 07       BNE   $791A
7913-   A5 FA       LDA   $FA
7915-   A4 FB       LDY   $FB
7917-   20 00 F8    JSR   $F800		; F8ROM:PLOT
791A-   E6 FA       INC   $FA
791C-   A4 FB       LDY   $FB
791E-   A5 FA       LDA   $FA
7920-   C9 28       CMP   #$28
7922-   D0 E8       BNE   $790C
7924-   A9 00       LDA   #$00
7926-   85 FA       STA   $FA
7928-   E6 FB       INC   $FB
792A-   A5 FA       LDA   $FA
792C-   A4 FB       LDY   $FB
792E-   C0 28       CPY   #$28
7930-   D0 DA       BNE   $790C
7932-   60          RTS

7933-   A9 00       LDA   #$00		; Move Screen [Right]
7935-   85 FE       STA   $FE
7937-   A5 FE       LDA   $FE
7939-   20 47 F8    JSR   $F847		; F8ROM:GBASCALC
793C-   A0 27       LDY   #$27
793E-   B1 26       LDA   ($26),Y
7940-   85 FD       STA   $FD
7942-   88          DEY
7943-   B1 26       LDA   ($26),Y
7945-   C8          INY
7946-   91 26       STA   ($26),Y
7948-   88          DEY
7949-   D0 F7       BNE   $7942
794B-   A5 FD       LDA   $FD
794D-   91 26       STA   ($26),Y
794F-   E6 FE       INC   $FE
7951-   A5 FE       LDA   $FE
7953-   C9 14       CMP   #$14
7955-   D0 E2       BNE   $7939
7957-   60          RTS

7958-   A9 00       LDA   #$00		; Move Screen [Left]
795A-   85 FE       STA   $FE
795C-   A5 FE       LDA   $FE
795E-   20 47 F8    JSR   $F847		; F8ROM:GBASCALC
7961-   A0 00       LDY   #$00
7963-   B1 26       LDA   ($26),Y
7965-   85 FD       STA   $FD
7967-   C8          INY
7968-   B1 26       LDA   ($26),Y
796A-   88          DEY
796B-   91 26       STA   ($26),Y
796D-   C8          INY
796E-   C0 27       CPY   #$27
7970-   D0 F5       BNE   $7967
7972-   A5 FD       LDA   $FD
7974-   91 26       STA   ($26),Y
7976-   E6 FE       INC   $FE
7978-   A5 FE       LDA   $FE
797A-   C9 14       CMP   #$14
797C-   D0 E0       BNE   $795E
797E-   60          RTS

797F-   A9 00       LDA   #$00		; Move Screen [Up]
7981-   A8          TAY    
7982-   85 FC       STA   $FC
7984-   85 FD       STA   $FD
7986-   AA          TAX
7987-   A4 FC       LDY   $FC
7989-   A5 FD       LDA   $FD
798B-   20 71 F8    JSR   $F871 	; F8ROM:SCRN
798E-   9D 00 4B    STA   $4B00,X
7991-   E6 FC       INC   $FC
7993-   E8          INX
7994-   E0 28       CPX   #$28
7996-   D0 EF       BNE   $7987
7998-   A9 00       LDA   #$00
799A-   A8          TAY
799B-   85 FC       STA   $FC
799D-   AA          TAX
799E-   E6 FD       INC   $FD
79A0-   A4 FC       LDY   $FC
79A2-   A5 FD       LDA   $FD
79A4-   20 71 F8    JSR   $F871		; F8ROM:SCRN
79A7-   20 64 F8    JSR   $F864   	; F8ROM:SETCOL
79AA-   C6 FD       DEC   $FD
79AC-   A4 FC       LDY   $FC
79AE-   A5 FD       LDA   $FD
79B0-   20 00 F8    JSR   $F800		; F8ROM:PLOT
79B3-   E6 FD       INC   $FD
79B5-   E6 FC       INC   $FC
79B7-   A6 FC       LDX   $FC
79B9-   E0 28       CPX   #$28
79BB-   D0 E3       BNE   $79A0
79BD-   A9 00       LDA   #$00
79BF-   A8          TAY
79C0-   85 FC       STA   $FC
79C2-   A5 FD       LDA   $FD
79C4-   C9 27       CMP   #$27
79C6-   D0 D6       BNE   $799E
79C8-   A9 00       LDA   #$00
79CA-   AA          TAX
79CB-   85 FC       STA   $FC
79CD-   A8          TAY
79CE-   BD 00 4B    LDA   $4B00,X
79D1-   20 64 F8    JSR   $F864		; F8ROM:SETCOL
79D4-   A5 FD       LDA   $FD
79D6-   A4 FC       LDY   $FC
79D8-   20 00 F8    JSR   $F800		; F8ROM:PLOT
79DB-   E6 FC       INC   $FC
79DD-   E8          INX
79DE-   E0 28       CPX   #$28
79E0-   D0 EC       BNE   $79CE
79E2-   60          RTS

79E3-   A9 27       LDA   #$27		; Move Screen [Down]
79E5-   A0 00       LDY   #$00
79E7-   85 FD       STA   $FD
79E9-   84 FC       STY   $FC
79EB-   A2 00       LDX   #$00
79ED-   20 71 F8    JSR   $F871		; F8ROM:SCRN
79F0-   9D 00 4B    STA   $4B00,X
79F3-   E6 FC       INC   $FC
79F5-   E8          INX
79F6-   A4 FC       LDY   $FC
79F8-   A5 FD       LDA   $FD
79FA-   E0 28       CPX   #$28
79FC-   D0 EF       BNE   $79ED
79FE-   A9 26       LDA   #$26
7A00-   A0 00       LDY   #$00
7A02-   A2 00       LDX   #$00
7A04-   85 FD       STA   $FD
7A06-   84 FC       STY   $FC
7A08-   20 71 F8    JSR   $F871		; F8ROM:SCRN
7A0B-   20 64 F8    JSR   $F864		; F8ROM:SETCOL
7A0E-   E6 FD       INC   $FD
7A10-   A4 FC       LDY   $FC
7A12-   A5 FD       LDA   $FD
7A14-   20 00 F8    JSR   $F800		; F8ROM:PLOT
7A17-   C6 FD       DEC   $FD
7A19-   E6 FC       INC   $FC
7A1B-   A6 FC       LDX   $FC
7A1D-   A4 FC       LDY   $FC
7A1F-   A5 FD       LDA   $FD
7A21-   E0 28       CPX   #$28
7A23-   D0 E3       BNE   $7A08
7A25-   A0 00       LDY   #$00
7A27-   84 FC       STY   $FC
7A29-   C6 FD       DEC   $FD
7A2B-   A4 FC       LDY   $FC
7A2D-   A5 FD       LDA   $FD
7A2F-   C9 FF       CMP   #$FF
7A31-   D0 D5       BNE   $7A08
7A33-   A9 00       LDA   #$00
7A35-   85 FC       STA   $FC
7A37-   85 FD       STA   $FD
7A39-   AA          TAX
7A3A-   BD 00 4B    LDA   $4B00,X
7A3D-   20 64 F8    JSR   $F864		; F8ROM:SETCOL
7A40-   A5 FD       LDA   $FD
7A42-   A4 FC       LDY   $FC
7A44-   20 00 F8    JSR   $F800		; F8ROM:PLOT
7A47-   E6 FC       INC   $FC
7A49-   E8          INX
7A4A-   E0 28       CPX   #$28
7A4C-   D0 EC       BNE   $7A3A
7A4E-   60          RTS

7A4F-   A9 00       LDA   #$00		; Horizontal Flip
7A51-   85 FA       STA   $FA
7A53-   85 FB       STA   $FB
7A55-   A0 27       LDY   #$27
7A57-   84 FC       STY   $FC
7A59-   20 47 F8    JSR   $F847		; F8ROM:GBASCALC
7A5C-   B1 26       LDA   ($26),Y
7A5E-   85 FD       STA   $FD
7A60-   A4 FB       LDY   $FB
7A62-   B1 26       LDA   ($26),Y
7A64-   A4 FC       LDY   $FC
7A66-   91 26       STA   ($26),Y
7A68-   A5 FD       LDA   $FD
7A6A-   A4 FB       LDY   $FB
7A6C-   91 26       STA   ($26),Y
7A6E-   E6 FB       INC   $FB
7A70-   C6 FC       DEC   $FC
7A72-   A4 FC       LDY   $FC
7A74-   A5 FB       LDA   $FB
7A76-   C9 14       CMP   #$14
7A78-   D0 E2       BNE   $7A5C
7A7A-   E6 FA       INC   $FA
7A7C-   A9 00       LDA   #$00
7A7E-   85 FB       STA   $FB
7A80-   A5 FA       LDA   $FA
7A82-   C9 14       CMP   #$14
7A84-   D0 CF       BNE   $7A55
7A86-   60          RTS

7A87-   A9 00       LDA   #$00		; Vertical Flip
7A89-   85 FA       STA   $FA
7A8B-   85 FB       STA   $FB
7A8D-   85 FC       STA   $FC
7A8F-   A9 27       LDA   #$27
7A91-   85 FD       STA   $FD
7A93-   A4 FA       LDY   $FA
7A95-   A5 FB       LDA   $FB
7A97-   20 71 F8    JSR   $F871		; F8ROM:SCRN
7A9A-   AA          TAX
7A9B-   A4 FC       LDY   $FC
7A9D-   A5 FD       LDA   $FD
7A9F-   20 71 F8    JSR   $F871		; F8ROM:SCRN
7AA2-   20 64 F8    JSR   $F864		; F8ROM:SETCOL
7AA5-   A4 FA       LDY   $FA
7AA7-   A5 FB       LDA   $FB
7AA9-   20 00 F8    JSR   $F800		; F8ROM:PLOT
7AAC-   8A          TXA
7AAD-   20 64 F8    JSR   $F864		; F8ROM:SETCOL
7AB0-   A4 FC       LDY   $FC
7AB2-   A5 FD       LDA   $FD
7AB4-   20 00 F8    JSR   $F800		; F8ROM:PLOT
7AB7-   E6 FA       INC   $FA
7AB9-   E6 FC       INC   $FC
7ABB-   A5 FA       LDA   $FA
7ABD-   C9 28       CMP   #$28
7ABF-   D0 D2       BNE   $7A93
7AC1-   A9 00       LDA   #$00
7AC3-   85 FA       STA   $FA
7AC5-   85 FC       STA   $FC
7AC7-   E6 FB       INC   $FB
7AC9-   C6 FD       DEC   $FD
7ACB-   A5 FB       LDA   $FB
7ACD-   C9 14       CMP   #$14
7ACF-   D0 C2       BNE   $7A93
7AD1-   60          RTS