* * GS/Paint * version 1.2 * * (c) 1986-1987, Version Soft * (s) 2020, Brutal Deluxe Software * mx %00 rel use PALETTE.E use PALETTE.X lst off *------------------------------- GSOS EQU $E100A8 use 4/Ctl.Macs use 4/Desk.Macs use 4/Dialog.Macs use 4/Event.Macs use 4/Font.Macs use 4/Int.Macs use 4/Line.Macs use 4/List.Macs use 4/Load.Macs use 4/Locator.Macs use 4/Mem.Macs use 4/Menu.Macs use 4/Misc.Macs use 4/Misc.Macs use 4/Print.Macs use 4/Qd.Macs use 4/QdAux.Macs use 4/Std.Macs use 4/Util.Macs use 4/Window.Macs *------------------------------- REL BRA L070004 LDA $A5 L070004 PHB PHK PLB JSR L070896 BCS L07000F BRL L0700B8 L07000F BRL L070278 L070012 STZ L0708F0 STZ L0709DA STZ L0709DC PEA $0000 PEA ^L0709B6 PEA L0709B6 _GetColorTable STZ L0708F2 JSR L0700BA L070031 PEA $0000 PEA $FFFF PEA ^L0196BB PEA L0196BB _GetNextEvent PLA LDAL L0196BB CMP #$0001 BNE L070051 JSR L070519 L070051 CMP #$0003 BNE L07005F JSL L0185C2 BCC L07005F BRL L070031 L07005F LDA L0708F2 BEQ L070031 LDA $A2 PHA LDA $A0 PHA _CloseWindow PEA $0000 _SetAllSCBs _InitPalette JSL L010D82 LDA L0709DA BEQ L070093 JSR L070896 BCC L070093 JSR L070341 L070093 LDA L070918+2 PHA LDA L070918 PHA _HUnlock LDA L070918+2 PHA LDA L070918 PHA _DisposeHandle LDA L0709DC BEQ L0700B8 STA $3C L0700B8 PLB RTL L0700BA PEA $0000 PEA $000C PEA $013F PEA $00BB JSL L018223 PEA ^L070984 PEA L070984 PEA ^L019A14 PEA L019A14 _FillRect JSR L0703A8 LDY #$0008 L0700E3 PHY LDA L07097A,Y STA L0708FC CLC ADC #$000E STA L070900 DEC STA L070904 ADC #$000E STA L070908 LDA #$007C STA L0708FE STA L070906 ADC #$0015 STA L070902 STA L07090A LDX #$0001 L070110 PHX LDA $03,S CMP #$0008 BNE L07011F DEX TXA EOR #$000F TAX DEX L07011F TXA INC JSR L070257 PEA ^L0708FC PEA L0708FC PEA ^L070922 PEA L070922 _FillRect PEA ^L0708FC PEA L0708FC _FrameRect LDA $03,S CMP #$0008 BNE L070156 LDA $01,S ADC #$0006 EOR #$000F JSR L070257 L070156 PEA ^L070904 PEA L070904 PEA ^L070922 PEA L070922 _FillRect PEA ^L070904 PEA L070904 _FrameRect PEA ^L0708FC PEA L0708FC PEA $0014 PEA $0000 _OffsetRect PEA ^L070904 PEA L070904 PEA $0014 PEA $0000 _OffsetRect PLX INX CPX #$0009 BCS L0701A6 BRL L070110 L0701A6 PLY DEY DEY BMI L0701AE BRL L0700E3 L0701AE PEA $0000 PEA $0000 LDA $A2 PHA LDA $A0 PHA PEA ^L07098C PEA L07098C PEA ^L070994 PEA L070994 PEA $0003 PEA $0000 PEA $0004 PEA $0080 PEA $0600 PEA $0000 PEA $0000 PEA $0000 PEA $0000 PEA $0000 _NewControl PLA STA L07090C PLA STA L07090C+2 LDX #$0004 L0701F6 PHX PEA $0000 PEA $0000 LDA $A2 PHA LDA $A0 PHA LDA L0709A6+2,X PHA LDA L0709A6,X PHA LDA L0709AE+2,X PHA LDA L0709AE,X PHA PEA $0000 PEA $0000 PEA $0000 PEA $0000 PEA $0000 PEA $0000 PEA $0000 PHX PEA $0000 PEA $0000 _NewControl LDA $05,S TAX PLA STA L070910,X PLA STA L070910+2,X PLA SEC SBC #$0004 TAX BEQ L0701F6 LDA $A2 PHA LDA $A0 PHA _DrawControls RTS L070257 AND #$000F STA L070275+1 ASL ASL ASL ASL ORA L070275+1 STA L070275+1 ORA L070275 LDX #$001E L07026D STA L070922,X DEX DEX BPL L07026D RTS L070275 HEX 000000 L070278 PEA $0000 PEA $0000 PEA $0000 PEA $1000 LDAL L01967F PHA PEA $8018 PEA $0000 PEA $0000 _NewHandle BCC L07029D BRK $AB L07029D PLA STA $0A STA L070918 PLA STA $0C STA L070918+2 LDA [$0A] STA L0709FA STA L0709EC STA L0708EC LDY #$0002 LDA [$0A],Y STA L0708EC+2 STA L0709FA+2 STA L0709EC+2 JSL GSOS DW $0010 ; Open ADRL L0709E0 CMP #$0046 BEQ L070319 CMP #$0000 BEQ L0702D9 BRL L07032B L0702D9 PEA ^L01A458 PEA L01A458 _SetCursor LDA L0709E0 STA L0709F8 JSL GSOS DW $0012 ; Read ADRL L0709F8 BCC L0702FB BRL L07032B L0702FB JSL GSOS DW $0014 ; Close ADRL L0709DE LDAL L019EE0+2 PHA LDAL L019EE0 PHA _SetCursor BRL L070012 L070319 JSL GSOS DW $0001 ; Create ADRL L070A06 BCC L070328 BRL L07032B L070328 BRL L070012 L07032B PHA JSL GSOS DW $0014 ; Close ADRL L0709DE PLA LDX #$0000 JSL L017D37 BRL L070093 L070341 STZ L0709E6 STZ L0709E6+2 JSL GSOS DW $0010 ; Open ADRL L0709E0 BCC L070356 BRL L070394 L070356 PEA ^L01A458 PEA L01A458 _SetCursor LDA L0709E0 STA L0709EA JSL GSOS DW $0013 ; Write ADRL L0709EA BCC L070378 BRL L070394 L070378 JSL GSOS DW $0014 ; Close ADRL L0709DE LDAL L019EE0+2 PHA LDAL L019EE0 PHA _SetCursor RTS L070394 PHA JSL GSOS DW $0014 ; Close ADRL L0709DE PLA LDX #$0000 JSL L017D37 RTS L0703A8 JSR L0704C7 LDY #$0006 L0703AE PHY LDA L07097A,Y CLC ADC #$000C STA L0708E8 ADC #$000E STA L0708EA TYA INC STA L0708E4 INC STA L0708E6 LDX #$000E L0703CB PHX LDA L0708E8 PHA LDA L0708E4 PHA _SetSCB LDA L0708EA PHA LDA L0708E6 PHA _SetSCB INC L0708E8 INC L0708EA PLX DEX BNE L0703CB PLY DEY DEY BPL L0703AE L0703F9 LDA L0708EC STA $0A LDA L0708EC+2 STA $0C LDA L0708F0 ASL ASL ASL ASL ASL TAY LDX #$0000 STX L0708E4 L070412 LDX #$0000 L070415 PHY PHX LDA L0708E4 ASL INC CPX #$0008 BCS L070422 INC L070422 PHA TXA AND #$0007 EOR #$0007 INC INC PHA LDA [$0A],Y PHA _SetColorEntry PLX PLY INY INY INX CPX #$0010 BCC L070415 INC L0708E4 LDA L0708E4 CLC ADC L0708F0 CMP #$0080 BCS L070458 LDA L0708E4 CMP #$0004 BCC L070412 L070458 PEA $000F _SetForeColor PEA $0000 _SetBackColor PEA $0000 _SetTextMode LDX #$0006 LDA L0708F0 CLC ADC #$0003 L070480 PHA PHX JSR L070635 PLX PHX TXA ASL TAX LDA L07096A+2,X PHA LDA L07096A,X PHA PEA ^L019A14 PEA L019A14 _FillRect PLX PHX PEA $0063 LDA L070942,X PHA _MoveTo PEA ^L07091C PEA L07091C _DrawString PLX PLA DEC DEX DEX BMI L0704C6 BRL L070480 L0704C6 RTS L0704C7 PEA $0000 PEA $0000 PEA $0000 _GetColorEntry PLA STA L0708E4 PEA $0000 PEA $0000 PEA $000F _GetColorEntry PLA STA L0708E6 LDX #$0001 L0704F2 PHX PHX PHX PEA $0000 LDA L0708E4 PHA _SetColorEntry PEA $000F LDA L0708E6 PHA _SetColorEntry PLX INX CPX #$000A BCC L0704F2 RTS L070519 PHA PEA ^L0709D6 PEA L0709D6 LDAL L0196C7 PHA LDAL L0196C5 PHA LDA $A2 PHA LDA $A0 PHA _FindControl PLA BNE L07053D BRL L07066E L07053D PHA LDAL L0196C7 PHA LDAL L0196C5 PHA PEA ^L070594 PEA L070594 LDA L0709D6+2 PHA LDA L0709D6 PHA _TrackControl PLA CMP #$0002 BEQ L070564 RTS L070564 LDA L0709D6 CMP L070910 BNE L070574 LDA L0709D6+2 CMP L070910+2 BEQ L07058D L070574 STZ L0709DC STZ L0709DA PEA $0000 PEA ^L0709B6 PEA L0709B6 _SetColorTable JSR L0704C7 L07058D LDA #$FFFF STA L0708F2 RTS L070594 NOP PHD PHB PHK PLB LDAL L01968D TCD LDA $0B,S AND #$007F ASL TAX JMP (L070623,X) L0705A8 LDA L0708F0 BEQ L0705FD DEC STA L0708F0 BRA L0705E7 L0705B3 LDA L0708F0 BEQ L0705FD SEC SBC #$0004 BPL L0705D1 LDA #$0000 BRA L0705D1 L0705C3 LDA L0708F0 ADC #$0004 CMP #$007C BCC L0705D1 LDA #$007C L0705D1 CMP L0708F0 BEQ L0705FD STA L0708F0 BRA L0705E7 L0705DB LDA L0708F0 CMP #$007C BCS L0705FD INC STA L0708F0 L0705E7 LDA L0708F0 PHA LDA L07090C+2 PHA LDA L07090C PHA _SetCtlValue L0705FA JSR L0703F9 L0705FD PLB PLD LDA $00,S STA $06,S LDA $02,S STA $08,S PLA PLA PLA RTL L07060B PEA $0000 LDA L07090C+2 PHA LDA L07090C PHA _GetCtlValue PLA STA L0708F0 BRA L0705FA L070623 DA L0705FD DA L07060B DA L0705FD DA L0705FD DA L0705FD DA L0705A8 DA L0705DB DA L0705B3 DA L0705C3 L070635 LDX #$0001 SEC SBC #$0064 BMI L070647 LDY #$0031 STY L07091D INX BRA L07064B L070647 CLC ADC #$0064 L07064B PHA LDA #$0030 STA L07091C,X PLA L070653 SEC SBC #$000A BMI L07065E INC L07091C,X BRA L070653 L07065E CLC ADC #$003A STA L07091D,X INX SEP #$30 STX L07091C REP #$30 RTS L07066E PEA ^L0196C5 PEA L0196C5 _GlobalToLocal LDX #$0004 L07067E PHX JSR L0706A4 PEA $0000 PEA ^L0196C5 PEA L0196C5 PEA ^L0708F4 PEA L0708F4 _PtInRect PLA BNE L0706A0 PLX DEX BPL L07067E RTS L0706A0 PLX BRL L0706C1 L0706A4 TXA ASL TAY LDA L07097A,Y STA L0708F4 CLC ADC #$001B STA L0708F8 LDA #$007C STA L0708F6 LDA #$011D STA L0708FA RTS L0706C1 STX L0708C0 L0706C4 LDAL L0196C1 STA L0708BC PEA ^L0708C4 PEA L0708C4 _SetPenPat PEA $0002 _SetPenMode STZ L0708BE PEA ^L0708F4 PEA L0708F4 _FrameRect LDAL L0196C5 STA L0708B8 LDAL L0196C7 STA L0708BA L070700 PEA $0000 PEA $0000 _GetTick PLA STAL L0196C1 PLA PEA $0000 PEA $0000 _StillDown PLA BEQ L070798 PEA ^L0196C5 PEA L0196C5 _GetMouse LDAL L0196C7 SEC SBC L0708BA TAX LDAL L0196C5 SEC SBC L0708B8 TAY BNE L070747 TXA BEQ L07075C L070747 PEA ^L0708F4 PEA L0708F4 PHX PHY JSR L070869 _OffsetRect BRL L0706C4 L07075C LDA L0708BC CLC ADC #$000A BCS L07076B CMPL L0196C1 BCS L070700 L07076B PEA ^L0199F4 PEA L0199F4 _SetPenPat PEA ^L0708F4 PEA L0708F4 _FrameRect LDAL L0196C1 STA L0708BC LDA #$FFFF EOR L0708BE STA L0708BE BRL L070700 L070798 JSR L070869 PEA $0000 _SetPenMode PEA ^L019A14 PEA L019A14 _SetPenPat LDX #$0004 L0707B5 PHX JSR L0706A4 PEA $0000 PEA ^L0196C5 PEA L0196C5 PEA ^L0708F4 PEA L0708F4 _PtInRect PLA BNE L0707D7 PLX DEX BPL L0707B5 L0707D6 RTS L0707D7 PLA CMP L0708C0 BEQ L0707D6 STA L0708C2 CMP #$0004 BNE L0707ED LDX #$0001 STX L0709DC BRA L0707FB L0707ED LDX L0708C0 CPX #$0004 BNE L0707D6 LDA #$0001 STA L0709DA L0707FB CMP #$0004 BEQ L07082A PEA $0000 PEA ^L070922 PEA L070922 _GetColorTable LDA L0708C2 JSR L070854 LDX #$0000 L070819 LDA L070922,X STA [$0A],Y INX INX INY INY CPX #$0020 BCC L070819 BRL L0703F9 L07082A LDA L0708C0 JSR L070854 LDX #$0000 L070833 LDA [$0A],Y STA L070922,X INX INX INY INY CPX #$0020 BCC L070833 PEA $0000 PEA ^L070922 PEA L070922 _SetColorTable BRL L0704C7 L070854 CLC ADC L0708F0 ASL ASL ASL ASL ASL TAY LDA L0708EC STA $0A LDA L0708EC+2 STA $0C RTS L070869 BIT L0708BE BPL L07087B PEA ^L0708F4 PEA L0708F4 _FrameRect L07087B PEA ^L0708C4 PEA L0708C4 _SetPenPat PEA ^L0708F4 PEA L0708F4 _FrameRect RTS L070896 JSL L018752 L07089A JSL GSOS DW $0006 ; GetFileInfo ADRL L070A16 BCS L0708A8 SEC RTS L0708A8 LDX #$0001 LDA #$0001 JSL L017D37 JSL L010D82 BRA L07089A L0708B8 DW $0000 L0708BA DW $0000 L0708BC DW $0000 L0708BE DW $0000 L0708C0 DW $0000 L0708C2 DW $0000 L0708C4 HEX 00FF00FFFF00FF0000FF00FFFF00FF00 HEX 00FF00FFFF00FF0000FF00FFFF00FF00 L0708E4 DW $0000 L0708E6 DW $0000 L0708E8 DW $0000 L0708EA DW $0000 L0708EC ADRL $00000000 L0708F0 DW $0000 L0708F2 DW $0000 L0708F4 DW $0000 L0708F6 DW $0000 L0708F8 DW $0000 L0708FA DW $0000 L0708FC DW $0000 L0708FE DW $0000 L070900 DW $0000 L070902 DW $0000 L070904 DW $0000 L070906 DW $0000 L070908 DW $0000 L07090A DW $0000 L07090C ADRL $00000000 L070910 ADRL $00000000 ADRL $00000000 L070918 ADRL $00000000 L07091C DB $00 L07091D DB $00 DB $00 DB $00 DB $00 DB $00 L070922 HEX 00000000000000000000000000000000 HEX 00000000000000000000000000000000 L070942 DW $0025 DW $0045 DW $0065 DW $0085 L07094A DW $0014 DW $0072 DW $0025 DW $007A L070952 DW $0034 DW $0072 DW $0045 DW $007A L07095A DW $0054 DW $0072 DW $0065 DW $007A L070962 DW $0074 DW $0072 DW $0085 DW $007A L07096A ADRL L07094A ADRL L070952 ADRL L07095A ADRL L070962 L07097A DW $0014 DW $0034 DW $0054 DW $0074 DW $009A L070984 DW $000E DW $0060 DW $0095 DW $0125 L07098C DW $000E DW $0124 DW $0095 DW $0134 L070994 DW $0000 L070996 DW $0050 DW $0014 DW $005E DW $005A L07099E DW $0078 DW $0014 DW $0086 DW $005A L0709A6 ADRL L070996 ADRL L07099E L0709AE ADRL L01046F ADRL L010472 L0709B6 HEX 00000000000000000000000000000000 HEX 00000000000000000000000000000000 L0709D6 ADRL $00000000 L0709DA DW $0000 L0709DC DW $0000 L0709DE DW $0000 ; ref num L0709E0 DW $0000 ; ref num ADRL L070A30 ; path name L0709E6 ADRL $00000000 ; reserved L0709EA DW $0000 ; ref num L0709EC ADRL $00000000 ; buffer ptr ADRL $00001000 ; request count ADRL $00000000 ; transfer count L0709F8 DW $0000 ; ref num L0709FA ADRL $00000000 ; buffer ptr ADRL $00001000 ; request count ADRL $00000000 ; transfer count L070A06 ADRL L070A30 ; file name DW $00C3 ; access DW $00C3 ; file type ADRL $00000000 ; aux type DW $0000 ; storage DS 2 ; creation date L070A16 ADRL L070A45 ; file name DW $0000 ; access DW $0000 ; file type ADRL $00000000 ; aux type DW $0000 ; storage DS 4 ; creation date DS 4 ; modification date ADRL $00000000 ; blocks used L070A30 STR '1/PaintTools/Palette' L070A45 STR '1'