initial commit
This commit is contained in:
parent
8b9340131f
commit
f54669b997
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,14 @@
|
|||
5 PRINT "MONC"
|
||||
10 LL = - 21920:LH = - 21919: DEF FN L(A) = PEEK (LL) + 256 * PEEK (LH)
|
||||
20 PRINT "BLOAD IPL,A$4000":BF = 16384 + FN L(0)
|
||||
30 READ F$,AL,AH: POKE BF,AL: POKE BF + 1,AH:BF = BF + 2: IF AH THEN PRINT "BLOAD "F$",A"BF + 2: POKE BF, PEEK (LL): POKE BF + 1, PEEK (LH):BF = BF + 2 + FN L(0): GOTO 30
|
||||
40 REM GOSUB100
|
||||
45 REM EX$=",V12":GOSUB100
|
||||
46 EX$ = ",S4": GOSUB 100
|
||||
50 END
|
||||
100 PRINT "BSAVE "F$",A16384,L"BF - 16384;EX$: RETURN
|
||||
1000 DATA "SUBPAK",0,224: REM $E000
|
||||
1010 DATA "SYSLIB2",0,133: REM $8500
|
||||
1020 DATA "O:HELLO",0,8: REM $0800
|
||||
2000 DATA "HELLO",,
|
||||
63999 PRINT "SAVE MH"
|
|
@ -0,0 +1,108 @@
|
|||
4000- 20 59 40 JSR $4059
|
||||
4003- 20 CC 40 JSR $40CC
|
||||
4006- 20 0F 40 JSR $400F
|
||||
4009- 20 0F E0 JSR $E00F
|
||||
400C- 4C 00 08 JMP $0800
|
||||
400F- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
4012- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
4015- A0 E6 LDY #$E6
|
||||
4017- A9 40 LDA #$40
|
||||
4019- 84 3A STY $3A
|
||||
401B- 85 3B STA $3B
|
||||
401D- A0 00 LDY #$00
|
||||
401F- 20 50 40 JSR $4050
|
||||
4022- 85 3C STA $3C
|
||||
4024- 20 50 40 JSR $4050
|
||||
4027- 85 3D STA $3D
|
||||
4029- 05 3C ORA $3C
|
||||
402B- F0 2B BEQ $4058
|
||||
402D- 20 50 40 JSR $4050
|
||||
4030- AA TAX
|
||||
4031- 20 50 40 JSR $4050
|
||||
4034- 85 3F STA $3F
|
||||
4036- 20 50 40 JSR $4050
|
||||
4039- 91 3C STA ($3C),Y
|
||||
403B- E6 3C INC $3C
|
||||
403D- D0 02 BNE $4041
|
||||
403F- E6 3D INC $3D
|
||||
4041- 8A TXA
|
||||
4042- D0 02 BNE $4046
|
||||
4044- C6 3F DEC $3F
|
||||
4046- CA DEX
|
||||
4047- D0 ED BNE $4036
|
||||
4049- 8A TXA
|
||||
404A- 05 3F ORA $3F
|
||||
404C- D0 E8 BNE $4036
|
||||
404E- F0 CF BEQ $401F
|
||||
4050- B1 3A LDA ($3A),Y
|
||||
4052- E6 3A INC $3A
|
||||
4054- D0 02 BNE $4058
|
||||
4056- E6 3B INC $3B
|
||||
4058- 60 RTS
|
||||
4059- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
405C- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
405F- A2 00 LDX #$00
|
||||
4061- 8E 00 E0 STX $E000
|
||||
4064- EC 00 E0 CPX $E000
|
||||
4067- D0 04 BNE $406D
|
||||
4069- E8 INX
|
||||
406A- D0 F5 BNE $4061
|
||||
406C- 60 RTS
|
||||
406D- 2C 81 C0 BIT $C081 rw:ROMIN
|
||||
4070- 20 2F FB JSR $FB2F F8ROM:INIT
|
||||
4073- 20 58 FC JSR $FC58 F8ROM:HOME
|
||||
4076- 20 84 FE JSR $FE84 F8ROM:SETNORM
|
||||
4079- 20 93 FE JSR $FE93 F8ROM:SETVID
|
||||
407C- 20 89 FE JSR $FE89 F8ROM:SETKBD
|
||||
407F- A9 08 LDA #$08
|
||||
4081- 20 5B FB JSR $FB5B F8ROM:TABV
|
||||
4084- A0 00 LDY #$00
|
||||
4086- B9 99 40 LDA $4099,Y
|
||||
4089- F0 FE BEQ $4089
|
||||
408B- 20 ED FD JSR $FDED F8ROM:COUT
|
||||
408E- C9 8D CMP #$8D
|
||||
4090- D0 04 BNE $4096
|
||||
4092- A9 07 LDA #$07
|
||||
4094- 85 24 STA $24
|
||||
4096- C8 INY
|
||||
4097- D0 ED BNE $4086
|
||||
4099- 8D D4 C8 STA $C8D4
|
||||
409C- C5 A0 CMP $A0
|
||||
409E- D0 D2 BNE $4072
|
||||
40A0- C9 CE CMP #$CE
|
||||
40A2- D4 ???
|
||||
40A3- A0 D3 LDY #$D3
|
||||
40A5- C8 INY
|
||||
40A6- CF ???
|
||||
40A7- D0 A0 BNE $4049
|
||||
40A9- C3 ???
|
||||
40AA- CF ???
|
||||
40AB- CD D0 C1 CMP $C1D0
|
||||
40AE- CE C9 CF DEC $CFC9
|
||||
40B1- CE 8D 8D DEC $8D8D
|
||||
40B4- A0 D2 LDY #$D2
|
||||
40B6- C5 D1 CMP $D1
|
||||
40B8- D5 C9 CMP $C9,X
|
||||
40BA- D2 C5 CMP ($C5)
|
||||
40BC- D3 ???
|
||||
40BD- A0 B6 LDY #$B6
|
||||
40BF- B4 CB LDY $CB,X
|
||||
40C1- A0 CF LDY #$CF
|
||||
40C3- C6 A0 DEC $A0
|
||||
40C5- CD C5 CD CMP $CDC5
|
||||
40C8- CF ???
|
||||
40C9- D2 D9 CMP ($D9)
|
||||
40CB- 00 BRK
|
||||
40CC- A0 00 LDY #$00
|
||||
40CE- A9 F8 LDA #$F8
|
||||
40D0- 84 3A STY $3A
|
||||
40D2- 85 3B STA $3B
|
||||
40D4- 2C 81 C0 BIT $C081 rw:ROMIN
|
||||
40D7- 2C 81 C0 BIT $C081 rw:ROMIN
|
||||
40DA- B1 3A LDA ($3A),Y
|
||||
40DC- 91 3A STA ($3A),Y
|
||||
40DE- C8 INY
|
||||
40DF- D0 F9 BNE $40DA
|
||||
40E1- E6 3B INC $3B
|
||||
40E3- D0 F5 BNE $40DA
|
||||
40E5- 60 RTS
|
|
@ -0,0 +1,8 @@
|
|||
FP
|
||||
MONCIO
|
||||
BLOAD SYSLIB2,A$8500
|
||||
BLOAD O:FDRAW,A$8A00
|
||||
BLOAD O:8800 ,A$8800
|
||||
BLOAD O:8E00 ,A$8E00
|
||||
BSAVE SYSLIB2,A$8500,L$10C8
|
||||
RUN MH
|
|
@ -0,0 +1,269 @@
|
|||
8800- 4C 58 FC JMP $FC58 F8ROM:HOME
|
||||
8803- 4C 40 88 JMP $8840
|
||||
8806- 00 BRK
|
||||
8807- 00 BRK
|
||||
8808- 00 BRK
|
||||
8809- 00 BRK
|
||||
880A- 00 BRK
|
||||
880B- 80 00 BRA $880D
|
||||
880D- 4C 85 88 JMP $8885
|
||||
8810- 00 BRK
|
||||
8811- 80 00 BRA $8813
|
||||
8813- 80 00 BRA $8815
|
||||
8815- 80 00 BRA $8817
|
||||
8817- 80 28 BRA $8841
|
||||
8819- A8 TAY
|
||||
881A- 28 PLP
|
||||
881B- A8 TAY
|
||||
881C- 28 PLP
|
||||
881D- A8 TAY
|
||||
881E- 28 PLP
|
||||
881F- A8 TAY
|
||||
8820- 50 D0 BVC $87F2
|
||||
8822- 50 D0 BVC $87F4
|
||||
8824- 50 D0 BVC $87F6
|
||||
8826- 50 D0 BVC $87F8
|
||||
8828- 04 04 TSB $04
|
||||
882A- 05 05 ORA $05
|
||||
882C- 06 06 ASL $06
|
||||
882E- 07 ???
|
||||
882F- 07 ???
|
||||
8830- 04 04 TSB $04
|
||||
8832- 05 05 ORA $05
|
||||
8834- 06 06 ASL $06
|
||||
8836- 07 ???
|
||||
8837- 07 ???
|
||||
8838- 04 04 TSB $04
|
||||
883A- 05 05 ORA $05
|
||||
883C- 06 06 ASL $06
|
||||
883E- 07 ???
|
||||
883F- 07 ???
|
||||
8840- A5 08 LDA $08
|
||||
8842- 48 PHA
|
||||
8843- A5 09 LDA $09
|
||||
8845- 48 PHA
|
||||
8846- 20 50 88 JSR $8850
|
||||
8849- 68 PLA
|
||||
884A- 85 09 STA $09
|
||||
884C- 68 PLA
|
||||
884D- 85 08 STA $08
|
||||
884F- 60 RTS
|
||||
8850- AE 07 88 LDX $8807
|
||||
8853- BD 10 88 LDA $8810,X
|
||||
8856- 85 08 STA $08
|
||||
8858- BD 28 88 LDA $8828,X
|
||||
885B- 85 09 STA $09
|
||||
885D- AD 08 88 LDA $8808
|
||||
8860- 8D C6 88 STA $88C6
|
||||
8863- AD 09 88 LDA $8809
|
||||
8866- 8D C7 88 STA $88C7
|
||||
8869- AC 06 88 LDY $8806
|
||||
886C- A2 00 LDX #$00
|
||||
886E- 8E 0C 88 STX $880C
|
||||
8871- 20 C5 88 JSR $88C5
|
||||
8874- F0 0E BEQ $8884
|
||||
8876- 29 3F AND #$3F
|
||||
8878- 0D 0B 88 ORA $880B
|
||||
887B- 91 08 STA ($08),Y
|
||||
887D- E8 INX
|
||||
887E- C8 INY
|
||||
887F- EC 0A 88 CPX $880A
|
||||
8882- D0 ED BNE $8871
|
||||
8884- 60 RTS
|
||||
8885- 8E 08 88 STX $8808
|
||||
8888- 8C 09 88 STY $8809
|
||||
888B- 8D 07 88 STA $8807
|
||||
888E- A9 00 LDA #$00
|
||||
8890- 8D 06 88 STA $8806
|
||||
8893- A2 28 LDX #$28
|
||||
8895- 8D 0A 88 STA $880A
|
||||
8898- A9 01 LDA #$01
|
||||
889A- 8D C4 88 STA $88C4
|
||||
889D- AD C4 88 LDA $88C4
|
||||
88A0- A2 80 LDX #$80
|
||||
88A2- 8E 0B 88 STX $880B
|
||||
88A5- 20 40 88 JSR $8840
|
||||
88A8- E8 INX
|
||||
88A9- 8A TXA
|
||||
88AA- 18 CLC
|
||||
88AB- 6D 08 88 ADC $8808
|
||||
88AE- 8D 08 88 STA $8808
|
||||
88B1- 90 03 BCC $88B6
|
||||
88B3- EE 09 88 INC $8809
|
||||
88B6- EE 07 88 INC $8807
|
||||
88B9- EE C4 88 INC $88C4
|
||||
88BC- 20 C5 88 JSR $88C5
|
||||
88BF- C9 FF CMP #$FF
|
||||
88C1- D0 DA BNE $889D
|
||||
88C3- 60 RTS
|
||||
88C4- 00 BRK
|
||||
88C5- BD 00 80 LDA $8000,X
|
||||
88C8- 60 RTS
|
||||
88C9- 86 09 STX $09
|
||||
88CB- 84 0A STY $0A
|
||||
88CD- 20 18 E0 JSR $E018
|
||||
88D0- A6 09 LDX $09
|
||||
88D2- A4 0A LDY $0A
|
||||
88D4- B0 08 BCS $88DE
|
||||
88D6- 0A ASL
|
||||
88D7- 30 05 BMI $88DE
|
||||
88D9- 90 03 BCC $88DE
|
||||
88DB- A9 0D LDA #$0D
|
||||
88DD- 60 RTS
|
||||
88DE- A9 00 LDA #$00
|
||||
88E0- 60 RTS
|
||||
88E1- BD 10 88 LDA $8810,X
|
||||
88E4- 85 08 STA $08
|
||||
88E6- BD 28 88 LDA $8828,X
|
||||
88E9- 85 09 STA $09
|
||||
88EB- 60 RTS
|
||||
88EC- 20 E1 88 JSR $88E1
|
||||
88EF- A0 27 LDY #$27
|
||||
88F1- B9 80 03 LDA $0380,Y
|
||||
88F4- 91 08 STA ($08),Y
|
||||
88F6- 88 DEY
|
||||
88F7- 10 F8 BPL $88F1
|
||||
88F9- 60 RTS
|
||||
88FA- 00 BRK
|
||||
88FB- 00 BRK
|
||||
88FC- 00 BRK
|
||||
88FD- 00 BRK
|
||||
88FE- 00 BRK
|
||||
88FF- 00 BRK
|
||||
8900- 4C C9 88 JMP $88C9
|
||||
8903- EA NOP
|
||||
8904- EA NOP
|
||||
8905- EA NOP
|
||||
8906- EA NOP
|
||||
8907- EA NOP
|
||||
8908- 4C 77 89 JMP $8977
|
||||
890B- 4C C7 89 JMP $89C7
|
||||
890E- 7D 2A 28 ADC $282A,X
|
||||
8911- A8 TAY
|
||||
8912- 9C 11 2B STZ $2B11
|
||||
8915- 29 2C AND #$2C
|
||||
8917- A2 11 LDX #$11
|
||||
8919- 2B ???
|
||||
891A- 2A ROL
|
||||
891B- 2C A0 11 BIT $11A0
|
||||
891E- EA NOP
|
||||
891F- AC 2A A0 LDY $A02A
|
||||
8922- 11 2A ORA ($2A),Y
|
||||
8924- 6A ROR
|
||||
8925- 29 A6 AND #$A6
|
||||
8927- 11 2A ORA ($2A),Y
|
||||
8929- 69 29 ADC #$29
|
||||
892B- A2 11 LDX #$11
|
||||
892D- 2A ROL
|
||||
892E- 28 PLP
|
||||
892F- A8 TAY
|
||||
8930- 9E 73 CA STZ $CA73,X
|
||||
8933- 2F ???
|
||||
8934- A8 TAY
|
||||
8935- 9C 4A 2B STZ $2B4A
|
||||
8938- 22 ???
|
||||
8939- 2C A2 4A BIT $4AA2
|
||||
893C- 2B ???
|
||||
893D- 22 ???
|
||||
893E- 2C A0 73 BIT $73A0
|
||||
8941- CA DEX
|
||||
8942- A2 2A LDX #$2A
|
||||
8944- A0 42 LDY #$42
|
||||
8946- 8A TXA
|
||||
8947- 62 ???
|
||||
8948- 29 A6 AND #$A6
|
||||
894A- 42 ???
|
||||
894B- 4A LSR
|
||||
894C- 62 ???
|
||||
894D- 29 A2 AND #$A2
|
||||
894F- 42 ???
|
||||
8950- 2A ROL
|
||||
8951- 22 ???
|
||||
8952- 28 PLP
|
||||
8953- 9E 78 42 STZ $4278,X
|
||||
8956- 27 ???
|
||||
8957- 28 PLP
|
||||
8958- 9C 44 A2 STZ $A244
|
||||
895B- 28 PLP
|
||||
895C- AC A2 44 LDY $44A2
|
||||
895F- A2 28 LDX #$28
|
||||
8961- 2C A0 79 BIT $79A0
|
||||
8964- 12 27 ORA ($27)
|
||||
8966- 2A ROL
|
||||
8967- A0 41 LDY #$41
|
||||
8969- F2 20 SBC ($20)
|
||||
896B- A9 A6 LDA #$A6
|
||||
896D- 42 ???
|
||||
896E- 0A ASL
|
||||
896F- 28 PLP
|
||||
8970- A9 A2 LDA #$A2
|
||||
8972- 42 ???
|
||||
8973- 09 C7 ORA #$C7
|
||||
8975- 28 PLP
|
||||
8976- 9E A9 00 STZ $00A9,X
|
||||
8979- 85 E0 STA $E0
|
||||
897B- 85 E3 STA $E3
|
||||
897D- A5 E4 LDA $E4
|
||||
897F- 85 E2 STA $E2
|
||||
8981- A9 28 LDA #$28
|
||||
8983- 85 E1 STA $E1
|
||||
8985- A6 E2 LDX $E2
|
||||
8987- BD BF 89 LDA $89BF,X
|
||||
898A- A4 E0 LDY $E0
|
||||
898C- 99 80 03 STA $0380,Y
|
||||
898F- C8 INY
|
||||
8990- C4 E1 CPY $E1
|
||||
8992- D0 F8 BNE $898C
|
||||
8994- A6 E3 LDX $E3
|
||||
8996- 20 EC 88 JSR $88EC
|
||||
8999- A9 13 LDA #$13
|
||||
899B- 38 SEC
|
||||
899C- E5 E3 SBC $E3
|
||||
899E- AA TAX
|
||||
899F- 20 EC 88 JSR $88EC
|
||||
89A2- E6 E0 INC $E0
|
||||
89A4- C6 E1 DEC $E1
|
||||
89A6- E6 E2 INC $E2
|
||||
89A8- A5 E2 LDA $E2
|
||||
89AA- 29 07 AND #$07
|
||||
89AC- 85 E2 STA $E2
|
||||
89AE- E6 E3 INC $E3
|
||||
89B0- A5 E3 LDA $E3
|
||||
89B2- C9 0A CMP #$0A
|
||||
89B4- D0 CF BNE $8985
|
||||
89B6- E6 E4 INC $E4
|
||||
89B8- A5 E4 LDA $E4
|
||||
89BA- 29 07 AND #$07
|
||||
89BC- 85 E4 STA $E4
|
||||
89BE- 60 RTS
|
||||
89BF- BB ???
|
||||
89C0- 99 DD CC STA $CCDD,Y
|
||||
89C3- EE 66 77 INC $7766
|
||||
89C6- 33 ???
|
||||
89C7- A2 13 LDX #$13
|
||||
89C9- 8E 07 88 STX $8807
|
||||
89CC- 20 E1 88 JSR $88E1
|
||||
89CF- A0 27 LDY #$27
|
||||
89D1- B1 08 LDA ($08),Y
|
||||
89D3- 29 0F AND #$0F
|
||||
89D5- AA TAX
|
||||
89D6- BD E5 89 LDA $89E5,X
|
||||
89D9- 91 08 STA ($08),Y
|
||||
89DB- 88 DEY
|
||||
89DC- 10 F3 BPL $89D1
|
||||
89DE- AE 07 88 LDX $8807
|
||||
89E1- CA DEX
|
||||
89E2- 10 E5 BPL $89C9
|
||||
89E4- 60 RTS
|
||||
89E5- 00 BRK
|
||||
89E6- 00 BRK
|
||||
89E7- 00 BRK
|
||||
89E8- BB ???
|
||||
89E9- 00 BRK
|
||||
89EA- 00 BRK
|
||||
89EB- 77 ???
|
||||
89EC- 33 ???
|
||||
89ED- 00 BRK
|
||||
89EE- DD 00 99 CMP $9900,X
|
||||
89F1- EE CC 66 INC $66CC
|
||||
89F4- 00 BRK
|
|
@ -0,0 +1,205 @@
|
|||
8E00- 4C 00 89 JMP $8900
|
||||
8E03- 4C 91 8E JMP $8E91
|
||||
8E06- 00 BRK
|
||||
8E07- 00 BRK
|
||||
8E08- 00 BRK
|
||||
8E09- A9 00 LDA #$00
|
||||
8E0B- 8D 08 8E STA $8E08
|
||||
8E0E- A5 80 LDA $80
|
||||
8E10- 48 PHA
|
||||
8E11- A5 81 LDA $81
|
||||
8E13- 48 PHA
|
||||
8E14- A5 82 LDA $82
|
||||
8E16- 48 PHA
|
||||
8E17- A5 83 LDA $83
|
||||
8E19- 48 PHA
|
||||
8E1A- 86 80 STX $80
|
||||
8E1C- 84 81 STY $81
|
||||
8E1E- A0 04 LDY #$04
|
||||
8E20- B1 80 LDA ($80),Y
|
||||
8E22- 48 PHA
|
||||
8E23- A0 09 LDY #$09
|
||||
8E25- B1 80 LDA ($80),Y
|
||||
8E27- 48 PHA
|
||||
8E28- C8 INY
|
||||
8E29- B1 80 LDA ($80),Y
|
||||
8E2B- 48 PHA
|
||||
8E2C- A0 0B LDY #$0B
|
||||
8E2E- B1 80 LDA ($80),Y
|
||||
8E30- 99 03 8A STA $8A03,Y
|
||||
8E33- 88 DEY
|
||||
8E34- 10 F8 BPL $8E2E
|
||||
8E36- 20 00 8A JSR $8A00
|
||||
8E39- AD 0C 8A LDA $8A0C
|
||||
8E3C- 85 82 STA $82
|
||||
8E3E- AD 0D 8A LDA $8A0D
|
||||
8E41- 85 83 STA $83
|
||||
8E43- A0 00 LDY #$00
|
||||
8E45- B1 82 LDA ($82),Y
|
||||
8E47- F0 03 BEQ $8E4C
|
||||
8E49- C8 INY
|
||||
8E4A- D0 F9 BNE $8E45
|
||||
8E4C- 8C 99 8F STY $8F99
|
||||
8E4F- C8 INY
|
||||
8E50- B1 82 LDA ($82),Y
|
||||
8E52- C9 FF CMP #$FF
|
||||
8E54- F0 20 BEQ $8E76
|
||||
8E56- AD 08 8E LDA $8E08
|
||||
8E59- D0 1B BNE $8E76
|
||||
8E5B- 98 TYA
|
||||
8E5C- A0 09 LDY #$09
|
||||
8E5E- 18 CLC
|
||||
8E5F- 71 80 ADC ($80),Y
|
||||
8E61- 91 80 STA ($80),Y
|
||||
8E63- C8 INY
|
||||
8E64- B1 80 LDA ($80),Y
|
||||
8E66- 69 00 ADC #$00
|
||||
8E68- 91 80 STA ($80),Y
|
||||
8E6A- A0 04 LDY #$04
|
||||
8E6C- B1 80 LDA ($80),Y
|
||||
8E6E- 18 CLC
|
||||
8E6F- 69 08 ADC #$08
|
||||
8E71- 91 80 STA ($80),Y
|
||||
8E73- 4C 2C 8E JMP $8E2C
|
||||
8E76- A0 0A LDY #$0A
|
||||
8E78- 68 PLA
|
||||
8E79- 91 80 STA ($80),Y
|
||||
8E7B- 88 DEY
|
||||
8E7C- 68 PLA
|
||||
8E7D- 91 80 STA ($80),Y
|
||||
8E7F- A0 04 LDY #$04
|
||||
8E81- 68 PLA
|
||||
8E82- 91 80 STA ($80),Y
|
||||
8E84- 68 PLA
|
||||
8E85- 85 83 STA $83
|
||||
8E87- 68 PLA
|
||||
8E88- 85 82 STA $82
|
||||
8E8A- 68 PLA
|
||||
8E8B- 85 81 STA $81
|
||||
8E8D- 68 PLA
|
||||
8E8E- 85 80 STA $80
|
||||
8E90- 60 RTS
|
||||
8E91- AD 06 8E LDA $8E06
|
||||
8E94- 8D 96 8F STA $8F96
|
||||
8E97- AD 07 8E LDA $8E07
|
||||
8E9A- 8D 97 8F STA $8F97
|
||||
8E9D- A5 82 LDA $82
|
||||
8E9F- 48 PHA
|
||||
8EA0- A5 83 LDA $83
|
||||
8EA2- 48 PHA
|
||||
8EA3- A2 09 LDX #$09
|
||||
8EA5- 20 95 8F JSR $8F95
|
||||
8EA8- 85 82 STA $82
|
||||
8EAA- E8 INX
|
||||
8EAB- 20 95 8F JSR $8F95
|
||||
8EAE- 85 83 STA $83
|
||||
8EB0- A2 02 LDX #$02
|
||||
8EB2- 20 95 8F JSR $8F95
|
||||
8EB5- A8 TAY
|
||||
8EB6- B9 98 93 LDA $9398,Y
|
||||
8EB9- 85 3A STA $3A
|
||||
8EBB- A9 27 LDA #$27
|
||||
8EBD- 38 SEC
|
||||
8EBE- E5 3A SBC $3A
|
||||
8EC0- 85 3C STA $3C
|
||||
8EC2- A2 04 LDX #$04
|
||||
8EC4- 20 95 8F JSR $8F95
|
||||
8EC7- 85 3B STA $3B
|
||||
8EC9- A9 07 LDA #$07
|
||||
8ECB- 85 3D STA $3D
|
||||
8ECD- A9 A9 LDA #$A9
|
||||
8ECF- A0 00 LDY #$00
|
||||
8ED1- 20 78 E0 JSR $E078
|
||||
8ED4- AE 06 8E LDX $8E06
|
||||
8ED7- AC 07 8E LDY $8E07
|
||||
8EDA- 20 0E 8E JSR $8E0E
|
||||
8EDD- AD 05 8A LDA $8A05
|
||||
8EE0- 8D 9B 8F STA $8F9B
|
||||
8EE3- AD 06 8A LDA $8A06
|
||||
8EE6- 8D 9C 8F STA $8F9C
|
||||
8EE9- 20 48 E0 JSR $E048
|
||||
8EEC- 20 69 8F JSR $8F69
|
||||
8EEF- 20 1F E0 JSR $E01F
|
||||
8EF2- 30 0A BMI $8EFE
|
||||
8EF4- C6 4E DEC $4E
|
||||
8EF6- D0 F7 BNE $8EEF
|
||||
8EF8- C6 4F DEC $4F
|
||||
8EFA- 10 F3 BPL $8EEF
|
||||
8EFC- 30 EB BMI $8EE9
|
||||
8EFE- 48 PHA
|
||||
8EFF- 20 6C 8F JSR $8F6C
|
||||
8F02- 68 PLA
|
||||
8F03- C9 0D CMP #$0D
|
||||
8F05- F0 58 BEQ $8F5F
|
||||
8F07- C9 1B CMP #$1B
|
||||
8F09- F0 56 BEQ $8F61
|
||||
8F0B- C9 08 CMP #$08
|
||||
8F0D- F0 3B BEQ $8F4A
|
||||
8F0F- C9 7F CMP #$7F
|
||||
8F11- F0 37 BEQ $8F4A
|
||||
8F13- C9 05 CMP #$05
|
||||
8F15- F0 3D BEQ $8F54
|
||||
8F17- C9 2C CMP #$2C
|
||||
8F19- F0 CE BEQ $8EE9
|
||||
8F1B- C9 40 CMP #$40
|
||||
8F1D- F0 CA BEQ $8EE9
|
||||
8F1F- C9 20 CMP #$20
|
||||
8F21- 90 C6 BCC $8EE9
|
||||
8F23- C9 5B CMP #$5B
|
||||
8F25- B0 C2 BCS $8EE9
|
||||
8F27- AC 99 8F LDY $8F99
|
||||
8F2A- C0 00 CPY #$00
|
||||
8F2C- D0 0F BNE $8F3D
|
||||
8F2E- C9 20 CMP #$20
|
||||
8F30- F0 B7 BEQ $8EE9
|
||||
8F32- AC 08 8E LDY $8E08
|
||||
8F35- C0 0F CPY #$0F
|
||||
8F37- D0 04 BNE $8F3D
|
||||
8F39- C9 41 CMP #$41
|
||||
8F3B- 90 AC BCC $8EE9
|
||||
8F3D- AC 99 8F LDY $8F99
|
||||
8F40- CC 08 8E CPY $8E08
|
||||
8F43- B0 A4 BCS $8EE9
|
||||
8F45- 91 82 STA ($82),Y
|
||||
8F47- C8 INY
|
||||
8F48- D0 06 BNE $8F50
|
||||
8F4A- AC 99 8F LDY $8F99
|
||||
8F4D- F0 9A BEQ $8EE9
|
||||
8F4F- 88 DEY
|
||||
8F50- A9 00 LDA #$00
|
||||
8F52- F0 03 BEQ $8F57
|
||||
8F54- A9 00 LDA #$00
|
||||
8F56- A8 TAY
|
||||
8F57- 91 82 STA ($82),Y
|
||||
8F59- 8C 99 8F STY $8F99
|
||||
8F5C- 4C B0 8E JMP $8EB0
|
||||
8F5F- 18 CLC
|
||||
8F60- 24 38 BIT $38
|
||||
8F62- 68 PLA
|
||||
8F63- 85 83 STA $83
|
||||
8F65- 68 PLA
|
||||
8F66- 85 82 STA $82
|
||||
8F68- 60 RTS
|
||||
8F69- A9 04 LDA #$04
|
||||
8F6B- 2C A9 03 BIT $03A9
|
||||
8F6E- 8D 03 8A STA $8A03
|
||||
8F71- A9 00 LDA #$00
|
||||
8F73- 8D 0A 8A STA $8A0A
|
||||
8F76- 8D 04 8A STA $8A04
|
||||
8F79- AD 9B 8F LDA $8F9B
|
||||
8F7C- 8D 05 8A STA $8A05
|
||||
8F7F- AD 9C 8F LDA $8F9C
|
||||
8F82- 8D 06 8A STA $8A06
|
||||
8F85- A9 92 LDA #$92
|
||||
8F87- 8D 0C 8A STA $8A0C
|
||||
8F8A- A9 8F LDA #$8F
|
||||
8F8C- 8D 0D 8A STA $8A0D
|
||||
8F8F- 4C 00 8A JMP $8A00
|
||||
8F92- 49 49 EOR #$49
|
||||
8F94- 00 BRK
|
||||
8F95- BD 00 80 LDA $8000,X
|
||||
8F98- 60 RTS
|
||||
8F99- 00 BRK
|
||||
8F9A- 00 BRK
|
||||
8F9B- 00 BRK
|
||||
8F9C- 00 BRK
|
|
@ -0,0 +1,447 @@
|
|||
8A00- 4C 18 8A JMP $8A18
|
||||
8A03- 02 ???
|
||||
8A04- 02 ???
|
||||
8A05- 00 BRK
|
||||
8A06- 00 BRK
|
||||
8A07- 00 BRK
|
||||
8A08- 00 BRK
|
||||
8A09- 00 BRK
|
||||
8A0A- 01 00 ORA ($00,X)
|
||||
8A0C- 00 BRK
|
||||
8A0D- 00 BRK
|
||||
8A0E- 00 BRK
|
||||
8A0F- 4C 3D 8D JMP $8D3D
|
||||
8A12- 4C 34 8D JMP $8D34
|
||||
8A15- 4C 5B 8D JMP $8D5B
|
||||
8A18- 20 00 8D JSR $8D00
|
||||
8A1B- AD 0C 8A LDA $8A0C
|
||||
8A1E- 8D DD 8A STA $8ADD
|
||||
8A21- AD 0D 8A LDA $8A0D
|
||||
8A24- 8D DE 8A STA $8ADE
|
||||
8A27- 2C 0E 8A BIT $8A0E
|
||||
8A2A- 30 03 BMI $8A2F
|
||||
8A2C- 20 28 8B JSR $8B28
|
||||
8A2F- AD 04 8A LDA $8A04
|
||||
8A32- F0 60 BEQ $8A94
|
||||
8A34- A2 00 LDX #$00
|
||||
8A36- 86 5D STX $5D
|
||||
8A38- 86 5E STX $5E
|
||||
8A3A- 20 DC 8A JSR $8ADC
|
||||
8A3D- F0 1A BEQ $8A59
|
||||
8A3F- 38 SEC
|
||||
8A40- E9 20 SBC #$20
|
||||
8A42- A8 TAY
|
||||
8A43- B9 00 85 LDA $8500,Y
|
||||
8A46- 38 SEC
|
||||
8A47- FD 00 03 SBC $0300,X
|
||||
8A4A- 18 CLC
|
||||
8A4B- 6D 0A 8A ADC $8A0A
|
||||
8A4E- 65 5D ADC $5D
|
||||
8A50- 85 5D STA $5D
|
||||
8A52- 90 02 BCC $8A56
|
||||
8A54- E6 5E INC $5E
|
||||
8A56- E8 INX
|
||||
8A57- D0 E1 BNE $8A3A
|
||||
8A59- E0 00 CPX #$00
|
||||
8A5B- F0 18 BEQ $8A75
|
||||
8A5D- A5 5D LDA $5D
|
||||
8A5F- 38 SEC
|
||||
8A60- ED 0A 8A SBC $8A0A
|
||||
8A63- 85 5D STA $5D
|
||||
8A65- B0 02 BCS $8A69
|
||||
8A67- C6 5E DEC $5E
|
||||
8A69- AE 0B 8A LDX $8A0B
|
||||
8A6C- F0 07 BEQ $8A75
|
||||
8A6E- 06 5D ASL $5D
|
||||
8A70- 26 5E ROL $5E
|
||||
8A72- CA DEX
|
||||
8A73- D0 F9 BNE $8A6E
|
||||
8A75- AE 04 8A LDX $8A04
|
||||
8A78- E0 03 CPX #$03
|
||||
8A7A- F0 59 BEQ $8AD5
|
||||
8A7C- CA DEX
|
||||
8A7D- F0 04 BEQ $8A83
|
||||
8A7F- 46 5E LSR $5E
|
||||
8A81- 66 5D ROR $5D
|
||||
8A83- AD 05 8A LDA $8A05
|
||||
8A86- 38 SEC
|
||||
8A87- E5 5D SBC $5D
|
||||
8A89- 8D 05 8A STA $8A05
|
||||
8A8C- AD 06 8A LDA $8A06
|
||||
8A8F- E5 5E SBC $5E
|
||||
8A91- 8D 06 8A STA $8A06
|
||||
8A94- A2 00 LDX #$00
|
||||
8A96- 86 63 STX $63
|
||||
8A98- 20 DC 8A JSR $8ADC
|
||||
8A9B- F0 3C BEQ $8AD9
|
||||
8A9D- 20 E0 8A JSR $8AE0
|
||||
8AA0- A6 63 LDX $63
|
||||
8AA2- 20 DC 8A JSR $8ADC
|
||||
8AA5- 38 SEC
|
||||
8AA6- E9 20 SBC #$20
|
||||
8AA8- A8 TAY
|
||||
8AA9- AD 0A 8A LDA $8A0A
|
||||
8AAC- 18 CLC
|
||||
8AAD- 79 00 85 ADC $8500,Y
|
||||
8AB0- E8 INX
|
||||
8AB1- 38 SEC
|
||||
8AB2- FD 00 03 SBC $0300,X
|
||||
8AB5- A0 00 LDY #$00
|
||||
8AB7- 84 5F STY $5F
|
||||
8AB9- AC 0B 8A LDY $8A0B
|
||||
8ABC- F0 06 BEQ $8AC4
|
||||
8ABE- 0A ASL
|
||||
8ABF- 26 5F ROL $5F
|
||||
8AC1- 88 DEY
|
||||
8AC2- D0 FA BNE $8ABE
|
||||
8AC4- 18 CLC
|
||||
8AC5- 6D 05 8A ADC $8A05
|
||||
8AC8- 8D 05 8A STA $8A05
|
||||
8ACB- A5 5F LDA $5F
|
||||
8ACD- 6D 06 8A ADC $8A06
|
||||
8AD0- 8D 06 8A STA $8A06
|
||||
8AD3- 90 C1 BCC $8A96
|
||||
8AD5- A4 5D LDY $5D
|
||||
8AD7- A5 5E LDA $5E
|
||||
8AD9- A2 01 LDX #$01
|
||||
8ADB- 60 RTS
|
||||
8ADC- BD 0C 8A LDA $8A0C,X
|
||||
8ADF- 60 RTS
|
||||
8AE0- 38 SEC
|
||||
8AE1- E9 20 SBC #$20
|
||||
8AE3- F0 42 BEQ $8B27
|
||||
8AE5- AA TAX
|
||||
8AE6- BD 3B 85 LDA $853B,X
|
||||
8AE9- 85 61 STA $61
|
||||
8AEB- BD 00 85 LDA $8500,X
|
||||
8AEE- 85 62 STA $62
|
||||
8AF0- BD 76 85 LDA $8576,X
|
||||
8AF3- 85 50 STA $50
|
||||
8AF5- BD B1 85 LDA $85B1,X
|
||||
8AF8- 85 51 STA $51
|
||||
8AFA- AD 0B 8A LDA $8A0B
|
||||
8AFD- 0A ASL
|
||||
8AFE- D0 02 BNE $8B02
|
||||
8B00- A9 01 LDA #$01
|
||||
8B02- 85 5F STA $5F
|
||||
8B04- AD 07 8A LDA $8A07
|
||||
8B07- 85 60 STA $60
|
||||
8B09- AD 05 8A LDA $8A05
|
||||
8B0C- 85 52 STA $52
|
||||
8B0E- AD 06 8A LDA $8A06
|
||||
8B11- 85 53 STA $53
|
||||
8B13- A5 62 LDA $62
|
||||
8B15- 85 54 STA $54
|
||||
8B17- A4 60 LDY $60
|
||||
8B19- 20 26 8C JSR $8C26
|
||||
8B1C- A5 60 LDA $60
|
||||
8B1E- 18 CLC
|
||||
8B1F- 65 5F ADC $5F
|
||||
8B21- 85 60 STA $60
|
||||
8B23- C6 61 DEC $61
|
||||
8B25- D0 E2 BNE $8B09
|
||||
8B27- 60 RTS
|
||||
8B28- A2 00 LDX #$00
|
||||
8B2A- 8E 00 03 STX $0300
|
||||
8B2D- 86 63 STX $63
|
||||
8B2F- 20 DC 8A JSR $8ADC
|
||||
8B32- F0 2B BEQ $8B5F
|
||||
8B34- AC 0E 8A LDY $8A0E
|
||||
8B37- F0 1B BEQ $8B54
|
||||
8B39- C9 41 CMP #$41
|
||||
8B3B- 90 17 BCC $8B54
|
||||
8B3D- 85 56 STA $56
|
||||
8B3F- E8 INX
|
||||
8B40- 20 DC 8A JSR $8ADC
|
||||
8B43- F0 1A BEQ $8B5F
|
||||
8B45- C9 41 CMP #$41
|
||||
8B47- 90 0B BCC $8B54
|
||||
8B49- 85 57 STA $57
|
||||
8B4B- 20 65 8B JSR $8B65
|
||||
8B4E- A5 59 LDA $59
|
||||
8B50- C9 64 CMP #$64
|
||||
8B52- 90 02 BCC $8B56
|
||||
8B54- A9 00 LDA #$00
|
||||
8B56- A6 63 LDX $63
|
||||
8B58- E8 INX
|
||||
8B59- 9D 00 03 STA $0300,X
|
||||
8B5C- 4C 2D 8B JMP $8B2D
|
||||
8B5F- A9 00 LDA #$00
|
||||
8B61- 9D 00 03 STA $0300,X
|
||||
8B64- 60 RTS
|
||||
8B65- 38 SEC
|
||||
8B66- 66 5B ROR $5B
|
||||
8B68- A5 56 LDA $56
|
||||
8B6A- 20 CE 8B JSR $8BCE
|
||||
8B6D- 85 54 STA $54
|
||||
8B6F- 84 5A STY $5A
|
||||
8B71- BD 76 85 LDA $8576,X
|
||||
8B74- 85 50 STA $50
|
||||
8B76- BD B1 85 LDA $85B1,X
|
||||
8B79- 85 51 STA $51
|
||||
8B7B- BD 3B 85 LDA $853B,X
|
||||
8B7E- 85 61 STA $61
|
||||
8B80- A5 57 LDA $57
|
||||
8B82- 20 CE 8B JSR $8BCE
|
||||
8B85- 85 55 STA $55
|
||||
8B87- BD 76 85 LDA $8576,X
|
||||
8B8A- 85 52 STA $52
|
||||
8B8C- BD B1 85 LDA $85B1,X
|
||||
8B8F- 85 53 STA $53
|
||||
8B91- BD 3B 85 LDA $853B,X
|
||||
8B94- C5 61 CMP $61
|
||||
8B96- B0 02 BCS $8B9A
|
||||
8B98- 85 61 STA $61
|
||||
8B9A- A5 5B LDA $5B
|
||||
8B9C- 18 CLC
|
||||
8B9D- 6D 0A 8A ADC $8A0A
|
||||
8BA0- 85 59 STA $59
|
||||
8BA2- 20 EC 8B JSR $8BEC
|
||||
8BA5- 85 5F STA $5F
|
||||
8BA7- 20 0A 8C JSR $8C0A
|
||||
8BAA- 18 CLC
|
||||
8BAB- 65 5F ADC $5F
|
||||
8BAD- C5 59 CMP $59
|
||||
8BAF- B0 02 BCS $8BB3
|
||||
8BB1- 85 59 STA $59
|
||||
8BB3- A5 50 LDA $50
|
||||
8BB5- 18 CLC
|
||||
8BB6- 65 54 ADC $54
|
||||
8BB8- 85 50 STA $50
|
||||
8BBA- 90 02 BCC $8BBE
|
||||
8BBC- E6 51 INC $51
|
||||
8BBE- A5 52 LDA $52
|
||||
8BC0- 18 CLC
|
||||
8BC1- 65 55 ADC $55
|
||||
8BC3- 85 52 STA $52
|
||||
8BC5- 90 02 BCC $8BC9
|
||||
8BC7- E6 53 INC $53
|
||||
8BC9- C6 61 DEC $61
|
||||
8BCB- D0 D5 BNE $8BA2
|
||||
8BCD- 60 RTS
|
||||
8BCE- 38 SEC
|
||||
8BCF- E9 20 SBC #$20
|
||||
8BD1- AA TAX
|
||||
8BD2- BD 00 85 LDA $8500,X
|
||||
8BD5- C5 5B CMP $5B
|
||||
8BD7- B0 02 BCS $8BDB
|
||||
8BD9- 85 5B STA $5B
|
||||
8BDB- 38 SEC
|
||||
8BDC- E9 01 SBC #$01
|
||||
8BDE- 48 PHA
|
||||
8BDF- 29 07 AND #$07
|
||||
8BE1- 49 07 EOR #$07
|
||||
8BE3- A8 TAY
|
||||
8BE4- 68 PLA
|
||||
8BE5- 4A LSR
|
||||
8BE6- 4A LSR
|
||||
8BE7- 4A LSR
|
||||
8BE8- 18 CLC
|
||||
8BE9- 69 01 ADC #$01
|
||||
8BEB- 60 RTS
|
||||
8BEC- A2 00 LDX #$00
|
||||
8BEE- A4 54 LDY $54
|
||||
8BF0- 88 DEY
|
||||
8BF1- B1 50 LDA ($50),Y
|
||||
8BF3- D0 0B BNE $8C00
|
||||
8BF5- 8A TXA
|
||||
8BF6- 18 CLC
|
||||
8BF7- 69 08 ADC #$08
|
||||
8BF9- AA TAX
|
||||
8BFA- 88 DEY
|
||||
8BFB- 10 F4 BPL $8BF1
|
||||
8BFD- A9 64 LDA #$64
|
||||
8BFF- 60 RTS
|
||||
8C00- E8 INX
|
||||
8C01- 4A LSR
|
||||
8C02- 90 FC BCC $8C00
|
||||
8C04- CA DEX
|
||||
8C05- 8A TXA
|
||||
8C06- 38 SEC
|
||||
8C07- E5 5A SBC $5A
|
||||
8C09- 60 RTS
|
||||
8C0A- A2 00 LDX #$00
|
||||
8C0C- A0 00 LDY #$00
|
||||
8C0E- B1 52 LDA ($52),Y
|
||||
8C10- D0 0D BNE $8C1F
|
||||
8C12- 8A TXA
|
||||
8C13- 18 CLC
|
||||
8C14- 69 08 ADC #$08
|
||||
8C16- AA TAX
|
||||
8C17- C8 INY
|
||||
8C18- C4 55 CPY $55
|
||||
8C1A- D0 F2 BNE $8C0E
|
||||
8C1C- A9 64 LDA #$64
|
||||
8C1E- 60 RTS
|
||||
8C1F- E8 INX
|
||||
8C20- 0A ASL
|
||||
8C21- 90 FC BCC $8C1F
|
||||
8C23- CA DEX
|
||||
8C24- 8A TXA
|
||||
8C25- 60 RTS
|
||||
8C26- B9 C0 91 LDA $91C0,Y
|
||||
8C29- 85 55 STA $55
|
||||
8C2B- B9 00 91 LDA $9100,Y
|
||||
8C2E- 85 56 STA $56
|
||||
8C30- B9 C1 91 LDA $91C1,Y
|
||||
8C33- 85 57 STA $57
|
||||
8C35- B9 01 91 LDA $9101,Y
|
||||
8C38- 85 58 STA $58
|
||||
8C3A- A6 52 LDX $52
|
||||
8C3C- A5 53 LDA $53
|
||||
8C3E- F0 08 BEQ $8C48
|
||||
8C40- BD B0 95 LDA $95B0,X
|
||||
8C43- BC 98 94 LDY $9498,X
|
||||
8C46- D0 06 BNE $8C4E
|
||||
8C48- BD B0 94 LDA $94B0,X
|
||||
8C4B- BC 98 93 LDY $9398,X
|
||||
8C4E- 84 59 STY $59
|
||||
8C50- A0 08 LDY #$08
|
||||
8C52- 88 DEY
|
||||
8C53- 38 SEC
|
||||
8C54- 66 5C ROR $5C
|
||||
8C56- 4A LSR
|
||||
8C57- 90 F9 BCC $8C52
|
||||
8C59- A2 00 LDX #$00
|
||||
8C5B- AD 0B 8A LDA $8A0B
|
||||
8C5E- D0 3E BNE $8C9E
|
||||
8C60- A1 50 LDA ($50,X)
|
||||
8C62- 49 FF EOR #$FF
|
||||
8C64- 85 5A STA $5A
|
||||
8C66- E6 50 INC $50
|
||||
8C68- D0 02 BNE $8C6C
|
||||
8C6A- E6 51 INC $51
|
||||
8C6C- A2 08 LDX #$08
|
||||
8C6E- 06 5A ASL $5A
|
||||
8C70- 66 5C ROR $5C
|
||||
8C72- 88 DEY
|
||||
8C73- D0 0D BNE $8C82
|
||||
8C75- A4 59 LDY $59
|
||||
8C77- E6 59 INC $59
|
||||
8C79- A5 5C LDA $5C
|
||||
8C7B- 4A LSR
|
||||
8C7C- 31 55 AND ($55),Y
|
||||
8C7E- 91 55 STA ($55),Y
|
||||
8C80- A0 07 LDY #$07
|
||||
8C82- C6 54 DEC $54
|
||||
8C84- F0 05 BEQ $8C8B
|
||||
8C86- CA DEX
|
||||
8C87- D0 E5 BNE $8C6E
|
||||
8C89- F0 D5 BEQ $8C60
|
||||
8C8B- C0 07 CPY #$07
|
||||
8C8D- F0 0E BEQ $8C9D
|
||||
8C8F- A5 5C LDA $5C
|
||||
8C91- 38 SEC
|
||||
8C92- 6A ROR
|
||||
8C93- 88 DEY
|
||||
8C94- D0 FB BNE $8C91
|
||||
8C96- 4A LSR
|
||||
8C97- A4 59 LDY $59
|
||||
8C99- 31 55 AND ($55),Y
|
||||
8C9B- 91 55 STA ($55),Y
|
||||
8C9D- 60 RTS
|
||||
8C9E- A1 50 LDA ($50,X)
|
||||
8CA0- 49 FF EOR #$FF
|
||||
8CA2- 85 5A STA $5A
|
||||
8CA4- E6 50 INC $50
|
||||
8CA6- D0 02 BNE $8CAA
|
||||
8CA8- E6 51 INC $51
|
||||
8CAA- A2 08 LDX #$08
|
||||
8CAC- 86 5B STX $5B
|
||||
8CAE- 06 5A ASL $5A
|
||||
8CB0- A2 02 LDX #$02
|
||||
8CB2- 08 PHP
|
||||
8CB3- 66 5C ROR $5C
|
||||
8CB5- 88 DEY
|
||||
8CB6- D0 15 BNE $8CCD
|
||||
8CB8- A4 59 LDY $59
|
||||
8CBA- E6 59 INC $59
|
||||
8CBC- A5 5C LDA $5C
|
||||
8CBE- 4A LSR
|
||||
8CBF- 85 5C STA $5C
|
||||
8CC1- 31 55 AND ($55),Y
|
||||
8CC3- 91 55 STA ($55),Y
|
||||
8CC5- A5 5C LDA $5C
|
||||
8CC7- 31 57 AND ($57),Y
|
||||
8CC9- 91 57 STA ($57),Y
|
||||
8CCB- A0 07 LDY #$07
|
||||
8CCD- 28 PLP
|
||||
8CCE- CA DEX
|
||||
8CCF- D0 E1 BNE $8CB2
|
||||
8CD1- C6 54 DEC $54
|
||||
8CD3- F0 07 BEQ $8CDC
|
||||
8CD5- A6 5B LDX $5B
|
||||
8CD7- CA DEX
|
||||
8CD8- D0 D2 BNE $8CAC
|
||||
8CDA- F0 C2 BEQ $8C9E
|
||||
8CDC- C0 07 CPY #$07
|
||||
8CDE- F0 16 BEQ $8CF6
|
||||
8CE0- A5 5C LDA $5C
|
||||
8CE2- 38 SEC
|
||||
8CE3- 6A ROR
|
||||
8CE4- 88 DEY
|
||||
8CE5- D0 FB BNE $8CE2
|
||||
8CE7- 4A LSR
|
||||
8CE8- 85 5C STA $5C
|
||||
8CEA- A4 59 LDY $59
|
||||
8CEC- 31 55 AND ($55),Y
|
||||
8CEE- 91 55 STA ($55),Y
|
||||
8CF0- A5 5C LDA $5C
|
||||
8CF2- 31 57 AND ($57),Y
|
||||
8CF4- 91 57 STA ($57),Y
|
||||
8CF6- 60 RTS
|
||||
8CF7- 11 31 ORA ($31),Y
|
||||
8CF9- 51 18 EOR ($18),Y
|
||||
8CFB- 38 SEC
|
||||
8CFC- 18 CLC
|
||||
8CFD- 00 BRK
|
||||
8CFE- FF ???
|
||||
8CFF- 00 BRK
|
||||
8D00- AC 03 8A LDY $8A03
|
||||
8D03- B9 F5 8C LDA $8CF5,Y
|
||||
8D06- 48 PHA
|
||||
8D07- BE F8 8C LDX $8CF8,Y
|
||||
8D0A- B9 FB 8C LDA $8CFB,Y
|
||||
8D0D- A8 TAY
|
||||
8D0E- 68 PLA
|
||||
8D0F- 4C 12 8D JMP $8D12
|
||||
8D12- 8D 7C 8C STA $8C7C
|
||||
8D15- 8D 99 8C STA $8C99
|
||||
8D18- 8D C1 8C STA $8CC1
|
||||
8D1B- 8D C7 8C STA $8CC7
|
||||
8D1E- 8D EC 8C STA $8CEC
|
||||
8D21- 8D F2 8C STA $8CF2
|
||||
8D24- 8E 53 8C STX $8C53
|
||||
8D27- 8E 91 8C STX $8C91
|
||||
8D2A- 8E E2 8C STX $8CE2
|
||||
8D2D- 8C 63 8C STY $8C63
|
||||
8D30- 8C A1 8C STY $8CA1
|
||||
8D33- 60 RTS
|
||||
8D34- 20 3D 8D JSR $8D3D
|
||||
8D37- 12 8D ORA ($8D)
|
||||
8D39- 26 8C ROL $8C
|
||||
8D3B- 85 60 STA $60
|
||||
8D3D- 20 69 E0 JSR $E069
|
||||
8D40- 20 6C E0 JSR $E06C
|
||||
8D43- 8D 10 8D STA $8D10
|
||||
8D46- 20 6C E0 JSR $E06C
|
||||
8D49- 8D 11 8D STA $8D11
|
||||
8D4C- 20 6C E0 JSR $E06C
|
||||
8D4F- 8D 1A 8B STA $8B1A
|
||||
8D52- 20 6C E0 JSR $E06C
|
||||
8D55- 8D 1B 8B STA $8B1B
|
||||
8D58- 20 6C E0 JSR $E06C
|
||||
8D5B- 8D 45 8A STA $8A45
|
||||
8D5E- 8D AF 8A STA $8AAF
|
||||
8D61- 8D E8 8A STA $8AE8
|
||||
8D64- 8D ED 8A STA $8AED
|
||||
8D67- 8D F2 8A STA $8AF2
|
||||
8D6A- 8D F7 8A STA $8AF7
|
||||
8D6D- 8D 73 8B STA $8B73
|
||||
8D70- 8D 78 8B STA $8B78
|
||||
8D73- 8D 7D 8B STA $8B7D
|
||||
8D76- 8D 89 8B STA $8B89
|
||||
8D79- 8D 8E 8B STA $8B8E
|
||||
8D7C- 8D 93 8B STA $8B93
|
||||
8D7F- 8D D4 8B STA $8BD4
|
||||
8D82- 60 RTS
|
|
@ -0,0 +1,859 @@
|
|||
0800- 4C 38 08 JMP $0838
|
||||
0803- 4C 19 0D JMP $0D19
|
||||
0806- 4C 51 0D JMP $0D51
|
||||
0809- 4C D3 0D JMP $0DD3
|
||||
080C- 54 ???
|
||||
080D- 48 PHA
|
||||
080E- 45 20 EOR $20
|
||||
0810- 50 52 BVC $0864
|
||||
0812- 49 4E EOR #$4E
|
||||
0814- 54 ???
|
||||
0815- 20 53 48 JSR $4853
|
||||
0818- 4F ???
|
||||
0819- 50 00 BVC $081B
|
||||
081B- 43 ???
|
||||
081C- 4F ???
|
||||
081D- 4D 50 41 EOR $4150
|
||||
0820- 4E 49 4F LSR $4F49
|
||||
0823- 4E 00 41 LSR $4100
|
||||
0826- 4E 44 20 LSR $2044
|
||||
0829- 50 52 BVC $087D
|
||||
082B- 45 53 EOR $53
|
||||
082D- 53 ???
|
||||
082E- 20 3C 52 JSR $523C
|
||||
0831- 45 54 EOR $54
|
||||
0833- 55 52 EOR $52,X
|
||||
0835- 4E 3E 00 LSR $003E
|
||||
0838- 20 26 0A JSR $0A26
|
||||
083B- A9 2C LDA #$2C
|
||||
083D- 8D 38 08 STA $0838
|
||||
0840- A2 FF LDX #$FF
|
||||
0842- 9A TXS
|
||||
0843- 20 06 E0 JSR $E006
|
||||
0846- 20 00 E0 JSR $E000
|
||||
0849- 10 01 BPL $084C
|
||||
084B- 10 26 BPL $0873
|
||||
084D- 0F ???
|
||||
084E- 02 ???
|
||||
084F- 05 08 ORA $08
|
||||
0851- 0A ASL
|
||||
0852- 0F ???
|
||||
0853- 06 8C ASL $8C
|
||||
0855- 00 BRK
|
||||
0856- 01 09 ORA ($09,X)
|
||||
0858- 0C 08 0D TSB $0D08
|
||||
085B- 09 1B ORA #$1B
|
||||
085D- 08 PHP
|
||||
085E- 0D 00 20 ORA $2000
|
||||
0861- 49 0A EOR #$0A
|
||||
0863- 20 00 E0 JSR $E000
|
||||
0866- 06 8C ASL $8C
|
||||
0868- 00 BRK
|
||||
0869- 24 05 BIT $05
|
||||
086B- 0D 4D 41 ORA $414D
|
||||
086E- 49 4E EOR #$4E
|
||||
0870- 20 4D 45 JSR $454D
|
||||
0873- 4E 55 0D LSR $0D55
|
||||
0876- 06 4C ASL $4C
|
||||
0878- 00 BRK
|
||||
0879- 42 ???
|
||||
087A- 47 ???
|
||||
087B- 52 41 EOR ($41)
|
||||
087D- 50 48 BVC $08C7
|
||||
087F- 49 43 EOR #$43
|
||||
0881- 20 45 44 JSR $4445
|
||||
0884- 49 54 EOR #$54
|
||||
0886- 4F ???
|
||||
0887- 52 2B EOR ($2B)
|
||||
0889- 0D 42 4F ORA $4F42
|
||||
088C- 52 44 EOR ($44)
|
||||
088E- 45 52 EOR $52
|
||||
0890- 20 45 44 JSR $4445
|
||||
0893- 49 54 EOR #$54
|
||||
0895- 4F ???
|
||||
0896- 52 0D EOR ($0D)
|
||||
0898- 46 4F LSR $4F
|
||||
089A- 4E 54 20 LSR $2054
|
||||
089D- 45 44 EOR $44
|
||||
089F- 49 54 EOR #$54
|
||||
08A1- 4F ???
|
||||
08A2- 52 0D EOR ($0D)
|
||||
08A4- 54 ???
|
||||
08A5- 49 4C EOR #$4C
|
||||
08A7- 45 20 EOR $20
|
||||
08A9- 4D 41 47 EOR $4741
|
||||
08AC- 49 43 EOR #$43
|
||||
08AE- 0D 43 52 ORA $5243
|
||||
08B1- 45 41 EOR $41
|
||||
08B3- 54 ???
|
||||
08B4- 55 52 EOR $52,X
|
||||
08B6- 45 20 EOR $20
|
||||
08B8- 4D 41 4B EOR $4B41
|
||||
08BB- 45 52 EOR $52
|
||||
08BD- 0D 43 41 ORA $4143
|
||||
08C0- 4C 45 4E JMP $4E45
|
||||
08C3- 44 ???
|
||||
08C4- 41 52 EOR ($52,X)
|
||||
08C6- 0D 53 45 ORA $4553
|
||||
08C9- 54 ???
|
||||
08CA- 55 50 EOR $50,X
|
||||
08CC- 0D 45 58 ORA $5845
|
||||
08CF- 49 54 EOR #$54
|
||||
08D1- 20 50 52 JSR $5250
|
||||
08D4- 4F ???
|
||||
08D5- 47 ???
|
||||
08D6- 52 41 EOR ($41)
|
||||
08D8- 4D 0D 10 EOR $100D
|
||||
08DB- 15 45 ORA $45,X
|
||||
08DD- 0F ???
|
||||
08DE- 02 ???
|
||||
08DF- 10 15 BPL $08F6
|
||||
08E1- 7C 0F 02 JMP ($020F,X)
|
||||
08E4- 11 70 ORA ($70),Y
|
||||
08E6- 14 45 TRB $45
|
||||
08E8- 01 39 ORA ($39,X)
|
||||
08EA- 11 07 ORA ($07),Y
|
||||
08EC- 24 45 BIT $45
|
||||
08EE- 01 39 ORA ($39,X)
|
||||
08F0- 00 BRK
|
||||
08F1- 20 B7 0A JSR $0AB7
|
||||
08F4- A9 01 LDA #$01
|
||||
08F6- C9 06 CMP #$06
|
||||
08F8- F0 50 BEQ $094A
|
||||
08FA- AC F5 95 LDY $95F5
|
||||
08FD- 20 28 E0 JSR $E028
|
||||
0900- 82 ???
|
||||
0901- 12 41 ORA ($41)
|
||||
0903- 08 PHP
|
||||
0904- 88 DEY
|
||||
0905- 0A ASL
|
||||
0906- 8C F5 95 STY $95F5
|
||||
0909- B0 EB BCS $08F6
|
||||
090B- AA TAX
|
||||
090C- 30 19 BMI $0927
|
||||
090E- 20 40 09 JSR $0940
|
||||
0911- AC F5 95 LDY $95F5
|
||||
0914- 20 4B E0 JSR $E04B
|
||||
0917- E3 ???
|
||||
0918- 09 F8 ORA #$F8
|
||||
091A- 09 05 ORA #$05
|
||||
091C- 0A ASL
|
||||
091D- E6 09 INC $09
|
||||
091F- D9 09 1C CMP $1C09,Y
|
||||
0922- 0A ASL
|
||||
0923- 12 0A ORA ($0A)
|
||||
0925- 4C 09 20 JMP $2009
|
||||
0928- 00 BRK
|
||||
0929- E0 05 CPX #$05
|
||||
092B- 02 ???
|
||||
092C- 06 8C ASL $8C
|
||||
092E- 00 BRK
|
||||
092F- B8 CLV
|
||||
0930- 56 45 LSR $45,X
|
||||
0932- 52 53 EOR ($53)
|
||||
0934- 49 4F EOR #$4F
|
||||
0936- 4E 20 31 LSR $3120
|
||||
0939- 2E 32 0D ROL $0D32
|
||||
093C- 00 BRK
|
||||
093D- 4C FA 08 JMP $08FA
|
||||
0940- 20 00 E0 JSR $E000
|
||||
0943- 10 00 BPL $0945
|
||||
0945- B8 CLV
|
||||
0946- 28 PLP
|
||||
0947- 07 ???
|
||||
0948- 00 BRK
|
||||
0949- 60 RTS
|
||||
094A- F0 49 BEQ $0995
|
||||
094C- 20 00 E0 JSR $E000
|
||||
094F- 0F ???
|
||||
0950- 01 1F ORA ($1F,X)
|
||||
0952- 26 98 ROL $98
|
||||
0954- 06 8C ASL $8C
|
||||
0956- 00 BRK
|
||||
0957- 50 05 BVC $095E
|
||||
0959- 50 4C BVC $09A7
|
||||
095B- 45 41 EOR $41
|
||||
095D- 53 ???
|
||||
095E- 45 20 EOR $20
|
||||
0960- 49 4E EOR #$4E
|
||||
0962- 53 ???
|
||||
0963- 45 52 EOR $52
|
||||
0965- 54 ???
|
||||
0966- 20 41 4E JSR $4E41
|
||||
0969- 4F ???
|
||||
096A- 54 ???
|
||||
096B- 48 PHA
|
||||
096C- 45 52 EOR $52
|
||||
096E- 20 44 49 JSR $4944
|
||||
0971- 53 ???
|
||||
0972- 4B ???
|
||||
0973- 0D 0D 09 ORA $090D
|
||||
0976- 25 08 AND $08
|
||||
0978- 0D 00 20 ORA $2000
|
||||
097B- 09 E0 ORA #$E0
|
||||
097D- 20 25 E0 JSR $E025
|
||||
0980- C9 0D CMP #$0D
|
||||
0982- F0 03 BEQ $0987
|
||||
0984- 4C 38 08 JMP $0838
|
||||
0987- 20 18 E0 JSR $E018
|
||||
098A- B0 03 BCS $098F
|
||||
098C- 0A ASL
|
||||
098D- 30 F8 BMI $0987
|
||||
098F- 20 15 E0 JSR $E015
|
||||
0992- 6C FC FF JMP ($FFFC)
|
||||
0995- A2 00 LDX #$00
|
||||
0997- A0 BF LDY #$BF
|
||||
0999- BD C0 91 LDA $91C0,X
|
||||
099C- 85 00 STA $00
|
||||
099E- B9 C0 91 LDA $91C0,Y
|
||||
09A1- 9D C0 91 STA $91C0,X
|
||||
09A4- 85 02 STA $02
|
||||
09A6- A5 00 LDA $00
|
||||
09A8- 99 C0 91 STA $91C0,Y
|
||||
09AB- BD 00 91 LDA $9100,X
|
||||
09AE- 85 01 STA $01
|
||||
09B0- B9 00 91 LDA $9100,Y
|
||||
09B3- 9D 00 91 STA $9100,X
|
||||
09B6- 85 03 STA $03
|
||||
09B8- A5 01 LDA $01
|
||||
09BA- 99 00 91 STA $9100,Y
|
||||
09BD- 98 TYA
|
||||
09BE- 48 PHA
|
||||
09BF- A0 27 LDY #$27
|
||||
09C1- B1 00 LDA ($00),Y
|
||||
09C3- 48 PHA
|
||||
09C4- B1 02 LDA ($02),Y
|
||||
09C6- 91 00 STA ($00),Y
|
||||
09C8- 68 PLA
|
||||
09C9- 91 02 STA ($02),Y
|
||||
09CB- 88 DEY
|
||||
09CC- 10 F3 BPL $09C1
|
||||
09CE- 68 PLA
|
||||
09CF- A8 TAY
|
||||
09D0- 88 DEY
|
||||
09D1- E8 INX
|
||||
09D2- E0 60 CPX #$60
|
||||
09D4- 90 C3 BCC $0999
|
||||
09D6- 4C FA 08 JMP $08FA
|
||||
09D9- A0 06 LDY #$06
|
||||
09DB- 20 60 0A JSR $0A60
|
||||
09DE- D0 F9 BNE $09D9
|
||||
09E0- A9 06 LDA #$06
|
||||
09E2- 2C A9 00 BIT $00A9
|
||||
09E5- 2C A9 03 BIT $03A9
|
||||
09E8- 8D F6 09 STA $09F6
|
||||
09EB- 20 51 0A JSR $0A51
|
||||
09EE- A0 03 LDY #$03
|
||||
09F0- 20 60 0A JSR $0A60
|
||||
09F3- D0 F9 BNE $09EE
|
||||
09F5- 4C 00 40 JMP $4000
|
||||
09F8- A0 04 LDY #$04
|
||||
09FA- 20 60 0A JSR $0A60
|
||||
09FD- D0 F9 BNE $09F8
|
||||
09FF- 20 58 0A JSR $0A58
|
||||
0A02- 4C 00 40 JMP $4000
|
||||
0A05- 20 51 0A JSR $0A51
|
||||
0A08- A0 05 LDY #$05
|
||||
0A0A- 20 60 0A JSR $0A60
|
||||
0A0D- D0 F9 BNE $0A08
|
||||
0A0F- 4C 00 60 JMP $6000
|
||||
0A12- A0 08 LDY #$08
|
||||
0A14- 20 60 0A JSR $0A60
|
||||
0A17- D0 F9 BNE $0A12
|
||||
0A19- 4C 00 58 JMP $5800
|
||||
0A1C- A0 07 LDY #$07
|
||||
0A1E- 20 60 0A JSR $0A60
|
||||
0A21- D0 F9 BNE $0A1C
|
||||
0A23- 4C 00 40 JMP $4000
|
||||
0A26- 20 22 E0 JSR $E022
|
||||
0A29- C9 1B CMP #$1B
|
||||
0A2B- F0 19 BEQ $0A46
|
||||
0A2D- 20 39 E0 JSR $E039
|
||||
0A30- 50 52 BVC $0A84
|
||||
0A32- 43 ???
|
||||
0A33- 4F ???
|
||||
0A34- 4D 53 00 EOR $0053
|
||||
0A37- D0 F4 BNE $0A2D
|
||||
0A39- 20 39 E0 JSR $E039
|
||||
0A3C- 43 ???
|
||||
0A3D- 4F ???
|
||||
0A3E- 4E 46 49 LSR $4946
|
||||
0A41- 47 ???
|
||||
0A42- 00 BRK
|
||||
0A43- D0 F4 BNE $0A39
|
||||
0A45- 60 RTS
|
||||
0A46- 4C 00 10 JMP $1000
|
||||
0A49- A0 00 LDY #$00
|
||||
0A4B- 20 60 0A JSR $0A60
|
||||
0A4E- D0 F9 BNE $0A49
|
||||
0A50- 60 RTS
|
||||
0A51- A0 02 LDY #$02
|
||||
0A53- 20 60 0A JSR $0A60
|
||||
0A56- D0 F9 BNE $0A51
|
||||
0A58- A0 01 LDY #$01
|
||||
0A5A- 20 63 0A JSR $0A63
|
||||
0A5D- D0 F9 BNE $0A58
|
||||
0A5F- 60 RTS
|
||||
0A60- A9 02 LDA #$02
|
||||
0A62- 2C A9 00 BIT $00A9
|
||||
0A65- 85 00 STA $00
|
||||
0A67- 84 01 STY $01
|
||||
0A69- B9 B1 0C LDA $0CB1,Y
|
||||
0A6C- 30 0D BMI $0A7B
|
||||
0A6E- 18 CLC
|
||||
0A6F- A9 01 LDA #$01
|
||||
0A71- 20 5D E0 JSR $E05D
|
||||
0A74- B0 0F BCS $0A85
|
||||
0A76- 20 00 E0 JSR $E000
|
||||
0A79- 18 CLC
|
||||
0A7A- 00 BRK
|
||||
0A7B- A4 01 LDY $01
|
||||
0A7D- A5 00 LDA $00
|
||||
0A7F- 8D 0D B0 STA $B00D
|
||||
0A82- 4C 8E 0B JMP $0B8E
|
||||
0A85- 4C 38 08 JMP $0838
|
||||
0A88- BD A7 0A LDA $0AA7,X
|
||||
0A8B- 85 3E STA $3E
|
||||
0A8D- BD A8 0A LDA $0AA8,X
|
||||
0A90- 85 3F STA $3F
|
||||
0A92- A2 03 LDX #$03
|
||||
0A94- BD A3 0A LDA $0AA3,X
|
||||
0A97- 95 3A STA $3A,X
|
||||
0A99- CA DEX
|
||||
0A9A- 10 F8 BPL $0A94
|
||||
0A9C- A9 B1 LDA #$B1
|
||||
0A9E- A0 3E LDY #$3E
|
||||
0AA0- 4C 78 E0 JMP $E078
|
||||
0AA3- 15 47 ORA $47,X
|
||||
0AA5- 0F ???
|
||||
0AA6- 35 00 AND $00,X
|
||||
0AA8- 40 RTI
|
||||
0AA9- 1B ???
|
||||
0AAA- 43 ???
|
||||
0AAB- 36 46 ROL $46,X
|
||||
0AAD- 51 49 EOR ($49),Y
|
||||
0AAF- 6C 4C 87 JMP ($874C)
|
||||
0AB2- 4F ???
|
||||
0AB3- A2 52 LDX #$52
|
||||
0AB5- BD 55 AD LDA $AD55,X
|
||||
0AB8- F5 95 SBC $95,X
|
||||
0ABA- 10 36 BPL $0AF2
|
||||
0ABC- A9 06 LDA #$06
|
||||
0ABE- 8D F5 95 STA $95F5
|
||||
0AC1- 20 00 E0 JSR $E000
|
||||
0AC4- 05 0A ORA $0A
|
||||
0AC6- 0A ASL
|
||||
0AC7- 06 8C ASL $8C
|
||||
0AC9- 00 BRK
|
||||
0ACA- 96 57 STX $57,Y
|
||||
0ACC- 45 4C EOR $4C
|
||||
0ACE- 43 ???
|
||||
0ACF- 4F ???
|
||||
0AD0- 4D 45 20 EOR $2045
|
||||
0AD3- 54 ???
|
||||
0AD4- 4F ???
|
||||
0AD5- 0D 09 0C ORA $0C09
|
||||
0AD8- 08 PHP
|
||||
0AD9- 20 09 1B JSR $1B09
|
||||
0ADC- 08 PHP
|
||||
0ADD- 21 0D AND ($0D,X)
|
||||
0ADF- 09 29 ORA #$29
|
||||
0AE1- 08 PHP
|
||||
0AE2- 20 54 4F JSR $4F54
|
||||
0AE5- 20 52 55 JSR $5552
|
||||
0AE8- 4E 20 53 LSR $5320
|
||||
0AEB- 45 54 EOR $54
|
||||
0AED- 55 50 EOR $50,X
|
||||
0AEF- 0D 00 60 ORA $6000
|
||||
0AF2- 20 48 0B JSR $0B48
|
||||
0AF5- 20 00 E0 JSR $E000
|
||||
0AF8- 05 06 ORA $06
|
||||
0AFA- 8C 00 98 STY $9800
|
||||
0AFD- 55 53 EOR $53,X
|
||||
0AFF- 45 20 EOR $20
|
||||
0B01- 20 20 20 JSR $2020
|
||||
0B04- 20 20 20 JSR $2020
|
||||
0B07- 41 4E EOR ($4E,X)
|
||||
0B09- 44 ???
|
||||
0B0A- 09 2E ORA #$2E
|
||||
0B0C- 08 PHP
|
||||
0B0D- 0D 54 4F ORA $4F54
|
||||
0B10- 20 4D 41 JSR $414D
|
||||
0B13- 4B ???
|
||||
0B14- 45 20 EOR $20
|
||||
0B16- 53 ???
|
||||
0B17- 45 4C EOR $4C
|
||||
0B19- 45 43 EOR $43
|
||||
0B1B- 54 ???
|
||||
0B1C- 49 4F EOR #$4F
|
||||
0B1E- 4E 2E 20 LSR $202E
|
||||
0B21- 20 4F 52 JSR $524F
|
||||
0B24- 2C 20 55 BIT $5520
|
||||
0B27- 53 ???
|
||||
0B28- 45 0D EOR $0D
|
||||
0B2A- 4D 4F 55 EOR $554F
|
||||
0B2D- 53 ???
|
||||
0B2E- 45 2C EOR $2C
|
||||
0B30- 20 4A 4F JSR $4F4A
|
||||
0B33- 59 53 54 EOR $5453,Y
|
||||
0B36- 49 43 EOR #$43
|
||||
0B38- 4B ???
|
||||
0B39- 2C 20 4F BIT $4F20
|
||||
0B3C- 52 20 EOR ($20)
|
||||
0B3E- 4B ???
|
||||
0B3F- 4F ???
|
||||
0B40- 41 4C EOR ($4C,X)
|
||||
0B42- 41 50 EOR ($50,X)
|
||||
0B44- 41 44 EOR ($44,X)
|
||||
0B46- 0D 00 AD ORA $AD00
|
||||
0B49- 68 PLA
|
||||
0B4A- FA PLX
|
||||
0B4B- C9 C0 CMP #$C0
|
||||
0B4D- F0 22 BEQ $0B71
|
||||
0B4F- AD B3 FB LDA $FBB3 F8ROM:VERSION
|
||||
0B52- C9 06 CMP #$06
|
||||
0B54- F0 1B BEQ $0B71
|
||||
0B56- 20 0C E0 JSR $E00C
|
||||
0B59- 0D 98 01 ORA $0198
|
||||
0B5C- 06 81 ASL $81
|
||||
0B5E- 0C 06 C1 TSB $C106
|
||||
0B61- 06 0C ASL $0C
|
||||
0B63- 20 0C E0 JSR $E00C
|
||||
0B66- 0F ???
|
||||
0B67- 98 TYA
|
||||
0B68- 01 06 ORA ($06,X)
|
||||
0B6A- 81 18 STA ($18,X)
|
||||
0B6C- 30 C1 BMI $0B2F
|
||||
0B6E- 30 18 BMI $0B88
|
||||
0B70- 60 RTS
|
||||
0B71- 20 0C E0 JSR $E00C
|
||||
0B74- 0D 98 01 ORA $0198
|
||||
0B77- 07 ???
|
||||
0B78- 08 PHP
|
||||
0B79- 08 PHP
|
||||
0B7A- 08 PHP
|
||||
0B7B- 6B ???
|
||||
0B7C- 3E 1C 08 ROL $081C,X
|
||||
0B7F- 20 0C E0 JSR $E00C
|
||||
0B82- 0F ???
|
||||
0B83- 98 TYA
|
||||
0B84- 01 07 ORA ($07,X)
|
||||
0B86- 08 PHP
|
||||
0B87- 1C 3E 6B TRB $6B3E
|
||||
0B8A- 08 PHP
|
||||
0B8B- 08 PHP
|
||||
0B8C- 08 PHP
|
||||
0B8D- 60 RTS
|
||||
0B8E- 84 04 STY $04
|
||||
0B90- A9 00 LDA #$00
|
||||
0B92- 85 05 STA $05
|
||||
0B94- A2 FF LDX #$FF
|
||||
0B96- 88 DEY
|
||||
0B97- 30 12 BMI $0BAB
|
||||
0B99- E8 INX
|
||||
0B9A- BD 61 0C LDA $0C61,X
|
||||
0B9D- D0 FA BNE $0B99
|
||||
0B9F- E8 INX
|
||||
0BA0- E8 INX
|
||||
0BA1- BD 61 0C LDA $0C61,X
|
||||
0BA4- 18 CLC
|
||||
0BA5- 65 05 ADC $05
|
||||
0BA7- 85 05 STA $05
|
||||
0BA9- D0 EB BNE $0B96
|
||||
0BAB- A0 FF LDY #$FF
|
||||
0BAD- E8 INX
|
||||
0BAE- C8 INY
|
||||
0BAF- BD 61 0C LDA $0C61,X
|
||||
0BB2- 99 A5 0E STA $0EA5,Y
|
||||
0BB5- D0 F6 BNE $0BAD
|
||||
0BB7- A9 60 LDA #$60
|
||||
0BB9- 99 A6 0E STA $0EA6,Y
|
||||
0BBC- BD 62 0C LDA $0C62,X
|
||||
0BBF- 85 06 STA $06
|
||||
0BC1- BD 63 0C LDA $0C63,X
|
||||
0BC4- 85 07 STA $07
|
||||
0BC6- A4 04 LDY $04
|
||||
0BC8- A9 01 LDA #$01
|
||||
0BCA- BE B1 0C LDX $0CB1,Y
|
||||
0BCD- 30 18 BMI $0BE7
|
||||
0BCF- 20 A2 0E JSR $0EA2
|
||||
0BD2- D0 12 BNE $0BE6
|
||||
0BD4- 2C 7F 02 BIT $027F
|
||||
0BD7- 10 0B BPL $0BE4
|
||||
0BD9- A9 00 LDA #$00
|
||||
0BDB- 20 E7 0B JSR $0BE7
|
||||
0BDE- A6 04 LDX $04
|
||||
0BE0- 38 SEC
|
||||
0BE1- 7E B1 0C ROR $0CB1,X
|
||||
0BE4- A9 00 LDA #$00
|
||||
0BE6- 60 RTS
|
||||
0BE7- 85 08 STA $08
|
||||
0BE9- 8D 09 C0 STA $C009 w:SETALTZP
|
||||
0BEC- A2 20 LDX #$20
|
||||
0BEE- BD 28 0C LDA $0C28,X
|
||||
0BF1- 95 80 STA $80,X
|
||||
0BF3- CA DEX
|
||||
0BF4- 10 F8 BPL $0BEE
|
||||
0BF6- 8D 08 C0 STA $C008 w:SETSTDZP
|
||||
0BF9- A4 05 LDY $05
|
||||
0BFB- E6 05 INC $05
|
||||
0BFD- BE 49 0C LDX $0C49,Y
|
||||
0C00- A4 06 LDY $06
|
||||
0C02- 98 TYA
|
||||
0C03- 18 CLC
|
||||
0C04- 69 08 ADC #$08
|
||||
0C06- 85 06 STA $06
|
||||
0C08- A5 08 LDA $08
|
||||
0C0A- 8D 09 C0 STA $C009 w:SETALTZP
|
||||
0C0D- 86 01 STX $01
|
||||
0C0F- 84 03 STY $03
|
||||
0C11- D0 04 BNE $0C17
|
||||
0C13- 84 01 STY $01
|
||||
0C15- 86 03 STX $03
|
||||
0C17- A0 00 LDY #$00
|
||||
0C19- 84 00 STY $00
|
||||
0C1B- 84 02 STY $02
|
||||
0C1D- 20 80 00 JSR $0080
|
||||
0C20- 8D 08 C0 STA $C008 w:SETSTDZP
|
||||
0C23- C6 07 DEC $07
|
||||
0C25- D0 D2 BNE $0BF9
|
||||
0C27- 60 RTS
|
||||
0C28- AA TAX
|
||||
0C29- 9D 02 C0 STA $C002,X
|
||||
0C2C- 49 01 EOR #$01
|
||||
0C2E- AA TAX
|
||||
0C2F- 9D 04 C0 STA $C004,X
|
||||
0C32- A2 08 LDX #$08
|
||||
0C34- B1 00 LDA ($00),Y
|
||||
0C36- 91 02 STA ($02),Y
|
||||
0C38- C8 INY
|
||||
0C39- D0 F9 BNE $0C34
|
||||
0C3B- E6 01 INC $01
|
||||
0C3D- E6 03 INC $03
|
||||
0C3F- CA DEX
|
||||
0C40- D0 F2 BNE $0C34
|
||||
0C42- 8D 04 C0 STA $C004 w:WRMAINRAM
|
||||
0C45- 8D 02 C0 STA $C002 w:RDMAINRAM
|
||||
0C48- 60 RTS
|
||||
0C49- 40 RTI
|
||||
0C4A- 48 PHA
|
||||
0C4B- 50 58 BVC $0CA5
|
||||
0C4D- 60 RTS
|
||||
0C4E- 68 PLA
|
||||
0C4F- 70 78 BVS $0CC9
|
||||
0C51- 80 88 BRA $0BDB
|
||||
0C53- 90 98 BCC $0BED
|
||||
0C55- A0 A8 LDY #$A8
|
||||
0C57- B0 B8 BCS $0C11
|
||||
0C59- D0 D8 BNE $0C33
|
||||
0C5B- E0 E8 CPX #$E8
|
||||
0C5D- F0 F8 BEQ $0C57
|
||||
0C5F- 10 18 BPL $0C79
|
||||
0C61- 49 43 EOR #$43
|
||||
0C63- 4F ???
|
||||
0C64- 4E 53 00 LSR $0053
|
||||
0C67- 40 RTI
|
||||
0C68- 04 5B TSB $5B
|
||||
0C6A- 43 ???
|
||||
0C6B- 44 ???
|
||||
0C6C- 5D 2C 41 EOR $412C,X
|
||||
0C6F- 34 30 BIT $30,X
|
||||
0C71- 39 36 00 AND $0036,Y
|
||||
0C74- 10 01 BPL $0C77
|
||||
0C76- 45 44 EOR $44
|
||||
0C78- 49 54 EOR #$54
|
||||
0C7A- 00 BRK
|
||||
0C7B- 50 02 BVC $0C7F
|
||||
0C7D- 47 ???
|
||||
0C7E- 52 45 EOR ($45)
|
||||
0C80- 44 ???
|
||||
0C81- 49 54 EOR #$54
|
||||
0C83- 00 BRK
|
||||
0C84- 40 RTI
|
||||
0C85- 02 ???
|
||||
0C86- 42 ???
|
||||
0C87- 4F ???
|
||||
0C88- 45 44 EOR $44
|
||||
0C8A- 49 54 EOR #$54
|
||||
0C8C- 00 BRK
|
||||
0C8D- 40 RTI
|
||||
0C8E- 03 ???
|
||||
0C8F- 46 4F LSR $4F
|
||||
0C91- 45 44 EOR $44
|
||||
0C93- 49 54 EOR #$54
|
||||
0C95- 00 BRK
|
||||
0C96- 60 RTS
|
||||
0C97- 03 ???
|
||||
0C98- 43 ???
|
||||
0C99- 52 44 EOR ($44)
|
||||
0C9B- 41 54 EOR ($54,X)
|
||||
0C9D- 41 00 EOR ($00,X)
|
||||
0C9F- 60 RTS
|
||||
0CA0- 03 ???
|
||||
0CA1- 43 ???
|
||||
0CA2- 41 4C EOR ($4C,X)
|
||||
0CA4- 45 4E EOR $4E
|
||||
0CA6- 00 BRK
|
||||
0CA7- 40 RTI
|
||||
0CA8- 04 53 TSB $53
|
||||
0CAA- 45 54 EOR $54
|
||||
0CAC- 55 50 EOR $50,X
|
||||
0CAE- 00 BRK
|
||||
0CAF- 58 CLI
|
||||
0CB0- 01 00 ORA ($00,X)
|
||||
0CB2- 00 BRK
|
||||
0CB3- 00 BRK
|
||||
0CB4- 00 BRK
|
||||
0CB5- 00 BRK
|
||||
0CB6- 00 BRK
|
||||
0CB7- 00 BRK
|
||||
0CB8- 00 BRK
|
||||
0CB9- 00 BRK
|
||||
0CBA- 43 ???
|
||||
0CBB- 48 PHA
|
||||
0CBC- 4F ???
|
||||
0CBD- 4F ???
|
||||
0CBE- 53 ???
|
||||
0CBF- 45 20 EOR $20
|
||||
0CC1- 41 20 EOR ($20,X)
|
||||
0CC3- 46 4F LSR $4F
|
||||
0CC5- 4E 54 3A LSR $3A54
|
||||
0CC8- 00 BRK
|
||||
0CC9- 52 45 EOR ($45)
|
||||
0CCB- 46 45 LSR $45
|
||||
0CCD- 52 45 EOR ($45)
|
||||
0CCF- 4E 43 45 LSR $4543
|
||||
0CD2- 20 46 4F JSR $4F46
|
||||
0CD5- 4E 54 00 LSR $0054
|
||||
0CD8- 46 52 LSR $52
|
||||
0CDA- 4F ???
|
||||
0CDB- 4D 20 50 EOR $5020
|
||||
0CDE- 52 49 EOR ($49)
|
||||
0CE0- 4E 54 20 LSR $2054
|
||||
0CE3- 53 ???
|
||||
0CE4- 48 PHA
|
||||
0CE5- 4F ???
|
||||
0CE6- 50 20 BVC $0D08
|
||||
0CE8- 44 ???
|
||||
0CE9- 49 53 EOR #$53
|
||||
0CEB- 4B ???
|
||||
0CEC- 00 BRK
|
||||
0CED- 46 52 LSR $52
|
||||
0CEF- 4F ???
|
||||
0CF0- 4D 20 43 EOR $4320
|
||||
0CF3- 4F ???
|
||||
0CF4- 4D 50 41 EOR $4150
|
||||
0CF7- 4E 49 4F LSR $4F49
|
||||
0CFA- 4E 20 44 LSR $4420
|
||||
0CFD- 49 53 EOR #$53
|
||||
0CFF- 4B ???
|
||||
0D00- 00 BRK
|
||||
0D01- 46 52 LSR $52
|
||||
0D03- 4F ???
|
||||
0D04- 4D 20 4F EOR $4F20
|
||||
0D07- 54 ???
|
||||
0D08- 48 PHA
|
||||
0D09- 45 52 EOR $52
|
||||
0D0B- 20 44 49 JSR $4944
|
||||
0D0E- 53 ???
|
||||
0D0F- 4B ???
|
||||
0D10- 00 BRK
|
||||
0D11- 4E 4F 20 LSR $204F
|
||||
0D14- 46 4F LSR $4F
|
||||
0D16- 4E 54 00 LSR $0054
|
||||
0D19- 8C 46 0D STY $0D46
|
||||
0D1C- A0 C9 LDY #$C9
|
||||
0D1E- A9 0C LDA #$0C
|
||||
0D20- B0 04 BCS $0D26
|
||||
0D22- A0 D8 LDY #$D8
|
||||
0D24- A9 0C LDA #$0C
|
||||
0D26- 8C 43 0D STY $0D43
|
||||
0D29- 8D 44 0D STA $0D44
|
||||
0D2C- 20 72 E0 JSR $E072
|
||||
0D2F- 20 00 E0 JSR $E000
|
||||
0D32- 05 06 ORA $06
|
||||
0D34- 8C 00 3C STY $3C00
|
||||
0D37- 09 BA ORA #$BA
|
||||
0D39- 0C 0D 0D TSB $0D0D
|
||||
0D3C- 0D 00 20 ORA $2000
|
||||
0D3F- 75 E0 ADC $E0,X
|
||||
0D41- 05 04 ORA $04
|
||||
0D43- FF ???
|
||||
0D44- FF ???
|
||||
0D45- A0 00 LDY #$00
|
||||
0D47- 20 28 E0 JSR $E028
|
||||
0D4A- 07 ???
|
||||
0D4B- 1A INC
|
||||
0D4C- 53 ???
|
||||
0D4D- 04 50 TSB $50
|
||||
0D4F- 0D 60 8C ORA $8C60
|
||||
0D52- 9C 0D 20 STZ $200D
|
||||
0D55- 72 E0 ADC ($E0)
|
||||
0D57- 20 00 E0 JSR $E000
|
||||
0D5A- 05 06 ORA $06
|
||||
0D5C- 8C 00 2D STY $2D00
|
||||
0D5F- 09 BA ORA #$BA
|
||||
0D61- 0C 0D 0D TSB $0D0D
|
||||
0D64- 0D 52 53 ORA $5352
|
||||
0D67- 56 50 LSR $50,X
|
||||
0D69- 0D 41 4C ORA $4C41
|
||||
0D6C- 45 58 EOR $58
|
||||
0D6E- 49 41 EOR #$41
|
||||
0D70- 0D 4E 45 ORA $454E
|
||||
0D73- 57 ???
|
||||
0D74- 53 ???
|
||||
0D75- 0D 54 45 ORA $4554
|
||||
0D78- 43 ???
|
||||
0D79- 48 PHA
|
||||
0D7A- 0D 50 41 ORA $4150
|
||||
0D7D- 52 54 EOR ($54)
|
||||
0D7F- 59 0D 42 EOR $420D,Y
|
||||
0D82- 4C 4F 43 JMP $434F
|
||||
0D85- 4B ???
|
||||
0D86- 0D 54 59 ORA $5954
|
||||
0D89- 50 45 BVC $0DD0
|
||||
0D8B- 57 ???
|
||||
0D8C- 52 49 EOR ($49)
|
||||
0D8E- 54 ???
|
||||
0D8F- 45 52 EOR $52
|
||||
0D91- 0D 53 54 ORA $5453
|
||||
0D94- 45 4E EOR $4E
|
||||
0D96- 43 ???
|
||||
0D97- 49 4C EOR #$4C
|
||||
0D99- 0D 00 A0 ORA $A000
|
||||
0D9C- 00 BRK
|
||||
0D9D- 20 28 E0 JSR $E028
|
||||
0DA0- 0C 10 44 TSB $4410
|
||||
0DA3- 08 PHP
|
||||
0DA4- 50 0D BVC $0DB3
|
||||
0DA6- 8C CB 0D STY $0DCB
|
||||
0DA9- B0 1F BCS $0DCA
|
||||
0DAB- C8 INY
|
||||
0DAC- 98 TYA
|
||||
0DAD- 09 30 ORA #$30
|
||||
0DAF- 8D BF 0D STA $0DBF
|
||||
0DB2- 20 72 E0 JSR $E072
|
||||
0DB5- 38 SEC
|
||||
0DB6- 20 5A E0 JSR $E05A
|
||||
0DB9- B0 0F BCS $0DCA
|
||||
0DBB- 20 39 E0 JSR $E039
|
||||
0DBE- 46 31 LSR $31
|
||||
0DC0- 00 BRK
|
||||
0DC1- 18 CLC
|
||||
0DC2- F0 06 BEQ $0DCA
|
||||
0DC4- A9 08 LDA #$08
|
||||
0DC6- 20 42 E0 JSR $E042
|
||||
0DC9- 38 SEC
|
||||
0DCA- A0 00 LDY #$00
|
||||
0DCC- 60 RTS
|
||||
0DCD- 46 4F LSR $4F
|
||||
0DCF- 4E 54 2E LSR $2E54
|
||||
0DD2- 00 BRK
|
||||
0DD3- 8C F0 0D STY $0DF0
|
||||
0DD6- 20 72 E0 JSR $E072
|
||||
0DD9- 20 00 E0 JSR $E000
|
||||
0DDC- 05 06 ORA $06
|
||||
0DDE- 8C 00 1D STY $1D00
|
||||
0DE1- 09 BA ORA #$BA
|
||||
0DE3- 0C 0D 0D TSB $0D0D
|
||||
0DE6- 0D 00 20 ORA $2000
|
||||
0DE9- 75 E0 ADC $E0,X
|
||||
0DEB- 05 0C ORA $0C
|
||||
0DED- 47 ???
|
||||
0DEE- 0E A0 00 ASL $00A0
|
||||
0DF1- 20 28 E0 JSR $E028
|
||||
0DF4- 0C 10 34 TSB $3410
|
||||
0DF7- 0C 50 0D TSB $0D50
|
||||
0DFA- 8C 45 0E STY $0E45
|
||||
0DFD- B0 45 BCS $0E44
|
||||
0DFF- A2 FF LDX #$FF
|
||||
0E01- 88 DEY
|
||||
0E02- 30 08 BMI $0E0C
|
||||
0E04- E8 INX
|
||||
0E05- BD 47 0E LDA $0E47,X
|
||||
0E08- D0 FA BNE $0E04
|
||||
0E0A- F0 F5 BEQ $0E01
|
||||
0E0C- A0 00 LDY #$00
|
||||
0E0E- B9 CD 0D LDA $0DCD,Y
|
||||
0E11- F0 06 BEQ $0E19
|
||||
0E13- 99 A5 0E STA $0EA5,Y
|
||||
0E16- C8 INY
|
||||
0E17- D0 F5 BNE $0E0E
|
||||
0E19- E8 INX
|
||||
0E1A- C8 INY
|
||||
0E1B- BD 47 0E LDA $0E47,X
|
||||
0E1E- 99 A4 0E STA $0EA4,Y
|
||||
0E21- D0 F6 BNE $0E19
|
||||
0E23- A9 60 LDA #$60
|
||||
0E25- 99 A5 0E STA $0EA5,Y
|
||||
0E28- 20 72 E0 JSR $E072
|
||||
0E2B- 18 CLC
|
||||
0E2C- A9 01 LDA #$01
|
||||
0E2E- 20 5D E0 JSR $E05D
|
||||
0E31- B0 11 BCS $0E44
|
||||
0E33- 20 00 E0 JSR $E000
|
||||
0E36- 18 CLC
|
||||
0E37- 00 BRK
|
||||
0E38- 20 A2 0E JSR $0EA2
|
||||
0E3B- 18 CLC
|
||||
0E3C- F0 06 BEQ $0E44
|
||||
0E3E- A9 08 LDA #$08
|
||||
0E40- 20 42 E0 JSR $E042
|
||||
0E43- 38 SEC
|
||||
0E44- A0 00 LDY #$00
|
||||
0E46- 60 RTS
|
||||
0E47- 42 ???
|
||||
0E48- 41 4C EOR ($4C,X)
|
||||
0E4A- 4C 4F 4F JMP $4F4F
|
||||
0E4D- 4E 00 4F LSR $4F00
|
||||
0E50- 48 PHA
|
||||
0E51- 49 4F EOR #$4F
|
||||
0E53- 00 BRK
|
||||
0E54- 50 4C BVC $0EA2
|
||||
0E56- 41 54 EOR ($54,X)
|
||||
0E58- 46 4F LSR $4F
|
||||
0E5A- 52 4D EOR ($4D)
|
||||
0E5C- 00 BRK
|
||||
0E5D- 44 ???
|
||||
0E5E- 45 43 EOR $43
|
||||
0E60- 4F ???
|
||||
0E61- 00 BRK
|
||||
0E62- 41 4E EOR ($4E,X)
|
||||
0E64- 47 ???
|
||||
0E65- 4C 45 00 JMP $0045
|
||||
0E68- 4C 4F 57 JMP $574F
|
||||
0E6B- 45 52 EOR $52
|
||||
0E6D- 20 43 41 JSR $4143
|
||||
0E70- 53 ???
|
||||
0E71- 45 00 EOR $00
|
||||
0E73- 4F ???
|
||||
0E74- 52 49 EOR ($49)
|
||||
0E76- 45 4E EOR $4E
|
||||
0E78- 54 ???
|
||||
0E79- 00 BRK
|
||||
0E7A- 43 ???
|
||||
0E7B- 41 42 EOR ($42,X)
|
||||
0E7D- 41 52 EOR ($52,X)
|
||||
0E7F- 45 54 EOR $54
|
||||
0E81- 00 BRK
|
||||
0E82- 47 ???
|
||||
0E83- 41 54 EOR ($54,X)
|
||||
0E85- 53 ???
|
||||
0E86- 42 ???
|
||||
0E87- 59 00 53 EOR $5300,Y
|
||||
0E8A- 41 4C EOR ($4C,X)
|
||||
0E8C- 4F ???
|
||||
0E8D- 4F ???
|
||||
0E8E- 4E 00 53 LSR $5300
|
||||
0E91- 41 4E EOR ($4E,X)
|
||||
0E93- 44 ???
|
||||
0E94- 57 ???
|
||||
0E95- 49 43 EOR #$43
|
||||
0E97- 48 PHA
|
||||
0E98- 00 BRK
|
||||
0E99- 52 45 EOR ($45)
|
||||
0E9B- 50 4F BVC $0EEC
|
||||
0E9D- 52 54 EOR ($54)
|
||||
0E9F- 45 52 EOR $52
|
||||
0EA1- 00 BRK
|
||||
0EA2- 20 39 E0 JSR $E039
|
|
@ -0,0 +1,90 @@
|
|||
;-----------
|
||||
;
|
||||
; Subroutine package:
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
PRINT = SP
|
||||
CLSCREEN = SP+3
|
||||
WITEBORD = SP+6
|
||||
ESCBACK = SP+9
|
||||
PICDRAW = SP+12
|
||||
;
|
||||
DEVICENW = SP+15
|
||||
DEVICEON = SP+18
|
||||
DEVICEOF = SP+21
|
||||
DEVICERD = SP+24
|
||||
DEVICEST = SP+27
|
||||
SCALING = SP+30
|
||||
;
|
||||
POLEBTN = SP+31
|
||||
POLEKEY = SP+34
|
||||
GETKEY = SP+37
|
||||
SELECT = SP+40
|
||||
;
|
||||
SETTYPE = SP+43
|
||||
GETFILE = SP+46
|
||||
SAVEFILE = SP+49
|
||||
TYPELEN = SP+52
|
||||
FLSTART = SP+53
|
||||
FLLENGTH = SP+55
|
||||
BLOAD = SP+57
|
||||
BSAVE = SP+60
|
||||
DOSCR = SP+63
|
||||
ERROR = SP+66
|
||||
;
|
||||
MUSIC = SP+69
|
||||
FLSHINIT = SP+72
|
||||
JMPVECTS = SP+75
|
||||
LINES = SP+78
|
||||
PARSE = SP+81
|
||||
SHOWAROW = SP+84
|
||||
NUMBER = SP+87
|
||||
WAITPSD = SP+90
|
||||
WAITCD = SP+93
|
||||
ANYKEY = SP+96
|
||||
CHKPRINT = SP+99
|
||||
BOOP = SP+102
|
||||
GETINIT = SP+105
|
||||
GETBYTE = SP+108
|
||||
INPUT = SP+111
|
||||
CLS1 = SP+114
|
||||
PRINTGRP = SP+117
|
||||
RTOS = SP+120
|
||||
SPACEBAR = SP+123
|
||||
GETPDISK = SP+126
|
||||
ESCMAIN = SP+129
|
||||
TESTPAPR = SP+132
|
||||
GETANUMB = SP+135
|
||||
ANYKEY2 = SP+138
|
||||
;
|
||||
WITE = $FF
|
||||
GRAY = $AA
|
||||
GRAY2 = $55
|
||||
BLAK = $00
|
||||
;
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
PRPIC = 19
|
||||
PRRTAB = 20
|
||||
PRRTAB2 = 21
|
||||
PRKERN = 22
|
||||
RTOSINV = 23
|
||||
GOOBER = 24
|
||||
;
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,285 @@
|
|||
NLS
|
||||
TTL "S:8800"
|
||||
ORG = $8800
|
||||
NOG
|
||||
;
|
||||
; Routines for pages $8800 & $8900
|
||||
;
|
||||
;------------
|
||||
*
|
||||
* AGE ROUTINES
|
||||
* AR PAGE
|
||||
* NT STRING
|
||||
*
|
||||
TADDR EPZ $08
|
||||
XSAVE EPZ $09
|
||||
YSAVE EPZ $0A
|
||||
*
|
||||
KBCODE EQU $C000
|
||||
KBSTROBE EQU $C010
|
||||
*------- ----
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
*------- ----
|
||||
TCLEAR JMP $FC58
|
||||
JMP TPRINT
|
||||
*
|
||||
CURSX HEX 00
|
||||
CURSY HEX 00
|
||||
STRADDR HEX 0000
|
||||
INMAX HEX 00
|
||||
VOPTION HEX 80
|
||||
RETFLAG HEX 00
|
||||
*
|
||||
JMP DOIT
|
||||
*
|
||||
TEXTLO HEX 0080008000800080
|
||||
HEX 28A828A828A828A8
|
||||
HEX 50D050D050D050D0
|
||||
*
|
||||
TEXTHI HEX 0404050506060707
|
||||
HEX 0404050506060707
|
||||
HEX 0404050506060707
|
||||
*------- -------------
|
||||
TPRINT LDA TADDR
|
||||
PHA
|
||||
LDA TADDR+1
|
||||
PHA
|
||||
JSR >0
|
||||
PLA
|
||||
STA TADDR+1
|
||||
PLA
|
||||
STA TADDR
|
||||
RTS
|
||||
*------- -----------
|
||||
* TEXT STRING
|
||||
*
|
||||
^0 LDX CURSY
|
||||
LDA TEXTLO,X
|
||||
STA TADDR
|
||||
LDA TEXTHI,X
|
||||
STA TADDR+1
|
||||
LDA STRADDR
|
||||
STA TLDA+1
|
||||
LDA STRADDR+1
|
||||
STA TLDA+2
|
||||
LDY CURSX
|
||||
LDX #00
|
||||
STX RETFLAG
|
||||
^1 JSR TLDA
|
||||
BEQ >2
|
||||
AND #$3F
|
||||
ORA VOPTION
|
||||
STA (TADDR),Y
|
||||
INX
|
||||
INY
|
||||
CPX INMAX
|
||||
BNE <1
|
||||
^2 RTS
|
||||
*------- -----------
|
||||
* DISPLAY MULTIPLE LINES
|
||||
* STRADDR
|
||||
* ITIAL CURSY
|
||||
* SET TO ZERO
|
||||
* UNTIL $FF FOUND
|
||||
*
|
||||
DOIT STX STRADDR
|
||||
STY STRADDR+1
|
||||
STA CURSY
|
||||
LDA #00
|
||||
STA CURSX
|
||||
LDX #40
|
||||
STA INMAX
|
||||
LDA #01
|
||||
STA LCOUNT
|
||||
*
|
||||
DOIT1 LDA LCOUNT
|
||||
LDX #$80
|
||||
STX VOPTION
|
||||
JSR TPRINT
|
||||
INX
|
||||
TXA
|
||||
CLC
|
||||
ADC STRADDR
|
||||
STA STRADDR
|
||||
BCC DOIT3
|
||||
INC STRADDR+1
|
||||
DOIT3 INC CURSY
|
||||
INC LCOUNT
|
||||
JSR TLDA
|
||||
CMP #$FF
|
||||
BNE DOIT1
|
||||
RTS
|
||||
*
|
||||
LCOUNT HEX 00
|
||||
*------- ----
|
||||
*
|
||||
TLDA LDA $8000,X
|
||||
RTS
|
||||
******** *************
|
||||
;-----------
|
||||
;
|
||||
; Check input device button
|
||||
;
|
||||
BUTTON STX XSAVE
|
||||
STY YSAVE
|
||||
JSR DEVICERD
|
||||
LDX XSAVE
|
||||
LDY YSAVE
|
||||
BCS >0
|
||||
ASL
|
||||
BMI >0
|
||||
BCC >0
|
||||
LDA #13
|
||||
RTS
|
||||
;
|
||||
^0 LDA #0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Calc Ybase
|
||||
;
|
||||
LRKYCALC LDA TEXTLO,X
|
||||
STA TADDR
|
||||
LDA TEXTHI,X
|
||||
STA TADDR+1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; PRINT TEXT STRING
|
||||
;
|
||||
TPRT JSR LRKYCALC
|
||||
LDY #39
|
||||
^0 LDA BUFFER,Y
|
||||
STA (TADDR),Y
|
||||
DEY
|
||||
BPL <0
|
||||
TPDONE RTS
|
||||
;-----------
|
||||
;
|
||||
; Substitute code for PRCOMS file
|
||||
; that has the lores routines at
|
||||
; $9600. This routine is at $8900.
|
||||
;
|
||||
; LO-RES KALEIDOSCOPE
|
||||
;
|
||||
BUFFER = $380
|
||||
;
|
||||
DAT EPZ $E0
|
||||
;
|
||||
BUFPTR1 EPZ DAT
|
||||
BUFPTR2 EPZ DAT+1
|
||||
COLORPTR EPZ DAT+2
|
||||
LINENO EPZ DAT+3
|
||||
CSTART EPZ DAT+4
|
||||
BYTCNT EPZ DAT+5
|
||||
BYTPTR EPZ DAT+6
|
||||
;---
|
||||
SP = $E000
|
||||
;
|
||||
DEVICERD = SP+24
|
||||
;
|
||||
; Start at next page
|
||||
;
|
||||
DFS $100-*&$FF,0
|
||||
;-----------
|
||||
JMP BUTTON
|
||||
DFS 5,$EA
|
||||
JMP LRK
|
||||
JMP UPLRK
|
||||
;-----------
|
||||
MSG HEX 7D2A28A89C
|
||||
HEX 112B292CA2
|
||||
HEX 112B2A2CA0
|
||||
HEX 11EAAC2AA0
|
||||
HEX 112A6A29A6
|
||||
HEX 112A6929A2
|
||||
HEX 112A28A89E
|
||||
;
|
||||
HEX 73CA2FA89C
|
||||
HEX 4A2B222CA2
|
||||
HEX 4A2B222CA0
|
||||
HEX 73CAA22AA0
|
||||
HEX 428A6229A6
|
||||
HEX 424A6229A2
|
||||
HEX 422A22289E
|
||||
;
|
||||
HEX 784227289C
|
||||
HEX 44A228ACA2
|
||||
HEX 44A2282CA0
|
||||
HEX 7912272AA0
|
||||
HEX 41F220A9A6
|
||||
HEX 420A28A9A2
|
||||
HEX 4209C7289E
|
||||
;-----------
|
||||
;
|
||||
; Draw the initial color lines
|
||||
;
|
||||
LRK LDA #00
|
||||
STA BUFPTR1
|
||||
STA LINENO
|
||||
LDA CSTART
|
||||
STA COLORPTR
|
||||
LDA #40
|
||||
STA BUFPTR2
|
||||
LRK1 LDX COLORPTR
|
||||
LDA COLOR,X
|
||||
LDY BUFPTR1
|
||||
LRK2 STA BUFFER,Y
|
||||
INY
|
||||
CPY BUFPTR2
|
||||
BNE LRK2
|
||||
LDX LINENO
|
||||
JSR TPRT
|
||||
LDA #19
|
||||
SEC
|
||||
SBC LINENO
|
||||
TAX
|
||||
JSR TPRT
|
||||
INC BUFPTR1
|
||||
DEC BUFPTR2
|
||||
INC COLORPTR
|
||||
LDA COLORPTR
|
||||
AND #07
|
||||
STA COLORPTR
|
||||
INC LINENO
|
||||
LDA LINENO
|
||||
CMP #10
|
||||
BNE LRK1
|
||||
INC CSTART
|
||||
LDA CSTART
|
||||
AND #07
|
||||
STA CSTART
|
||||
RTS
|
||||
;
|
||||
COLOR HEX BB99DDCC
|
||||
HEX EE667733
|
||||
;-----------
|
||||
;
|
||||
; Rotate the lores colors by one
|
||||
;
|
||||
UPLRK LDX #19
|
||||
UPLRK2 STX CURSY
|
||||
JSR LRKYCALC
|
||||
LDY #39
|
||||
UPLRK3 LDA (TADDR),Y
|
||||
AND #$0F
|
||||
TAX
|
||||
LDA NEXTC,X
|
||||
STA (TADDR),Y
|
||||
DEY
|
||||
BPL UPLRK3
|
||||
LDX CURSY
|
||||
DEX
|
||||
BPL UPLRK2
|
||||
RTS
|
||||
;
|
||||
NEXTC HEX 000000BB
|
||||
HEX 00007733
|
||||
HEX 00DD0099
|
||||
HEX EECC6600
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
USR "O:8800",ORG
|
||||
END
|
|
@ -0,0 +1,272 @@
|
|||
NLS
|
||||
TTL "S:8E00"
|
||||
ORG = $8E00
|
||||
;
|
||||
GETBTNS = $8900
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
POLEKEY = SP+31
|
||||
FLSHINIT = SP+72
|
||||
PARSE = SP+81
|
||||
RTOS = SP+120
|
||||
;
|
||||
X0 EPZ $3A
|
||||
Y0 EPZ $3B
|
||||
WIDTH EPZ $3C
|
||||
HEIGHT EPZ $3D
|
||||
;-----------
|
||||
;
|
||||
; AUX SYSTEM LIB ROUTINES
|
||||
;
|
||||
XTEMP EPZ $70
|
||||
YTEMP EPZ $71
|
||||
DADDR EPZ $80
|
||||
SADDR EPZ $82
|
||||
;
|
||||
STRING = $8A00
|
||||
XBYTE2 EQU $9398
|
||||
;*
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;*
|
||||
JMP GETBTNS
|
||||
JMP TINPUT
|
||||
PARAMS HEX 0000
|
||||
INMAX HEX 00
|
||||
;----------------
|
||||
; GDOIT - X,Y ADDR OF PARAMS
|
||||
; DRAW CONSECUTIVE STRINGS
|
||||
; Y+=9 EACH TIME
|
||||
;
|
||||
GDOIT LDA #00
|
||||
STA INMAX
|
||||
GPRINT LDA DADDR
|
||||
PHA
|
||||
LDA DADDR+1
|
||||
PHA
|
||||
LDA SADDR
|
||||
PHA
|
||||
LDA SADDR+1
|
||||
PHA
|
||||
STX DADDR
|
||||
STY DADDR+1
|
||||
LDY #04
|
||||
LDA (DADDR),Y
|
||||
PHA
|
||||
LDY #09
|
||||
LDA (DADDR),Y
|
||||
PHA
|
||||
INY
|
||||
LDA (DADDR),Y
|
||||
PHA
|
||||
*
|
||||
GDOIT0 LDY #11
|
||||
GDOIT1 LDA (DADDR),Y
|
||||
STA STRING+3,Y
|
||||
DEY
|
||||
BPL GDOIT1
|
||||
JSR STRING
|
||||
LDA STRING+12
|
||||
STA SADDR
|
||||
LDA STRING+13
|
||||
STA SADDR+1
|
||||
LDY #00
|
||||
GDOIT2 LDA (SADDR),Y
|
||||
BEQ GDOIT3
|
||||
INY
|
||||
BNE GDOIT2
|
||||
GDOIT3 STY STRPTR
|
||||
INY
|
||||
LDA (SADDR),Y
|
||||
CMP #$FF
|
||||
BEQ GDOITX
|
||||
LDA INMAX
|
||||
BNE GDOITX
|
||||
TYA
|
||||
LDY #09
|
||||
CLC
|
||||
ADC (DADDR),Y
|
||||
STA (DADDR),Y
|
||||
INY
|
||||
LDA (DADDR),Y
|
||||
ADC #00
|
||||
STA (DADDR),Y
|
||||
LDY #04
|
||||
LDA (DADDR),Y
|
||||
CLC
|
||||
ADC #08
|
||||
STA (DADDR),Y
|
||||
JMP GDOIT0
|
||||
*
|
||||
GDOITX LDY #10
|
||||
PLA
|
||||
STA (DADDR),Y
|
||||
DEY
|
||||
PLA
|
||||
STA (DADDR),Y
|
||||
LDY #04
|
||||
PLA
|
||||
STA (DADDR),Y
|
||||
RESTORE PLA
|
||||
STA SADDR+1
|
||||
PLA
|
||||
STA SADDR
|
||||
PLA
|
||||
STA DADDR+1
|
||||
PLA
|
||||
STA DADDR
|
||||
RTS
|
||||
;------------------
|
||||
;
|
||||
; TEXT INPUT
|
||||
;
|
||||
TINPUT LDA PARAMS
|
||||
STA GETPARAM+1
|
||||
LDA PARAMS+1
|
||||
STA GETPARAM+2
|
||||
LDA SADDR
|
||||
PHA
|
||||
LDA SADDR+1
|
||||
PHA
|
||||
LDX #09
|
||||
JSR GETPARAM
|
||||
STA SADDR
|
||||
INX
|
||||
JSR GETPARAM
|
||||
STA SADDR+1
|
||||
TINPUT1 LDX #02
|
||||
JSR GETPARAM
|
||||
TAY
|
||||
LDA XBYTE2,Y
|
||||
STA X0
|
||||
LDA #39
|
||||
SEC
|
||||
SBC X0
|
||||
STA WIDTH
|
||||
LDX #04
|
||||
JSR GETPARAM
|
||||
STA Y0
|
||||
LDA #07
|
||||
STA HEIGHT
|
||||
LDA #$A9
|
||||
LDY #$00
|
||||
JSR RTOS
|
||||
LDX PARAMS
|
||||
LDY PARAMS+1
|
||||
JSR GPRINT
|
||||
LDA STRING+5
|
||||
STA CURSX
|
||||
LDA STRING+6
|
||||
STA CURSX+1
|
||||
;---
|
||||
;
|
||||
; Get a key
|
||||
;
|
||||
KEYIN JSR FLSHINIT
|
||||
JSR CURSOR
|
||||
^0 JSR POLEKEY
|
||||
BMI >1
|
||||
DEC $4E
|
||||
BNE <0
|
||||
DEC $4F
|
||||
BPL <0
|
||||
BMI KEYIN
|
||||
;
|
||||
^1 PHA
|
||||
JSR CURSOFF
|
||||
PLA
|
||||
;
|
||||
; Process keypress
|
||||
;
|
||||
CMP #$0D
|
||||
BEQ RETURN
|
||||
CMP #$1B
|
||||
BEQ ESC
|
||||
CMP #$08
|
||||
BEQ BS
|
||||
CMP #$7F
|
||||
BEQ BS
|
||||
CMP #$05
|
||||
BEQ CTRLE
|
||||
CMP #','
|
||||
BEQ KEYIN
|
||||
CMP #'@'
|
||||
BEQ KEYIN
|
||||
;
|
||||
CMP #' '
|
||||
BLT KEYIN
|
||||
CMP #'Z'+1
|
||||
BGE KEYIN
|
||||
*
|
||||
LDY STRPTR
|
||||
CPY #00
|
||||
BNE CHAR2
|
||||
CMP #' '
|
||||
BEQ KEYIN
|
||||
LDY INMAX
|
||||
CPY #15
|
||||
BNE CHAR2
|
||||
CMP #'A'
|
||||
BLT KEYIN
|
||||
CHAR2 LDY STRPTR
|
||||
CPY INMAX
|
||||
BCS KEYIN
|
||||
STA (SADDR),Y
|
||||
INY
|
||||
BNE BS2
|
||||
*
|
||||
BS LDY STRPTR
|
||||
BEQ KEYIN
|
||||
DEY
|
||||
BS2 LDA #00
|
||||
BEQ CTRLE2
|
||||
*
|
||||
CTRLE LDA #00
|
||||
TAY
|
||||
CTRLE2 STA (SADDR),Y
|
||||
STY STRPTR
|
||||
JT1 JMP TINPUT1
|
||||
*
|
||||
RETURN CLC
|
||||
HEX 24
|
||||
*
|
||||
ESC SEC
|
||||
PLA
|
||||
STA SADDR+1
|
||||
PLA
|
||||
STA SADDR
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Plot cursor
|
||||
;
|
||||
CURSOR LDA #4
|
||||
HEX 2C
|
||||
CURSOFF LDA #03
|
||||
STA STRING+3
|
||||
LDA #00
|
||||
STA STRING+10
|
||||
STA STRING+4
|
||||
LDA CURSX
|
||||
STA STRING+5
|
||||
LDA CURSX+1
|
||||
STA STRING+6
|
||||
LDA #CURSTR
|
||||
STA STRING+12
|
||||
LDA /CURSTR
|
||||
STA STRING+13
|
||||
JMP STRING
|
||||
*
|
||||
CURSTR ASC 'II'
|
||||
HEX 00
|
||||
*
|
||||
GETPARAM LDA $8000,X
|
||||
RTS
|
||||
*
|
||||
STRPTR HEX 00
|
||||
CFLAG HEX 00
|
||||
CURSX HEX 0000
|
||||
*
|
||||
USR "O:8E00",ORG
|
||||
END
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:EDIT
|
||||
ICL "S:EDIT1"
|
|
@ -0,0 +1,592 @@
|
|||
TTL "S:EDIT"
|
||||
; S:EDIT1
|
||||
NOG
|
||||
ORG = $5000
|
||||
OBJ = $800
|
||||
;
|
||||
; 02/27/85
|
||||
; 07/31/85 last mod
|
||||
; added support for FONTS
|
||||
;
|
||||
; Editor for use with
|
||||
; The Print Shop Companion Disk
|
||||
;
|
||||
; For FONTS and GRAPHICS
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
DAT EPZ $D0
|
||||
;
|
||||
XCOOR EPZ DAT
|
||||
YCOOR EPZ DAT+1
|
||||
BUFLO EPZ DAT+2
|
||||
BUFHI EPZ DAT+3
|
||||
TBUFLO EPZ DAT+4
|
||||
TBUFHI EPZ DAT+5
|
||||
XMAX EPZ DAT+6
|
||||
YMAX EPZ DAT+7
|
||||
OLDXCOOR EPZ DAT+8
|
||||
OLDYCOOR EPZ DAT+9
|
||||
X1 EPZ DAT+10
|
||||
Y1 EPZ DAT+11
|
||||
X2 EPZ DAT+12
|
||||
Y2 EPZ DAT+13
|
||||
BUTTON EPZ DAT+14
|
||||
CNSTRAIN EPZ DAT+15
|
||||
;
|
||||
PTMP0 EPZ DAT+16
|
||||
PTMP1 EPZ DAT+17
|
||||
;
|
||||
; Temporary z-page for use within
|
||||
; subroutines
|
||||
;
|
||||
PLOTX EPZ $4D
|
||||
FLASHLO EPZ $4E
|
||||
FLASHHI EPZ $4F
|
||||
;
|
||||
TMP0 EPZ $F0
|
||||
TMP1 EPZ $F1
|
||||
TMP2 EPZ $F2
|
||||
TMP3 EPZ $F3
|
||||
TMP4 EPZ $F4
|
||||
TMP5 EPZ $F5
|
||||
HIRES1 EPZ $F6
|
||||
HIRES2 EPZ $F8
|
||||
HIRES3 EPZ $FA
|
||||
;
|
||||
TMPLO EPZ TMP0
|
||||
TMPHI EPZ TMP1
|
||||
;
|
||||
; Absolute references:
|
||||
;
|
||||
EDITBUFF = $7800
|
||||
UNDOBUFF = EDITBUFF+$240
|
||||
TEMPBUFF = UNDOBUFF+$240
|
||||
;
|
||||
XSTACK = $8300
|
||||
YSTACK = $8400
|
||||
;
|
||||
; Subroutine package entry points
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
PRINT = SP
|
||||
CLSCREEN = SP+3
|
||||
WITEBORD = SP+6
|
||||
ESCBACK = SP+9
|
||||
PICDRAW = SP+12
|
||||
;
|
||||
DEVICENW = SP+15
|
||||
DEVICEON = SP+18
|
||||
DEVICEOF = SP+21
|
||||
DEVICERD = SP+24
|
||||
DEVICEST = SP+27
|
||||
SCALING = SP+30
|
||||
;
|
||||
POLEBTN = SP+31
|
||||
POLEKEY = SP+34
|
||||
GETKEY = SP+37
|
||||
SELECT = SP+40
|
||||
;
|
||||
SETTYPE = SP+43
|
||||
GETFILE = SP+46
|
||||
SAVEFILE = SP+49
|
||||
TYPELEN = SP+52
|
||||
FLSTART = SP+53
|
||||
FLLENGTH = SP+55
|
||||
BLOAD = SP+57
|
||||
BSAVE = SP+60
|
||||
DOSCR = SP+63
|
||||
ERROR = SP+66
|
||||
;
|
||||
MUSIC = SP+69
|
||||
FLSHINIT = SP+72
|
||||
JMPVECTS = SP+75
|
||||
LINES = SP+78
|
||||
PARSE = SP+81
|
||||
SHOWAROW = SP+84
|
||||
NUMBER = SP+87
|
||||
BOOP = SP+102
|
||||
;
|
||||
WITE = $FF
|
||||
GRAY = $AA
|
||||
BLAK = $00
|
||||
;
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
;
|
||||
ESC = $1B
|
||||
;
|
||||
; SYSLIB tables
|
||||
;
|
||||
SYSFONT = $8500
|
||||
FLIPPER = $9080
|
||||
YBASELO = $91C0
|
||||
YBASEHI = $9100
|
||||
XBYTEOFF = $9280
|
||||
;
|
||||
FONTDATA = $8500
|
||||
;
|
||||
FONTWITH = FONTDATA
|
||||
FONTHITE = FONTDATA+$3B
|
||||
FONTADRL = FONTDATA+$76
|
||||
FONTADRH = FONTDATA+$B1
|
||||
;
|
||||
WAIT = $FCA8
|
||||
;
|
||||
; Variables:
|
||||
;
|
||||
GRAFXOFF = 0
|
||||
GRAFYOFF = 23
|
||||
;
|
||||
FONTXOFF = 1
|
||||
FONTYOFF = 38
|
||||
;
|
||||
REFMOVER = $4003
|
||||
;
|
||||
FONTW = 48
|
||||
FONTH = 38
|
||||
;
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ OBJ
|
||||
;-----------
|
||||
JMP EDITINIT
|
||||
JMP SHOWBOXS
|
||||
JMP SHOWGR
|
||||
JMP CHKBUFF
|
||||
JMP CLRBUFF
|
||||
JMP ORBUFF
|
||||
JMP BUFFSAVE
|
||||
JMP BASECALC
|
||||
JMP SETPLOTX
|
||||
JMP SETBIT
|
||||
JMP CLRBIT
|
||||
JMP PRINTGR
|
||||
JMP DRAWTEXT
|
||||
JMP DOSHAPE
|
||||
JMP EDITLOOP
|
||||
JMP FONTMODS
|
||||
FONTRX1 HEX 80
|
||||
FONTRY1 HEX 80
|
||||
FONTRY2 HEX 80
|
||||
REFLINES HEX 80
|
||||
JMP RESETBT1
|
||||
;-----------
|
||||
;
|
||||
; Initialize XMAX & YMAX
|
||||
; Center the cursor and update screen
|
||||
;
|
||||
EDITINIT STX XMAX
|
||||
STY YMAX
|
||||
GRCENTER LDA XMAX
|
||||
LSR
|
||||
STA XCOOR
|
||||
DEC XCOOR
|
||||
LDA YMAX
|
||||
LSR
|
||||
STA YCOOR
|
||||
DEC YCOOR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show fill pattern and mirror status
|
||||
;
|
||||
SHOWBOXS LDY #FILLPLOC-1
|
||||
JSR SHOWBOX
|
||||
LDY #MIRRPLOC-1
|
||||
JSR SHOWBOX
|
||||
JSR SHOWFILL
|
||||
JSR SHOWMIRR
|
||||
JMP SHOWLOCK
|
||||
;-----------
|
||||
;
|
||||
; Check EDITBUFF for all zeroes
|
||||
;
|
||||
CHKBUFF LDY #0
|
||||
TYA
|
||||
^0 ORA EDITBUFF,Y
|
||||
ORA EDITBUFF+$100,Y
|
||||
INY
|
||||
BNE <0
|
||||
^1 ORA EDITBUFF+$200,Y
|
||||
INY
|
||||
CPY #60
|
||||
BLT <1
|
||||
TAY
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear EDITBUFF
|
||||
;
|
||||
CLRBUFF LDY #0
|
||||
;
|
||||
; Clear buffer
|
||||
;
|
||||
BUFFCLR LDA BUFFERS,Y
|
||||
STA TMPLO
|
||||
LDA BUFFERS+1,Y
|
||||
STA TMPHI
|
||||
LDY #0
|
||||
TYA
|
||||
LDX #2
|
||||
^0 STA (TMPLO),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMPHI
|
||||
DEX
|
||||
BNE <0
|
||||
^1 STA (TMPLO),Y
|
||||
INY
|
||||
CPY #60
|
||||
BLT <1
|
||||
RTS
|
||||
;
|
||||
BUFFERS ADR EDITBUFF
|
||||
ADR UNDOBUFF
|
||||
ADR TEMPBUFF
|
||||
;-----------
|
||||
;
|
||||
; OR UNDOBUFF into EDITBUFF
|
||||
;
|
||||
ORBUFF LDY #0
|
||||
^0 LDA UNDOBUFF,Y
|
||||
ORA EDITBUFF,Y
|
||||
STA EDITBUFF,Y
|
||||
LDA UNDOBUFF+$100,Y
|
||||
ORA EDITBUFF+$100,Y
|
||||
STA EDITBUFF+$100,Y
|
||||
INY
|
||||
BNE <0
|
||||
^1 LDA UNDOBUFF+$200,Y
|
||||
ORA EDITBUFF+$200,Y
|
||||
STA EDITBUFF+$200,Y
|
||||
INY
|
||||
CPY #60
|
||||
BLT <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Move EDIT buffer to UNDO buffer
|
||||
;
|
||||
BUFFSAVE LDY #0
|
||||
LDX #2
|
||||
;
|
||||
; Move buffer Y->X
|
||||
;
|
||||
BUFFMOVE LDA BUFFERS,Y
|
||||
STA TMP0
|
||||
LDA BUFFERS+1,Y
|
||||
STA TMP1
|
||||
LDA BUFFERS,X
|
||||
STA TMP2
|
||||
LDA BUFFERS+1,X
|
||||
STA TMP3
|
||||
LDX #2
|
||||
LDY #0
|
||||
^0 LDA (TMP0),Y
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <0
|
||||
;
|
||||
^1 LDA (TMP0),Y
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
CPY #60
|
||||
BLT <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Calculate pointer into buffer
|
||||
; 3 entry points:
|
||||
;
|
||||
; BASECLCT=point into TEMPBUFF
|
||||
; BASECLCU=point into UNDOBUFF
|
||||
;
|
||||
; BASECALC=point only EDITBUFF
|
||||
;
|
||||
BASECLCU LDA #UNDOBUFF-EDITBUFF
|
||||
LDX /UNDOBUFF-EDITBUFF
|
||||
BNE >0
|
||||
;
|
||||
BASECLCT LDA #TEMPBUFF-EDITBUFF
|
||||
LDX /TEMPBUFF-EDITBUFF
|
||||
;
|
||||
^0 LDY YCOOR
|
||||
CLC
|
||||
ADC EDYBASEL,Y
|
||||
STA TBUFLO
|
||||
TXA
|
||||
ADC EDYBASEH,Y
|
||||
STA TBUFHI
|
||||
;
|
||||
BASECALC LDY YCOOR
|
||||
LDA EDYBASEL,Y
|
||||
STA BUFLO
|
||||
LDA EDYBASEH,Y
|
||||
STA BUFHI
|
||||
;
|
||||
; Get mask (in A) and offset (in Y)
|
||||
;
|
||||
GETXMASK LDA XCOOR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAY
|
||||
LDA XCOOR
|
||||
AND #7
|
||||
TAX
|
||||
LDA XCOORMSK,X
|
||||
RTS
|
||||
;
|
||||
; X-coor mask
|
||||
;
|
||||
XCOORMSK BYT %10000000
|
||||
BYT %01000000
|
||||
BYT %00100000
|
||||
BYT %00010000
|
||||
BYT %00001000
|
||||
BYT %00000100
|
||||
BYT %00000010
|
||||
BYT %00000001
|
||||
;-----------
|
||||
;
|
||||
; Given XCOOR,YCOOR set
|
||||
; PLOT routine to opposite
|
||||
; of whatever is in this
|
||||
; coordinate.
|
||||
;
|
||||
SETPLOTX JSR BASECALC
|
||||
LDX #PLSET
|
||||
AND (BUFLO),Y
|
||||
BEQ *+4
|
||||
LDX #PLCLR
|
||||
SETPLTX2 STX PLOTX
|
||||
;
|
||||
; Set PLOT routine, given X
|
||||
;
|
||||
PLSET = 0
|
||||
PLCLR = 2
|
||||
PLEOR = 4
|
||||
PLUNDO = 6
|
||||
PLTEMP = 8
|
||||
;
|
||||
SETPLOT LDY SETPLOT2,X
|
||||
LDA SETPLOT2+1,X
|
||||
STY PLOT+1
|
||||
STA PLOT+2
|
||||
RTS
|
||||
;
|
||||
SETPLOT2 ADR SETBIT
|
||||
ADR CLRBIT
|
||||
ADR EORBIT
|
||||
ADR UNDOBIT
|
||||
ADR TEMPBIT
|
||||
;
|
||||
PLOT JMP SETBIT
|
||||
;
|
||||
; If FONT editor, then check
|
||||
; for reference lines.
|
||||
;
|
||||
FONTREF BIT REFLINES
|
||||
BPL >0
|
||||
LDA XCOOR
|
||||
CMP FONTRX1
|
||||
BNE *+5
|
||||
JSR DOFONTX
|
||||
;
|
||||
LDA YCOOR
|
||||
CMP FONTRY1
|
||||
BNE *+5
|
||||
JSR DOFONTY
|
||||
;
|
||||
LDA YCOOR
|
||||
CMP FONTRY2
|
||||
BEQ DOFONTY
|
||||
^0 RTS
|
||||
;
|
||||
DOFONTX ASL
|
||||
ADC #1
|
||||
STA >0+1
|
||||
JSR LINES
|
||||
BYT "V",FONTXOFF
|
||||
^0 BYT GRAY,00,FONTYOFF,3*FONTH
|
||||
BYT 1
|
||||
RTS
|
||||
;
|
||||
DOFONTY STA TMP0
|
||||
ASL
|
||||
ADC TMP0
|
||||
ADC #FONTYOFF+2
|
||||
STA >0+2
|
||||
JSR LINES
|
||||
BYT "H",FONTXOFF
|
||||
^0 BYT GRAY,0,00,2*FONTW
|
||||
BYT 1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Set bit in section and screen
|
||||
;
|
||||
SETBIT JSR BASECALC
|
||||
ORA (BUFLO),Y
|
||||
STA (BUFLO),Y
|
||||
SETBIT2 JMP PLOTON
|
||||
;
|
||||
; Clear bit in section and screen
|
||||
;
|
||||
CLRBIT JSR BASECALC
|
||||
EOR #$FF
|
||||
AND (BUFLO),Y
|
||||
STA (BUFLO),Y
|
||||
CLRBIT2 JMP PLOTOFF
|
||||
;
|
||||
; Invert bit at current location
|
||||
;
|
||||
EORBIT JSR BASECALC
|
||||
STA TMP0
|
||||
EOR (BUFLO),Y
|
||||
STA (BUFLO),Y
|
||||
LDA TMP0
|
||||
BNE RESETBT2
|
||||
;
|
||||
; Restore current location, use
|
||||
; after BRFLASH
|
||||
;
|
||||
RESETBIT JSR RESETBT1
|
||||
JMP FONTREF
|
||||
;
|
||||
RESETBT1 JSR BASECALC
|
||||
RESETBT2 AND (BUFLO),Y
|
||||
BEQ CLRBIT2
|
||||
BNE SETBIT2
|
||||
;-----------
|
||||
;
|
||||
; Move bit TEMPBUFF-->EDITBUFF
|
||||
;
|
||||
TEMPBIT JSR BASECLCT
|
||||
BNE >0
|
||||
;
|
||||
; Move bit UNDOBUFF-->EDITBUFF
|
||||
;
|
||||
UNDOBIT JSR BASECLCU
|
||||
^0 STA TMP0
|
||||
AND (TBUFLO),Y
|
||||
STA TMP1
|
||||
LDA TMP0
|
||||
EOR #$FF
|
||||
AND (BUFLO),Y
|
||||
ORA TMP1
|
||||
STA (BUFLO),Y
|
||||
LDA TMP1
|
||||
JMP RESETBT2
|
||||
;-----------
|
||||
;
|
||||
; Do PLOT routine with mirrors
|
||||
;
|
||||
MRPLOT LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX MRXSAVE
|
||||
STY MRYSAVE
|
||||
JSR PLOT
|
||||
LDA CURRMIRR
|
||||
BEQ MRDOBITR
|
||||
CMP #2
|
||||
BEQ >2
|
||||
CMP #3
|
||||
BEQ >3
|
||||
;
|
||||
; Mirror both axis
|
||||
;
|
||||
^1 JSR >3
|
||||
JSR >2
|
||||
LDA YMAX
|
||||
SEC
|
||||
SBC YCOOR
|
||||
STA YCOOR
|
||||
LDA XMAX
|
||||
SEC
|
||||
SBC XCOOR
|
||||
STA XCOOR
|
||||
JMP MRDOBIT
|
||||
;
|
||||
; Mirror vertical
|
||||
;
|
||||
^2 LDA YMAX
|
||||
SEC
|
||||
SBC YCOOR
|
||||
STA YCOOR
|
||||
JMP MRDOBIT
|
||||
;
|
||||
; Mirror horizontal
|
||||
;
|
||||
^3 LDA XMAX
|
||||
SEC
|
||||
SBC XCOOR
|
||||
STA XCOOR
|
||||
;
|
||||
; Do one bit and restore X,Y
|
||||
;
|
||||
MRDOBIT LDA XCOOR
|
||||
CMP XMAX
|
||||
BGE >0
|
||||
LDA YCOOR
|
||||
CMP YMAX
|
||||
BGE >0
|
||||
JSR PLOT
|
||||
^0 LDX #00
|
||||
MRXSAVE = *-1
|
||||
LDY #00
|
||||
MRYSAVE = *-1
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
MRDOBITR RTS
|
||||
;-----------
|
||||
;
|
||||
; Ybase for EDITBUFF
|
||||
;
|
||||
EDYBASEL HEX 000B16212C37424D58636E79848F9AA5
|
||||
HEX B0BBC6D1DCE7F2FD08131E29343F4A55
|
||||
HEX 606B76818C97A2ADB8C3CED9E4EFFA05
|
||||
HEX 101B2631
|
||||
;
|
||||
EDYBASEH HEX 78787878787878787878787878787878
|
||||
HEX 78787878787878787979797979797979
|
||||
HEX 7979797979797979797979797979797A
|
||||
HEX 7A7A7A7A
|
||||
;-----------
|
||||
;
|
||||
; Font modifications
|
||||
;
|
||||
FONTMODS LDX #FONTXOFF
|
||||
LDY #FONTYOFF
|
||||
STX XOFFSET
|
||||
STY YOFFSET
|
||||
LDA #$20
|
||||
STA PLOT
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:EDIT2"
|
|
@ -0,0 +1,981 @@
|
|||
;
|
||||
; S:EDIT2
|
||||
;
|
||||
; The main editor calls here to
|
||||
; get a key and let the editor
|
||||
; do it's job.
|
||||
;
|
||||
EDITLOOP LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
JSR DEVICEST
|
||||
^0 JSR SETFLASH
|
||||
;
|
||||
^1 LDY #2
|
||||
JOYMOD = *-1
|
||||
JSR DEVICERD
|
||||
BCS >2
|
||||
;
|
||||
STA BUTTON
|
||||
JSR DODEVICE
|
||||
LDA #1
|
||||
BIT BUTTON
|
||||
BMI >3
|
||||
;
|
||||
^2 LDA #0
|
||||
STA CNSTRAIN
|
||||
JSR POLEKEY
|
||||
BMI KEYPRESS
|
||||
LDA #2
|
||||
;
|
||||
^3 STA JOYMOD
|
||||
DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
; Since didn't match one of our
|
||||
; commands, then return calling
|
||||
; program and let it handle this
|
||||
; key.
|
||||
;
|
||||
NOTOURS LDA KEYGOT
|
||||
JMP LOCKOFF
|
||||
;
|
||||
; Process keypress
|
||||
;
|
||||
KEYPRESS STA KEYGOT
|
||||
JSR RESETBIT
|
||||
LDY #$FD
|
||||
^0 INY
|
||||
INY
|
||||
INY
|
||||
LDA COMMANDS,Y
|
||||
BEQ NOTOURS
|
||||
AND #$7F
|
||||
CMP #00
|
||||
KEYGOT = *-1
|
||||
BNE <0
|
||||
;
|
||||
; If a "LOCKstopper", then doit!
|
||||
;
|
||||
CPY #LOCKSTOP-COMMANDS
|
||||
BLT >1
|
||||
JSR LOCKOFF
|
||||
;
|
||||
; If move command, and lockmode
|
||||
; is on, plot!
|
||||
;
|
||||
^1 CPY #MOVECOM?-COMMANDS
|
||||
BGE >1
|
||||
LDA #00
|
||||
LOCKMODE = *-1
|
||||
BPL >1
|
||||
TYA
|
||||
PHA
|
||||
JSR MRPLOT
|
||||
PLA
|
||||
TAY
|
||||
;
|
||||
^1 LDA COMMANDS+1,Y
|
||||
STA >4+1
|
||||
LDA COMMANDS+2,Y
|
||||
STA >4+2
|
||||
;
|
||||
LDA COMMANDS,Y
|
||||
BPL >3
|
||||
;
|
||||
JSR BUFFSAVE
|
||||
;
|
||||
^3 LDX XCOOR
|
||||
LDY YCOOR
|
||||
;
|
||||
^4 JSR $FFFF
|
||||
JMP EDITLOOP
|
||||
;-----------
|
||||
;
|
||||
; Handle input device
|
||||
;
|
||||
; First check to see if it moved
|
||||
;
|
||||
DODEVICE CPX XCOOR
|
||||
BNE >0
|
||||
CPY YCOOR
|
||||
BEQ >3
|
||||
;
|
||||
; Device moved
|
||||
;
|
||||
^0 LDA CNSTRAIN
|
||||
BPL >1
|
||||
;
|
||||
; Figure out which direction
|
||||
; to constrain
|
||||
;
|
||||
LDA #1
|
||||
CPX XCOOR
|
||||
BEQ *+3
|
||||
ASL
|
||||
STA CNSTRAIN
|
||||
;
|
||||
^1 STX >1+1
|
||||
STY >2+1
|
||||
JSR RESETBIT
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
^1 LDX #00
|
||||
^2 LDY #00
|
||||
JSR DEVCONST
|
||||
;
|
||||
; If button down, plot new point
|
||||
; else, just plot cursor.
|
||||
;
|
||||
BIT BUTTON
|
||||
BMI DOBUTTON
|
||||
BPL SETFLASH
|
||||
;
|
||||
; End up here if device didn't move.
|
||||
; If button is not down or if button
|
||||
; was down last time, then exit.
|
||||
;
|
||||
^3 STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
BIT BUTTON
|
||||
BPL DEVRTS
|
||||
BVS DEVRTS
|
||||
;
|
||||
; Handle button press
|
||||
;
|
||||
DOBUTTON BVS >0
|
||||
;
|
||||
; Button down for first time, so
|
||||
; get bit and invert.
|
||||
;
|
||||
LDA LOCKMODE
|
||||
STA CNSTRAIN
|
||||
JSR BUFFSAVE
|
||||
JSR SETPLOTX
|
||||
;
|
||||
; Draw a line from
|
||||
; (OLDXCOOR,OLDYCOOR) to
|
||||
; (XCOOR,YCOOR)
|
||||
;
|
||||
^0 JSR LINE
|
||||
;
|
||||
; Invert current position and
|
||||
; set countdown timer
|
||||
;
|
||||
SETFLASH JSR GRFLASH
|
||||
JSR FLSHINIT
|
||||
;
|
||||
; Show coordinates
|
||||
;
|
||||
LDA XCOOR
|
||||
LDX #4
|
||||
LDY #185
|
||||
JSR NUMBER
|
||||
LDA YCOOR
|
||||
LDX #10
|
||||
LDY #185
|
||||
JMP NUMBER
|
||||
;
|
||||
DEVRTS RTS
|
||||
;
|
||||
; Device input constrain
|
||||
; but only when the constrain
|
||||
; feature is selected.
|
||||
;
|
||||
DEVCONST BIT DEVRTS
|
||||
LDA CNSTRAIN
|
||||
BEQ DEVCLAMP
|
||||
;
|
||||
LSR
|
||||
BCC >0
|
||||
;
|
||||
; Constrain X?
|
||||
;
|
||||
CPX XCOOR
|
||||
BEQ DEVCLMP2
|
||||
LDX XCOOR
|
||||
CLV
|
||||
BVC DEVCLMP2
|
||||
;
|
||||
; Constrain Y?
|
||||
;
|
||||
^0 CPY YCOOR
|
||||
BEQ DEVCLMP2
|
||||
LDY YCOOR
|
||||
CLV
|
||||
BVC DEVCLMP2
|
||||
;
|
||||
; Device input clamping
|
||||
;
|
||||
DEVCLAMP BIT DEVRTS
|
||||
DEVCLMP2 CPX XMAX
|
||||
BLT >0
|
||||
CLV
|
||||
LDX XMAX
|
||||
DEX
|
||||
^0 CPY YMAX
|
||||
BLT >1
|
||||
CLV
|
||||
LDY YMAX
|
||||
DEY
|
||||
^1 STX XCOOR
|
||||
STY YCOOR
|
||||
BVS DEVRTS
|
||||
JMP DEVICEST
|
||||
;-----------
|
||||
;
|
||||
; Commands followed by their
|
||||
; locations in memory
|
||||
;
|
||||
COMMANDS .DA #'I',MOVEUP
|
||||
.DA #$0B,MOVEUP
|
||||
.DA #'M',MOVEDOWN
|
||||
.DA #$0A,MOVEDOWN
|
||||
.DA #'J',MOVELEFT
|
||||
.DA #$08,MOVELEFT
|
||||
.DA #'K',MOVERITE
|
||||
.DA #$15,MOVERITE
|
||||
MOVECOM?:
|
||||
.DA #'L'-$40,TOGGLOCK
|
||||
.DA #"D",GRSET
|
||||
.DA #"E",GRCLEAR
|
||||
LOCKSTOP:
|
||||
;
|
||||
.DA #'W',SCRLUP
|
||||
.DA #'Z',SCRLDOWN
|
||||
.DA #'A',SCRLLEFT
|
||||
.DA #'S',SCRLRITE
|
||||
;
|
||||
.DA #"1",INSEROW
|
||||
.DA #"2",DELEROW
|
||||
.DA #"3",INSECOLU
|
||||
.DA #"4",DELECOLU
|
||||
;
|
||||
.DA #'H',FLIPHORI
|
||||
.DA #'V',FLIPVERT
|
||||
.DA #'N',GRINVERS
|
||||
.DA #"F",FLODFILL
|
||||
.DA #'P',NEXTPATT
|
||||
.DA #'X',NEXTMIRR
|
||||
;
|
||||
.DA #'U',UNDO
|
||||
;
|
||||
BRK
|
||||
;-----------
|
||||
;
|
||||
; Swap UNDO buffer with EDIT buffer
|
||||
;
|
||||
UNDO LDY #EDITBUFF
|
||||
LDA /EDITBUFF
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDY #UNDOBUFF
|
||||
LDA /UNDOBUFF
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
LDY #0
|
||||
LDX #0
|
||||
;
|
||||
^0 LDA (TMP0),Y
|
||||
PHA
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
PLA
|
||||
STA (TMP2),Y
|
||||
CPX #2
|
||||
BNE >1
|
||||
CPY #59
|
||||
BEQ >2
|
||||
^1 INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
INX
|
||||
BNE <0
|
||||
;
|
||||
^2 JMP SHOWGR
|
||||
;-----------
|
||||
;
|
||||
; Keyboard cursor move
|
||||
;
|
||||
MOVEUP DEY
|
||||
BPL MOVEDONE
|
||||
LDY YMAX
|
||||
DEY
|
||||
BNE MOVEDONE
|
||||
;
|
||||
MOVEDOWN INY
|
||||
CPY YMAX
|
||||
BLT MOVEDONE
|
||||
LDY #0
|
||||
;
|
||||
; Set new coordinates
|
||||
;
|
||||
MOVEDONE STX XCOOR
|
||||
STY YCOOR
|
||||
RTS
|
||||
;
|
||||
MOVELEFT DEX
|
||||
BPL MOVEDONE
|
||||
LDX XMAX
|
||||
DEX
|
||||
BNE MOVEDONE
|
||||
;
|
||||
MOVERITE INX
|
||||
CPX XMAX
|
||||
BLT MOVEDONE
|
||||
LDX #0
|
||||
BEQ MOVEDONE
|
||||
;-----------
|
||||
;
|
||||
; Delete row
|
||||
;
|
||||
DELEROW LDA YCOOR
|
||||
STA TMP5
|
||||
JSR INITBOT2
|
||||
LDY #11
|
||||
BNE >0
|
||||
;
|
||||
; Insert row
|
||||
;
|
||||
INSEROW LDA YCOOR
|
||||
STA TMP5
|
||||
JSR INITBOTT
|
||||
LDY #$F5
|
||||
;
|
||||
^0 LDA YMAX
|
||||
SEC
|
||||
SBC TMP5
|
||||
TAX
|
||||
DEX
|
||||
JSR MOVEALL
|
||||
;
|
||||
LDY #10
|
||||
LDA #0
|
||||
^1 STA (BUFLO),Y
|
||||
DEY
|
||||
BPL <1
|
||||
LDA TMP5
|
||||
STA YCOOR
|
||||
JMP SHOWGR
|
||||
;
|
||||
; Scroll down
|
||||
;
|
||||
SCRLDOWN LDA YCOOR
|
||||
PHA
|
||||
JSR INITBOTT
|
||||
LDY #$F5
|
||||
JSR MOVEALL
|
||||
PLA
|
||||
STA YCOOR
|
||||
BPL SCRLDONE
|
||||
;
|
||||
; Scroll up
|
||||
;
|
||||
SCRLUP JSR INITTOP
|
||||
;
|
||||
LDY #11
|
||||
JSR MOVEALL
|
||||
;
|
||||
; Restore line, redraw
|
||||
;
|
||||
SCRLDONE LDY #10
|
||||
^0 LDA TEMPBUFF,Y
|
||||
STA (BUFLO),Y
|
||||
DEY
|
||||
BPL <0
|
||||
JMP SHOWGR
|
||||
;
|
||||
; Init pointer to bottom
|
||||
;
|
||||
INITBOTT LDY YMAX
|
||||
DEY
|
||||
STY YCOOR
|
||||
INITBOT2 JSR BASECALC
|
||||
JMP SCRLSAVE
|
||||
;
|
||||
; Init pointer to top
|
||||
;
|
||||
INITTOP LDY #EDITBUFF
|
||||
LDA /EDITBUFF
|
||||
STY BUFLO
|
||||
STA BUFHI
|
||||
STY TMPLO
|
||||
STA TMPHI
|
||||
;
|
||||
; Bottom or Top line save for
|
||||
; scroll routines
|
||||
;
|
||||
SCRLSAVE LDY #10
|
||||
^0 LDA (BUFLO),Y
|
||||
STA TEMPBUFF,Y
|
||||
DEY
|
||||
BPL <0
|
||||
LDX YMAX
|
||||
DEX
|
||||
RTS
|
||||
;
|
||||
; Given A,Y = add, X=# of lines
|
||||
;
|
||||
; move from BUF->TMP
|
||||
;
|
||||
MOVEALL STY >1+1
|
||||
TXA
|
||||
BEQ >4
|
||||
LDA #$FF
|
||||
CPY #$F5
|
||||
BEQ >0
|
||||
LDA #$00
|
||||
^0 STA >2+1
|
||||
;
|
||||
^0 LDA BUFLO
|
||||
STA TMPLO
|
||||
CLC
|
||||
^1 ADC #00
|
||||
STA BUFLO
|
||||
LDA BUFHI
|
||||
STA TMPHI
|
||||
^2 ADC #00
|
||||
STA BUFHI
|
||||
LDY #10
|
||||
^3 LDA (BUFLO),Y
|
||||
STA (TMPLO),Y
|
||||
DEY
|
||||
BPL <3
|
||||
DEX
|
||||
BNE <0
|
||||
^4 RTS
|
||||
;
|
||||
; Insert Column
|
||||
;
|
||||
INSECOLU LDY #>0
|
||||
LDA />0
|
||||
JMP DOLINES
|
||||
;
|
||||
^0 LDA TEMPBUFF,X
|
||||
STA TEMPBUFF+1,X
|
||||
DEX
|
||||
BMI >1
|
||||
CPX XCOOR
|
||||
BGE <0
|
||||
^1 LDA #0
|
||||
INX
|
||||
STA TEMPBUFF,X
|
||||
RTS
|
||||
;
|
||||
; Delete Column
|
||||
;
|
||||
DELECOLU LDY #>0
|
||||
LDA />0
|
||||
JMP DOLINES
|
||||
;
|
||||
^0 LDY XCOOR
|
||||
^1 LDA TEMPBUFF+1,Y
|
||||
STA TEMPBUFF,Y
|
||||
INY
|
||||
DEX
|
||||
BMI >2
|
||||
CPX XCOOR
|
||||
BGE <1
|
||||
^2 LDA #0
|
||||
STA TEMPBUFF,Y
|
||||
RTS
|
||||
;
|
||||
; Scroll left
|
||||
;
|
||||
SCRLLEFT LDY #>0
|
||||
LDA />0
|
||||
JMP DOLINES
|
||||
;
|
||||
^0 LDA TEMPBUFF
|
||||
PHA
|
||||
^1 LDA TEMPBUFF+1,Y
|
||||
STA TEMPBUFF,Y
|
||||
INY
|
||||
DEX
|
||||
BPL <1
|
||||
PLA
|
||||
STA TEMPBUFF,Y
|
||||
RTS
|
||||
;
|
||||
; Scroll right
|
||||
;
|
||||
SCRLRITE LDY #>0
|
||||
LDA />0
|
||||
JMP DOLINES
|
||||
;
|
||||
^0 LDA TEMPBUFF+1,X
|
||||
PHA
|
||||
^1 LDA TEMPBUFF,X
|
||||
STA TEMPBUFF+1,X
|
||||
DEX
|
||||
BPL <1
|
||||
PLA
|
||||
STA TEMPBUFF
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Flip vertical
|
||||
;
|
||||
FLIPVERT LDA YCOOR
|
||||
PHA
|
||||
JSR INITTOP
|
||||
JSR INITBOTT
|
||||
TXA
|
||||
LSR
|
||||
TAX
|
||||
;
|
||||
^0 LDY #10
|
||||
^1 LDA (TMPLO),Y
|
||||
PHA
|
||||
LDA (BUFLO),Y
|
||||
STA (TMPLO),Y
|
||||
PLA
|
||||
STA (BUFLO),Y
|
||||
DEY
|
||||
BPL <1
|
||||
;
|
||||
LDA TMPLO
|
||||
CLC
|
||||
ADC #11
|
||||
STA TMPLO
|
||||
BCC >2
|
||||
INC TMPHI
|
||||
^2 LDA BUFLO
|
||||
SEC
|
||||
SBC #11
|
||||
STA BUFLO
|
||||
BCS >3
|
||||
DEC BUFHI
|
||||
^3 DEX
|
||||
BPL <0
|
||||
PLA
|
||||
STA YCOOR
|
||||
JMP SHOWGR
|
||||
;
|
||||
; Flip horizontal
|
||||
;
|
||||
FLIPHORI LDY #>0
|
||||
LDA />0
|
||||
JMP DOLINES
|
||||
;
|
||||
^0 INX
|
||||
^1 LDA TEMPBUFF,X
|
||||
PHA
|
||||
LDA TEMPBUFF,Y
|
||||
STA TEMPBUFF,X
|
||||
PLA
|
||||
STA TEMPBUFF,Y
|
||||
DEX
|
||||
STX >2+1
|
||||
INY
|
||||
^2 CPY #00
|
||||
BLT <1
|
||||
RTS
|
||||
;
|
||||
; Invert buffer
|
||||
;
|
||||
GRINVERS LDY #>0
|
||||
LDA />0
|
||||
JMP DOLINES
|
||||
;
|
||||
^0 INX
|
||||
^1 LDA TEMPBUFF,X
|
||||
EOR #1
|
||||
STA TEMPBUFF,X
|
||||
DEX
|
||||
BPL <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; General purpose line mod routine
|
||||
;
|
||||
DOLINES STY DOLINESB+1
|
||||
STA DOLINESB+2
|
||||
LDY #EDITBUFF
|
||||
LDA /EDITBUFF
|
||||
STY BUFLO
|
||||
STA BUFHI
|
||||
LDA YMAX
|
||||
DOLINELP PHA
|
||||
LDX #0
|
||||
STX TMP0
|
||||
;
|
||||
^1 LDY TMP0
|
||||
INC TMP0
|
||||
LDA (BUFLO),Y
|
||||
STA TMP1
|
||||
LDY #8
|
||||
;
|
||||
^2 DEY
|
||||
BMI <1
|
||||
ASL TMP1
|
||||
ROL
|
||||
STA TEMPBUFF,X
|
||||
INX
|
||||
CPX XMAX
|
||||
BLT <2
|
||||
;
|
||||
DEX
|
||||
DEX
|
||||
LDY #0
|
||||
DOLINESB JSR $FFFF
|
||||
;
|
||||
LDX #0
|
||||
STX TMP0
|
||||
;
|
||||
^1 LDY #8
|
||||
;
|
||||
^2 DEY
|
||||
BPL >3
|
||||
LDY TMP0
|
||||
STA (BUFLO),Y
|
||||
INC TMP0
|
||||
BNE <1
|
||||
;
|
||||
^3 ROR TEMPBUFF,X
|
||||
ROL
|
||||
INX
|
||||
CPX XMAX
|
||||
BLT <2
|
||||
;
|
||||
^4 DEY
|
||||
BMI >5
|
||||
ASL
|
||||
BPL <4
|
||||
;
|
||||
^5 LDY TMP0
|
||||
STA (BUFLO),Y
|
||||
;
|
||||
LDA BUFLO
|
||||
CLC
|
||||
ADC #11
|
||||
STA BUFLO
|
||||
BCC >6
|
||||
INC BUFHI
|
||||
^6 PLA
|
||||
SEC
|
||||
SBC #1
|
||||
BNE DOLINELP
|
||||
JMP SHOWGR
|
||||
;-----------
|
||||
;
|
||||
; Set bit when "D" is pressed
|
||||
;
|
||||
GRSET LDX #PLSET
|
||||
LDA #$16
|
||||
BNE >0
|
||||
;
|
||||
; Clear bit when "E" is pressed
|
||||
;
|
||||
GRCLEAR LDX #PLCLR
|
||||
LDA #$18
|
||||
;
|
||||
^0 PHA
|
||||
JSR SETPLOT
|
||||
JSR MRPLOT
|
||||
PLA
|
||||
TAY
|
||||
;
|
||||
; Click the speaker
|
||||
;
|
||||
^0 LDX #7
|
||||
^1 LDA $C030
|
||||
TYA
|
||||
JSR WAIT
|
||||
DEX
|
||||
BNE <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Here is the nifty flood-fill
|
||||
; routine. (Same as in Dazzle Draw)
|
||||
;
|
||||
FLZ EPZ $80
|
||||
;
|
||||
FLTMP0 EPZ FLZ
|
||||
FLINVERT EPZ FLZ+1
|
||||
FLXMIN EPZ FLZ+2
|
||||
FLXMAX EPZ FLZ+3
|
||||
FLMASK EPZ FLZ+4
|
||||
FLSTACK1 EPZ FLZ+5
|
||||
FLSTACK2 EPZ FLZ+6
|
||||
;
|
||||
FLODFILL JSR SAVECOOR
|
||||
LDY #4
|
||||
JSR BUFFCLR
|
||||
LDA #0
|
||||
STA FLSTACK1
|
||||
STA FLSTACK2
|
||||
STA FLINVERT
|
||||
JSR FLODPUSH
|
||||
JSR FLGETBIT
|
||||
STA FLINVERT
|
||||
;
|
||||
; Main recursive routine:
|
||||
;
|
||||
FLODMAIN JSR FLODPULL
|
||||
;
|
||||
; If we've already been here,
|
||||
; then don't bother checking
|
||||
;
|
||||
JSR FLGETBIT
|
||||
LDA FLMASK
|
||||
AND (TBUFLO),Y
|
||||
BNE FLODRDON
|
||||
;
|
||||
; Fill left
|
||||
;
|
||||
LDA XCOOR
|
||||
PHA
|
||||
^0 DEC XCOOR
|
||||
BMI >1
|
||||
JSR FLODCHEK
|
||||
BEQ <0
|
||||
;
|
||||
; Fill right
|
||||
;
|
||||
^1 LDX XCOOR
|
||||
INX
|
||||
STX FLXMIN
|
||||
PLA
|
||||
STA XCOOR
|
||||
;
|
||||
^2 JSR FLODCHEK
|
||||
BNE >3
|
||||
INC XCOOR
|
||||
LDA XCOOR
|
||||
CMP XMAX
|
||||
BLT <2
|
||||
;
|
||||
; Now scan above and below
|
||||
;
|
||||
^3 LDA XCOOR
|
||||
STA FLXMAX
|
||||
;
|
||||
INC YCOOR
|
||||
JSR FLODSCAN
|
||||
DEC YCOOR
|
||||
DEC YCOOR
|
||||
JSR FLODSCAN
|
||||
;
|
||||
; Is stack empty?
|
||||
;
|
||||
FLODRDON LDA FLSTACK1
|
||||
CMP FLSTACK2
|
||||
BNE FLODMAIN
|
||||
JSR DOFONTRF
|
||||
JMP RESTCOOR
|
||||
;
|
||||
; Scan a line for new runs
|
||||
;
|
||||
FLODSCAN LDA YCOOR
|
||||
CMP YMAX
|
||||
BGE >2
|
||||
LDA FLXMAX
|
||||
STA XCOOR
|
||||
;
|
||||
^0 JSR FLDECGET
|
||||
BNE <0
|
||||
LDA FLMASK
|
||||
AND (TBUFLO),Y
|
||||
BNE >1
|
||||
JSR FLODPUSH
|
||||
;
|
||||
^1 JSR FLDECGET
|
||||
BEQ <1
|
||||
BNE <0
|
||||
;
|
||||
^2 RTS
|
||||
;
|
||||
FLODCHEK JSR FLGETBIT
|
||||
BNE >9
|
||||
;
|
||||
; Get bit from pattern
|
||||
;
|
||||
LDA YCOOR
|
||||
AND #7
|
||||
STA FLTMP0
|
||||
LDA CURRPATT
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC FLTMP0
|
||||
TAX
|
||||
LDA FILLPATT,X
|
||||
AND FLMASK
|
||||
STA FLTMP0
|
||||
;
|
||||
; Set bit in temp buffer
|
||||
;
|
||||
LDA FLMASK
|
||||
ORA (TBUFLO),Y
|
||||
STA (TBUFLO),Y
|
||||
;
|
||||
; Set bit in edit buffer
|
||||
;
|
||||
LDA FLMASK
|
||||
EOR #$FF
|
||||
AND (BUFLO),Y
|
||||
;
|
||||
ORA FLTMP0
|
||||
STA (BUFLO),Y
|
||||
LDA FLMASK
|
||||
JSR RESETBT2
|
||||
LDA #0
|
||||
^9 RTS
|
||||
;
|
||||
; Push current point on stack
|
||||
;
|
||||
FLODPUSH LDY FLSTACK1
|
||||
LDA XCOOR
|
||||
STA XSTACK,Y
|
||||
LDA YCOOR
|
||||
STA YSTACK,Y
|
||||
INC FLSTACK1
|
||||
RTS
|
||||
;
|
||||
; Pull next point from stack
|
||||
;
|
||||
FLODPULL LDY FLSTACK2
|
||||
LDA XSTACK,Y
|
||||
STA XCOOR
|
||||
LDA YSTACK,Y
|
||||
STA YCOOR
|
||||
INC FLSTACK2
|
||||
RTS
|
||||
;
|
||||
; Decrement X, check for min
|
||||
;
|
||||
FLDECGET LDA XCOOR
|
||||
CMP FLXMIN
|
||||
BNE >0
|
||||
PLA
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
^0 DEC XCOOR
|
||||
;
|
||||
; Check bit
|
||||
;
|
||||
FLGETBIT JSR BASECLCT
|
||||
STA FLMASK
|
||||
AND (BUFLO),Y
|
||||
PHP
|
||||
PLA
|
||||
EOR FLINVERT
|
||||
AND #2
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
SHOWXLOC = 37
|
||||
FILLPLOC = 39
|
||||
;
|
||||
; Increment pattern pointer
|
||||
;
|
||||
NEXTPATT INC CURRPATT
|
||||
SHOWFILL LDA #01
|
||||
CURRPATT = *-1
|
||||
CMP #FILLPATS/8
|
||||
BNE >0
|
||||
LDA #0
|
||||
^0 STA CURRPATT
|
||||
LDY #FILLPLOC
|
||||
STY SHOWYLOC
|
||||
LDY #FILLPATT
|
||||
LDX /FILLPATT
|
||||
JMP SHOWPATT
|
||||
;
|
||||
; Fill patterns:
|
||||
;
|
||||
FILLPATT HEX FFFFFFFFFFFFFFFF
|
||||
HEX 55AA55AA55AA55AA
|
||||
HEX 8822882288228822
|
||||
HEX 8800220088002200
|
||||
HEX 8000080080000800
|
||||
HEX 0000000000000000
|
||||
HEX 8010022001084004
|
||||
;
|
||||
HEX FF808080FF080808
|
||||
HEX 8040200002040800
|
||||
HEX 8244384482010101
|
||||
HEX F87422478F172271
|
||||
HEX FF000000FF000000
|
||||
HEX 8888888888888888
|
||||
HEX 081C22C180010204
|
||||
HEX 40A00000040A0000
|
||||
HEX 8080413E080814E3
|
||||
HEX 0102040810204080
|
||||
FILLPATS = *-FILLPATT
|
||||
;
|
||||
; Increment mirror pointer
|
||||
;
|
||||
MIRRPLOC = 50
|
||||
;
|
||||
NEXTMIRR INC CURRMIRR
|
||||
SHOWMIRR LDA #00
|
||||
CURRMIRR = *-1
|
||||
CMP #4
|
||||
BNE >0
|
||||
LDA #0
|
||||
^0 STA CURRMIRR
|
||||
LDY #MIRRPLOC
|
||||
STY SHOWYLOC
|
||||
LDY #MIRRPATT
|
||||
LDX /MIRRPATT
|
||||
JMP SHOWPATT
|
||||
;
|
||||
; Mirror patterns:
|
||||
;
|
||||
MIRRPATT HEX FFFFFFFFFFFFFFFF
|
||||
HEX E7E7E70000E7E7E7
|
||||
HEX FFFFFF0000FFFFFF
|
||||
HEX E7E7E7E7E7E7E7E7
|
||||
;-----------
|
||||
;
|
||||
; Turn off lock mode
|
||||
;
|
||||
LOCKOFF STX >0+1
|
||||
STY >1+1
|
||||
STA >2+1
|
||||
LDA LOCKMODE
|
||||
BPL >2
|
||||
;
|
||||
; Toggle lock mode
|
||||
;
|
||||
TOGGLOCK LDA LOCKMODE
|
||||
EOR #$80
|
||||
STA LOCKMODE
|
||||
BPL SHOWLOCK
|
||||
;
|
||||
; If we are turning on lock mode,
|
||||
; then save graphic in UNDOBUFF
|
||||
; and use opposite color of
|
||||
; current X,Y.
|
||||
;
|
||||
JSR BUFFSAVE
|
||||
JSR SETPLOTX
|
||||
;
|
||||
; Show lock mode
|
||||
;
|
||||
SHOWLOCK JSR PRINT
|
||||
BYT RTOSBLAK,39,9,1,9,0
|
||||
LDA LOCKMODE
|
||||
BPL >0
|
||||
JSR PICDRAW
|
||||
BYT 39,9,1,9
|
||||
HEX 1C222222C17777777F
|
||||
^0 LDX #00
|
||||
^1 LDY #00
|
||||
^2 LDA #00
|
||||
^3 RTS
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:EDIT3"
|
|
@ -0,0 +1,332 @@
|
|||
;
|
||||
; S:EDIT3
|
||||
;
|
||||
; Low-level routines that draw to
|
||||
; the screen.
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Plot ON,OFF, FLASH
|
||||
;
|
||||
PLOTON JSR PLOTINIT
|
||||
EOR #$7F
|
||||
STA PTMP0
|
||||
AND (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
LDA PTMP0
|
||||
AND (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
LDA PTMP0
|
||||
AND (HIRES3),Y
|
||||
STA (HIRES3),Y
|
||||
TXA
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 INY
|
||||
EOR #$7F
|
||||
TAX
|
||||
AND (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
TXA
|
||||
AND (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
TXA
|
||||
AND (HIRES3),Y
|
||||
STA (HIRES3),Y
|
||||
RTS
|
||||
;
|
||||
PLOTOFF JSR PLOTINIT
|
||||
ORA (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
LDA PTMP0
|
||||
ORA (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
LDA PTMP0
|
||||
ORA (HIRES3),Y
|
||||
STA (HIRES3),Y
|
||||
TXA
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 INY
|
||||
ORA (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
TXA
|
||||
ORA (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
TXA
|
||||
ORA (HIRES3),Y
|
||||
STA (HIRES3),Y
|
||||
RTS
|
||||
;
|
||||
GRFLASH JSR PLOTINIT
|
||||
EOR (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
INY
|
||||
TXA
|
||||
EOR (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Redraw entire area, quickly
|
||||
;
|
||||
; To optimize this routine for speed,
|
||||
; make sure that the main loop
|
||||
; doesn't cross a page boundard! It
|
||||
; will slow it down.
|
||||
;
|
||||
BYTE EPZ TMP0
|
||||
WIDTH EPZ TMP1
|
||||
BITS8 EPZ TMP2
|
||||
MASK EPZ TMP3
|
||||
;
|
||||
SHOWGR JSR SAVECOOR
|
||||
LDY #EDITBUFF
|
||||
LDA /EDITBUFF
|
||||
STY BUFLO
|
||||
STA BUFHI
|
||||
LDY #0
|
||||
SHOWGR1 STY YCOOR
|
||||
;
|
||||
JSR PLOTINIT
|
||||
;
|
||||
LDY #1
|
||||
STY BITS8
|
||||
;
|
||||
LDY BUFLO
|
||||
LDA BUFHI
|
||||
STY SHOWGRMD+1
|
||||
STA SHOWGRMD+2
|
||||
LDX XMAX
|
||||
STX WIDTH
|
||||
LDX #7
|
||||
LDY XOFFSET
|
||||
;
|
||||
; X-loop
|
||||
;
|
||||
SHOWGR2 DEC BITS8
|
||||
BNE >1
|
||||
STA >0+1
|
||||
LDA #8
|
||||
STA BITS8
|
||||
SHOWGRMD LDA EDITBUFF
|
||||
EOR #$FF
|
||||
STA BYTE
|
||||
INC SHOWGRMD+1
|
||||
BNE >0
|
||||
INC SHOWGRMD+2
|
||||
^0 LDA #00
|
||||
;
|
||||
^1 ASL BYTE
|
||||
PHP
|
||||
ROR
|
||||
DEX
|
||||
BNE >2
|
||||
LSR
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES2),Y
|
||||
STA (HIRES3),Y
|
||||
LDX #7
|
||||
INY
|
||||
^2 PLP
|
||||
ROR
|
||||
DEX
|
||||
BNE >3
|
||||
LSR
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES2),Y
|
||||
STA (HIRES3),Y
|
||||
LDX #7
|
||||
INY
|
||||
^3 DEC WIDTH
|
||||
BNE SHOWGR2
|
||||
;
|
||||
STA BYTE
|
||||
LDA GRDRWMSK-1,X
|
||||
STA MASK
|
||||
^4 LSR BYTE
|
||||
DEX
|
||||
BPL <4
|
||||
LDA (HIRES1),Y
|
||||
AND MASK
|
||||
ORA BYTE
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES2),Y
|
||||
STA (HIRES3),Y
|
||||
;
|
||||
LDA BUFLO
|
||||
CLC
|
||||
ADC #11
|
||||
STA BUFLO
|
||||
BCC >5
|
||||
INC BUFHI
|
||||
;
|
||||
^5 LDY YCOOR
|
||||
INY
|
||||
CPY YMAX
|
||||
BGE >6
|
||||
JMP SHOWGR1
|
||||
;
|
||||
^6 JSR DOFONTRF
|
||||
JMP RESTCOOR
|
||||
;
|
||||
GRDRWMSK HEX 406070787C7E7F
|
||||
;-----------
|
||||
;
|
||||
; Display the Font reference lines
|
||||
;
|
||||
DOFONTRF LDA PLOT
|
||||
CMP #$4C
|
||||
BEQ >0
|
||||
BIT REFLINES
|
||||
BPL >0
|
||||
LDA FONTRX1
|
||||
BMI *+5
|
||||
JSR DOFONTX
|
||||
LDA FONTRY1
|
||||
BMI *+5
|
||||
JSR DOFONTY
|
||||
LDA FONTRY2
|
||||
BMI *+5
|
||||
JSR DOFONTY
|
||||
^0 RTS
|
||||
;-----------
|
||||
;
|
||||
; Init plot routine
|
||||
;
|
||||
; Multiply Y by 3
|
||||
;
|
||||
PLOTINIT LDA YCOOR
|
||||
ASL
|
||||
ADC YCOOR
|
||||
ADC #GRAFYOFF
|
||||
YOFFSET = *-1
|
||||
TAX
|
||||
LDA YBASELO,X
|
||||
STA HIRES1
|
||||
LDA YBASEHI,X
|
||||
STA HIRES1+1
|
||||
LDA YBASELO+1,X
|
||||
STA HIRES2
|
||||
LDA YBASEHI+1,X
|
||||
STA HIRES2+1
|
||||
LDA YBASELO+2,X
|
||||
STA HIRES3
|
||||
LDA YBASEHI+2,X
|
||||
STA HIRES3+1
|
||||
;
|
||||
; Get bit pattern
|
||||
;
|
||||
LDX XCOOR
|
||||
LDY XLOOK,X
|
||||
LDA XDATA,Y
|
||||
STA PTMP0
|
||||
LDA XDATA+1,Y
|
||||
STA PTMP1
|
||||
;
|
||||
; Get X byte offset
|
||||
;
|
||||
LDA XBYTEOFF,X
|
||||
ADC #GRAFXOFF
|
||||
XOFFSET = *-1
|
||||
TAY
|
||||
;
|
||||
LDA PTMP0
|
||||
LDX PTMP1
|
||||
RTS
|
||||
;
|
||||
; X lookup table
|
||||
;
|
||||
XLOOK HEX 00020406080A0C00
|
||||
HEX 020406080A0C0002
|
||||
HEX 0406080A0C000204
|
||||
HEX 06080A0C00020406
|
||||
HEX 080A0C0002040608
|
||||
HEX 0A0C00020406080A
|
||||
HEX 0C00020406080A0C
|
||||
HEX 00020406080A0C00
|
||||
HEX 020406080A0C0002
|
||||
HEX 0406080A0C000204
|
||||
HEX 06080A0C00020406
|
||||
;
|
||||
XDATA HEX 0300
|
||||
HEX 0C00
|
||||
HEX 3000
|
||||
HEX 4001
|
||||
HEX 0600
|
||||
HEX 1800
|
||||
HEX 6000
|
||||
;
|
||||
; Display current pattern on screen
|
||||
;
|
||||
SHOWPATT ASL
|
||||
ASL
|
||||
ASL
|
||||
STY TMP0
|
||||
ADC TMP0
|
||||
STA PATTADR+1
|
||||
BCC *+3
|
||||
INX
|
||||
STX PATTADR+2
|
||||
;
|
||||
LDA #0
|
||||
STA TMP0
|
||||
LDA #8
|
||||
STA TMP1
|
||||
LDX #00
|
||||
SHOWYLOC = *-1
|
||||
;
|
||||
^0 LDA YBASELO,X
|
||||
STA HIRES1
|
||||
LDA YBASEHI,X
|
||||
STA HIRES1+1
|
||||
;
|
||||
LDY TMP0
|
||||
INC TMP0
|
||||
PATTADR LDA FILLPATT,Y
|
||||
EOR #$FF
|
||||
PHA
|
||||
ASL
|
||||
PHP
|
||||
LDY #SHOWXLOC
|
||||
LDA (HIRES1),Y
|
||||
ASL
|
||||
ASL
|
||||
PLP
|
||||
ROR
|
||||
LSR
|
||||
STA (HIRES1),Y
|
||||
PLA
|
||||
AND #$7F
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
LDY #SHOWXLOC+1
|
||||
STA (HIRES1),Y
|
||||
INX
|
||||
DEC TMP1
|
||||
BNE <0
|
||||
RTS
|
||||
;
|
||||
; Box routine for border around
|
||||
; the current pattern and mirror
|
||||
;
|
||||
SHOWBOX STY >0+1
|
||||
JSR PICDRAW
|
||||
^0 BYT SHOWXLOC,0,3,10
|
||||
HEX 707F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 307F03
|
||||
HEX 707F03
|
||||
RTS
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:EDIT4"
|
|
@ -0,0 +1,998 @@
|
|||
;
|
||||
; S:EDIT4
|
||||
;
|
||||
; Miscellaneous junk
|
||||
;
|
||||
; Save coordinates
|
||||
;
|
||||
SAVECOOR LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX RESTCOOR+1
|
||||
STY RESTCOOR+3
|
||||
RTS
|
||||
;
|
||||
; Restore coordinates
|
||||
;
|
||||
RESTCOOR LDX #00
|
||||
LDY #00
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Special shape routine
|
||||
;
|
||||
; X=0:draw line
|
||||
; 2:draw box (rectangle)
|
||||
; 4:draw oval (elipse)
|
||||
; 6:move reference lines
|
||||
;
|
||||
; The initial corner of the shape
|
||||
; is XCOOR,YCOOR which is stored
|
||||
; in X1,Y1. Then XCOOR,YCOOR is
|
||||
; "rubber-banded" around to form
|
||||
; a rectangle in which the shape
|
||||
; is drawn. This second coordinate
|
||||
; is X2,Y2. (XCOOR,YCOOR)
|
||||
;
|
||||
^9 ADR DRAWLINE
|
||||
ADR DRAWBOX
|
||||
ADR DRAWOVAL
|
||||
ADR REFMOVER
|
||||
;
|
||||
DOSHAPE LDA <9+0,X
|
||||
STA SHAPEMOD+1
|
||||
LDA <9+1,X
|
||||
STA SHAPEMOD+2
|
||||
;
|
||||
BCS >0
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX X1
|
||||
STY Y1
|
||||
;
|
||||
; Save graphic in TEMPBUFF
|
||||
; for later reference
|
||||
;
|
||||
^0 LDY #0
|
||||
LDX #4
|
||||
JSR BUFFMOVE
|
||||
;
|
||||
; Main frame loop
|
||||
;
|
||||
SHAPLOOP LDX XCOOR
|
||||
LDY YCOOR
|
||||
JSR DEVICEST
|
||||
;
|
||||
SHAPLOP2 JSR SETFLASH
|
||||
;
|
||||
^0 LDY #2
|
||||
JSR DEVICERD
|
||||
BCS >2
|
||||
ASL
|
||||
BMI >1
|
||||
BCS SHAPCR
|
||||
^1 JSR SHAPEDEV
|
||||
;
|
||||
^2 JSR POLEKEY
|
||||
BMI >3
|
||||
;
|
||||
DEC FLASHLO
|
||||
BNE <0
|
||||
DEC FLASHHI
|
||||
BPL <0
|
||||
BMI SHAPLOP2
|
||||
;
|
||||
^3 PHA
|
||||
JSR RESETBIT
|
||||
PLA
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
JSR PARSE
|
||||
.DA #'I',SHAPUP
|
||||
.DA #$0B,SHAPUP
|
||||
.DA #'M',SHAPDOWN
|
||||
.DA #$0A,SHAPDOWN
|
||||
.DA #'J',SHAPLEFT
|
||||
.DA #$08,SHAPLEFT
|
||||
.DA #'K',SHAPRITE
|
||||
.DA #$15,SHAPRITE
|
||||
.DA #'N',SHAPNEG
|
||||
.DA #'O',SHAPOVMD
|
||||
.DA #CR,SHAPCR
|
||||
.DA #ESC,SHAPESC
|
||||
BRK
|
||||
JMP SHAPLOP2
|
||||
;-----------
|
||||
SHAPESC JSR SHAPEREM
|
||||
SEC
|
||||
HEX 90
|
||||
SHAPCR CLC
|
||||
RTS
|
||||
;-----------
|
||||
SHAPUP DEY
|
||||
BPL SHAPDONE
|
||||
;
|
||||
SHAPDOWN INY
|
||||
CPY YMAX
|
||||
BLT SHAPDONE
|
||||
BGE SHAPUP
|
||||
;
|
||||
SHAPDONE JSR SHAPENEW
|
||||
JMP SHAPLOOP
|
||||
;
|
||||
SHAPLEFT DEX
|
||||
BPL SHAPDONE
|
||||
;
|
||||
SHAPRITE INX
|
||||
CPX XMAX
|
||||
BLT SHAPDONE
|
||||
BGE SHAPLEFT
|
||||
;-----------
|
||||
;
|
||||
; See if device moved
|
||||
;
|
||||
SHAPEDEV CPX XCOOR
|
||||
BNE >0
|
||||
CPY YCOOR
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 PLA
|
||||
PLA
|
||||
JSR SHAPENEW
|
||||
JMP SHAPLOP2
|
||||
;
|
||||
SHAPENEW STX >1+1
|
||||
STY >2+1
|
||||
JSR RESETBIT
|
||||
JSR SHAPEREM
|
||||
^1 LDX #00
|
||||
^2 LDY #00
|
||||
JSR DEVCLAMP
|
||||
;
|
||||
; Fall into put new shape
|
||||
;
|
||||
; Put or Remove shape from graphic
|
||||
;
|
||||
SHAPEPUT LDX PLOTX
|
||||
HEX 2C
|
||||
SHAPEREM LDX #PLTEMP
|
||||
JSR SETPLOT
|
||||
LDA PLOT
|
||||
PHA
|
||||
LDA #$4C
|
||||
STA PLOT
|
||||
LDX X1
|
||||
LDY Y1
|
||||
STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX X2
|
||||
STY Y2
|
||||
SHAPEMOD JSR $FFFF
|
||||
LDX X2
|
||||
LDY Y2
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
PLA
|
||||
STA PLOT
|
||||
JMP DOFONTRF
|
||||
;-----------
|
||||
;
|
||||
; Line handler
|
||||
;
|
||||
DRAWLINE JSR LINENORM
|
||||
JSR >0
|
||||
JSR LINE
|
||||
;
|
||||
LINEMIRR LDY #MRPLOT
|
||||
LDA /MRPLOT
|
||||
BNE >0
|
||||
;
|
||||
LINENORM LDY #PLOT
|
||||
LDA /PLOT
|
||||
;
|
||||
^0 STY LINETYPE+1
|
||||
STA LINETYPE+2
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Box handler (rectangle)
|
||||
;
|
||||
DRAWBOX JSR LINENORM
|
||||
LDX X2
|
||||
LDY Y1
|
||||
JSR >0
|
||||
LDY Y2
|
||||
JSR >0
|
||||
LDX X1
|
||||
JSR >0
|
||||
LDY Y1
|
||||
JSR >0
|
||||
JMP LINEMIRR
|
||||
;
|
||||
^0 STX XCOOR
|
||||
STY YCOOR
|
||||
JSR LINE
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Toggle black/white
|
||||
;
|
||||
SHAPNEG JSR SHAPEREM
|
||||
LDA PLOTX
|
||||
EOR #PLSET^PLCLR
|
||||
TAX
|
||||
JSR SETPLTX2
|
||||
JMP >0
|
||||
;-----------
|
||||
;
|
||||
; Toggle oval mode
|
||||
;
|
||||
SHAPOVMD JSR SHAPEREM
|
||||
LDA OVALMOD
|
||||
EOR #$80
|
||||
STA OVALMOD
|
||||
^0 JSR SHAPEPUT
|
||||
JMP SHAPLOP2
|
||||
;
|
||||
; Oval handler (elipse)
|
||||
;
|
||||
DRAWOVAL LDA X1
|
||||
LDX X2
|
||||
JSR DRAWOVL2
|
||||
STA OVXC
|
||||
STX OVXR
|
||||
LDA Y1
|
||||
LDX Y2
|
||||
JSR DRAWOVL2
|
||||
STA OVYC
|
||||
STX OVYR
|
||||
JMP OVAL
|
||||
;
|
||||
; Given A,X
|
||||
; return A=center, X=radius
|
||||
;
|
||||
DRAWOVL2 LDY #$80
|
||||
OVALMOD = *-1
|
||||
BMI >1
|
||||
STA TMP0
|
||||
STX TMP1
|
||||
CMP TMP1
|
||||
BLT >0
|
||||
STX TMP0
|
||||
STA TMP1
|
||||
;
|
||||
^0 LDA TMP1
|
||||
SEC
|
||||
SBC TMP0
|
||||
TAY
|
||||
LSR
|
||||
TAX
|
||||
CLC
|
||||
ADC TMP0
|
||||
RTS
|
||||
;
|
||||
; Center oriented oval
|
||||
;
|
||||
^1 PHA
|
||||
STX TMP0
|
||||
SEC
|
||||
SBC TMP0
|
||||
BCS >2
|
||||
EOR #$FF
|
||||
ADC #1
|
||||
^2 TAX
|
||||
PLA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Print Shop Companion
|
||||
; Graphic Editor+ "print" routine
|
||||
;
|
||||
CRLF = $1803
|
||||
SENDGC = $1806
|
||||
GCOUT = $1809
|
||||
;
|
||||
PRZ EPZ $80
|
||||
;
|
||||
PRTYCOOR EPZ PRZ
|
||||
PRTBUILD EPZ PRZ+1
|
||||
PRTCOUNT EPZ PRZ+2
|
||||
;
|
||||
PRINTGR JSR SAVECOOR
|
||||
;
|
||||
LDA #0
|
||||
;
|
||||
; Output a single line of the graphic
|
||||
;
|
||||
PRTLOOP1 STA PRTYCOOR
|
||||
;
|
||||
; Tell printer how many bytes are
|
||||
; coming, then send out 32 zeros
|
||||
;
|
||||
LDX #32+88
|
||||
LDY /32+88
|
||||
JSR SENDGC
|
||||
;
|
||||
LDY #32
|
||||
^0 LDA #$00
|
||||
JSR GCOUT
|
||||
DEY
|
||||
BNE <0
|
||||
;
|
||||
LDX #0
|
||||
;
|
||||
; Output a byte of the line
|
||||
;
|
||||
PRTLOOP2 STX XCOOR
|
||||
LDY PRTYCOOR
|
||||
LDX #0
|
||||
STX PRTBUILD
|
||||
;
|
||||
^0 STX PRTCOUNT
|
||||
STY YCOOR
|
||||
;
|
||||
JSR BASECALC
|
||||
AND (BUFLO),Y
|
||||
BEQ >1
|
||||
LDY PRTCOUNT
|
||||
LDA BITS7,Y
|
||||
ORA PRTBUILD
|
||||
STA PRTBUILD
|
||||
^1 LDY YCOOR
|
||||
INY
|
||||
LDX PRTCOUNT
|
||||
INX
|
||||
CPY #52
|
||||
BEQ >2
|
||||
CPX #7
|
||||
BLT <0
|
||||
;
|
||||
^2 STX PRTSPACE
|
||||
LDA PRTBUILD
|
||||
JSR GCOUT
|
||||
;
|
||||
LDX XCOOR
|
||||
INX
|
||||
CPX #88
|
||||
BLT PRTLOOP2
|
||||
;
|
||||
LDX #00
|
||||
PRTSPACE = *-1
|
||||
LDY #1
|
||||
JSR CRLF
|
||||
LDA PRTYCOOR
|
||||
CLC
|
||||
ADC #7
|
||||
CMP #52
|
||||
BLT PRTLOOP1
|
||||
;
|
||||
; Be a nice guy and set the spacing
|
||||
; back to 6 chars per inch.
|
||||
;
|
||||
LDX #12
|
||||
LDY #0
|
||||
JSR CRLF
|
||||
;
|
||||
JMP RESTCOOR
|
||||
;
|
||||
BITS7 HEX 40201008040201
|
||||
;-----------
|
||||
;
|
||||
; Draw text on graphic
|
||||
; --------------------
|
||||
;
|
||||
; Spacing between characters
|
||||
;
|
||||
TXCSPACE = 2
|
||||
TXYSPACE = 8
|
||||
TXXMAX = 86
|
||||
TXYMAX = 45
|
||||
;
|
||||
TXZ EPZ $80
|
||||
;
|
||||
TXFONTLO EPZ TXZ
|
||||
TXFONTHI EPZ TXZ+1
|
||||
TXCWIDTH EPZ TXZ+2
|
||||
TXCHITE EPZ TXZ+3
|
||||
TXBYTE EPZ TXZ+4
|
||||
TXBITS EPZ TXZ+5
|
||||
TXXSTART EPZ TXZ+6
|
||||
TXPOINT EPZ TXZ+7
|
||||
TXGKFLAG EPZ TXZ+8
|
||||
TXCHAR EPZ TXZ+9
|
||||
;
|
||||
; Borrow buffers from fill routine
|
||||
;
|
||||
TXCHRBUF = TEMPBUFF
|
||||
TXXBUF = XSTACK
|
||||
TXYBUF = YSTACK
|
||||
;
|
||||
DRAWTEXT JSR SAVECOOR
|
||||
;
|
||||
; Make sure X,Y are good values
|
||||
;
|
||||
LDA XCOOR
|
||||
CMP #TXXMAX+1
|
||||
BLT *+4
|
||||
LDA #TXXMAX
|
||||
STA XCOOR
|
||||
STA TXXSTART
|
||||
;
|
||||
LDA YCOOR
|
||||
CMP #TXYMAX+1
|
||||
BLT *+4
|
||||
LDA #TXYMAX
|
||||
STA YCOOR
|
||||
;
|
||||
LDX #0
|
||||
STX TXPOINT
|
||||
;
|
||||
TEXTLOOP JSR GKTEXT
|
||||
;
|
||||
STA TXCHAR
|
||||
LDX TXPOINT
|
||||
INC TXPOINT
|
||||
STA TXCHRBUF,X
|
||||
LDA XCOOR
|
||||
STA TXXBUF,X
|
||||
LDA YCOOR
|
||||
STA TXYBUF,X
|
||||
LDA TXCHAR
|
||||
;
|
||||
CMP #CR
|
||||
BEQ TEXTCR
|
||||
CMP #ESC
|
||||
BEQ TEXTESC
|
||||
CMP #8
|
||||
BEQ TEXTBS
|
||||
CMP #127
|
||||
BEQ TEXTBS
|
||||
;
|
||||
CMP #' '
|
||||
BLT TEXTERR
|
||||
CMP #'@'
|
||||
BEQ TEXTERR
|
||||
CMP #'Z'+1
|
||||
BGE TEXTERR
|
||||
;
|
||||
; Attempt to draw character
|
||||
;
|
||||
JSR TEXTSET
|
||||
BCC TEXTADDX
|
||||
;
|
||||
; Didn't fit, so do a CR
|
||||
;
|
||||
JSR TEXTCR2
|
||||
BCS TEXTERR
|
||||
;
|
||||
; Try again
|
||||
;
|
||||
LDA TXCHAR
|
||||
JSR TEXTSET
|
||||
BCC TEXTADDX
|
||||
;
|
||||
TEXTERR DEC TXPOINT
|
||||
JSR BOOP
|
||||
JMP TEXTLOOP
|
||||
;
|
||||
; Add width to XCOOR.
|
||||
;
|
||||
TEXTADDX ADC XCOOR
|
||||
ADC #TXCSPACE
|
||||
CMP #TXXMAX+1
|
||||
STA XCOOR
|
||||
BLT TEXTLOOP
|
||||
JSR TEXTCR2
|
||||
JMP TEXTLOOP
|
||||
;
|
||||
; Process backspace
|
||||
;
|
||||
TEXTBS TXA
|
||||
BEQ TEXTERR
|
||||
DEX
|
||||
STX TXPOINT
|
||||
JSR TEXTBS2
|
||||
BEQ >0
|
||||
JSR TEXTUNDO
|
||||
BCC >0
|
||||
JSR TEXTCR2
|
||||
LDA TXCHAR
|
||||
JSR TEXTUNDO
|
||||
JSR TEXTBS2
|
||||
^0 JMP TEXTLOOP
|
||||
;
|
||||
TEXTBS2 LDX TXPOINT
|
||||
LDA TXXBUF,X
|
||||
STA XCOOR
|
||||
LDA TXYBUF,X
|
||||
STA YCOOR
|
||||
LDA TXCHRBUF,X
|
||||
STA TXCHAR
|
||||
CMP #CR
|
||||
RTS
|
||||
;
|
||||
; Quit the text routine
|
||||
;
|
||||
TEXTESC JMP RESTCOOR
|
||||
;
|
||||
; Do CR when pressed.
|
||||
;
|
||||
TEXTCR JSR TEXTCR2
|
||||
BCS TEXTERR
|
||||
JMP TEXTLOOP
|
||||
;
|
||||
; Do a CR, if too far then exit
|
||||
; with SEC, else, update XCOOR,YCOOR.
|
||||
;
|
||||
TEXTCR2 LDA YCOOR
|
||||
CLC
|
||||
ADC #TXYSPACE
|
||||
CMP #TXYMAX+1
|
||||
BCS >0
|
||||
STA YCOOR
|
||||
LDA TXXSTART
|
||||
STA XCOOR
|
||||
^0 RTS
|
||||
;
|
||||
; GETKEY with flashing "I"
|
||||
;
|
||||
GKTEXT ASL TXGKFLAG
|
||||
^0 INC TXGKFLAG
|
||||
JSR TEXTCURS
|
||||
JSR FLSHINIT
|
||||
;
|
||||
; Flash cursor half-fast
|
||||
;
|
||||
ASL FLASHLO
|
||||
ROL FLASHHI
|
||||
;
|
||||
^1 JSR POLEBTN
|
||||
BMI >2
|
||||
DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
^2 PHA
|
||||
LSR TXGKFLAG
|
||||
BCC >3
|
||||
JSR TEXTCURS
|
||||
^3 PLA
|
||||
RTS
|
||||
;
|
||||
; Draw cursor (letter I)
|
||||
;
|
||||
TEXTCURS INC XCOOR
|
||||
INC XCOOR
|
||||
JSR >0
|
||||
DEC XCOOR
|
||||
DEC XCOOR
|
||||
^0 LDA #'I'
|
||||
;
|
||||
LDX #PLEOR
|
||||
HEX 2C
|
||||
;
|
||||
; Given char in A, eor it into
|
||||
; the graphic.
|
||||
;
|
||||
; Return with SEC=too wide
|
||||
; CLC=ok, A=width of this char
|
||||
;
|
||||
TEXTSET LDX PLOTX
|
||||
HEX 2C
|
||||
TEXTUNDO LDX #PLUNDO
|
||||
PHA
|
||||
JSR SETPLOT
|
||||
PLA
|
||||
;
|
||||
SEC
|
||||
SBC #$20
|
||||
TAX
|
||||
LDA FONTADRL,X
|
||||
STA TXFONTLO
|
||||
LDA FONTADRH,X
|
||||
STA TXFONTHI
|
||||
;
|
||||
; If this character goes over too
|
||||
; far to right, exit with SEC.
|
||||
;
|
||||
LDA FONTWITH,X
|
||||
STA TXCWIDTH
|
||||
CLC
|
||||
ADC XCOOR
|
||||
CMP #TXXMAX+2
|
||||
BGE TEXTEOR9
|
||||
;
|
||||
; If SPACE, then exit now!
|
||||
;
|
||||
TXA
|
||||
BEQ TEXTEOR8
|
||||
;
|
||||
LDA FONTHITE,X
|
||||
STA TXCHITE
|
||||
;
|
||||
LDA YCOOR
|
||||
PHA
|
||||
;
|
||||
; Do one line of the char
|
||||
;
|
||||
^0 LDA XCOOR
|
||||
PHA
|
||||
LDA TXCWIDTH
|
||||
PHA
|
||||
;
|
||||
; Get a byte from the FONT data
|
||||
;
|
||||
^1 LDY #0
|
||||
LDA (TXFONTLO),Y
|
||||
STA TXBYTE
|
||||
INC TXFONTLO
|
||||
BNE *+4
|
||||
INC TXFONTHI
|
||||
LDA #8
|
||||
STA TXBITS
|
||||
;
|
||||
^2 ASL TXBYTE
|
||||
BCC >3
|
||||
;
|
||||
JSR PLOT
|
||||
;
|
||||
^3 INC XCOOR
|
||||
DEC TXCWIDTH
|
||||
BEQ >4
|
||||
DEC TXBITS
|
||||
BNE <2
|
||||
BEQ <1
|
||||
;
|
||||
^4 PLA
|
||||
STA TXCWIDTH
|
||||
PLA
|
||||
STA XCOOR
|
||||
INC YCOOR
|
||||
DEC TXCHITE
|
||||
BNE <0
|
||||
;
|
||||
PLA
|
||||
STA YCOOR
|
||||
TEXTEOR8 LDA TXCWIDTH
|
||||
CLC
|
||||
TEXTEOR9 RTS
|
||||
;-----------
|
||||
;
|
||||
LZ EPZ $80
|
||||
;
|
||||
LINEDIR EPZ LZ
|
||||
LINECONT EPZ LZ+1
|
||||
;
|
||||
; Draw a line between
|
||||
; (OLDXCOOR,OLDYCOOR) - (XCOOR,YCOOR)
|
||||
;
|
||||
; Find delta X and delta Y
|
||||
;
|
||||
LINE LDX #$7F
|
||||
LDA XCOOR
|
||||
SEC
|
||||
SBC OLDXCOOR
|
||||
BCS >0
|
||||
EOR #$FF
|
||||
ADC #1
|
||||
INX
|
||||
^0 STX LINEDIR
|
||||
STA DELTAX
|
||||
;
|
||||
LDA YCOOR
|
||||
CLC
|
||||
SBC OLDYCOOR
|
||||
BCC >1
|
||||
EOR #$FF
|
||||
ADC #$FE
|
||||
^1 STA DELTAY
|
||||
ROR LINEDIR
|
||||
SEC
|
||||
SBC DELTAX
|
||||
STA LINECONT
|
||||
EOR #$FF
|
||||
LSR
|
||||
;
|
||||
LDX OLDXCOOR
|
||||
LDY OLDYCOOR
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
;
|
||||
SEC
|
||||
BCS >1
|
||||
;
|
||||
LINEMOVX BVC >0
|
||||
DEC XCOOR
|
||||
DEC XCOOR
|
||||
^0 INC XCOOR
|
||||
^1 ADC #00
|
||||
DELTAY = *-1
|
||||
;
|
||||
^2 PHA
|
||||
PHP
|
||||
LINETYPE JSR MRPLOT
|
||||
PLP
|
||||
PLA
|
||||
;
|
||||
INC LINECONT
|
||||
BEQ >4
|
||||
;
|
||||
BIT LINEDIR
|
||||
BCS LINEMOVX
|
||||
BMI >3
|
||||
DEC YCOOR
|
||||
DEC YCOOR
|
||||
^3 INC YCOOR
|
||||
ADC #00
|
||||
DELTAX = *-1
|
||||
BVC <2
|
||||
;
|
||||
^4 RTS
|
||||
;-----------
|
||||
;
|
||||
; Modified Bresenham circle
|
||||
; draw routine.
|
||||
;
|
||||
; Modified to do ellipses.
|
||||
;
|
||||
; 06/18/85 Roland Gustafsson
|
||||
;
|
||||
OZ EPZ $80
|
||||
;
|
||||
OVXC EPZ OZ
|
||||
OVYC EPZ OZ+1
|
||||
OVXR EPZ OZ+2
|
||||
OVYR EPZ OZ+3
|
||||
OVYADDLO EPZ OZ+4
|
||||
OVYADDHI EPZ OZ+5
|
||||
OVDLO EPZ OZ+6
|
||||
OVDHI EPZ OZ+7
|
||||
OVX EPZ OZ+8
|
||||
OVY EPZ OZ+9
|
||||
OVY1 EPZ OZ+10
|
||||
OVY1F EPZ OZ+11
|
||||
OVY2 EPZ OZ+12
|
||||
OVY2F EPZ OZ+13
|
||||
OVA1 EPZ OZ+14
|
||||
OVA2 EPZ OZ+15
|
||||
;
|
||||
; Divide routine
|
||||
;
|
||||
ACC1LO EPZ OZ+16
|
||||
ACC1HI EPZ OZ+17
|
||||
ACC2LO EPZ OZ+18
|
||||
ACC2HI EPZ OZ+19
|
||||
REMLO EPZ OZ+20
|
||||
REMHI EPZ OZ+21
|
||||
;
|
||||
; Draw an oval on the screen
|
||||
;
|
||||
; given: OVXR=X radius
|
||||
; OVYR=Y radius
|
||||
; OVXC=X center
|
||||
; OVYC=Y center
|
||||
;
|
||||
OVAL LDX OVXR
|
||||
CPX OVYR
|
||||
BCS >0
|
||||
LDY OVYR
|
||||
STY OVXR
|
||||
STX OVYR
|
||||
^0 ROR OVSWAP
|
||||
;
|
||||
; Compute (YD*256)/XD
|
||||
;
|
||||
LDY #0
|
||||
LDA OVYR
|
||||
LDX OVXR
|
||||
;
|
||||
STY OVX
|
||||
STY OVY2
|
||||
STY OVY2F
|
||||
STX OVY
|
||||
STX OVDLO
|
||||
STA OVY1
|
||||
STY OVY1F
|
||||
;
|
||||
STX ACC2LO
|
||||
STY ACC2HI
|
||||
JSR DIVIDE
|
||||
STY OVYADDLO
|
||||
STA OVYADDHI
|
||||
;
|
||||
; D = 3-2*Y
|
||||
;
|
||||
ASL OVDLO
|
||||
LDA #3
|
||||
SEC
|
||||
SBC OVDLO
|
||||
STA OVDLO
|
||||
LDA #0
|
||||
SBC #0
|
||||
STA OVDHI
|
||||
;
|
||||
; Main oval loop
|
||||
;
|
||||
OVLOOP LDA OVX
|
||||
CMP OVY
|
||||
BGE OVDONE
|
||||
JSR OVPLOT
|
||||
LDA OVX
|
||||
BIT OVDHI
|
||||
BPL >0
|
||||
;
|
||||
; D=D+4*X+6
|
||||
;
|
||||
ASL
|
||||
ASL
|
||||
ADC #6
|
||||
BNE OVADDD
|
||||
;
|
||||
; D=D+4*(X-Y)+10
|
||||
;
|
||||
^0 SEC
|
||||
SBC OVY
|
||||
TAX
|
||||
LDA #0
|
||||
SBC #0
|
||||
TAY
|
||||
TXA
|
||||
ASL
|
||||
ASL
|
||||
CLC
|
||||
ADC OVDLO
|
||||
STA OVDLO
|
||||
TYA
|
||||
ADC OVDHI
|
||||
STA OVDHI
|
||||
;
|
||||
DEC OVY
|
||||
;
|
||||
LDA OVY1F
|
||||
SEC
|
||||
SBC OVYADDLO
|
||||
STA OVY1F
|
||||
LDA OVY1
|
||||
SBC OVYADDHI
|
||||
STA OVY1
|
||||
JSR OVPLOT
|
||||
;
|
||||
LDA #10
|
||||
;
|
||||
OVADDD CLC
|
||||
ADC OVDLO
|
||||
STA OVDLO
|
||||
BCC *+4
|
||||
INC OVDHI
|
||||
;
|
||||
INC OVX
|
||||
;
|
||||
LDA OVY2F
|
||||
CLC
|
||||
ADC OVYADDLO
|
||||
STA OVY2F
|
||||
LDA OVY2
|
||||
ADC OVYADDHI
|
||||
STA OVY2
|
||||
JMP OVLOOP
|
||||
;
|
||||
; If X=Y then plot points
|
||||
;
|
||||
OVDONE BNE OVPLRTS
|
||||
;
|
||||
; Plot 8 points around oval
|
||||
;
|
||||
OVPLOT LDX OVX
|
||||
LDY OVY1
|
||||
JSR OVPLOT1
|
||||
LDX OVY
|
||||
LDY OVY2
|
||||
;
|
||||
; If special flag set, then swap
|
||||
; coordinate offsets.
|
||||
;
|
||||
OVPLOT1 STX OVA1
|
||||
STY OVA2
|
||||
LDA #00
|
||||
OVSWAP = *-1
|
||||
BMI >0
|
||||
STY OVA1
|
||||
STX OVA2
|
||||
;
|
||||
; (X,Y)
|
||||
;
|
||||
^0 CLC
|
||||
LDA OVXC
|
||||
ADC OVA1
|
||||
PHA
|
||||
TAX
|
||||
LDA OVYC
|
||||
ADC OVA2
|
||||
TAY
|
||||
JSR PLOTXY
|
||||
;
|
||||
; (-X,Y)
|
||||
;
|
||||
LDA OVXC
|
||||
SBC OVA1
|
||||
TAX
|
||||
JSR PLOTXY
|
||||
;
|
||||
; (-X,-Y)
|
||||
;
|
||||
LDA OVYC
|
||||
SBC OVA2
|
||||
TAY
|
||||
JSR PLOTXY
|
||||
;
|
||||
; (X,-Y)
|
||||
;
|
||||
PLA
|
||||
TAX
|
||||
;
|
||||
; Plot a point, ignoring values
|
||||
; that are too big.
|
||||
;
|
||||
PLOTXY STX XCOOR
|
||||
STY YCOOR
|
||||
CPX XMAX
|
||||
BGE >0
|
||||
CPY YMAX
|
||||
BGE >0
|
||||
JSR PLOT
|
||||
^0 LDX XCOOR
|
||||
LDY YCOOR
|
||||
SEC
|
||||
OVPLRTS RTS
|
||||
;-----------
|
||||
;
|
||||
; 16 bit divide routine
|
||||
;
|
||||
; ACC1=ACC1/ACC2, remainder in REM
|
||||
;
|
||||
; Enter with A=hi, Y=lo
|
||||
; ACC2LO,HI set
|
||||
;
|
||||
; Return with result in A=hi, Y=lo
|
||||
;
|
||||
DIVIDE STY ACC1LO
|
||||
STA ACC1HI
|
||||
LDA #0
|
||||
STA REMLO
|
||||
STA REMHI
|
||||
LDY #16
|
||||
^0 ASL ACC1LO
|
||||
ROL ACC1HI
|
||||
ROL REMLO
|
||||
ROL REMHI
|
||||
SEC
|
||||
LDA REMLO
|
||||
SBC ACC2LO
|
||||
TAX
|
||||
LDA REMHI
|
||||
SBC ACC2HI
|
||||
BCC >1
|
||||
STX REMLO
|
||||
STA REMHI
|
||||
INC ACC1LO
|
||||
^1 DEY
|
||||
BNE <0
|
||||
LDY ACC1LO
|
||||
LDA ACC1HI
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "EDIT,S4",ORG
|
||||
END
|
|
@ -0,0 +1,622 @@
|
|||
NLS
|
||||
TTL "S:FDRAW"
|
||||
ORG = $8A00
|
||||
;
|
||||
; Routine to draw string
|
||||
; of chars using pixel data table
|
||||
;
|
||||
; New fast version
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
GETINIT = SP+105
|
||||
GETBYTE = SP+108
|
||||
;
|
||||
FONTADDR = $8500
|
||||
WTABLE = FONTADDR
|
||||
HTABLE = FONTADDR+$3B
|
||||
PIXADLO = FONTADDR+$76
|
||||
PIXADHI = FONTADDR+$B1
|
||||
;
|
||||
KTABLE = $0300
|
||||
;
|
||||
TABHI = $9100
|
||||
TABLO = $91C0
|
||||
XBYTE2 = $9398
|
||||
XBIT2 = $94B0
|
||||
;-----------
|
||||
;
|
||||
; CSIZE, PIXAD & XCUR are to be used
|
||||
; by external LINEDRAW routines.
|
||||
;
|
||||
DAT EPZ $50
|
||||
;
|
||||
PIXAD EPZ DAT
|
||||
XCUR EPZ DAT+2
|
||||
WCOUNT EPZ DAT+4
|
||||
BUFFER1 EPZ DAT+5
|
||||
BUFFER2 EPZ DAT+7
|
||||
XBYTE EPZ DAT+9
|
||||
DATABYTE EPZ DAT+10
|
||||
BCOUNT EPZ DAT+11
|
||||
BLDBYTE EPZ DAT+12
|
||||
;
|
||||
SLENGTH EPZ DAT+13
|
||||
TEMP EPZ DAT+15
|
||||
YCUR EPZ DAT+16
|
||||
HCOUNT EPZ DAT+17
|
||||
WIDTH EPZ DAT+18
|
||||
STRPTR EPZ DAT+19
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $0800
|
||||
;-----------
|
||||
START JMP STRING0
|
||||
;-----------
|
||||
OPTION HEX 02
|
||||
XOPTION HEX 02
|
||||
XPOS HEX 0000
|
||||
YPOS HEX 0000
|
||||
PIECE HEX 00
|
||||
CSPACE HEX 01
|
||||
CSIZE HEX 00
|
||||
STRADDR HEX 0000
|
||||
KERN? HEX 00
|
||||
;-----------
|
||||
; Kern mode $00:no kern
|
||||
; $01:kern
|
||||
; $80:use same kern table
|
||||
;-----------
|
||||
JMP INSTALL
|
||||
JMP SCREEN
|
||||
JMP FINSTALL
|
||||
;-----------
|
||||
;
|
||||
STRING0 JSR OPTIONMD
|
||||
;
|
||||
LDA STRADDR
|
||||
STA GETSTRX+1
|
||||
LDA STRADDR+1
|
||||
STA GETSTRX+2
|
||||
;
|
||||
BIT KERN?
|
||||
BMI >0
|
||||
JSR KERN
|
||||
;
|
||||
; If left justify, then skip
|
||||
; length-computation routine
|
||||
;
|
||||
^0 LDA XOPTION
|
||||
BEQ STRING1
|
||||
;
|
||||
; Compute length of string
|
||||
;
|
||||
LDX #0
|
||||
STX SLENGTH
|
||||
STX SLENGTH+1
|
||||
;
|
||||
^0 JSR GETSTRX
|
||||
BEQ >2
|
||||
SEC
|
||||
SBC #$20
|
||||
TAY
|
||||
LDA WTABLE,Y
|
||||
FONTMOD0 = *-1
|
||||
SEC
|
||||
SBC KTABLE,X
|
||||
CLC
|
||||
ADC CSPACE
|
||||
ADC SLENGTH
|
||||
STA SLENGTH
|
||||
BCC >1
|
||||
INC SLENGTH+1
|
||||
^1 INX
|
||||
BNE <0
|
||||
;
|
||||
^2 CPX #0
|
||||
BEQ >4
|
||||
LDA SLENGTH
|
||||
SEC
|
||||
SBC CSPACE
|
||||
STA SLENGTH
|
||||
BCS *+4
|
||||
DEC SLENGTH+1
|
||||
LDX CSIZE
|
||||
BEQ >4
|
||||
^3 ASL SLENGTH
|
||||
ROL SLENGTH+1
|
||||
DEX
|
||||
BNE <3
|
||||
;
|
||||
^4 LDX XOPTION
|
||||
CPX #3
|
||||
BEQ STRLENGT
|
||||
DEX
|
||||
BEQ >5
|
||||
LSR SLENGTH+1
|
||||
ROR SLENGTH
|
||||
^5 LDA XPOS
|
||||
SEC
|
||||
SBC SLENGTH
|
||||
STA XPOS
|
||||
LDA XPOS+1
|
||||
SBC SLENGTH+1
|
||||
STA XPOS+1
|
||||
;
|
||||
; Draw the string to buffer
|
||||
;
|
||||
STRING1 LDX #0
|
||||
^0 STX STRPTR
|
||||
JSR GETSTRX
|
||||
BEQ STRING8
|
||||
JSR CHAR
|
||||
LDX STRPTR
|
||||
JSR GETSTRX
|
||||
SEC
|
||||
SBC #$20
|
||||
TAY
|
||||
LDA CSPACE
|
||||
CLC
|
||||
ADC WTABLE,Y
|
||||
FONTMOD1 = *-1
|
||||
INX
|
||||
SEC
|
||||
SBC KTABLE,X
|
||||
LDY #0
|
||||
STY TEMP
|
||||
LDY CSIZE
|
||||
BEQ >2
|
||||
^1 ASL
|
||||
ROL TEMP
|
||||
DEY
|
||||
BNE <1
|
||||
^2 CLC
|
||||
ADC XPOS
|
||||
STA XPOS
|
||||
LDA TEMP
|
||||
ADC XPOS+1
|
||||
STA XPOS+1
|
||||
BCC <0
|
||||
;
|
||||
STRLENGT LDY SLENGTH
|
||||
LDA SLENGTH+1
|
||||
STRING8 LDX #1
|
||||
RTS
|
||||
;-----------
|
||||
; Routine for LDA STRING,X
|
||||
;
|
||||
GETSTRX LDA STRADDR,X
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Draw character on screen
|
||||
; Upper left corner in XPOS,YPOS
|
||||
;
|
||||
CHAR SEC
|
||||
SBC #$20
|
||||
BEQ CDONE
|
||||
TAX
|
||||
LDA HTABLE,X
|
||||
FONTMOD2 = *-1
|
||||
STA HCOUNT
|
||||
LDA WTABLE,X
|
||||
FONTMOD3 = *-1
|
||||
STA WIDTH
|
||||
LDA PIXADLO,X
|
||||
FONTMOD4 = *-1
|
||||
STA PIXAD
|
||||
LDA PIXADHI,X
|
||||
FONTMOD5 = *-1
|
||||
STA PIXAD+1
|
||||
LDA CSIZE
|
||||
ASL
|
||||
BNE CHAR1
|
||||
LDA #1
|
||||
CHAR1 STA TEMP
|
||||
LDA YPOS
|
||||
STA YCUR
|
||||
CHAR2 LDA XPOS
|
||||
STA XCUR
|
||||
LDA XPOS+1
|
||||
STA XCUR+1
|
||||
LDA WIDTH
|
||||
STA WCOUNT
|
||||
LDY YCUR
|
||||
LINEMOD JSR LINEDRAW
|
||||
;
|
||||
LDA YCUR
|
||||
CLC
|
||||
ADC TEMP
|
||||
STA YCUR
|
||||
DEC HCOUNT
|
||||
BNE CHAR2
|
||||
CDONE RTS
|
||||
;-----------
|
||||
; KERN SECTION
|
||||
;
|
||||
LADDR EPZ DAT
|
||||
RADDR EPZ DAT+2
|
||||
LBWIDTH EPZ DAT+4
|
||||
RBWIDTH EPZ DAT+5
|
||||
LCHAR EPZ DAT+6
|
||||
RCHAR EPZ DAT+7
|
||||
KCOUNT EPZ DAT+9
|
||||
LREM EPZ DAT+10
|
||||
MINWIDTH EPZ DAT+11
|
||||
;
|
||||
KERN LDX #0
|
||||
STX KTABLE
|
||||
KERN0 STX STRPTR
|
||||
JSR GETSTRX
|
||||
BEQ KDONE
|
||||
;
|
||||
LDY KERN?
|
||||
BEQ KERN2
|
||||
;
|
||||
CMP #'A'
|
||||
BCC KERN2
|
||||
STA LCHAR
|
||||
INX
|
||||
JSR GETSTRX
|
||||
BEQ KDONE
|
||||
CMP #'A'
|
||||
BCC KERN2
|
||||
STA RCHAR
|
||||
JSR KSETUP
|
||||
LDA KCOUNT
|
||||
CMP #100
|
||||
BCC KERN1
|
||||
KERN2 LDA #0
|
||||
KERN1 LDX STRPTR
|
||||
INX
|
||||
STA KTABLE,X
|
||||
JMP KERN0
|
||||
KDONE LDA #0
|
||||
STA KTABLE,X
|
||||
RTS
|
||||
;
|
||||
KSETUP SEC
|
||||
ROR MINWIDTH
|
||||
LDA LCHAR
|
||||
JSR BWCOMP
|
||||
STA LBWIDTH
|
||||
STY LREM
|
||||
LDA PIXADLO,X
|
||||
FONTMOD6 = *-1
|
||||
STA LADDR
|
||||
LDA PIXADHI,X
|
||||
FONTMOD7 = *-1
|
||||
STA LADDR+1
|
||||
LDA HTABLE,X
|
||||
FONTMOD8 = *-1
|
||||
STA HCOUNT
|
||||
LDA RCHAR
|
||||
JSR BWCOMP
|
||||
STA RBWIDTH
|
||||
LDA PIXADLO,X
|
||||
FONTMOD9 = *-1
|
||||
STA RADDR
|
||||
LDA PIXADHI,X
|
||||
FONTMODA = *-1
|
||||
STA RADDR+1
|
||||
LDA HTABLE,X
|
||||
FONTMODB = *-1
|
||||
CMP HCOUNT
|
||||
BGE KERN4
|
||||
STA HCOUNT
|
||||
KERN4 LDA MINWIDTH
|
||||
CLC
|
||||
ADC CSPACE
|
||||
STA KCOUNT
|
||||
KERN5 JSR LCOMP
|
||||
STA TEMP
|
||||
JSR RCOMP
|
||||
CLC
|
||||
ADC TEMP
|
||||
CMP KCOUNT
|
||||
BGE KERN6
|
||||
STA KCOUNT
|
||||
KERN6 LDA LADDR
|
||||
CLC
|
||||
ADC LBWIDTH
|
||||
STA LADDR
|
||||
BCC KERN7
|
||||
INC LADDR+1
|
||||
KERN7 LDA RADDR
|
||||
CLC
|
||||
ADC RBWIDTH
|
||||
STA RADDR
|
||||
BCC KERN8
|
||||
INC RADDR+1
|
||||
KERN8 DEC HCOUNT
|
||||
BNE KERN5
|
||||
RTS
|
||||
;
|
||||
BWCOMP SEC
|
||||
SBC #$20
|
||||
TAX
|
||||
LDA WTABLE,X
|
||||
FONTMODC = *-1
|
||||
CMP MINWIDTH
|
||||
BGE >0
|
||||
STA MINWIDTH
|
||||
^0 SEC
|
||||
SBC #1
|
||||
PHA
|
||||
AND #$07
|
||||
EOR #$07
|
||||
TAY
|
||||
PLA
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
CLC
|
||||
ADC #1
|
||||
RTS
|
||||
;
|
||||
LCOMP LDX #0
|
||||
LDY LBWIDTH
|
||||
DEY
|
||||
LCOMP2 LDA (LADDR),Y
|
||||
BNE LCOMP3
|
||||
TXA
|
||||
CLC
|
||||
ADC #8
|
||||
TAX
|
||||
DEY
|
||||
BPL LCOMP2
|
||||
LDA #100
|
||||
RTS
|
||||
LCOMP3 INX
|
||||
LSR
|
||||
BCC LCOMP3
|
||||
DEX
|
||||
TXA
|
||||
SEC
|
||||
SBC LREM
|
||||
RTS
|
||||
;
|
||||
RCOMP LDX #0
|
||||
LDY #0
|
||||
RCOMP2 LDA (RADDR),Y
|
||||
BNE RCOMP3
|
||||
TXA
|
||||
CLC
|
||||
ADC #$08
|
||||
TAX
|
||||
INY
|
||||
CPY RBWIDTH
|
||||
BNE RCOMP2
|
||||
LDA #100
|
||||
RTS
|
||||
RCOMP3 INX
|
||||
ASL
|
||||
BCC RCOMP3
|
||||
DEX
|
||||
TXA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Draw line of font data
|
||||
;
|
||||
; given Y=ycoor
|
||||
;
|
||||
LINEDRAW LDA TABLO,Y
|
||||
STA BUFFER1
|
||||
LDA TABHI,Y
|
||||
STA BUFFER1+1
|
||||
LDA TABLO+1,Y
|
||||
STA BUFFER2
|
||||
LDA TABHI+1,Y
|
||||
STA BUFFER2+1
|
||||
;
|
||||
LDX XCUR
|
||||
LDA XCUR+1
|
||||
BEQ >0
|
||||
LDA XBIT2+256,X
|
||||
LDY XBYTE2+256,X
|
||||
BNE >1
|
||||
^0 LDA XBIT2,X
|
||||
LDY XBYTE2,X
|
||||
^1 STY XBYTE
|
||||
;
|
||||
; Compensate for bits not to be
|
||||
; affected to the left.
|
||||
;
|
||||
LDY #8
|
||||
^2 DEY
|
||||
SD1MOD0 SEC
|
||||
ROR BLDBYTE
|
||||
LSR
|
||||
BCC <2
|
||||
;
|
||||
LDX #0
|
||||
LDA CSIZE
|
||||
BNE LINEDUBL
|
||||
;
|
||||
; Do a line of normal size
|
||||
;
|
||||
LINENORM LDA (PIXAD,X)
|
||||
EOR #$FF
|
||||
SD2MOD0 = *-1
|
||||
STA DATABYTE
|
||||
INC PIXAD
|
||||
BNE *+4
|
||||
INC PIXAD+1
|
||||
LDX #8
|
||||
^0 ASL DATABYTE
|
||||
ROR BLDBYTE
|
||||
DEY
|
||||
BNE >1
|
||||
;
|
||||
LDY XBYTE
|
||||
INC XBYTE
|
||||
LDA BLDBYTE
|
||||
LSR
|
||||
SD0MOD0 AND (BUFFER1),Y
|
||||
STA (BUFFER1),Y
|
||||
LDY #7
|
||||
;
|
||||
^1 DEC WCOUNT
|
||||
BEQ >2
|
||||
DEX
|
||||
BNE <0
|
||||
BEQ LINENORM
|
||||
;
|
||||
^2 CPY #7
|
||||
BEQ >3
|
||||
LDA BLDBYTE
|
||||
SD1MOD1 SEC
|
||||
ROR
|
||||
DEY
|
||||
BNE SD1MOD1
|
||||
LSR
|
||||
LDY XBYTE
|
||||
SD0MOD1 AND (BUFFER1),Y
|
||||
STA (BUFFER1),Y
|
||||
^3 RTS
|
||||
;
|
||||
; Do a line of double size
|
||||
;
|
||||
LINEDUBL LDA (PIXAD,X)
|
||||
EOR #$FF
|
||||
SD2MOD1 = *-1
|
||||
STA DATABYTE
|
||||
INC PIXAD
|
||||
BNE *+4
|
||||
INC PIXAD+1
|
||||
LDX #8
|
||||
^0 STX BCOUNT
|
||||
ASL DATABYTE
|
||||
LDX #2
|
||||
^1 PHP
|
||||
ROR BLDBYTE
|
||||
DEY
|
||||
BNE >2
|
||||
;
|
||||
LDY XBYTE
|
||||
INC XBYTE
|
||||
LDA BLDBYTE
|
||||
LSR
|
||||
STA BLDBYTE
|
||||
SD0MOD2 AND (BUFFER1),Y
|
||||
STA (BUFFER1),Y
|
||||
LDA BLDBYTE
|
||||
SD0MOD3 AND (BUFFER2),Y
|
||||
STA (BUFFER2),Y
|
||||
LDY #7
|
||||
;
|
||||
^2 PLP
|
||||
DEX
|
||||
BNE <1
|
||||
;
|
||||
DEC WCOUNT
|
||||
BEQ >3
|
||||
LDX BCOUNT
|
||||
DEX
|
||||
BNE <0
|
||||
BEQ LINEDUBL
|
||||
;
|
||||
^3 CPY #7
|
||||
BEQ >4
|
||||
LDA BLDBYTE
|
||||
SD1MOD2 SEC
|
||||
ROR
|
||||
DEY
|
||||
BNE SD1MOD2
|
||||
LSR
|
||||
STA BLDBYTE
|
||||
LDY XBYTE
|
||||
SD0MOD4 AND (BUFFER1),Y
|
||||
STA (BUFFER1),Y
|
||||
LDA BLDBYTE
|
||||
SD0MOD5 AND (BUFFER2),Y
|
||||
STA (BUFFER2),Y
|
||||
^4 RTS
|
||||
;-----------
|
||||
; #2 #3 #4
|
||||
; ORA/AND/EOR how to put on screen
|
||||
; CLC/SEC/CLC what to fill excess with
|
||||
; $00/$FF/$00 eor after getting data
|
||||
;
|
||||
MODS0 HEX 113151
|
||||
MODS1 HEX 183818
|
||||
MODS2 HEX 00FF00
|
||||
;
|
||||
; Option mod routine.
|
||||
;
|
||||
OPTIONMD LDY OPTION
|
||||
LDA MODS0-2,Y
|
||||
PHA
|
||||
LDX MODS1-2,Y
|
||||
LDA MODS2-2,Y
|
||||
TAY
|
||||
PLA
|
||||
OPTNMOD JMP SCRNOPTN
|
||||
;
|
||||
; OPTION mods for internal screen
|
||||
; routines
|
||||
;
|
||||
SCRNOPTN STA SD0MOD0
|
||||
STA SD0MOD1
|
||||
STA SD0MOD2
|
||||
STA SD0MOD3
|
||||
STA SD0MOD4
|
||||
STA SD0MOD5
|
||||
;
|
||||
STX SD1MOD0
|
||||
STX SD1MOD1
|
||||
STX SD1MOD2
|
||||
;
|
||||
STY SD2MOD0
|
||||
STY SD2MOD1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Reset STROUT for screen draw
|
||||
;
|
||||
SCREEN JSR INSTALL
|
||||
ADR SCRNOPTN
|
||||
ADR LINEDRAW
|
||||
HBY FONTADDR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; JSR INSTALL
|
||||
; ADR OPTIONMD ; option mods
|
||||
; ADR LINEDRAW ; line draw routine
|
||||
; HBY FONTADDR ; hi byte of font data
|
||||
;
|
||||
INSTALL JSR GETINIT
|
||||
;
|
||||
JSR GETBYTE
|
||||
STA OPTNMOD+1
|
||||
JSR GETBYTE
|
||||
STA OPTNMOD+2
|
||||
;
|
||||
JSR GETBYTE
|
||||
STA LINEMOD+1
|
||||
JSR GETBYTE
|
||||
STA LINEMOD+2
|
||||
;
|
||||
JSR GETBYTE
|
||||
FINSTALL STA FONTMOD0
|
||||
STA FONTMOD1
|
||||
STA FONTMOD2
|
||||
STA FONTMOD3
|
||||
STA FONTMOD4
|
||||
STA FONTMOD5
|
||||
STA FONTMOD6
|
||||
STA FONTMOD7
|
||||
STA FONTMOD8
|
||||
STA FONTMOD9
|
||||
STA FONTMODA
|
||||
STA FONTMODB
|
||||
STA FONTMODC
|
||||
RTS
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "O:FDRAW",ORG
|
||||
END
|
|
@ -0,0 +1,864 @@
|
|||
NLS
|
||||
TTL "S:HELLO"
|
||||
NOG
|
||||
;
|
||||
ORG = $800
|
||||
;
|
||||
; 05/27/85
|
||||
; 09/10/85 last mod (Font stuff)
|
||||
;
|
||||
; Hello Program for
|
||||
;
|
||||
; The Print Shop Companion Disk
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
HAS128K = $27F
|
||||
;
|
||||
DAT EPZ $00
|
||||
;
|
||||
TMP0 EPZ DAT
|
||||
TMP1 EPZ DAT+1
|
||||
TMP2 EPZ DAT+2
|
||||
TMP3 EPZ DAT+3
|
||||
LDPROG EPZ DAT+4
|
||||
LDPOINT EPZ DAT+5
|
||||
LDPADR EPZ DAT+6
|
||||
LDLENGTH EPZ DAT+7
|
||||
LDDIRECT EPZ DAT+8
|
||||
;
|
||||
ICONS = $4000
|
||||
;
|
||||
YHI = $9100
|
||||
YLO = $91C0
|
||||
SELCTION = $95F5
|
||||
;
|
||||
; SUBPAK entry points:
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
PRINT = SP
|
||||
CLSCREEN = SP+3
|
||||
WITEBORD = SP+6
|
||||
ESCBACK = SP+9
|
||||
PICDRAW = SP+12
|
||||
;
|
||||
DEVICENW = SP+15
|
||||
DEVICEON = SP+18
|
||||
DEVICEOF = SP+21
|
||||
DEVICERD = SP+24
|
||||
DEVICEST = SP+27
|
||||
SCALING = SP+30
|
||||
;
|
||||
POLEBTN = SP+31
|
||||
POLEKEY = SP+34
|
||||
GETKEY = SP+37
|
||||
SELECT = SP+40
|
||||
;
|
||||
SETTYPE = SP+43
|
||||
GETFILE = SP+46
|
||||
SAVEFILE = SP+49
|
||||
TYPELEN = SP+52
|
||||
FLSTART = SP+53
|
||||
FLLENGTH = SP+55
|
||||
BLOAD = SP+57
|
||||
BSAVE = SP+60
|
||||
DOSCR = SP+63
|
||||
ERROR = SP+66
|
||||
;
|
||||
MUSIC = SP+69
|
||||
FLSHINIT = SP+72
|
||||
JMPVECTS = SP+75
|
||||
LINES = SP+78
|
||||
PARSE = SP+81
|
||||
SHOWAROW = SP+84
|
||||
NUMBER = SP+87
|
||||
WAITPSD = SP+90
|
||||
WAITCD = SP+93
|
||||
ANYKEY = SP+96
|
||||
CHKPRINT = SP+99
|
||||
BOOP = SP+102
|
||||
GETINIT = SP+105
|
||||
GETBYTE = SP+108
|
||||
INPUT = SP+111
|
||||
CLS1 = SP+114
|
||||
PRINTGRP = SP+117
|
||||
RTOS = SP+120
|
||||
RTOSPARM EPZ $3A
|
||||
;
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
PRPIC = 19
|
||||
PRRTAB = 20
|
||||
PRRTAB2 = 21
|
||||
PRKERN = 22
|
||||
RTOSINV = 23
|
||||
GOOBER = 24
|
||||
;
|
||||
ESC = 27
|
||||
;
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
;
|
||||
START JMP MAINMENU
|
||||
JMP FGETMAIN
|
||||
JMP FGETPSD
|
||||
JMP FGETCD
|
||||
;-----------
|
||||
TXTTPS BYT 'THE PRINT SHOP',0
|
||||
TXTC BYT 'COMPANION',0
|
||||
;
|
||||
TXTAPRET BYT 'AND '
|
||||
TXTPRET BYT 'PRESS'
|
||||
TXTSRET BYT ' '
|
||||
TXTRET BYT '<RETURN>',0
|
||||
;-----------
|
||||
MAINMENU JSR LOADINIT
|
||||
LDA #$2C
|
||||
STA MAINMENU
|
||||
;
|
||||
LDX #$FF
|
||||
TXS
|
||||
JSR WITEBORD
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,1,16,38,15
|
||||
BYT PRINVR,PRCNTR,PRBIG
|
||||
BYT PRSPC,15
|
||||
.DA #PRLOC,140,#1
|
||||
.DA #PRSTR,TXTTPS,#CR
|
||||
.DA #PRSTR,TXTC,#CR,#0
|
||||
;
|
||||
JSR LOADICON
|
||||
;
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#36
|
||||
BYT PRCNTR
|
||||
BYT CR,'MAIN MENU',CR
|
||||
;
|
||||
.DA #PRLOC,76,#66
|
||||
BYT 'GRAPHIC EDITOR+',CR
|
||||
BYT 'BORDER EDITOR',CR
|
||||
BYT 'FONT EDITOR',CR
|
||||
BYT 'TILE MAGIC',CR
|
||||
BYT 'CREATURE MAKER',CR
|
||||
BYT 'CALENDAR',CR
|
||||
BYT 'SETUP',CR
|
||||
BYT 'EXIT PROGRAM',CR
|
||||
;
|
||||
; ICON border
|
||||
;
|
||||
ICONY = 71
|
||||
BYT RTOSWITE,21,ICONY-2,15,2
|
||||
BYT RTOSWITE,21,ICONY+53,15,2
|
||||
BYT RTOSANY,$70,20,ICONY-2,1,57
|
||||
BYT RTOSANY,$07,36,ICONY-2,1,57
|
||||
;
|
||||
BRK
|
||||
JSR SHOWBOTM
|
||||
;
|
||||
LDA #1
|
||||
SELPROG CMP #6
|
||||
BEQ DOWEIRD
|
||||
WEIRDONE LDY SELCTION
|
||||
JSR SELECT
|
||||
BYT 2+128,18,65,8
|
||||
ADR DRAWICON
|
||||
STY SELCTION
|
||||
BCS SELPROG
|
||||
;
|
||||
; Version requested?
|
||||
;
|
||||
TAX
|
||||
BMI >0
|
||||
;
|
||||
JSR CLRBOTM
|
||||
LDY SELCTION
|
||||
JSR JMPVECTS
|
||||
ADR RUNGE
|
||||
ADR RUNBE
|
||||
ADR RUNFE
|
||||
ADR RUNTM
|
||||
ADR RUNCM
|
||||
ADR RUNCA
|
||||
ADR RUNSE
|
||||
ADR EXIT
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
^0 JSR PRINT
|
||||
BYT PRCNTR,PRINVR
|
||||
.DA #PRLOC,140,#184
|
||||
BYT 'VERSION 1.2',CR
|
||||
BRK
|
||||
JMP WEIRDONE
|
||||
;
|
||||
CLRBOTM JSR PRINT
|
||||
BYT RTOSWITE,0,184,40,7,0
|
||||
RTS
|
||||
;-----------
|
||||
DOWEIRD BEQ DOWEIRD2
|
||||
;-----------
|
||||
;
|
||||
; Exit!
|
||||
;
|
||||
EXIT JSR PRINT
|
||||
BYT RTOSBLAK,1,31,38,152
|
||||
.DA #PRLOC,140,#80
|
||||
BYT PRCNTR
|
||||
BYT 'PLEASE INSERT ANOTHER DISK',CR
|
||||
BYT CR
|
||||
.DA #PRSTR,TXTAPRET
|
||||
BYT CR,0
|
||||
JSR ESCBACK
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BEQ >0
|
||||
JMP MAINMENU
|
||||
;
|
||||
^0 JSR DEVICERD
|
||||
BCS >1
|
||||
ASL
|
||||
BMI <0
|
||||
^1 JSR DEVICEOF
|
||||
JMP ($FFFC)
|
||||
;-----------
|
||||
;
|
||||
; Useless code for fun
|
||||
;
|
||||
DOWEIRD2 LDX #$00
|
||||
LDY #$BF
|
||||
^0 LDA YLO,X
|
||||
STA TMP0
|
||||
LDA YLO,Y
|
||||
STA YLO,X
|
||||
STA TMP2
|
||||
LDA TMP0
|
||||
STA YLO,Y
|
||||
;
|
||||
LDA YHI,X
|
||||
STA TMP1
|
||||
LDA YHI,Y
|
||||
STA YHI,X
|
||||
STA TMP3
|
||||
LDA TMP1
|
||||
STA YHI,Y
|
||||
;
|
||||
TYA
|
||||
PHA
|
||||
LDY #39
|
||||
^1 LDA (TMP0),Y
|
||||
PHA
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
PLA
|
||||
STA (TMP2),Y
|
||||
DEY
|
||||
BPL <1
|
||||
PLA
|
||||
TAY
|
||||
;
|
||||
DEY
|
||||
INX
|
||||
CPX #$60
|
||||
BLT <0
|
||||
JMP WEIRDONE
|
||||
;-----------
|
||||
;
|
||||
; Run the Creature Maker.
|
||||
;
|
||||
RUNCM LDY #6
|
||||
JSR BLOAD2
|
||||
BNE RUNCM
|
||||
LDA #6
|
||||
HEX 2C
|
||||
;
|
||||
; Run the Graphic editor.
|
||||
;
|
||||
RUNGE LDA #0
|
||||
HEX 2C
|
||||
;
|
||||
; Run Tile magic.
|
||||
;
|
||||
RUNTM LDA #3
|
||||
STA >9+1
|
||||
JSR LOADEDIT
|
||||
^0 LDY #3
|
||||
JSR BLOAD2
|
||||
BNE <0
|
||||
^9 JMP $4000
|
||||
;-----------
|
||||
;
|
||||
; Run the Border editor.
|
||||
;
|
||||
RUNBE LDY #4
|
||||
JSR BLOAD2
|
||||
BNE RUNBE
|
||||
JSR LOADSUPP
|
||||
JMP $4000
|
||||
;-----------
|
||||
;
|
||||
; Run the Font editor.
|
||||
;
|
||||
RUNFE JSR LOADEDIT
|
||||
^0 LDY #5
|
||||
JSR BLOAD2
|
||||
BNE <0
|
||||
JMP $6000
|
||||
;-----------
|
||||
;
|
||||
; Run the setup program.
|
||||
;
|
||||
RUNSE LDY #8
|
||||
JSR BLOAD2
|
||||
BNE RUNSE
|
||||
JMP $5800
|
||||
;-----------
|
||||
;
|
||||
; Run the calendar program
|
||||
;
|
||||
RUNCA LDY #7
|
||||
JSR BLOAD2
|
||||
BNE RUNCA
|
||||
JMP $4000
|
||||
;-----------
|
||||
;
|
||||
; Load stuff from disk:
|
||||
;
|
||||
LOADINIT JSR POLEKEY
|
||||
CMP #ESC
|
||||
BEQ >2
|
||||
;
|
||||
^0 JSR BLOAD
|
||||
BYT 'PRCOMS',0
|
||||
BNE <0
|
||||
;
|
||||
^1 JSR BLOAD
|
||||
BYT 'CONFIG',0
|
||||
BNE <1
|
||||
RTS
|
||||
;
|
||||
^2 JMP $1000
|
||||
;-----------
|
||||
;
|
||||
; Load MAINMENU icons
|
||||
;
|
||||
LOADICON LDY #0
|
||||
JSR BLOAD2
|
||||
BNE LOADICON
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Load EDIT routines
|
||||
;
|
||||
LOADEDIT LDY #2
|
||||
JSR BLOAD2
|
||||
BNE LOADEDIT
|
||||
;---
|
||||
;
|
||||
; Load the SUPP file, which is saved
|
||||
; onto data disks automatically by
|
||||
; the SAVEFILE routine.
|
||||
;
|
||||
LOADSUPP LDY #1
|
||||
JSR BLOAD3
|
||||
BNE LOADSUPP
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; BLOAD a file from the COMPANION
|
||||
; disk. If error and ESC is pressed,
|
||||
; then re-run the MAINMENU program.
|
||||
;
|
||||
BLOAD2 LDA #2
|
||||
HEX 2C
|
||||
BLOAD3 LDA #0
|
||||
STA TMP0
|
||||
STY TMP1
|
||||
LDA LPFLAGS,Y
|
||||
BMI >0
|
||||
CLC
|
||||
LDA #1
|
||||
JSR WAITCD
|
||||
BCS >1
|
||||
JSR PRINT
|
||||
BYT GOOBER,0
|
||||
^0 LDY TMP1
|
||||
LDA TMP0
|
||||
STA $B00D
|
||||
JMP LOADPROG
|
||||
^1 JMP MAINMENU
|
||||
;-----------
|
||||
;
|
||||
; Draw ICON on screen
|
||||
;
|
||||
DRAWICON LDA ICONADR,X
|
||||
STA RTOSPARM+4
|
||||
LDA ICONADR+1,X
|
||||
STA RTOSPARM+5
|
||||
LDX #3
|
||||
^0 LDA ICONLOC,X
|
||||
STA RTOSPARM,X
|
||||
DEX
|
||||
BPL <0
|
||||
LDA #$B1
|
||||
LDY #RTOSPARM+4
|
||||
JMP RTOS
|
||||
;
|
||||
ICONLOC BYT 21,ICONY,15,53
|
||||
;
|
||||
L = 15*53
|
||||
;
|
||||
ICONADR ADR ICONS
|
||||
ADR ICONS+L
|
||||
ADR ICONS+L*2
|
||||
ADR ICONS+L*3
|
||||
ADR ICONS+L*4
|
||||
ADR ICONS+L*5
|
||||
ADR ICONS+L*6
|
||||
ADR ICONS+L*7
|
||||
;-----------
|
||||
;
|
||||
; Show message at bottom of screen
|
||||
;
|
||||
SHOWBOTM LDA SELCTION
|
||||
BPL >0
|
||||
;
|
||||
; First time booting, so display
|
||||
; message
|
||||
;
|
||||
; Force SETUP
|
||||
;
|
||||
LDA #6
|
||||
STA SELCTION
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT PRSPC,10
|
||||
.DA #PRLOC,140,#150
|
||||
BYT 'WELCOME TO',CR
|
||||
.DA #PRSTR,TXTTPS
|
||||
BYT ' '
|
||||
.DA #PRSTR,TXTC
|
||||
BYT '!',CR
|
||||
.DA #PRSTR,TXTPRET
|
||||
BYT ' TO RUN SETUP',CR
|
||||
BRK
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Regular message
|
||||
;
|
||||
^0 JSR ARROWS
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#152
|
||||
BYT 'USE AND'
|
||||
.DA #PRSTR,TXTSRET,#CR
|
||||
BYT 'TO MAKE SELECTION. OR, USE',CR
|
||||
BYT 'MOUSE, JOYSTICK, OR KOALAPAD',CR
|
||||
BRK
|
||||
;---
|
||||
;
|
||||
; Draw either left/right arrows
|
||||
; or up/down arrows, depending on
|
||||
; machine type.
|
||||
;
|
||||
AROWX = 13
|
||||
AROWY = 152
|
||||
;
|
||||
ARROWS LDA $FA68
|
||||
CMP #$C0
|
||||
BEQ ARROW2E
|
||||
LDA $FBB3
|
||||
CMP #$06
|
||||
BEQ ARROW2E
|
||||
;---
|
||||
; LEFT
|
||||
JSR PICDRAW
|
||||
BYT AROWX,AROWY,1,6
|
||||
HEX 810C06C1060C
|
||||
; RIGHT
|
||||
JSR PICDRAW
|
||||
BYT AROWX+2,AROWY,1,6
|
||||
HEX 811830C13018
|
||||
RTS
|
||||
;---
|
||||
; DOWN
|
||||
ARROW2E JSR PICDRAW
|
||||
BYT AROWX,AROWY,1,7
|
||||
HEX 0808086B3E1C08
|
||||
; UP
|
||||
JSR PICDRAW
|
||||
BYT AROWX+2,AROWY,1,7
|
||||
HEX 081C3E6B080808
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Enter with Y=0-8 load file.
|
||||
; If 128k, then load from AUX memory,
|
||||
; if program isn't there yet, then
|
||||
; load from disk and transfer it.
|
||||
;
|
||||
LOADPROG STY LDPROG
|
||||
LDA #0
|
||||
STA LDPOINT
|
||||
LDX #$FF
|
||||
^0 DEY
|
||||
BMI >2
|
||||
^1 INX
|
||||
LDA FILEINFO,X
|
||||
BNE <1
|
||||
INX
|
||||
INX
|
||||
LDA FILEINFO,X
|
||||
CLC
|
||||
ADC LDPOINT
|
||||
STA LDPOINT
|
||||
BNE <0
|
||||
;
|
||||
; Modify BLOAD filename parameter
|
||||
;
|
||||
^2 LDY #$FF
|
||||
^3 INX
|
||||
INY
|
||||
LDA FILEINFO,X
|
||||
STA BLOADMOD,Y
|
||||
BNE <3
|
||||
LDA #$60
|
||||
STA BLOADMOD+1,Y
|
||||
;
|
||||
; Get starting/length info
|
||||
;
|
||||
LDA FILEINFO+1,X
|
||||
STA LDPADR
|
||||
LDA FILEINFO+2,X
|
||||
STA LDLENGTH
|
||||
;
|
||||
; Is this module already loaded?
|
||||
;
|
||||
LDY LDPROG
|
||||
LDA #1
|
||||
LDX LPFLAGS,Y
|
||||
BMI LPMOVE
|
||||
;
|
||||
; Since program isn't loaded, load it!
|
||||
;
|
||||
JSR BLOADPRO
|
||||
BNE >1
|
||||
BIT HAS128K
|
||||
BPL >0
|
||||
;
|
||||
; Move program into AUX memory
|
||||
;
|
||||
LDA #0
|
||||
JSR LPMOVE
|
||||
LDX LDPROG
|
||||
SEC
|
||||
ROR LPFLAGS,X
|
||||
;
|
||||
^0 LDA #0
|
||||
^1 RTS
|
||||
;---
|
||||
;
|
||||
; Move routine.
|
||||
;
|
||||
; Given A=0, MAIN->AUX
|
||||
; A=1, AUX->MAIN
|
||||
;
|
||||
; LDPROG = program address
|
||||
; LDPOINT = pointer into AUX table
|
||||
; LDLENGTH = length in 2k chunks
|
||||
;
|
||||
; Set ALTZP, init zpage, and move
|
||||
; routine down to $80
|
||||
;
|
||||
LPMOVE STA LDDIRECT
|
||||
;
|
||||
STA $C009
|
||||
LDX #LP80LEN-1
|
||||
^0 LDA LP80,X
|
||||
STA $80,X
|
||||
DEX
|
||||
BPL <0
|
||||
STA $C008
|
||||
;
|
||||
; Move the program
|
||||
;
|
||||
^1 LDY LDPOINT
|
||||
INC LDPOINT
|
||||
LDX LPADDR,Y
|
||||
LDY LDPADR
|
||||
TYA
|
||||
CLC
|
||||
ADC #8
|
||||
STA LDPADR
|
||||
;
|
||||
; X=AUX address, Y=program address
|
||||
;
|
||||
LDA LDDIRECT
|
||||
STA $C009
|
||||
STX TMP1
|
||||
STY TMP3
|
||||
BNE >2
|
||||
STY TMP1
|
||||
STX TMP3
|
||||
^2 LDY #0
|
||||
STY TMP0
|
||||
STY TMP2
|
||||
JSR $80
|
||||
STA $C008
|
||||
DEC LDLENGTH
|
||||
BNE <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Routine that sits at $0080
|
||||
;
|
||||
LP80 TAX
|
||||
STA $C002,X
|
||||
EOR #1
|
||||
TAX
|
||||
STA $C004,X
|
||||
LDX #8
|
||||
^0 LDA (TMP0),Y
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <0
|
||||
STA $C004
|
||||
STA $C002
|
||||
RTS
|
||||
LP80LEN = *-LP80
|
||||
;-----------
|
||||
;
|
||||
; 24x8k available
|
||||
;
|
||||
LPADDR HEX 4048505860687078
|
||||
HEX 80889098A0A8B0B8
|
||||
HEX D0D8E0E8F0F81018
|
||||
;-----------
|
||||
;
|
||||
; <filename>,0,<loadadr>,<2k pages>
|
||||
;
|
||||
FILEINFO BYT 'ICONS',0,$40,4
|
||||
BYT '[CD],A4096',0,$10,1
|
||||
BYT 'EDIT',0,$50,2
|
||||
BYT 'GREDIT',0,$40,2
|
||||
BYT 'BOEDIT',0,$40,3
|
||||
BYT 'FOEDIT',0,$60,3
|
||||
BYT 'CRDATA',0,$60,3
|
||||
BYT 'CALEN',0,$40,4
|
||||
BYT 'SETUP',0,$58,1
|
||||
;---
|
||||
;
|
||||
; If minus, then that program has
|
||||
; already been loaded.
|
||||
;
|
||||
LPFLAGS DFS 9,0
|
||||
;
|
||||
;---------------
|
||||
;
|
||||
; Font selection menus
|
||||
;
|
||||
FGY1 = 60
|
||||
FGY2 = 45
|
||||
FGY3 = FGY2-16
|
||||
;
|
||||
TXTCAF BYT 'CHOOSE A FONT:',0
|
||||
;-----------
|
||||
FGET0 BYT 'REFERENCE FONT',0
|
||||
FGET1 BYT 'FROM PRINT SHOP DISK',0
|
||||
BYT 'FROM COMPANION DISK',0
|
||||
BYT 'FROM OTHER DISK',0
|
||||
BYT 'NO FONT',0
|
||||
;
|
||||
; Get Menu selection Y=default
|
||||
;
|
||||
FGETMAIN STY >2+1
|
||||
LDY #FGET0
|
||||
LDA /FGET0
|
||||
BCS >0
|
||||
LDY #FGET1
|
||||
LDA /FGET1
|
||||
^0 STY >1+0
|
||||
STA >1+1
|
||||
;
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#FGY1
|
||||
.DA #PRSTR,TXTCAF,#CR
|
||||
BYT CR,CR,0
|
||||
;
|
||||
JSR PRINTGRP
|
||||
BYT PRCNTR,4
|
||||
^1 ADR $FFFF
|
||||
;
|
||||
^2 LDY #00
|
||||
JSR SELECT
|
||||
BYT 7,26,FGY1+23,4
|
||||
ADR RTS
|
||||
RTS RTS
|
||||
;-----------
|
||||
;
|
||||
; Get FONT from Print Shop disk
|
||||
;
|
||||
FGETPSD STY >0+1
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#FGY2
|
||||
.DA #PRSTR,TXTCAF,#CR
|
||||
BYT CR,CR
|
||||
BYT 'RSVP',CR
|
||||
BYT 'ALEXIA',CR
|
||||
BYT 'NEWS',CR
|
||||
BYT 'TECH',CR
|
||||
BYT 'PARTY',CR
|
||||
BYT 'BLOCK',CR
|
||||
BYT 'TYPEWRITER',CR
|
||||
BYT 'STENCIL',CR,0
|
||||
;
|
||||
^0 LDY #00
|
||||
JSR SELECT
|
||||
BYT 12,16,FGY2+23,8
|
||||
ADR RTS
|
||||
STY >9+1
|
||||
BCS >9
|
||||
;
|
||||
INY
|
||||
TYA
|
||||
ORA #'0'
|
||||
STA >1+1
|
||||
JSR CLS1
|
||||
SEC
|
||||
JSR WAITPSD
|
||||
BCS >9
|
||||
JSR BLOAD
|
||||
^1 BYT 'F1',0
|
||||
CLC
|
||||
BEQ >9
|
||||
LDA #8
|
||||
JSR ERROR
|
||||
SEC
|
||||
;
|
||||
^9 LDY #00
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Get FONT from Companion disk
|
||||
;
|
||||
FTEXT BYT 'FONT.',0
|
||||
;
|
||||
FGETCD STY >0+1
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#FGY3
|
||||
.DA #PRSTR,TXTCAF,#CR
|
||||
BYT CR,CR,0
|
||||
JSR PRINTGRP
|
||||
BYT PRCNTR,12
|
||||
ADR CDFONTS
|
||||
;
|
||||
^0 LDY #00
|
||||
JSR SELECT
|
||||
BYT 12,16,FGY3+23,12
|
||||
ADR RTS
|
||||
STY >9+1
|
||||
BCS >9
|
||||
LDX #$FF
|
||||
;
|
||||
; Find filename
|
||||
;
|
||||
^1 DEY
|
||||
BMI >3
|
||||
^2 INX
|
||||
LDA CDFONTS,X
|
||||
BNE <2
|
||||
BEQ <1
|
||||
;
|
||||
; Move filename to BLOAD name buffer
|
||||
;
|
||||
^3 LDY #0
|
||||
^4 LDA FTEXT,Y
|
||||
BEQ >5
|
||||
STA BLOADMOD,Y
|
||||
INY
|
||||
BNE <4
|
||||
;
|
||||
^5 INX
|
||||
INY
|
||||
LDA CDFONTS,X
|
||||
STA BLOADMOD-1,Y
|
||||
BNE <5
|
||||
LDA #$60
|
||||
STA BLOADMOD,Y
|
||||
;
|
||||
; Load the file
|
||||
;
|
||||
JSR CLS1
|
||||
^6 CLC
|
||||
LDA #1
|
||||
JSR WAITCD
|
||||
BCS >9
|
||||
JSR PRINT
|
||||
BYT GOOBER,0
|
||||
JSR BLOADPRO
|
||||
CLC
|
||||
BEQ >9
|
||||
LDA #8
|
||||
JSR ERROR
|
||||
SEC
|
||||
;
|
||||
^9 LDY #00
|
||||
RTS
|
||||
;
|
||||
;---
|
||||
;
|
||||
; Names of Companion Disk fonts
|
||||
;
|
||||
CDFONTS BYT 'BALLOON',0
|
||||
BYT 'OHIO',0
|
||||
BYT 'PLATFORM',0
|
||||
BYT 'DECO',0
|
||||
BYT 'ANGLE',0
|
||||
BYT 'LOWER CASE',0
|
||||
BYT 'ORIENT',0
|
||||
BYT 'CABARET',0
|
||||
BYT 'GATSBY',0
|
||||
BYT 'SALOON',0
|
||||
BYT 'SANDWICH',0
|
||||
BYT 'REPORTER',0
|
||||
;-----------
|
||||
;
|
||||
; BLOAD mod routine
|
||||
;
|
||||
BLOADPRO JSR BLOAD
|
||||
BLOADMOD:
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "O:HELLO",ORG
|
||||
END
|
|
@ -0,0 +1,145 @@
|
|||
NLS
|
||||
TTL "S:IPL"
|
||||
ORG = $4000
|
||||
;
|
||||
; The Print Shop Companion
|
||||
; Initial program loader
|
||||
;
|
||||
; Sets up: SUBPAK,SYSLIB2,HELLO
|
||||
;
|
||||
; also moves hires page to RAMcard
|
||||
;
|
||||
TEXT = $FB2F
|
||||
HOME = $FC58
|
||||
NORMAL = $FE84
|
||||
COUT = $FDED
|
||||
VTAB = $FB5B
|
||||
PR0 = $FE93
|
||||
IN0 = $FE89
|
||||
;
|
||||
SRCLO EPZ $3A
|
||||
SRCHI EPZ $3B
|
||||
DSTLO EPZ $3C
|
||||
DSTHI EPZ $3D
|
||||
LENLO EPZ $3E
|
||||
LENHI EPZ $3F
|
||||
;
|
||||
SP = $E000
|
||||
DEVICENW = SP+15
|
||||
;
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;
|
||||
JSR CHECK64K
|
||||
JSR MOVEROM
|
||||
JSR MOVEPROG
|
||||
JSR DEVICENW
|
||||
JMP $0800
|
||||
;-----------
|
||||
;
|
||||
; Move programs to their homes
|
||||
;
|
||||
MOVEPROG BIT $C083
|
||||
BIT $C083
|
||||
LDY #PROGRAMS
|
||||
LDA /PROGRAMS
|
||||
STY SRCLO
|
||||
STA SRCHI
|
||||
LDY #0
|
||||
;
|
||||
^0 JSR MOVEGET
|
||||
STA DSTLO
|
||||
JSR MOVEGET
|
||||
STA DSTHI
|
||||
ORA DSTLO
|
||||
BEQ MOVERTS
|
||||
JSR MOVEGET
|
||||
TAX
|
||||
JSR MOVEGET
|
||||
STA LENHI
|
||||
;
|
||||
^1 JSR MOVEGET
|
||||
STA (DSTLO),Y
|
||||
INC DSTLO
|
||||
BNE >2
|
||||
INC DSTHI
|
||||
^2 TXA
|
||||
BNE >3
|
||||
DEC LENHI
|
||||
^3 DEX
|
||||
BNE <1
|
||||
TXA
|
||||
ORA LENHI
|
||||
BNE <1
|
||||
BEQ <0
|
||||
;
|
||||
; Get a byte from program data
|
||||
;
|
||||
MOVEGET LDA (SRCLO),Y
|
||||
INC SRCLO
|
||||
BNE MOVERTS
|
||||
INC SRCHI
|
||||
MOVERTS RTS
|
||||
;-----------
|
||||
;
|
||||
; Check for 64k
|
||||
;
|
||||
CHECK64K BIT $C083
|
||||
BIT $C083
|
||||
LDX #0
|
||||
^0 STX $E000
|
||||
CPX $E000
|
||||
BNE >1
|
||||
INX
|
||||
BNE <0
|
||||
RTS
|
||||
;
|
||||
^1 BIT $C081
|
||||
JSR TEXT
|
||||
JSR HOME
|
||||
JSR NORMAL
|
||||
JSR PR0
|
||||
JSR IN0
|
||||
LDA #8
|
||||
JSR VTAB
|
||||
LDY #0
|
||||
^2 LDA TEXT64K,Y
|
||||
BEQ *
|
||||
JSR COUT
|
||||
CMP #$8D
|
||||
BNE >3
|
||||
LDA #7
|
||||
STA $24
|
||||
^3 INY
|
||||
BNE <2
|
||||
;
|
||||
; Need 64k message
|
||||
;
|
||||
TEXT64K BYT $8D
|
||||
BYT "THE PRINT SHOP COMPANION",$8D,$8D
|
||||
BYT " REQUIRES 64K OF MEMORY",0
|
||||
;-----------
|
||||
;
|
||||
; Move monitor ROM into RAMcard
|
||||
;
|
||||
MOVEROM LDY #$00
|
||||
LDA #$F8
|
||||
STY SRCLO
|
||||
STA SRCHI
|
||||
BIT $C081
|
||||
BIT $C081
|
||||
^0 LDA (SRCLO),Y
|
||||
STA (SRCLO),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC SRCHI
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Append programs here:
|
||||
;
|
||||
PROGRAMS:
|
||||
;
|
||||
USR "IPL",ORG
|
||||
END
|
|
@ -0,0 +1,907 @@
|
|||
NLS
|
||||
TTL "S:SETUP"
|
||||
NOG
|
||||
ORG = $5800
|
||||
;
|
||||
; 06/11/85
|
||||
; 10/03/85 last mod
|
||||
;
|
||||
; Print Shop Companion
|
||||
;
|
||||
; SETUP option, updates original
|
||||
; Print Shop disk to recognize
|
||||
; Companion disk and fixes a few bugs!
|
||||
; Also grabs PRCOMMS, CONFIG from
|
||||
; original Print Shop disk.
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
; Copyright 1985
|
||||
;
|
||||
TMP0 EPZ $F0
|
||||
TMP1 EPZ $F1
|
||||
TMP2 EPZ $F2
|
||||
TMP3 EPZ $F3
|
||||
;
|
||||
MAINMENU = $800
|
||||
;
|
||||
PRCOMS = $1800
|
||||
PRCOMLEN = 8
|
||||
;-----------
|
||||
;
|
||||
; Subroutine package:
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
PRINT = SP
|
||||
CLSCREEN = SP+3
|
||||
WITEBORD = SP+6
|
||||
ESCBACK = SP+9
|
||||
PICDRAW = SP+12
|
||||
;
|
||||
DEVICENW = SP+15
|
||||
DEVICEON = SP+18
|
||||
DEVICEOF = SP+21
|
||||
DEVICERD = SP+24
|
||||
DEVICEST = SP+27
|
||||
SCALING = SP+30
|
||||
;
|
||||
POLEBTN = SP+31
|
||||
POLEKEY = SP+34
|
||||
GETKEY = SP+37
|
||||
SELECT = SP+40
|
||||
;
|
||||
SETTYPE = SP+43
|
||||
GETFILE = SP+46
|
||||
SAVEFILE = SP+49
|
||||
TYPELEN = SP+52
|
||||
FLSTART = SP+53
|
||||
FLLENGTH = SP+55
|
||||
BLOAD = SP+57
|
||||
BSAVE = SP+60
|
||||
DOSCR = SP+63
|
||||
ERROR = SP+66
|
||||
;
|
||||
MUSIC = SP+69
|
||||
FLSHINIT = SP+72
|
||||
JMPVECTS = SP+75
|
||||
LINES = SP+78
|
||||
PARSE = SP+81
|
||||
SHOWAROW = SP+84
|
||||
NUMBER = SP+87
|
||||
WAITPSD = SP+90
|
||||
WAITCD = SP+93
|
||||
ANYKEY = SP+96
|
||||
CHKPRINT = SP+99
|
||||
BOOP = SP+102
|
||||
GETINIT = SP+105
|
||||
GETBYTE = SP+108
|
||||
INPUT = SP+111
|
||||
CLS1 = SP+114
|
||||
PRINTGRP = SP+117
|
||||
RTOS = SP+120
|
||||
SPACEBAR = SP+123
|
||||
GETPDISK = SP+126
|
||||
ESCMAIN = SP+129
|
||||
;
|
||||
WITE = $FF
|
||||
GRAY = $AA
|
||||
BLAK = $00
|
||||
;
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
GOOBER = 24
|
||||
;
|
||||
; Monitor routines:
|
||||
;
|
||||
RTS = $FF58
|
||||
;
|
||||
; SYSLIB
|
||||
;
|
||||
MENULAST = $95F5
|
||||
MENUOTHR = $95F6
|
||||
FIRSTIME = $95F7
|
||||
;-----------
|
||||
ESC = $1B
|
||||
;
|
||||
MENUTOP = 20
|
||||
MENU0Y = 70
|
||||
MENU1Y = 64
|
||||
MENU2Y = 72
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;
|
||||
START LDX #$FF
|
||||
TXS
|
||||
JSR WITEBORD
|
||||
JSR ESCBACK
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRCNTR,PRINVR
|
||||
.DA #PRLOC,140,#1
|
||||
BYT 'SETUP',CR,0
|
||||
;
|
||||
LDA FIRSTIME
|
||||
BNE >0
|
||||
JMP MENUFRST
|
||||
;
|
||||
^0 JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT PRVTAB,MENU0Y
|
||||
BYT 'MAKE A CHOICE:',CR
|
||||
BYT CR
|
||||
.DA #PRSTR,MENUTXT1,#CR
|
||||
.DA #PRSTR,MENUTXT2,#CR
|
||||
BYT 'GO TO MAIN MENU',CR
|
||||
BRK
|
||||
START2 JSR PRINT
|
||||
BYT PRVTAB,MENUTOP,0
|
||||
;
|
||||
^0 LDY #00
|
||||
SEL1 = *-1
|
||||
JSR SELECT
|
||||
BYT 3,34,MENU0Y+15,3
|
||||
ADR RTS
|
||||
BCS >2
|
||||
STY SEL1
|
||||
JSR CLS1
|
||||
JSR >1
|
||||
JMP START
|
||||
;
|
||||
^1 LDA #6
|
||||
STA MENULAST
|
||||
LDY SEL1
|
||||
JSR JMPVECTS
|
||||
ADR MENU1
|
||||
ADR MENU2
|
||||
ADR MAINMENU
|
||||
;
|
||||
^2 JSR ESCMAIN
|
||||
BCS START2
|
||||
;
|
||||
CLS3 JSR PRINT
|
||||
BYT RTOSBLAK,1,31,38,151,0
|
||||
RTS
|
||||
;-----------
|
||||
TXTTOU BYT 'THIS OPTION UPDATES',0
|
||||
TXTFYWU BYT 'FIRST YOU WILL UPDATE',0
|
||||
TXTNYWU BYT 'NEXT YOU WILL UPDATE',0
|
||||
TXTPS BYT 'PRINT SHOP',0
|
||||
TXTINFO BYT 'INFORMATION',0
|
||||
;-----------
|
||||
;
|
||||
; Borrow PRCOMMS and CONFIG from
|
||||
; original Print Shop disk and save
|
||||
; them on the Companion disk.
|
||||
;
|
||||
MENUTXT1 BYT 'UPDATE '
|
||||
CDSTXT BYT 'COMPANION DISK SETUP',0
|
||||
;
|
||||
MENU1A LDX #TXTNYWU
|
||||
LDA /TXTNYWU
|
||||
STX >0+1
|
||||
STA >0+2
|
||||
;
|
||||
MENU1 JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,MENUTXT1,#CR
|
||||
BYT PRVTAB,MENU1Y
|
||||
^0 .DA #PRSTR,TXTTOU,' THE',#CR
|
||||
BYT 'COMPANION DISK WITH THE SETUP',CR
|
||||
.DA #PRSTR,TXTINFO
|
||||
BYT ' FROM THE ORIGINAL',CR
|
||||
.DA #PRSTR,TXTPS,'. THIS INCLUDES',#CR
|
||||
BYT 'PRINTER, INTERFACE AND DISK',CR
|
||||
BYT 'DRIVE '
|
||||
.DA #PRSTR,TXTINFO,'.',#CR
|
||||
BRK
|
||||
JSR ANYKEY
|
||||
CMP #ESC
|
||||
BEQ MENU1DON
|
||||
;
|
||||
JSR CLS3
|
||||
LDA #$80
|
||||
MENU1FLG = *-1
|
||||
ASL
|
||||
^0 JSR WAITPSD2
|
||||
BCS MENU1DON
|
||||
JSR BLOAD
|
||||
BYT 'PRCOMS,D1',0
|
||||
JSR ERROR?
|
||||
BCS <0
|
||||
;
|
||||
JSR FXPRCOMS
|
||||
;
|
||||
JSR BLOAD
|
||||
BYT 'CONFIG',0
|
||||
JSR ERROR?
|
||||
BCS <0
|
||||
;
|
||||
; Has the SETUP program been run on
|
||||
; the original Print Shop?
|
||||
;
|
||||
LDA FIRSTIME
|
||||
BEQ >2
|
||||
;
|
||||
LDA #0
|
||||
STA MENULAST
|
||||
;---
|
||||
SEC
|
||||
^1 JSR WAITCD2
|
||||
BCS <0
|
||||
JSR BSAVE
|
||||
BYT 'PRCOMS,A$1800,L$800',0
|
||||
JSR ERROR?
|
||||
BCS <1
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'CONFIG,A$95F0,L$10',0
|
||||
JSR ERROR?
|
||||
BCS <1
|
||||
;
|
||||
MENU1DON RTS
|
||||
;---
|
||||
;
|
||||
; Setup was never run on the original
|
||||
; Print Shop.
|
||||
;
|
||||
^2 JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#68
|
||||
BYT 'YOU MUST FIRST RUN SETUP',CR
|
||||
BYT CR
|
||||
BYT 'ON YOUR '
|
||||
.DA #PRSTR,TXTPS
|
||||
BYT ' DISK.',CR
|
||||
BRK
|
||||
JSR ANYKEY
|
||||
LDA #7
|
||||
STA MENULAST
|
||||
JMP MAINMENU
|
||||
;-----------
|
||||
;
|
||||
; Scan through PRCOMS file
|
||||
; and change all references to
|
||||
; the $9600 page to $8900.
|
||||
;
|
||||
; Uses monitor routine $F88C
|
||||
;
|
||||
; Given: X=0, $3A.3B pointing to data
|
||||
;
|
||||
; Return: $2F=length of instrucion-1
|
||||
;
|
||||
FXPRCOMS LDY #PRCOMS
|
||||
LDA /PRCOMS
|
||||
STY $3A
|
||||
STA $3B
|
||||
LDA #PRCOMLEN
|
||||
STA TMP0
|
||||
^0 LDX #0
|
||||
LDA ($3A,X)
|
||||
JSR $F88E
|
||||
LDY $2F
|
||||
CPY #2
|
||||
BNE >2
|
||||
LDA ($3A),Y
|
||||
CMP #$96
|
||||
BNE >2
|
||||
;
|
||||
; Now check for appropriate
|
||||
; instructions, JSR, JMP or
|
||||
; LDA $FFFF,Y
|
||||
;
|
||||
LDY #0
|
||||
LDA ($3A),Y
|
||||
CMP #$20
|
||||
BEQ >1
|
||||
CMP #$4C
|
||||
BEQ >1
|
||||
CMP #$B9
|
||||
BNE >2
|
||||
;
|
||||
; LDA $890E,Y
|
||||
; There is at least one version
|
||||
; of the Print Shop that doesn't
|
||||
; use the LDA $960E,Y table but
|
||||
; one at $9608,Y !!!
|
||||
;
|
||||
INY
|
||||
LDA #$0E
|
||||
STA ($3A),Y
|
||||
;
|
||||
; Change page reference to $8900
|
||||
;
|
||||
^1 LDY #2
|
||||
LDA #$89
|
||||
STA ($3A),Y
|
||||
;
|
||||
^2 TYA
|
||||
SEC
|
||||
ADC $3A
|
||||
STA $3A
|
||||
BCC <0
|
||||
INC $3B
|
||||
DEC TMP0
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Update original Print Shop disk to
|
||||
; recognize "FROM OTHER DISK" for
|
||||
; borders and fonts, also fix a few
|
||||
; bugs associated with "FROM OTHER
|
||||
; DISK"
|
||||
;
|
||||
MENUTXT2 BYT 'UPDATE PRINT SHOP DISK',0
|
||||
;
|
||||
MENU2A LDX #TXTFYWU
|
||||
LDA /TXTFYWU
|
||||
STX >0+1
|
||||
STA >0+2
|
||||
;
|
||||
MENU2 JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,MENUTXT2,#CR
|
||||
BYT PRVTAB,MENU2Y
|
||||
^0 .DA #PRSTR,TXTTOU,' YOUR',#CR
|
||||
.DA #PRSTR,TXTPS
|
||||
BYT ' DISK TO RECOGNIZE',CR
|
||||
BYT 'BORDERS AND FONTS',CR
|
||||
BYT 'FROM OTHER DISKS',CR,0
|
||||
JSR ANYKEY
|
||||
CMP #ESC
|
||||
BEQ >0
|
||||
;
|
||||
JSR M2MODS
|
||||
;
|
||||
^0 RTS
|
||||
;-----------
|
||||
;
|
||||
; Make changes to PRINT SHOP files
|
||||
;
|
||||
M2MODS SEC
|
||||
^0 JSR WAITPSD2
|
||||
BCS M2MODS2
|
||||
;
|
||||
; Make sure Print Shop is checked
|
||||
; for protection
|
||||
;
|
||||
LDA #8
|
||||
^1 PHA
|
||||
JSR GOOBERDO
|
||||
PLA
|
||||
SEC
|
||||
SBC #1
|
||||
BNE <1
|
||||
;
|
||||
JSR FXCONFIG
|
||||
BCS <0
|
||||
JSR FXHELLO
|
||||
BCS <0
|
||||
JSR FXMENLIB
|
||||
BCS <0
|
||||
JSR FXMENUS1
|
||||
BCS <0
|
||||
JSR FXMENUS5
|
||||
BCS <0
|
||||
JSR FXDRAW3
|
||||
BCS <0
|
||||
;
|
||||
M2MODS2 RTS
|
||||
;-----------
|
||||
;
|
||||
; "HELLO" file
|
||||
;
|
||||
FXHELLO JSR SWAP800
|
||||
JSR BLOAD
|
||||
BYT 'HELLO',0
|
||||
JSR ERROR?
|
||||
BCS SWAP800
|
||||
;
|
||||
; Fix bug with printer cards that
|
||||
; use $C800 space. If any other
|
||||
; card is using that space, then
|
||||
; the PRCOMS will crash.
|
||||
;
|
||||
LDY #CFFFLEN-1
|
||||
^0 LDA CFFFMOD,Y
|
||||
STA $83D,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
; FONT from other disk bug, was
|
||||
; LDA, should have been LDX
|
||||
;
|
||||
LDA #$A2
|
||||
STA $D58
|
||||
;
|
||||
; Move $1800 bytes, not $1700
|
||||
;
|
||||
LDA #$18
|
||||
STA $D74
|
||||
;
|
||||
; <ESC> pressed when asking for
|
||||
; DATA DISK, didn't clear screen
|
||||
;
|
||||
LDA #$97
|
||||
STA $BBB
|
||||
;
|
||||
; New routine to get SUPP file
|
||||
;
|
||||
LDY #SUPPFIXL-1
|
||||
^0 LDA SUPPFIX,Y
|
||||
STA $BC0,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
; New text for supplemental disk
|
||||
;
|
||||
LDY #SUPPTXTL-1
|
||||
^0 LDA SUPPTEXT,Y
|
||||
STA $C28,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
LDY #SUPPTX2L-1
|
||||
^1 LDA SUPPTXT2,Y
|
||||
STA $C62,Y
|
||||
DEY
|
||||
BPL <1
|
||||
;
|
||||
LDA #$3B
|
||||
STA $BA9
|
||||
;
|
||||
; Change SUPP filename to [CD]
|
||||
;
|
||||
LDY #3
|
||||
^0 LDA SUPPNAME,Y
|
||||
STA $CA9,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'HELLO,A$800,L$800',0
|
||||
JSR ERROR?
|
||||
;
|
||||
SWAP800 LDA #8
|
||||
JMP SWAP
|
||||
;---
|
||||
;
|
||||
; Hit $CFFF when booting
|
||||
;
|
||||
CFFFMOD LDA $CFFF
|
||||
LDA $C000
|
||||
CMP #$9B
|
||||
BNE *+5
|
||||
CFFFLEN = *-CFFFMOD
|
||||
;
|
||||
; Replacement text for
|
||||
; "SUPPLEMENTAL DISK"
|
||||
;
|
||||
SUPPTEXT BYT 'DATA DISK IN '
|
||||
BYT 'DRIVE 2'
|
||||
DFS 8,$20
|
||||
BYT 0
|
||||
SUPPTXTL = *-SUPPTEXT
|
||||
;
|
||||
SUPPTXT2 BYT ' DATA DISK '
|
||||
BYT 0,0
|
||||
SUPPTX2L = *-SUPPTXT2
|
||||
;
|
||||
SUPPNAME BYT '[CD]'
|
||||
;
|
||||
; Change to SUPP routine
|
||||
;
|
||||
SUPPFIX LDA #0
|
||||
STA $B00D
|
||||
LDX #$A9
|
||||
LDY #$0C
|
||||
JSR $0CD2
|
||||
BEQ >0
|
||||
JSR $B53
|
||||
LDX #$9D
|
||||
LDY #$0C
|
||||
JSR $8E06
|
||||
JSR $8005
|
||||
JMP $0B8E
|
||||
^0 LDA $CB1
|
||||
JSR $6300
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
SUPPFIXL = *-SUPPFIX
|
||||
;-----------
|
||||
;
|
||||
; "MENULIB" file
|
||||
;
|
||||
FXMENLIB JSR BLOAD
|
||||
BYT 'MENULIB',0
|
||||
JSR ERROR?
|
||||
BCS >9
|
||||
;
|
||||
; Better way of checking for 16k
|
||||
; RAMcard. Old one killed contents
|
||||
;
|
||||
LDY #RMCHKLEN-1
|
||||
^0 LDA RMCHK,Y
|
||||
STA $78D6,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
; Enable <ESC> to work during
|
||||
; CATALOGs!!!
|
||||
;
|
||||
LDY #$E0
|
||||
LDA #$81
|
||||
STY $80C1
|
||||
STA $80C2
|
||||
LDY #PAKMSG2L-1
|
||||
^1 LDA PAKMSG2,Y
|
||||
STA $81E0,Y
|
||||
DEY
|
||||
BPL <1
|
||||
;
|
||||
; Fix PSDCHK bug which causes
|
||||
; DISK ERROR if you try to use
|
||||
; COMPANION disk as a graphic
|
||||
; data disk.
|
||||
;
|
||||
LDY #PSDCHKL-1
|
||||
^0 LDA PSDCHK,Y
|
||||
STA $77D9,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'MENULIB,A$6000,L$21F8',0
|
||||
JSR ERROR?
|
||||
;
|
||||
^9 RTS
|
||||
;---
|
||||
;
|
||||
; New RAMcard check routine
|
||||
;
|
||||
RMCHK LDA $C083
|
||||
LDA $C083
|
||||
LDY $D000
|
||||
LDX #0
|
||||
^0 STX $D000
|
||||
CPX $D000
|
||||
BNE >1
|
||||
INX
|
||||
BNE <0
|
||||
^1 STY $D000
|
||||
STA $C082
|
||||
RTS
|
||||
RMCHKLEN = *-RMCHK
|
||||
;---
|
||||
;
|
||||
; Patch to allow ESC exit
|
||||
; from CATALOG
|
||||
;
|
||||
PAKMSG2 JSR $80F4
|
||||
AND #$7F
|
||||
CMP #ESC
|
||||
BNE >0
|
||||
PLA
|
||||
PLA
|
||||
^0 RTS
|
||||
PAKMSG2L = *-PAKMSG2
|
||||
;---
|
||||
;
|
||||
; Correct error in PSDCHK which
|
||||
; returned SEC for any data disk
|
||||
; that had a 3 or greater at loc
|
||||
; TS(17,0) offset $FF
|
||||
;
|
||||
;
|
||||
PSDCHK LDA #0
|
||||
STA $B00D
|
||||
SEC
|
||||
ROL
|
||||
PSDCHKL = *-PSDCHK
|
||||
;-----------
|
||||
;
|
||||
; "CONFIG" file
|
||||
;
|
||||
FXCONFIG JSR BLOAD
|
||||
BYT 'CONFIG,A$55F0',0
|
||||
JSR ERROR?
|
||||
BCS >0
|
||||
;
|
||||
; Enable FROM OTHER DISK messages
|
||||
;
|
||||
LDA MENUOTHR-$4000
|
||||
CMP #4
|
||||
BGE >1
|
||||
LDA #3
|
||||
STA MENUOTHR-$4000
|
||||
;
|
||||
LDY #15
|
||||
^0 LDA $55F0,Y
|
||||
STA $95F0,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'CONFIG,A$95F0,L16',0
|
||||
JSR ERROR?
|
||||
;
|
||||
^0 RTS
|
||||
;---
|
||||
;
|
||||
; Don't update this Print Shop
|
||||
;
|
||||
^1 JSR CLS3
|
||||
JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#MENU2Y+8
|
||||
BYT 'THIS '
|
||||
.DA #PRSTR,TXTPS
|
||||
BYT ' DISK DOES',CR
|
||||
BYT 'NOT NEED TO BE UPDATED.',CR
|
||||
BRK
|
||||
JSR ANYKEY
|
||||
PLA
|
||||
PLA
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
FXMENUS1 JSR BLOAD
|
||||
BYT 'MENUS1',0
|
||||
JSR ERROR?
|
||||
BCS >9
|
||||
;
|
||||
; Fix bug in greeting card when
|
||||
; using two different fonts from
|
||||
; other disk, edit window got
|
||||
; wrong information after printing
|
||||
; and backing up with <ESC>
|
||||
;
|
||||
LDX #$E0
|
||||
LDY #$54
|
||||
STX $4AD4
|
||||
STY $4AD5
|
||||
;
|
||||
LDY #MEN1FLEN-1
|
||||
^0 LDA MENU1FIX,Y
|
||||
STA $54E0,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'MENUS1,A$4000,L$17F8',0
|
||||
JSR ERROR?
|
||||
;
|
||||
^9 RTS
|
||||
;---
|
||||
MENU1FIX LDA #$60
|
||||
STA $D6F
|
||||
JSR $D27
|
||||
LDA #$A9
|
||||
STA $D6F
|
||||
LDA $C082
|
||||
JMP $4204
|
||||
MEN1FLEN = *-MENU1FIX
|
||||
;-----------
|
||||
;
|
||||
; "MENUS5" files
|
||||
;
|
||||
FXMENUS5 JSR SWAP1000
|
||||
;
|
||||
JSR BLOAD
|
||||
BYT 'MENUS5',0
|
||||
JSR ERROR?
|
||||
BCS SWAP1000
|
||||
;
|
||||
; Screen Magic Font bug, didn't
|
||||
; get parameters in the correct
|
||||
; order
|
||||
;
|
||||
LDY #SMFIXLEN-1
|
||||
^0 LDA SMFIX,Y
|
||||
STA $154A,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'MENUS5,A$1000,L$DF8',0
|
||||
JSR ERROR?
|
||||
;
|
||||
SWAP1000 LDA #$10
|
||||
JMP SWAP
|
||||
;
|
||||
; Screen Magic patch
|
||||
;
|
||||
SMFIX:
|
||||
TEXT2 = *-$21
|
||||
;
|
||||
LDA $81F
|
||||
STA $1BC4
|
||||
LDA $820
|
||||
STA $1BB2
|
||||
LDA $821
|
||||
STA $1BBB
|
||||
LDX $85C0
|
||||
DEX
|
||||
LDA $1BBC,X
|
||||
STA $7904
|
||||
LDA $15AB,X
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
SEC
|
||||
SBC $15AB,X
|
||||
STA $7905
|
||||
LDA #01
|
||||
STA $7906
|
||||
JSR $7900
|
||||
DEC $7906
|
||||
LDA $83FF
|
||||
CMP #$1B
|
||||
BEQ TEXT2
|
||||
JSR $7016
|
||||
LDA $85C0
|
||||
JSR $810
|
||||
SMFIXLEN = *-SMFIX
|
||||
;-----------
|
||||
;
|
||||
; "DRAW3" file (LETTERHEAD)
|
||||
;
|
||||
FXDRAW3 JSR BLOAD
|
||||
BYT 'DRAW3',0
|
||||
JSR ERROR?
|
||||
BCS >9
|
||||
;
|
||||
; Letterhead draw enhancement.
|
||||
;
|
||||
LDX #$A2
|
||||
LDA #$00
|
||||
STX $7B66
|
||||
STA $7B67
|
||||
LDX #$4C
|
||||
LDY #$D1
|
||||
LDA #$7C
|
||||
STX $7B68
|
||||
STY $7B69
|
||||
STA $7B6A
|
||||
;
|
||||
LDY #LHDRWLEN-1
|
||||
^0 LDA LHDRWFIX,Y
|
||||
STA $7CD1,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JSR BSAVE
|
||||
BYT 'DRAW3,A$7800,L$4F8',0
|
||||
JSR ERROR?
|
||||
;
|
||||
^9 RTS
|
||||
;
|
||||
; This routine enhances the
|
||||
; Letterhead draw routine by
|
||||
; automatically doubling fonts
|
||||
; that are small enough to be
|
||||
; doubled.
|
||||
;
|
||||
LHDRWFIX LDA $87C0
|
||||
CMP #7
|
||||
BLT >3
|
||||
CMP #10
|
||||
BNE >2
|
||||
LDY #'Z'-$20
|
||||
^0 CPY #$20
|
||||
BEQ >1
|
||||
LDA $603B,Y
|
||||
CMP #19+1
|
||||
BGE >3
|
||||
^1 DEY
|
||||
BPL <0
|
||||
^2 INX
|
||||
^3 STX $8A0B
|
||||
RTS
|
||||
LHDRWLEN = *-LHDRWFIX
|
||||
;-----------
|
||||
;
|
||||
; Enter with A= DOS error code
|
||||
;
|
||||
ERROR? BNE >0
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^0 JSR ERROR
|
||||
SEC
|
||||
RTS
|
||||
;-----------
|
||||
WAITPSD2 JSR WAITPSD
|
||||
^0 BCS >1
|
||||
GOOBERDO JSR PRINT
|
||||
BYT GOOBER,0
|
||||
^1 RTS
|
||||
;
|
||||
WAITCD2 LDA #1
|
||||
JSR WAITCD
|
||||
BCC <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Swap memory given A=page
|
||||
;
|
||||
; Swaps 16 pages with $6000
|
||||
;
|
||||
SWAP LDX #$10
|
||||
LDY #0
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDA #$60
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
;
|
||||
^0 LDA (TMP0),Y
|
||||
PHA
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
PLA
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Update Print Shop and Companion
|
||||
; for the first time.
|
||||
;
|
||||
MENUFRST LSR MENU1FLG
|
||||
LDA #1
|
||||
JSR MENUF
|
||||
LDA #0
|
||||
JSR MENUF
|
||||
JMP MAINMENU
|
||||
;
|
||||
MENUF PHA
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#MENUTOP
|
||||
BRK
|
||||
PLA
|
||||
TAY
|
||||
JSR >1
|
||||
BCC >0
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK,1,160,38,23,0
|
||||
JSR ESCMAIN
|
||||
PLA
|
||||
PLA
|
||||
BCS MENUFRST
|
||||
^0 RTS
|
||||
;
|
||||
^1 JSR JMPVECTS
|
||||
ADR MENU1A
|
||||
ADR MENU2A
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "SETUP,S4",ORG
|
||||
END
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:SUBPAK
|
||||
ICL "S:SUBPAK1"
|
|
@ -0,0 +1,212 @@
|
|||
TTL "S:SUBPAK"
|
||||
; S:SUBPAK1
|
||||
NOG
|
||||
ORG = $E000
|
||||
OBJ = $800
|
||||
;
|
||||
; 03/11/85
|
||||
; 08/23/85 last mod
|
||||
;
|
||||
; The Print Shop Companion Disk
|
||||
; Subroutine Package
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
;------------
|
||||
;
|
||||
; Temp z-page
|
||||
;
|
||||
FLASHLO EPZ $4E
|
||||
FLASHHI EPZ $4F
|
||||
;
|
||||
TMP EPZ $F0
|
||||
TMP0 EPZ TMP
|
||||
TMP1 EPZ TMP+1
|
||||
TMP2 EPZ TMP+2
|
||||
TMP3 EPZ TMP+3
|
||||
TMP4 EPZ TMP+4
|
||||
TMP5 EPZ TMP+5
|
||||
;
|
||||
TMPLO EPZ TMP+6
|
||||
TMPHI EPZ TMP+7
|
||||
HIRES EPZ TMP+8
|
||||
;
|
||||
; For input device only!
|
||||
;
|
||||
DTMP0 EPZ TMP+10
|
||||
DTMP1 EPZ TMP+11
|
||||
DTMPLO EPZ TMP+12
|
||||
DTMPHI EPZ TMP+13
|
||||
;-----------
|
||||
;
|
||||
; Absolute references:
|
||||
;
|
||||
; Printer routines
|
||||
;
|
||||
PT = $1800
|
||||
;
|
||||
PTCOUT = PT
|
||||
PTCRLF = PT+3
|
||||
PTSENDGC = PT+6
|
||||
PTGCOUT = PT+9
|
||||
;
|
||||
PRINBUFF = $BB00
|
||||
SECTBUFF = $8400
|
||||
;
|
||||
MAINMENU = $0800
|
||||
;
|
||||
DATADRIV = $95F4
|
||||
MENULAST = $95F5
|
||||
CALENDAR = 5
|
||||
CHEKPROT = $BCE0
|
||||
;
|
||||
; SYSLIB routines
|
||||
;
|
||||
STROUT = $8A00
|
||||
SPARM = STROUT+3
|
||||
STRGET = $8E03
|
||||
;
|
||||
; SYSLIB tables
|
||||
;
|
||||
YBASELO = $91C0
|
||||
YBASEHI = $9100
|
||||
XBYTEOFF = $9398
|
||||
XBITS = $94B0
|
||||
SYSFONT = $8500
|
||||
FLIPPER = $9080
|
||||
;
|
||||
; Monitor routines
|
||||
;
|
||||
WAIT = $FCA8
|
||||
CROUT = $FD8E
|
||||
RTS = $FF58
|
||||
SAVEREGS = $FF4A
|
||||
RESTREGS = $FF3F
|
||||
;
|
||||
; Variables
|
||||
;
|
||||
MAXFLEN = 15
|
||||
ESC = $1B
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ OBJ
|
||||
;-----------
|
||||
; Screen output routines:
|
||||
;
|
||||
JMP PRINT
|
||||
JMP CLSCREEN
|
||||
JMP WITEBORD
|
||||
JMP ESCBACK
|
||||
JMP PICDRAW
|
||||
;
|
||||
; Device input routines:
|
||||
;
|
||||
JMP DEVICENW
|
||||
DEVMODS:
|
||||
DEVICEON JMP DEVICEON
|
||||
DEVICEOF JMP DEVICEOF
|
||||
DEVICERD JMP DEVICERD
|
||||
DEVICEST JMP DEVICEST
|
||||
SCALING HEX 00
|
||||
;
|
||||
; Keyboard routines:
|
||||
;
|
||||
JMP POLEBTN
|
||||
JMP POLEKEY
|
||||
JMP GETKEY
|
||||
JMP SELECT
|
||||
;
|
||||
; Load/Save routines:
|
||||
;
|
||||
JMP SETTYPE
|
||||
JMP GETFILE
|
||||
JMP SAVEFILE
|
||||
TYPELEN HEX 00
|
||||
FLSTART ADR 0
|
||||
FLLENGTH ADR 0
|
||||
;
|
||||
JMP BLOAD
|
||||
JMP BSAVE
|
||||
JMP DOSCR
|
||||
JMP ERROR
|
||||
;
|
||||
; Miscellaneous routines:
|
||||
;
|
||||
JMP MUSIC
|
||||
JMP FLSHINIT
|
||||
JMP JMPVECTS
|
||||
JMP LINES
|
||||
JMP PARSE
|
||||
JMP SHOWAROW
|
||||
JMP NUMBER
|
||||
JMP WAITPSD
|
||||
JMP WAITCD
|
||||
JMP ANYKEY
|
||||
JMP CHKPRINT
|
||||
JMP BOOP
|
||||
JMP GETINIT
|
||||
JMP GETBYTE
|
||||
JMP INPUT
|
||||
JMP CLS1
|
||||
JMP PRINTGRP
|
||||
JMP RTOS
|
||||
JMP SPACEBAR
|
||||
JMP GETPDISK
|
||||
JMP ESCMAIN
|
||||
JMP TESTPAPR
|
||||
JMP GETANUMB
|
||||
JMP ANYKEY2
|
||||
JMP DEVICECH
|
||||
;-----------
|
||||
;
|
||||
; Make sure that the following
|
||||
; routines don't cross page
|
||||
; boundaries.
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Single tone error bell
|
||||
;
|
||||
BOOP PHP
|
||||
SEI
|
||||
LDY #$20
|
||||
^0 BIT $C030
|
||||
LDA #$18
|
||||
JSR WAIT
|
||||
DEY
|
||||
BNE <0
|
||||
PLP
|
||||
RTS
|
||||
;
|
||||
; Error Music
|
||||
;
|
||||
MUSIC PHP
|
||||
SEI
|
||||
LDY #4
|
||||
^0 STY TMP0
|
||||
LDA MUSICFRQ,Y
|
||||
STA >1+1
|
||||
LDA MUSICDUR,Y
|
||||
^1 LDX #00
|
||||
^2 INY
|
||||
BNE >3
|
||||
SBC #1
|
||||
BMI >4
|
||||
^3 DEX
|
||||
BNE <2
|
||||
LDX $C030
|
||||
JMP <1
|
||||
^4 LDY TMP0
|
||||
DEY
|
||||
BPL <0
|
||||
PLP
|
||||
RTS
|
||||
;
|
||||
MUSICDUR HEX 6030301818
|
||||
MUSICFRQ HEX 5E4C807280
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:SUBPAK2"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,898 @@
|
|||
;
|
||||
; S:SUBPAK3
|
||||
;
|
||||
; PRINT routine
|
||||
;
|
||||
PRDONE = 0
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
PRPIC = 19
|
||||
PRRTAB = 20
|
||||
PRRTAB2 = 21
|
||||
PRKERN = 22
|
||||
RTOSINV = 23
|
||||
GOOBER = 24
|
||||
;
|
||||
PRINT JSR GETINIT
|
||||
JSR PRZZNORM
|
||||
JSR PRZZLEFT
|
||||
JSR PRZZSMAL
|
||||
LDA #8
|
||||
STA PRNTYINC
|
||||
LDA #2
|
||||
STA SPARM+7
|
||||
;
|
||||
PRINT1 LDX #0
|
||||
PRINT2 JSR GETBYTE
|
||||
CMP #' '
|
||||
BLT PRINT3
|
||||
STA PRINBUFF,X
|
||||
INX
|
||||
BNE PRINT2
|
||||
;
|
||||
PRINT3 ASL
|
||||
TAY
|
||||
LDA PRINT5,Y
|
||||
STA PRINT4+1
|
||||
LDA PRINT5+1,Y
|
||||
STA PRINT4+2
|
||||
CLC
|
||||
PRINT4 JSR $FFFF
|
||||
BCC PRINT2
|
||||
BCS PRINT1
|
||||
;
|
||||
; Addresses of print options
|
||||
;
|
||||
PRINT5 ADR PRZZDONE
|
||||
ADR PRZZNORM
|
||||
ADR PRZZINVR
|
||||
ADR PRZZLEFT
|
||||
ADR PRZZRITE
|
||||
ADR PRZZCNTR
|
||||
ADR PRZZLOC
|
||||
ADR PRZZSMAL
|
||||
ADR PRZZBIG
|
||||
ADR PRZZSTR
|
||||
ADR PRZZSPC
|
||||
ADR PRZZHTAB
|
||||
ADR PRZZVTAB
|
||||
ADR PRZZCR
|
||||
ADR PRZZNOCR
|
||||
ADR PRZZBLAK
|
||||
ADR PRZZWITE
|
||||
ADR PRZZANY
|
||||
ADR PRZZCSPC
|
||||
ADR PICDRAW2
|
||||
ADR PRZZRTAB
|
||||
ADR PRZZRTB2
|
||||
ADR PRZZKERN
|
||||
ADR PRZZRINV
|
||||
ADR GOOBER1
|
||||
;
|
||||
PRZZDONE PLA
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
PRZZNORM LDA #2
|
||||
HEX 2C
|
||||
PRZZINVR LDA #3
|
||||
STA SPARM+0
|
||||
RTS
|
||||
;
|
||||
PRZZLEFT LDA #0
|
||||
HEX 2C
|
||||
PRZZRITE LDA #1
|
||||
HEX 2C
|
||||
PRZZCNTR LDA #2
|
||||
STA SPARM+1
|
||||
RTS
|
||||
;
|
||||
PRZZHTAB JSR GETBYTE
|
||||
STA SPARM+2
|
||||
STA PRNTXLO
|
||||
JSR GETBYTE
|
||||
STA SPARM+3
|
||||
STA PRNTXHI
|
||||
RTS
|
||||
;
|
||||
PRZZLOC JSR PRZZHTAB
|
||||
PRZZVTAB JSR GETBYTE
|
||||
STA SPARM+4
|
||||
RTS
|
||||
;
|
||||
PRZZCSPC JSR GETBYTE
|
||||
STA SPARM+7
|
||||
RTS
|
||||
;
|
||||
PRZZSMAL LDA #0
|
||||
HEX 2C
|
||||
PRZZBIG LDA #1
|
||||
STA SPARM+8
|
||||
RTS
|
||||
;
|
||||
PRZZKERN JSR GETBYTE
|
||||
STA SPARM+11
|
||||
RTS
|
||||
;
|
||||
PRZZSTR JSR GETBYTE
|
||||
STA >0+1
|
||||
JSR GETBYTE
|
||||
STA >0+2
|
||||
LDY #0
|
||||
^0 LDA $FFFF,Y
|
||||
BEQ >2
|
||||
CMP #$20
|
||||
BLT >1
|
||||
STA PRINBUFF,X
|
||||
INX
|
||||
^1 INY
|
||||
BNE <0
|
||||
;
|
||||
PRZZSPC JSR GETBYTE
|
||||
STA PRNTYINC
|
||||
^2 CLC
|
||||
RTS
|
||||
;
|
||||
PRZZRTAB JSR PRZZNOCR
|
||||
JSR GETBYTE
|
||||
CLC
|
||||
ADC PRNTXLO
|
||||
STA SPARM+2
|
||||
LDA PRNTXHI
|
||||
ADC #0
|
||||
STA SPARM+3
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
PRZZRTB2 JSR PRZZRTAB
|
||||
STA PRNTXHI
|
||||
LDA SPARM+2
|
||||
STA PRNTXLO
|
||||
RTS
|
||||
;
|
||||
PRZZCR JSR PRZZNOCR
|
||||
LDY #00
|
||||
PRNTXLO = *-1
|
||||
LDA #00
|
||||
PRNTXHI = *-1
|
||||
STY SPARM+2
|
||||
STA SPARM+3
|
||||
LDA SPARM+4
|
||||
CLC
|
||||
ADC #00
|
||||
PRNTYINC = *-1
|
||||
STA SPARM+4
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
PRZZNOCR LDA #0
|
||||
STA PRINBUFF,X
|
||||
LDY #PRINBUFF
|
||||
LDA /PRINBUFF
|
||||
STY SPARM+9
|
||||
STA SPARM+10
|
||||
JSR STROUT
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
PRZZANY JSR GETBYTE
|
||||
HEX 2C
|
||||
PRZZBLAK LDA #$00
|
||||
HEX 2C
|
||||
PRZZWITE LDA #$7F
|
||||
HEX 2C
|
||||
PRZZRINV LDA #$FF
|
||||
ASL
|
||||
PHP
|
||||
LSR
|
||||
TAY
|
||||
PLP
|
||||
LDA #$A0
|
||||
BCC *+3
|
||||
ASL
|
||||
ORA #$09
|
||||
;
|
||||
PHA
|
||||
LDX #0
|
||||
^1 JSR GETBYTE
|
||||
CMP #$FF
|
||||
BEQ >2
|
||||
STA RTOSPARM,X
|
||||
^2 INX
|
||||
CPX #4
|
||||
BLT <1
|
||||
PLA
|
||||
JSR RTOS
|
||||
SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; JSR PRINTGRP
|
||||
; BYT <Xoption>
|
||||
; BYT <# items>
|
||||
; ADR <buffer>
|
||||
;
|
||||
PRINTGRP JSR GETINIT
|
||||
JSR GETWORD
|
||||
STX PRINTGM0
|
||||
STA TMP2
|
||||
JSR GETWORD
|
||||
STX TMP0
|
||||
STA TMP1
|
||||
JSR SAVEGOT
|
||||
;
|
||||
^0 JSR PRINTGR2
|
||||
LDY #0
|
||||
^1 LDA (TMP0),Y
|
||||
INC TMP0
|
||||
BNE *+4
|
||||
INC TMP1
|
||||
TAX
|
||||
BNE <1
|
||||
DEC TMP2
|
||||
BNE <0
|
||||
JMP RESTGOT
|
||||
;
|
||||
; Print string pointed to
|
||||
; by TMP0.TMP1
|
||||
;
|
||||
PRINTGR2 LDX TMP0
|
||||
LDA TMP1
|
||||
STX PRINTGM1+1
|
||||
STA PRINTGM1+2
|
||||
JSR PRINT
|
||||
PRINTGM0 BYT PRCNTR
|
||||
PRINTGM1 .DA #PRSTR,$FFFF,#CR,#0
|
||||
RTS
|
||||
;-----------
|
||||
GOOBER0 ADR GOOBER2
|
||||
GOOBER1 LDA READPROT
|
||||
JMP (GOOBER0)
|
||||
;-----------
|
||||
;
|
||||
; JSR INPUT
|
||||
; ADR <buffer>
|
||||
; BYT <maxlen>
|
||||
; .DA <xcoor>
|
||||
; BYT <ycoor>
|
||||
;
|
||||
INPUT JSR GETINIT
|
||||
JSR GETWORD
|
||||
STX INPUTP3
|
||||
STA INPUTP3+1
|
||||
JSR GETBYTE
|
||||
STA STRGET+5
|
||||
JSR GETWORD
|
||||
STX INPUTP1
|
||||
STA INPUTP1+1
|
||||
JSR GETBYTE
|
||||
STA INPUTP2
|
||||
LDX #INPUTP
|
||||
LDY /INPUTP
|
||||
STX STRGET+3
|
||||
STY STRGET+4
|
||||
JMP STRGET
|
||||
;
|
||||
INPUTP HEX 0200
|
||||
INPUTP1 ADR 0
|
||||
INPUTP2 ADR 0
|
||||
HEX 000200
|
||||
INPUTP3 ADR 0
|
||||
HEX 00
|
||||
;-----------
|
||||
READPROT HEX 00
|
||||
;-----------
|
||||
;
|
||||
; Clear screen routines
|
||||
;
|
||||
CLSCREEN JSR PRINT
|
||||
BYT RTOSBLAK,0,0,40,192,0
|
||||
BIT $C057
|
||||
BIT $C052
|
||||
BIT $C050
|
||||
RTS
|
||||
;
|
||||
CLS1 JSR PRINT
|
||||
BYT RTOSBLAK,1,17,38,165,0
|
||||
RTS
|
||||
;
|
||||
CLS2 JSR PRINT
|
||||
BYT RTOSBLAK,1,28,38,154,0
|
||||
RTS
|
||||
;-----------
|
||||
GOOBER2 INC READPROT
|
||||
JMP GOOBER3
|
||||
;-----------
|
||||
;
|
||||
CLS3 JSR PRINT
|
||||
BYT RTOSBLAK,1,31,38,151,0
|
||||
RTS
|
||||
;
|
||||
; GET routines
|
||||
;
|
||||
GETINIT TSX
|
||||
LDA $103,X
|
||||
STA GOTBYTE+1
|
||||
LDA $104,X
|
||||
STA GOTBYTE+2
|
||||
LDA #>0-1
|
||||
STA $103,X
|
||||
LDA />0-1
|
||||
STA $104,X
|
||||
RTS
|
||||
;
|
||||
^0 PHA
|
||||
JSR GETBYTE
|
||||
PLA
|
||||
JMP (GOTBYTE+1)
|
||||
;
|
||||
; Get a word
|
||||
; X=lo, A=hi
|
||||
;
|
||||
GETWORD JSR GETBYTE
|
||||
TAX
|
||||
;
|
||||
; Get a byte
|
||||
;
|
||||
GETBYTE INC GOTBYTE+1
|
||||
BNE GOTBYTE
|
||||
INC GOTBYTE+2
|
||||
GOTBYTE LDA $FFFF
|
||||
RTS
|
||||
;
|
||||
; Save GOTBYTE info
|
||||
;
|
||||
SAVEGOT LDY GOTBYTE+1
|
||||
LDA GOTBYTE+2
|
||||
STY RESTGOT+1
|
||||
STA RESTGOT+3
|
||||
RTS
|
||||
;
|
||||
; Restore GOTBYTE info
|
||||
;
|
||||
RESTGOT LDY #00
|
||||
LDA #00
|
||||
STY GOTBYTE+1
|
||||
STA GOTBYTE+2
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; JSR SELECT
|
||||
; BYT <xstart>,<xwidth>,<ystart>,<max entries>
|
||||
; ADR <routine>
|
||||
;
|
||||
SELECT STY SELCUR
|
||||
LDA SCALING
|
||||
STA SCALSAVE
|
||||
LSR SCALING
|
||||
JSR GETINIT
|
||||
;
|
||||
LDX #0
|
||||
STX SELWERDP
|
||||
^0 JSR GETBYTE
|
||||
STA SELECTXS,X
|
||||
INX
|
||||
CPX #6
|
||||
BLT <0
|
||||
;
|
||||
ASL SELECTXS
|
||||
LDY #'V'-$40
|
||||
BCS *+4
|
||||
LDY #$FF
|
||||
STY SELVRMOD
|
||||
LSR SELECTXS
|
||||
;
|
||||
; Set input device to default
|
||||
;
|
||||
LDA SELCUR
|
||||
JSR SELSET
|
||||
;
|
||||
SELLOOP JSR SELECTIV
|
||||
JSR SAVEGOT
|
||||
JSR SELSUB
|
||||
JSR RESTGOT
|
||||
;
|
||||
^0 LDY #0
|
||||
JSR DEVICERD
|
||||
BCS >1
|
||||
;
|
||||
; If button was down at last
|
||||
; reading, then ignore.
|
||||
;
|
||||
ASL
|
||||
BMI >1
|
||||
;
|
||||
; If button is down now, then
|
||||
; selection made
|
||||
;
|
||||
BCS SELDONE
|
||||
TYA
|
||||
LSR
|
||||
LSR
|
||||
CMP #00
|
||||
SELDEVY = *-1
|
||||
STA SELDEVY
|
||||
BEQ >1
|
||||
CMP SELECTMX
|
||||
BLT SELNEW
|
||||
;
|
||||
; Too big, so set device to
|
||||
; maximum.
|
||||
;
|
||||
LDX SELECTMX
|
||||
DEX
|
||||
BPL >9
|
||||
;
|
||||
^1 JSR POLEKEY
|
||||
BPL <0
|
||||
;
|
||||
LDX SELCUR
|
||||
CMP #8
|
||||
BEQ SELUP
|
||||
CMP #$0B
|
||||
BEQ SELUP
|
||||
CMP #$15
|
||||
BEQ SELDOWN
|
||||
CMP #$0A
|
||||
BEQ SELDOWN
|
||||
CMP #ESC
|
||||
BEQ >2
|
||||
CMP #CR
|
||||
BEQ SELDONE
|
||||
CMP #00
|
||||
SELVRMOD = *-1
|
||||
BEQ SELVERS
|
||||
JSR SELDOWRD
|
||||
BNE <0
|
||||
;
|
||||
SELVERS ROR SELWERDP
|
||||
;
|
||||
SELDONE CLC
|
||||
^2 PHP
|
||||
JSR SELECTIV
|
||||
PLP
|
||||
LDA #00
|
||||
SCALSAVE = *-1
|
||||
STA SCALING
|
||||
LDA SELWERDP
|
||||
LDY SELCUR
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Since keyboard was used,
|
||||
; update device also.
|
||||
;
|
||||
^9 TXA
|
||||
JSR SELSET
|
||||
SELNEW PHA
|
||||
JSR SELECTIV
|
||||
PLA
|
||||
STA SELCUR
|
||||
BPL SELLOOP
|
||||
;
|
||||
SELUP DEX
|
||||
BPL <9
|
||||
LDX SELECTMX
|
||||
DEX
|
||||
BPL <9
|
||||
;
|
||||
SELDOWN INX
|
||||
CPX SELECTMX
|
||||
BLT <9
|
||||
LDX #0
|
||||
BEQ <9
|
||||
;
|
||||
SELECTIV LDA SELCUR
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC SELECTYS
|
||||
STA RTOSPARM+1
|
||||
LDA #9
|
||||
STA RTOSPARM+3
|
||||
LDY SELECTXS
|
||||
LDA SELECTXW
|
||||
STY RTOSPARM
|
||||
STA RTOSPARM+2
|
||||
LDA #$49
|
||||
LDY #$7F
|
||||
JMP RTOS
|
||||
;
|
||||
SELDOWRD LDY SELWERDP
|
||||
CMP SELWEIRD,Y
|
||||
BEQ >0
|
||||
LDY #$FF
|
||||
HEX 24
|
||||
^0 INY
|
||||
STY SELWERDP
|
||||
LDA #1
|
||||
RTS
|
||||
;
|
||||
; Set input device
|
||||
;
|
||||
SELSET PHA
|
||||
STA SELDEVY
|
||||
ASL
|
||||
ASL
|
||||
ADC #2
|
||||
TAY
|
||||
LDX #0
|
||||
JSR DEVICEST
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
SELWEIRD BYT 'STEVEN',0
|
||||
SELWERDP BRK
|
||||
;-----------
|
||||
GOOBER30 ADR GOOBER4
|
||||
GOOBER3 AND #7
|
||||
BEQ >0
|
||||
CLC
|
||||
RTS
|
||||
HEX 6D
|
||||
^0 JMP (GOOBER30)
|
||||
;-----------
|
||||
SELSUB LDA SELCUR
|
||||
ASL
|
||||
TAX
|
||||
JMP (SELADR)
|
||||
;
|
||||
SELCUR BRK
|
||||
;
|
||||
SELECTXS BRK
|
||||
SELECTXW BRK
|
||||
SELECTYS BRK
|
||||
SELECTMX BRK
|
||||
SELADR ADR 0
|
||||
;-----------
|
||||
HEX 20
|
||||
GOOBER4 JSR CHEKPROT
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; JMP to routine given in Y
|
||||
;
|
||||
; JSR JMPVECTS
|
||||
; ADR ROUTINE0
|
||||
; ADR ROUTINE1
|
||||
;
|
||||
JMPVECTS JSR GETINIT
|
||||
^0 JSR GETWORD
|
||||
STX TMP0
|
||||
STA TMP1
|
||||
DEY
|
||||
BPL <0
|
||||
PLA
|
||||
PLA
|
||||
JMP (TMP0)
|
||||
;-----------
|
||||
;
|
||||
; JSR LINES
|
||||
; BYT 'V' (or 'H') for vertical/horiz
|
||||
; BYT <color>,<xstart>,<ystart>,<len>
|
||||
; BYT 1 (terminate)
|
||||
;
|
||||
; TMP0=length
|
||||
;
|
||||
LINES LDA #0
|
||||
STA LINEXOFF
|
||||
JSR GETINIT
|
||||
JSR GETBYTE
|
||||
STA LINETYPE
|
||||
BPL >0
|
||||
JSR GETBYTE
|
||||
STA LINEXOFF
|
||||
;
|
||||
^0 JSR GETBYTE
|
||||
CMP #1
|
||||
BEQ LINERTS
|
||||
STA LINECOLR
|
||||
JSR GETBYTE
|
||||
TAX
|
||||
JSR GETBYTE
|
||||
STA LINEY
|
||||
JSR GETBYTE
|
||||
STA TMP0
|
||||
LDA #00
|
||||
LINETYPE = *-1
|
||||
AND #$7F
|
||||
CMP #'V'
|
||||
BEQ LINEV
|
||||
;
|
||||
LINEH JSR LINEDOT
|
||||
INX
|
||||
DEC TMP0
|
||||
BNE LINEH
|
||||
JMP <0
|
||||
;
|
||||
LINEV JSR LINEDOT
|
||||
INC LINEY
|
||||
DEC TMP0
|
||||
BNE LINEV
|
||||
JMP <0
|
||||
;
|
||||
LINEDOT LDY #00
|
||||
LINEY = *-1
|
||||
LDA YBASELO,Y
|
||||
CLC
|
||||
ADC #00
|
||||
LINEXOFF = *-1
|
||||
STA HIRES
|
||||
LDA YBASEHI,Y
|
||||
STA HIRES+1
|
||||
STY TMP2
|
||||
LDY XBYTEOFF,X
|
||||
TYA
|
||||
EOR TMP2
|
||||
LSR
|
||||
LDA #00
|
||||
LINECOLR = *-1
|
||||
BCC >0
|
||||
LSR
|
||||
^0 AND XBITS,X
|
||||
STA TMP2
|
||||
LDA XBITS,X
|
||||
EOR #$FF
|
||||
AND (HIRES),Y
|
||||
ORA TMP2
|
||||
STA (HIRES),Y
|
||||
LINERTS RTS
|
||||
;-----------
|
||||
;
|
||||
; JSR PARSE
|
||||
; .DA #'A',JMPA
|
||||
; .DA #'B',JMPB
|
||||
; BRK
|
||||
;
|
||||
; If no match, then routine simply
|
||||
; continues to execute code after
|
||||
; the BRK instruction.
|
||||
;
|
||||
; all registers preserved
|
||||
;
|
||||
PARSE STA TMP0
|
||||
JSR SAVEREGS
|
||||
JSR GETINIT
|
||||
^0 JSR GETBYTE
|
||||
BEQ >1
|
||||
EOR TMP0
|
||||
PHA
|
||||
JSR GETWORD
|
||||
STX TMP1
|
||||
STA TMP2
|
||||
PLA
|
||||
BNE <0
|
||||
PLA
|
||||
PLA
|
||||
JSR RESTREGS
|
||||
JMP (TMP1)
|
||||
^1 JMP RESTREGS
|
||||
;-----------
|
||||
;
|
||||
; Draw arrow at X,Y
|
||||
; A=0 for IJMK, 1 for WASZ
|
||||
;
|
||||
SHOWAROW STX ARROWX
|
||||
STY ARROWY
|
||||
ASL
|
||||
ASL
|
||||
STA AROWTYPE
|
||||
;
|
||||
; Compute bit location by
|
||||
; multiplying X by 7.
|
||||
;
|
||||
TXA
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
SEC
|
||||
SBC ARROWX
|
||||
STA ARROWX2
|
||||
;
|
||||
JSR PICDRAW
|
||||
ARROWX BYT 26
|
||||
ARROWY BYT 1
|
||||
BYT 6,37
|
||||
HEX 82400184600384300684180C840C1884
|
||||
HEX 06308403608340014001826001400382
|
||||
HEX 40014001824001400182460140318247
|
||||
HEX 01407181407D01405F01608403308406
|
||||
HEX 18840C0C84180684300C841818840C30
|
||||
HEX 8406608403407D01405F018147014071
|
||||
HEX 82460140318240014001824001400182
|
||||
HEX 60014003824001400183036084063084
|
||||
HEX 0C1884180C84300684600384400182
|
||||
;
|
||||
LDA #0
|
||||
STA TMP5
|
||||
^1 LDY #00
|
||||
AROWTYPE = *-1
|
||||
INC AROWTYPE
|
||||
LDA SHOWARTB,Y
|
||||
STA >3+0
|
||||
LDY TMP5
|
||||
LDA ARROWOFX,Y
|
||||
CLC
|
||||
ADC #00
|
||||
ARROWX2 = *-1
|
||||
STA >2+1
|
||||
LDA ARROWOFY,Y
|
||||
ADC ARROWY
|
||||
STA >2+3
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
^2 .DA #PRLOC,00,#00
|
||||
^3 BYT ' ',NOCR,0
|
||||
;
|
||||
INC TMP5
|
||||
LDA TMP5
|
||||
CMP #4
|
||||
BLT <1
|
||||
RTS
|
||||
;
|
||||
SHOWARTB BYT 'IJKMWASZ'
|
||||
;
|
||||
ARROWOFX BYT 21,12,30,21
|
||||
ARROWOFY BYT 7,15,15,23
|
||||
;-----------
|
||||
;
|
||||
; Convert number to text
|
||||
; given in A, return
|
||||
; Y=tens digit, A=ones digit
|
||||
;
|
||||
MAKENUMB LDY #$FF
|
||||
SEC
|
||||
^0 INY
|
||||
SBC #10
|
||||
BCS <0
|
||||
ADC #10
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Print a number
|
||||
;
|
||||
; Given X,Y and A=number
|
||||
;
|
||||
NUMBER STX DIGITX
|
||||
STY DIGITY
|
||||
JSR MAKENUMB
|
||||
PHA
|
||||
JSR DIGITPRN
|
||||
PLA
|
||||
INC DIGITX
|
||||
;
|
||||
TAY
|
||||
DIGITPRN LDA SYSFONT+$86,Y
|
||||
STA TMPLO
|
||||
LDA SYSFONT+$C1,Y
|
||||
STA TMPHI
|
||||
LDA #7
|
||||
STA TMP2
|
||||
LDX #00
|
||||
DIGITY = *-1
|
||||
^0 LDA YBASELO,X
|
||||
STA HIRES
|
||||
LDA YBASEHI,X
|
||||
STA HIRES+1
|
||||
LDY #0
|
||||
LDA (TMPLO),Y
|
||||
INC TMPLO
|
||||
BNE *+4
|
||||
INC TMPHI
|
||||
LSR
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
LDY #00
|
||||
DIGITX = *-1
|
||||
STA (HIRES),Y
|
||||
INX
|
||||
DEC TMP2
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Ram TO Screen routine
|
||||
; A is opcode
|
||||
; Y is operand
|
||||
;
|
||||
RTOSPARM EPZ $3A
|
||||
;
|
||||
RTX EPZ RTOSPARM
|
||||
RTY EPZ RTOSPARM+1
|
||||
RTXL EPZ RTOSPARM+2
|
||||
RTYL EPZ RTOSPARM+3
|
||||
RTADRL EPZ RTOSPARM+4
|
||||
RTADRH EPZ RTOSPARM+5
|
||||
;
|
||||
RTSCRL EPZ RTOSPARM+6
|
||||
RTSCRH EPZ RTOSPARM+7
|
||||
;
|
||||
RTOS STA RTOSMD0
|
||||
STY RTOSMD0+1
|
||||
;
|
||||
LDX RTY
|
||||
^0 LDA YBASEHI,X
|
||||
STA RTSCRH
|
||||
LDA YBASELO,X
|
||||
CLC
|
||||
ADC RTX
|
||||
STA RTSCRL
|
||||
LDY RTXL
|
||||
DEY
|
||||
^1 LDA (RTSCRL),Y
|
||||
RTOSMD0 EOR #$7F
|
||||
STA (RTSCRL),Y
|
||||
DEY
|
||||
BPL <1
|
||||
LDA RTADRL
|
||||
CLC
|
||||
ADC RTXL
|
||||
STA RTADRL
|
||||
BCC >2
|
||||
INC RTADRH
|
||||
^2 INX
|
||||
DEC RTYL
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; PRESS SPACE BAR
|
||||
; FOR MORE
|
||||
;
|
||||
SPACEBAR STA >0+0
|
||||
JSR PICDRAW
|
||||
^0 BYT 26,181,14,11
|
||||
HEX 787979793C707971717D70637303181B
|
||||
HEX 1B0C0618181B1B0C3036360678797978
|
||||
HEX 3C7079791B3C70737703185819406181
|
||||
HEX 1B181B0C3036360318187B793C701918
|
||||
HEX 737D703336069178797C701C4F4F0F86
|
||||
HEX 184C4D715F59590186784C7D305B594F
|
||||
HEX 0786184C6D3058594D018618784C3118
|
||||
HEX 4F590F83
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; <ESC> TO GO TO MAIN MENU
|
||||
;
|
||||
ESCMAIN JSR PRINT
|
||||
BYT RTOSWITE,0,183,40,9
|
||||
BRK
|
||||
;
|
||||
JSR MUSIC
|
||||
;
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#174
|
||||
BYT PRCNTR
|
||||
BYT '<ESC> TO GO TO MAIN MENU',CR
|
||||
BRK
|
||||
JSR GETKEY
|
||||
CMP #ESC
|
||||
BNE >0
|
||||
JMP MAINMENU
|
||||
;
|
||||
^0 JSR PRINT
|
||||
BYT RTOSBLAK,1,174,38,7,0
|
||||
JMP ESCBACK
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:SUBPAK4"
|
|
@ -0,0 +1,519 @@
|
|||
;
|
||||
; S:SUBPAK4
|
||||
;
|
||||
; Miscellaneous routines
|
||||
;
|
||||
INY1 = 64
|
||||
;
|
||||
INIT? LDA #00
|
||||
INITFLAG = *-1
|
||||
ASL
|
||||
BCC >0
|
||||
INIT1 JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#INY1
|
||||
BYT PRCNTR
|
||||
BYT 'BEFORE SAVING YOUR '
|
||||
.DA #PRSTR,TYPETEXT
|
||||
BYT ',',CR
|
||||
BYT 'DO YOU NEED TO '
|
||||
.DA #PRSTR,TXTINIT,#CR
|
||||
BYT 'A NEW '
|
||||
.DA #PRSTR,TXTDD
|
||||
BYT '?',CR
|
||||
BYT CR,CR
|
||||
BYT 'NO',CR,'YES',CR
|
||||
BRK
|
||||
LDY #0
|
||||
STY INITFLAG
|
||||
JSR SELECT
|
||||
BYT 17,6,INY1+7+4*8,2
|
||||
ADR RTS
|
||||
BCS >0
|
||||
CPY #1
|
||||
BEQ INIT2
|
||||
^0 RTS
|
||||
;---
|
||||
;
|
||||
; Go ahead with the initializing
|
||||
;
|
||||
INIT2 JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#40,#0
|
||||
;
|
||||
LDA DATADRIV
|
||||
CMP #2
|
||||
BEQ >2
|
||||
;
|
||||
; For 1 drive systems
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'REMOVE '
|
||||
.DA #PRSTR,CTEXT
|
||||
.DA #PRSTR,TXTSD
|
||||
BYT ' AND',CR
|
||||
BRK
|
||||
JMP >3
|
||||
;
|
||||
; For 2 drive systems
|
||||
;
|
||||
^2 JSR PRINT
|
||||
BYT CR
|
||||
BRK
|
||||
;
|
||||
^3 JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'INSERT BLANK'
|
||||
.DA #PRSTR,TXTSD
|
||||
BYT ' '
|
||||
.DA #PRSTR,TXTINDRV,#CR
|
||||
BYT CR
|
||||
.DA #PRSTR,TXTPRET
|
||||
BYT ' TO '
|
||||
.DA #PRSTR,TXTINIT
|
||||
.DA #PRSTR,TXTSD
|
||||
BYT '.',CR
|
||||
BYT CR,CR,CR
|
||||
BYT '**** W A R N I N G ****',CR
|
||||
BYT CR
|
||||
BYT 'ALL DATA ON THIS'
|
||||
.DA #PRSTR,TXTSD,#CR
|
||||
BYT 'WILL BE ERASED!',CR
|
||||
BRK
|
||||
^0 JSR GETKEY
|
||||
CMP #CR
|
||||
BEQ INIT3
|
||||
CMP #ESC
|
||||
BNE <0
|
||||
^1 JMP INIT1
|
||||
;---
|
||||
INIT3 JSR CLS1
|
||||
JSR REMOMAST
|
||||
BCS >3
|
||||
JSR INITDI
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'IN PROGRESS',CR,0
|
||||
;
|
||||
JSR NOPROT
|
||||
LDY #0
|
||||
^0 LDA INITTEXT,Y
|
||||
BEQ >1
|
||||
JSR COUT
|
||||
INY
|
||||
BNE <0
|
||||
;
|
||||
^1 JSR DOSCR
|
||||
BNE >2
|
||||
JSR SAVESUPP
|
||||
BNE >2
|
||||
;
|
||||
; Successful initialization
|
||||
;
|
||||
JSR CLS1
|
||||
JSR INITDI
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'COMPLETE',CR,0
|
||||
JSR ANYKEY
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^2 JSR ERROR
|
||||
^3 JMP INIT2
|
||||
;---
|
||||
INITTEXT BYT 13,4,'SEEE',0
|
||||
;---
|
||||
;
|
||||
; "DISK INITIALIZATION" message
|
||||
;
|
||||
INITDI JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#64
|
||||
.DA #PRSTR,TXTD
|
||||
BYT ' INITIALIZATION',CR
|
||||
BYT CR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Check for master disk in data drive
|
||||
; If it is there, print appropriate
|
||||
; message.
|
||||
;
|
||||
REMOMAST LDA DATADRIV
|
||||
JSR READVTOC
|
||||
BCC >1
|
||||
^0 CLC
|
||||
RTS
|
||||
;
|
||||
; If data disk (0) or non-master (>4)
|
||||
; then just exit with CLC.
|
||||
;
|
||||
^1 TAX
|
||||
BEQ <0
|
||||
CPX #5
|
||||
BGE <0
|
||||
;
|
||||
; Display message
|
||||
;
|
||||
LDY REMOMSTL-1,X
|
||||
LDA REMOMSTH-1,X
|
||||
STY >2+1
|
||||
STA >2+2
|
||||
;
|
||||
JSR CLS1
|
||||
JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#64
|
||||
BYT 'THE "'
|
||||
^2 .DA #PRSTR,$FFFF
|
||||
BYT '"'
|
||||
.DA #PRSTR,TXTSD
|
||||
BYT ' CANNOT',CR
|
||||
BYT 'BE USED AS A '
|
||||
.DA #PRSTR,TXTDD
|
||||
BYT CR,0
|
||||
JSR ANYKEY
|
||||
JSR CLS1
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
REMOMSTL BYT PSTEXT
|
||||
BYT PSTEXT
|
||||
BYT CTEXT
|
||||
BYT CTEXT
|
||||
REMOMSTH HBY PSTEXT
|
||||
HBY PSTEXT
|
||||
HBY CTEXT
|
||||
HBY CTEXT
|
||||
;-----------
|
||||
;
|
||||
; Make sure that routine to check
|
||||
; for copy protection is still there.
|
||||
;
|
||||
PROTBYTE = $8DD6
|
||||
;
|
||||
PCHEKSUM LDA /PROTBYTE
|
||||
STA TMP1
|
||||
LDY #PROTBYTE
|
||||
STY TMP0
|
||||
;
|
||||
LDX #0
|
||||
LDA #$55
|
||||
STA (TMP0,X)
|
||||
;
|
||||
LDA #$3C
|
||||
LDX #$E0
|
||||
LDY #$0F
|
||||
JSR >0
|
||||
;
|
||||
LDA #$36
|
||||
LDX #$19
|
||||
LDY #$3F
|
||||
JSR >0
|
||||
;
|
||||
LDA #$36
|
||||
LDX #$B5
|
||||
LDY #$35
|
||||
;
|
||||
^0 STX TMP2
|
||||
ASL
|
||||
LDX #0
|
||||
SEC
|
||||
ROR
|
||||
STA TMP3
|
||||
^1 TYA
|
||||
CLC
|
||||
EOR (TMP2),Y
|
||||
ADC (TMP0,X)
|
||||
DEY
|
||||
STA (TMP0,X)
|
||||
BPL <1
|
||||
ASL TMP3
|
||||
ASL TMP2
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Test paper position
|
||||
;
|
||||
TESTPAPR LDA #CR
|
||||
JSR PTCOUT
|
||||
LDX #$7F
|
||||
LDY #$03
|
||||
JSR PTSENDGC
|
||||
LDX #$7F
|
||||
LDY #$03
|
||||
^0 TXA
|
||||
AND #$1F
|
||||
BEQ >1
|
||||
LDA #0
|
||||
HEX 2C
|
||||
^1 LDA #1
|
||||
JSR PTGCOUT
|
||||
DEX
|
||||
BNE <0
|
||||
DEY
|
||||
BPL <0
|
||||
LDX #1
|
||||
LDY #1
|
||||
JMP PTCRLF
|
||||
;-----------
|
||||
;
|
||||
; Get a graphic by number
|
||||
; from the original Print Shop
|
||||
;
|
||||
; Enter with A=number 00-60
|
||||
; X,Y= pointer to dest buffer
|
||||
;
|
||||
; return with A=new number and
|
||||
; dest buffer containing graphic
|
||||
; if SEC then ESC pressed.
|
||||
;
|
||||
IBUFFER = $6000
|
||||
;
|
||||
GETPDISK STX GPBUFLO
|
||||
STY GPBUFHI
|
||||
PHA
|
||||
JSR PRINT
|
||||
.DA #PRLOC,50,#132
|
||||
BYT 'ENTER NO. OF GRAPHIC>',NOCR,0
|
||||
;
|
||||
LDX #60
|
||||
STX TMP0
|
||||
LDX #220
|
||||
LDY #132
|
||||
PLA
|
||||
JSR GETANUMB
|
||||
BCS GETPDONE
|
||||
STA GPNUMB
|
||||
TXA
|
||||
;
|
||||
; Figure out the filename, and load
|
||||
; the graphic
|
||||
;
|
||||
JSR MAKENUMB
|
||||
STA GPONES
|
||||
STY GPTENS
|
||||
INY
|
||||
TYA
|
||||
ORA #'0'
|
||||
STA >0+1
|
||||
;
|
||||
SEC
|
||||
JSR WAITPSD
|
||||
BCS GETPDONE
|
||||
JSR BLOAD
|
||||
^0 BYT 'IX',0
|
||||
BNE >9
|
||||
;
|
||||
; Move the graphic to the buffer
|
||||
;
|
||||
LDX #00
|
||||
GPTENS = *-1
|
||||
JSR UNPACK
|
||||
LDX #00
|
||||
GPONES = *-1
|
||||
LDY #00
|
||||
GPBUFLO = *-1
|
||||
LDA #00
|
||||
GPBUFHI = *-1
|
||||
STX IBUFFER+3
|
||||
STY IBUFFER+28
|
||||
STA IBUFFER+32
|
||||
JSR IBUFFER
|
||||
CLC
|
||||
BCC GETPDONE
|
||||
;
|
||||
; Display error message and quit
|
||||
;
|
||||
^9 JSR ERROR
|
||||
SEC
|
||||
;---
|
||||
;
|
||||
; Return to calling program
|
||||
;
|
||||
GETPDONE PHP
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK,1,132,38,7,0
|
||||
LDA #00
|
||||
GPNUMB = *-1
|
||||
PLP
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Graphics from Print Shop disk
|
||||
; Unpack routine.
|
||||
;
|
||||
UPTBL EPZ TMP0
|
||||
UPGBAS EPZ TMP2
|
||||
UPRCODE EPZ TMP4
|
||||
UPREPT EPZ TMP5
|
||||
;
|
||||
; Lengths of the 6 "I" files
|
||||
;
|
||||
UPFLENL HEX 77563E1F0279
|
||||
UPFLENH HEX 0F0F10111114
|
||||
;
|
||||
; Icon unpack routine
|
||||
;
|
||||
UNPACK LDY UPFLENL,X
|
||||
LDA UPFLENH,X
|
||||
STY UPTBL
|
||||
CLC
|
||||
ADC /IBUFFER
|
||||
STA UPTBL+1
|
||||
LDY #IBUFFER+$17FF
|
||||
LDA /IBUFFER+$17FF
|
||||
STY UPGBAS
|
||||
STA UPGBAS+1
|
||||
JSR UPTBLGET
|
||||
STA UPRCODE
|
||||
;
|
||||
^0 JSR UPTBLGET
|
||||
CMP UPRCODE
|
||||
BNE >1
|
||||
;
|
||||
JSR UPTBLGET
|
||||
TAX
|
||||
JSR UPTBLGET
|
||||
HEX 2C
|
||||
;
|
||||
^1 LDX #1
|
||||
STX UPREPT
|
||||
LDY #0
|
||||
^2 STA (UPGBAS),Y
|
||||
LDX UPGBAS
|
||||
BNE *+4
|
||||
DEC UPGBAS+1
|
||||
DEC UPGBAS
|
||||
LDX UPGBAS+1
|
||||
CPX /IBUFFER
|
||||
BLT >3
|
||||
DEC UPREPT
|
||||
BNE <2
|
||||
BEQ <0
|
||||
;
|
||||
; Get a byte from the packed data.
|
||||
;
|
||||
UPTBLGET LDY UPTBL
|
||||
BNE *+4
|
||||
DEC UPTBL+1
|
||||
DEC UPTBL
|
||||
LDY #0
|
||||
LDA (UPTBL),Y
|
||||
^3 RTS
|
||||
;-----------
|
||||
;
|
||||
; Input a number given:
|
||||
;
|
||||
; X,Y : position of cursor
|
||||
; A : default number 0=no default
|
||||
; TMP0: maximum value for A
|
||||
;
|
||||
; Returns A:new number CLC
|
||||
; X:A-1
|
||||
;
|
||||
; SEC:<ESC> was pressed
|
||||
;
|
||||
GETBUFF = PRINBUFF+10
|
||||
;
|
||||
GETANUMB STX GANX
|
||||
STY GANY
|
||||
LDX TMP0
|
||||
STX GANMAX
|
||||
;
|
||||
; Fill GETBUFF with the text of the
|
||||
; default number given in A
|
||||
;
|
||||
TAX
|
||||
BEQ >1
|
||||
;
|
||||
LDX #0
|
||||
CMP #10
|
||||
BLT >0
|
||||
JSR MAKENUMB
|
||||
PHA
|
||||
TYA
|
||||
ORA #'0'
|
||||
STA GETBUFF,X
|
||||
INX
|
||||
PLA
|
||||
^0 ORA #'0'
|
||||
STA GETBUFF,X
|
||||
INX
|
||||
^1 LDA #0
|
||||
STA GETBUFF,X
|
||||
;---
|
||||
;
|
||||
; Get the number from keyboard
|
||||
;
|
||||
GANAGAIN JSR INPUT
|
||||
ADR GETBUFF
|
||||
BYT 2
|
||||
GANX .DA 220
|
||||
GANY BYT 132
|
||||
;
|
||||
BCS GANDONE
|
||||
;---
|
||||
;
|
||||
; Now compute number typed in A
|
||||
;
|
||||
LDY #0
|
||||
TYA
|
||||
^0 LDX GETBUFF,Y
|
||||
BEQ >1
|
||||
;
|
||||
CPX #'0'
|
||||
BLT GANERROR
|
||||
CPX #'9'+1
|
||||
BGE GANERROR
|
||||
STA TMP0
|
||||
ASL
|
||||
ASL
|
||||
ADC TMP0
|
||||
ASL
|
||||
STX TMP0
|
||||
ADC TMP0
|
||||
SEC
|
||||
SBC #'0'
|
||||
INY
|
||||
BNE <0
|
||||
;
|
||||
; Is the number within limits?
|
||||
; ie: 1-GANMAX
|
||||
;
|
||||
^1 TAX
|
||||
DEX
|
||||
CPX #00
|
||||
GANMAX = *-1
|
||||
BCC GANDONE
|
||||
;
|
||||
; Error
|
||||
;
|
||||
GANERROR JSR BOOP
|
||||
JMP GANAGAIN
|
||||
;
|
||||
GANDONE RTS
|
||||
;-----------
|
||||
;
|
||||
; Change input device
|
||||
;
|
||||
DEVICECH JSR PRINT
|
||||
BYT RTOSBLAK,0,181,40,11
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#185
|
||||
BYT PRCSPACE,1
|
||||
BYT 'PLUG IN INPUT DEVICE, '
|
||||
.DA #PRSTR,TXTPAK,#CR
|
||||
BRK
|
||||
^0 JSR POLEKEY
|
||||
BPL <0
|
||||
JSR DEVICEOF
|
||||
JMP DEVICENW
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:SUBPAK5"
|
|
@ -0,0 +1,842 @@
|
|||
;
|
||||
; S:SUBPAK5
|
||||
;
|
||||
; Input device support routines
|
||||
; -----------------------------
|
||||
; The Print Shop Companion Disk
|
||||
;
|
||||
;
|
||||
; DEVICENW: Find current input device
|
||||
; and intialize it, and set
|
||||
; up the following vectors:
|
||||
;
|
||||
; DEVICEON: Turn on current input
|
||||
; device and return flashing
|
||||
; cursor delay in A,Y.
|
||||
;
|
||||
; DEVICEOF: Turn off current input
|
||||
; device.
|
||||
;
|
||||
; DEVICERD: Read current input device.
|
||||
; SEC=error, ignore values
|
||||
; CLC=good values in X,Y
|
||||
; A=button status
|
||||
; bit 7:button is down
|
||||
; bit 6:button was down at
|
||||
; last reading
|
||||
;
|
||||
; DEVICEST: Set X,Y coordinates, given
|
||||
; X,Y. This is used for
|
||||
; clamping.
|
||||
;
|
||||
; SCALING: hi bit 0:graphic 88x52
|
||||
; hi bit 1:full screen 192x140
|
||||
;
|
||||
; Read both paddles
|
||||
;
|
||||
READPDL JSR FASTPDL
|
||||
BCS PDLERROR
|
||||
;
|
||||
; First compute X-coor (paddle 0)
|
||||
;
|
||||
^1 LDX #3
|
||||
^2 LDA P0D0,X
|
||||
BNE >3
|
||||
DEX
|
||||
BPL <2
|
||||
BMI PDLERROR
|
||||
;
|
||||
^3 CMP #$40
|
||||
BLT >4
|
||||
LDA #$40
|
||||
^4 SEC
|
||||
SBC #1
|
||||
ASL
|
||||
ASL
|
||||
CLC
|
||||
ADC PDLADD,X
|
||||
TAX
|
||||
;
|
||||
; Last, compute Y-coor (paddle 1)
|
||||
;
|
||||
LDY #3
|
||||
^0 LDA P1D0,Y
|
||||
BNE >1
|
||||
DEY
|
||||
BPL <0
|
||||
BMI PDLERROR
|
||||
;
|
||||
^1 CMP #$40
|
||||
BLT >2
|
||||
LDA #$40
|
||||
^2 SEC
|
||||
SBC #1
|
||||
ASL
|
||||
ASL
|
||||
CLC
|
||||
ADC PDLADD,Y
|
||||
TAY
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
; Return error code
|
||||
;
|
||||
PDLERROR SEC
|
||||
RTS
|
||||
;
|
||||
PDLADD BYT 0,1,2,3
|
||||
;
|
||||
P0D0 BRK
|
||||
P0D1 BRK
|
||||
P0D2 BRK
|
||||
P0D3 BRK
|
||||
P1D0 BRK
|
||||
P1D1 BRK
|
||||
P1D2 BRK
|
||||
P1D3 BRK
|
||||
;
|
||||
; Check for paddles
|
||||
;
|
||||
CHECKPDL LDA $C070
|
||||
LDX #0
|
||||
LDY #16
|
||||
^0 LDA $C064
|
||||
ORA $C065
|
||||
BPL >1
|
||||
DEX
|
||||
BNE <0
|
||||
DEY
|
||||
BNE <0
|
||||
;
|
||||
; If no paddle, then return to main
|
||||
;
|
||||
PLA
|
||||
PLA
|
||||
^1 RTS
|
||||
;---------------------------
|
||||
;
|
||||
; Select input device to use
|
||||
;
|
||||
DEVICENW LDA $FBC0
|
||||
BEQ >0
|
||||
;
|
||||
; If //c, check for paddles first
|
||||
;
|
||||
JSR FINDMOUS
|
||||
^0 JSR FINDKOLA
|
||||
JSR FINDJOYS
|
||||
JSR FINDMOUS
|
||||
JSR NODEVICE
|
||||
;
|
||||
; NODEVICE always installs
|
||||
;
|
||||
; Install vectors
|
||||
;
|
||||
; JSR INSTALL
|
||||
;
|
||||
; JMP DEVICEON
|
||||
; JMP DEVICEOF
|
||||
; JMP DEVICERD
|
||||
; JMP DEVICEST
|
||||
;
|
||||
; Installs the 4 jump vectors
|
||||
; following the JSR INSTALL.
|
||||
;
|
||||
INSTALL PLA
|
||||
STA DTMPLO
|
||||
PLA
|
||||
STA DTMPHI
|
||||
LDY #12
|
||||
^0 LDA (DTMPLO),Y
|
||||
STA DEVMODS-1,Y
|
||||
DEY
|
||||
BNE <0
|
||||
PLA
|
||||
PLA
|
||||
;---
|
||||
;
|
||||
; Since the routine that scans
|
||||
; for a mouse turns on the $C800
|
||||
; rom behind either $C3 or another
|
||||
; card, turn it off!!!
|
||||
;
|
||||
BIT $CFFF
|
||||
JMP DEVICEON
|
||||
;-----------------
|
||||
;
|
||||
; Search for mouse
|
||||
;
|
||||
FINDMOUS LDY #$00
|
||||
LDA #$C7
|
||||
STY DTMPLO
|
||||
^0 STA DTMPHI
|
||||
LDY #$0C
|
||||
LDA (DTMPLO),Y
|
||||
CMP #$20
|
||||
BNE >1
|
||||
LDY #$FB
|
||||
LDA (DTMPLO),Y
|
||||
CMP #$D6
|
||||
BNE >1
|
||||
LDA DTMPHI
|
||||
STA MOUSECN
|
||||
AND #$0F
|
||||
STA MOUSEN
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
STA MOUSEN0
|
||||
JSR MSINIT
|
||||
;
|
||||
JSR INSTALL
|
||||
JMP MSTURNON
|
||||
JMP MSTURNOF
|
||||
JMP MSREAD
|
||||
JMP MSSET
|
||||
;
|
||||
^1 DEC DTMPHI
|
||||
LDA DTMPHI
|
||||
CMP #$C1
|
||||
BGE <0
|
||||
RTS
|
||||
;
|
||||
; Initialize the mouse
|
||||
;
|
||||
MSINIT LDY #$19
|
||||
MSINIT2 JSR DOMOUSE
|
||||
;
|
||||
; On the ][ and ][+, this routine
|
||||
; will clear hires page 1, so only
|
||||
; execute it once.
|
||||
;
|
||||
LDA #$2C
|
||||
STA MSINIT2
|
||||
;
|
||||
; fall into...
|
||||
;
|
||||
; Turn on the mouse
|
||||
;
|
||||
MSTURNON LDY #$12
|
||||
LDA #1
|
||||
JSR DOMOUSE
|
||||
LDY #100
|
||||
LDA /100
|
||||
LDX $FBC0
|
||||
BNE SETFLASH
|
||||
;
|
||||
; The //c mouse routines are faster!
|
||||
;
|
||||
LDY #600
|
||||
LDA /600
|
||||
;
|
||||
SETFLASH STY FLSHINIT+1
|
||||
STA >1+1
|
||||
RTS
|
||||
;-----------
|
||||
FLSHINIT LDY #00
|
||||
^1 LDA #00
|
||||
STY FLASHLO
|
||||
STA FLASHHI
|
||||
RTS
|
||||
;
|
||||
; Turn off the mouse
|
||||
;
|
||||
MSTURNOF SEI
|
||||
LDY #$12
|
||||
LDA #0
|
||||
;
|
||||
; Do mouse routine given in Y
|
||||
; with parameter in A
|
||||
;
|
||||
DOMOUSE PHA
|
||||
LDA $C400,Y
|
||||
MOUSECN = *-1
|
||||
LDX MOUSECN
|
||||
LDY #00
|
||||
MOUSEN0 = *-1
|
||||
STA >0+1
|
||||
STX >0+2
|
||||
PLA
|
||||
^0 JMP $C400
|
||||
;
|
||||
; Read the mouse
|
||||
;
|
||||
MSREAD PHP
|
||||
SEI
|
||||
LDY #$14
|
||||
JSR DOMOUSE
|
||||
LDY #00
|
||||
MOUSEN = *-1
|
||||
;
|
||||
; Get button status
|
||||
;
|
||||
LDA $778,Y
|
||||
PHA
|
||||
;
|
||||
; X-coor
|
||||
;
|
||||
LDA $478,Y
|
||||
STA DTMPLO
|
||||
LDA $578,Y
|
||||
STA DTMPHI
|
||||
BIT SCALING
|
||||
BMI >0
|
||||
LSR DTMPHI
|
||||
ROR DTMPLO
|
||||
^0 LDX $FBC0
|
||||
BEQ >1
|
||||
LSR DTMPHI
|
||||
ROR DTMPLO
|
||||
^1 LDX DTMPLO
|
||||
;
|
||||
; Y-coor
|
||||
;
|
||||
LDA $4F8,Y
|
||||
STA DTMPLO
|
||||
LDA $5F8,Y
|
||||
STA DTMPHI
|
||||
LSR DTMPHI
|
||||
ROR DTMPLO
|
||||
BIT SCALING
|
||||
BMI >2
|
||||
LSR DTMPHI
|
||||
ROR DTMPLO
|
||||
^2 LDA $FBC0
|
||||
BEQ >3
|
||||
LSR DTMPHI
|
||||
ROR DTMPLO
|
||||
^3 LDY DTMPLO
|
||||
;
|
||||
PLA
|
||||
PLP
|
||||
AND #$FF
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
; Compute actual mouse address given
|
||||
; A=either X or Y
|
||||
;
|
||||
MSDOX CLC
|
||||
HEX 24
|
||||
MSDOY SEC
|
||||
LDY #0
|
||||
STY DTMPHI
|
||||
BCC >0
|
||||
ASL
|
||||
ROL DTMPHI
|
||||
^0 BIT SCALING
|
||||
BMI >1
|
||||
ASL
|
||||
ROL DTMPHI
|
||||
^1 LDX $FBC0
|
||||
BEQ >2
|
||||
ASL
|
||||
ROL DTMPHI
|
||||
^2 LDY MOUSEN
|
||||
LDX DTMPHI
|
||||
RTS
|
||||
;
|
||||
; Set mouse to given coordinates
|
||||
;
|
||||
MSSET PHP
|
||||
SEI
|
||||
STY >0+1
|
||||
TXA
|
||||
JSR MSDOX
|
||||
STA $478,Y
|
||||
TXA
|
||||
STA $578,Y
|
||||
^0 LDA #00
|
||||
JSR MSDOY
|
||||
STA $4F8,Y
|
||||
TXA
|
||||
STA $5F8,Y
|
||||
LDY #$16
|
||||
JSR DOMOUSE
|
||||
PLP
|
||||
RTS
|
||||
;-------------------
|
||||
;
|
||||
; Check for KoalaPad
|
||||
;
|
||||
FINDKOLA JSR CHECKPDL
|
||||
;
|
||||
; If X,Y is less than KPMIN
|
||||
; then assume KoalaPad.
|
||||
;
|
||||
JSR KPONPAD
|
||||
BCC >0
|
||||
RTS
|
||||
;
|
||||
^0 JSR INSTALL
|
||||
JMP KPTURNON
|
||||
JMP KPTURNOF
|
||||
JMP KPREAD
|
||||
JMP KPSET
|
||||
;
|
||||
KPMIN = 16
|
||||
;
|
||||
; Tables to keep track of last
|
||||
; 8 coordinates
|
||||
;
|
||||
KPPOINT HEX 00
|
||||
;
|
||||
KPXLAST DFS 8,0
|
||||
KPYLAST DFS 8,0
|
||||
;
|
||||
; Get coordinates from KoalaPad
|
||||
; If CLC then pen is off pad
|
||||
; SEC then X,Y are adjusted values
|
||||
;
|
||||
KPONPAD JSR READPDL
|
||||
CPX #KPMIN
|
||||
BGE >0
|
||||
CPY #KPMIN
|
||||
BLT KPONPADR
|
||||
;
|
||||
; Don't believe paddle readings unless
|
||||
; you get the same values twice.
|
||||
; (ignoring bit 0)
|
||||
;
|
||||
; compute X
|
||||
;
|
||||
^0 TXA
|
||||
AND #$FE
|
||||
CMP LASTX
|
||||
STA LASTX
|
||||
BNE KPONPAD
|
||||
;
|
||||
TXA
|
||||
SEC
|
||||
SBC #KPMIN
|
||||
BCS *+4
|
||||
LDA #0
|
||||
BIT SCALING
|
||||
BMI >1
|
||||
LSR
|
||||
^1 TAX
|
||||
;
|
||||
; compute Y
|
||||
;
|
||||
TYA
|
||||
AND #$FE
|
||||
CMP LASTY
|
||||
STA LASTY
|
||||
BNE KPONPAD
|
||||
;
|
||||
TYA
|
||||
SEC
|
||||
SBC #KPMIN
|
||||
BCS *+4
|
||||
LDA #0
|
||||
BIT SCALING
|
||||
BMI >2
|
||||
;
|
||||
; Y*.3125 (1/4+1/16)
|
||||
;
|
||||
STA DTMPHI
|
||||
LDA #0
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
LDY DTMPHI
|
||||
STA DTMP0
|
||||
STY DTMP1
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
ADC DTMP0
|
||||
LDA DTMPHI
|
||||
ADC DTMP1
|
||||
;
|
||||
^2 TAY
|
||||
SEC
|
||||
KPONPADR RTS
|
||||
;
|
||||
KPTURNON LDY #40
|
||||
LDA /40
|
||||
JMP SETFLASH
|
||||
;
|
||||
KPTURNOF = RTS
|
||||
;
|
||||
; Read KoalaPad by averaging
|
||||
; the current reading with the
|
||||
; last 7 readings
|
||||
;
|
||||
KPREAD JSR KPONPAD
|
||||
BCC KPDONE
|
||||
TXA
|
||||
LDX KPPOINT
|
||||
STA KPXLAST,X
|
||||
TYA
|
||||
STA KPYLAST,X
|
||||
INX
|
||||
TXA
|
||||
AND #7
|
||||
STA KPPOINT
|
||||
;
|
||||
LDX #0
|
||||
JSR KPAVG
|
||||
STA XCOOR
|
||||
LDX #8
|
||||
JSR KPAVG
|
||||
STA YCOOR
|
||||
KPDONE LDX XCOOR
|
||||
LDY YCOOR
|
||||
;
|
||||
; Read KoalaPad/Joystick buttons
|
||||
;
|
||||
READBTN LDA $C061
|
||||
ORA $C062
|
||||
AND #$80
|
||||
LASTBTN ORA #00
|
||||
PHA
|
||||
LSR
|
||||
AND #$40
|
||||
STA LASTBTN+1
|
||||
PLA
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
; Set KoalaPad averaging tables
|
||||
;
|
||||
KPSET JSR JYSET
|
||||
TXA
|
||||
LDX #7
|
||||
^0 STA KPXLAST,X
|
||||
DEX
|
||||
BPL <0
|
||||
;
|
||||
TYA
|
||||
LDY #7
|
||||
^1 STA KPYLAST,Y
|
||||
DEY
|
||||
BPL <1
|
||||
RTS
|
||||
;
|
||||
; Compute average of last 8
|
||||
; readings and return result in A
|
||||
;
|
||||
KPAVG LDY #0
|
||||
TYA
|
||||
STY DTMPHI
|
||||
CLC
|
||||
^0 ADC KPXLAST,X
|
||||
BCC >1
|
||||
INC DTMPHI
|
||||
^1 INX
|
||||
INY
|
||||
CPY #8
|
||||
BCC <0
|
||||
;
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
LSR DTMPHI
|
||||
ROR
|
||||
RTS
|
||||
;-------------------
|
||||
;
|
||||
; Check for Joystick
|
||||
;
|
||||
FINDJOYS JSR CHECKPDL
|
||||
;
|
||||
; If joystick is centered,
|
||||
; then assume joystick
|
||||
;
|
||||
JSR JYREAD2
|
||||
BEQ >0
|
||||
RTS
|
||||
;
|
||||
^0 JSR INSTALL
|
||||
JMP JYTURNON
|
||||
JMP JYTURNOF
|
||||
JMP JYREAD
|
||||
JMP JYSET
|
||||
;
|
||||
JYTIMER BYT 20
|
||||
JYSPEEDU BYT 5
|
||||
;
|
||||
; "How fast to return values"
|
||||
; constants
|
||||
;
|
||||
JYSLOW = 45
|
||||
JYFAST = 10
|
||||
;
|
||||
JYTURNON = KPTURNON
|
||||
;
|
||||
JYTURNOF = RTS
|
||||
;
|
||||
JYTBL0 BYT JYFAST,JYSLOW,JYSLOW
|
||||
JYTBL1 BYT JYFAST,JYSLOW,JYFAST
|
||||
;
|
||||
JYREAD LDA JYTBL0,Y
|
||||
STA JYMOD0
|
||||
LDA JYTBL1,Y
|
||||
STA JYMOD1
|
||||
JSR JYREAD2
|
||||
BNE >0
|
||||
;
|
||||
; Joystick is centered, so reset all
|
||||
; the JY values
|
||||
;
|
||||
LDX #8
|
||||
STX JYSPEEDU
|
||||
LDX #1
|
||||
STX JYTIMER
|
||||
LDX #JYSLOW
|
||||
JYMOD0 = *-1
|
||||
STX JYSPEED
|
||||
BNE >3
|
||||
;
|
||||
^0 DEC JYTIMER
|
||||
BNE >3
|
||||
;
|
||||
DEC JYSPEEDU
|
||||
BNE >1
|
||||
LDX #JYFAST
|
||||
JYMOD1 = *-1
|
||||
STX JYSPEED
|
||||
;
|
||||
^1 LDX #00
|
||||
JYSPEED = *-1
|
||||
STX JYTIMER
|
||||
CLC
|
||||
ADC XCOOR
|
||||
CMP #$FF
|
||||
BEQ >2
|
||||
STA XCOOR
|
||||
^2 TYA
|
||||
CLC
|
||||
ADC YCOOR
|
||||
CMP #$FF
|
||||
BEQ >3
|
||||
STA YCOOR
|
||||
;
|
||||
^3 LDX XCOOR
|
||||
LDY YCOOR
|
||||
JMP READBTN
|
||||
;
|
||||
; Compute direction add value
|
||||
; in A for X, and Y for Y
|
||||
;
|
||||
JYREAD2 JSR READPDL
|
||||
TXA
|
||||
JSR JYCALC
|
||||
STA DTMP0
|
||||
TYA
|
||||
JSR JYCALC
|
||||
TAY
|
||||
ORA DTMP0
|
||||
PHP
|
||||
LDA DTMP0
|
||||
PLP
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
; Calculate add value FF,00,01
|
||||
; based on position of joystick
|
||||
;
|
||||
JYCALC TAX
|
||||
LDA #$FF
|
||||
CPX #$30
|
||||
ADC #0
|
||||
CPX #$A0
|
||||
ADC #0
|
||||
RTS
|
||||
;
|
||||
JYSET STX XCOOR
|
||||
STY YCOOR
|
||||
RTS
|
||||
;
|
||||
; No input device connected handler
|
||||
;
|
||||
NODEVICE JSR INSTALL
|
||||
JMP >0
|
||||
JMP >0
|
||||
JMP >0
|
||||
JMP >0
|
||||
;
|
||||
; Satisfy DEVICEON
|
||||
;
|
||||
^0 LDY #3000
|
||||
LDA /3000
|
||||
;
|
||||
; Satisfy DEVICERD
|
||||
;
|
||||
SEC
|
||||
JMP SETFLASH
|
||||
;
|
||||
; Scratch pad area:
|
||||
;
|
||||
XCOOR BRK
|
||||
YCOOR BRK
|
||||
LASTX BRK
|
||||
LASTY BRK
|
||||
;
|
||||
;
|
||||
; David Snider's
|
||||
; Fast paddle read routine
|
||||
;
|
||||
; Make sure on page boundary
|
||||
;
|
||||
DFS $100-*&$FF,$EA
|
||||
;
|
||||
FASTPDL LDA #0
|
||||
LDY #7
|
||||
^0 STA P0D0,Y
|
||||
DEY
|
||||
BPL <0
|
||||
TAX
|
||||
CLC
|
||||
LDA $C070
|
||||
;
|
||||
; Both paddles loop
|
||||
;
|
||||
^1 INX
|
||||
BMI PDLERR2
|
||||
BIT $C064
|
||||
BPL P0X0
|
||||
BIT $C065
|
||||
BPL P1X0
|
||||
BIT $C064
|
||||
BPL P0X1
|
||||
BIT $C065
|
||||
BPL P1X1
|
||||
BIT $C064
|
||||
BPL P0X2
|
||||
BIT $C065
|
||||
BPL P1X2
|
||||
BIT $C064
|
||||
BPL P0X3
|
||||
BIT $C065
|
||||
BMI <1
|
||||
;
|
||||
; Paddle 1 exits
|
||||
;
|
||||
P1X3 BIT $C064
|
||||
STX P1D3
|
||||
BCC P0W3
|
||||
P1X0 BIT $C064
|
||||
STX P1D0
|
||||
BCC P0W0
|
||||
P1X1 BIT $C064
|
||||
STX P1D1
|
||||
BCC P0W1
|
||||
P1X2 BIT $C064
|
||||
STX P1D2
|
||||
BCC P0W2
|
||||
;
|
||||
; Paddle 0 exits
|
||||
;
|
||||
P0X0 BIT $C065
|
||||
STX P0D0
|
||||
BCC P1W0
|
||||
P0X1 BIT $C065
|
||||
STX P0D1
|
||||
BCC P1W1
|
||||
P0X2 BIT $C065
|
||||
STX P0D2
|
||||
BCC P1W2
|
||||
P0X3 BIT $C065
|
||||
STX P0D3
|
||||
BCC P1W3
|
||||
;
|
||||
PDLERR2 SEC
|
||||
RTS
|
||||
;
|
||||
;
|
||||
; Wait for paddle 1 to time out
|
||||
;
|
||||
^0 BIT $C065
|
||||
P1W0 BPL P1F0
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BIT $C065
|
||||
P1W1 BPL P1F1
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BIT $C065
|
||||
P1W2 BPL P1F2
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BIT $C065
|
||||
P1W3 BPL P1F3
|
||||
NOP
|
||||
NOP
|
||||
INX
|
||||
BPL <0
|
||||
BMI PDLERR2
|
||||
;
|
||||
; Wait for paddle 0 to time out
|
||||
;
|
||||
^0 BIT $C064
|
||||
P0W0 BPL P0F0
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BIT $C064
|
||||
P0W1 BPL P0F1
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BIT $C064
|
||||
P0W2 BPL P0F2
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
BIT $C064
|
||||
P0W3 BPL P0F3
|
||||
NOP
|
||||
NOP
|
||||
INX
|
||||
BPL <0
|
||||
BMI PDLERR2
|
||||
;
|
||||
; Final stuff
|
||||
;
|
||||
P1F0 STX P1D0
|
||||
BCC >0
|
||||
P1F1 STX P1D1
|
||||
BCC >0
|
||||
P1F2 STX P1D2
|
||||
BCC >0
|
||||
P1F3 STX P1D3
|
||||
BCC >0
|
||||
P0F0 STX P0D0
|
||||
BCC >0
|
||||
P0F1 STX P0D1
|
||||
BCC >0
|
||||
P0F2 STX P0D2
|
||||
BCC >0
|
||||
P0F3 STX P0D3
|
||||
;
|
||||
; Make sure this routine always takes
|
||||
; the same amount of time.
|
||||
;
|
||||
; 51 microsecond loop until X=$40
|
||||
;
|
||||
^0 CPX #$40
|
||||
BGE >1
|
||||
JSR RTS
|
||||
JSR RTS
|
||||
JSR RTS
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
INX
|
||||
BNE <0
|
||||
^1 CLC
|
||||
RTS
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "SUBPAK",ORG
|
||||
END
|
|
@ -0,0 +1,24 @@
|
|||
0 REM 0
|
||||
1 M = 4: IF PEEK (2054) = 48 THEN PRINT "BLOADCAPTURE.OBJ": POKE 2054,49
|
||||
2 OP = 1
|
||||
3 POKE 10,OP * 128
|
||||
5 Y0 = 4096:Y1 = Y0 + 256:FL = Y1 + 192:HX = Y1 + 224:CP = Y0 + 512: GOTO 1000
|
||||
10 POKE - 16302,0: POKE - 16301,0: POKE - 16297,0: POKE - 16304,0
|
||||
20 VTAB 14: IN# M: INPUT X,Y,B: IN# 0:X = INT (X / 20):Y = INT (Y / 6): IF X > 39 THEN X = 39
|
||||
30 IF Y > 159 THEN Y = 159
|
||||
40 POKE 0,X: POKE 1,Y: CALL FL: GOSUB 50: CALL FL: GOSUB 50: ON B < > 2 GOTO 20: PRINT CHR$ (7);: VTAB 24: RETURN
|
||||
50 FOR A = 1 TO 25: NEXT : RETURN
|
||||
1000 TEXT : NORMAL : POKE - 16302,0: POKE - 16301,0: POKE - 16297,0: POKE - 16304,0: PR# M: PRINT CHR$ (1);: PR# 0
|
||||
1010 HOME : VTAB 23: PRINT "SELECT UPPER LEFT CORNER": GOSUB 10:OX = X:OY = Y: PRINT "X="X",Y="Y" NOW LOWER RIGHT": GOSUB 10: PRINT "X="X",Y="Y
|
||||
1020 POKE 0,OX: POKE 1,OY: POKE 2,X + 1: POKE 3,Y + 1: CALL CP: VTAB 24: PRINT "PRESS <RETURN> TO ACCEPT...";: POKE 49168,0
|
||||
1030 K = PEEK (49152): ON K < 128 GOTO 1030: POKE 49168,0: CALL CP: ON K < > 141 GOTO 1010
|
||||
1035 CALL CP:EN = PEEK (6) + 256 * PEEK (7)
|
||||
1040 CALL 1002: TEXT : HOME : PRINT "LENGTH="EN - 16384: INPUT "FILE NAME ?";F$: IF NOT OP THEN 2000
|
||||
1042 : IF LEN (F$) THEN PRINT "OPEN"F$: PRINT "WRITE"F$
|
||||
1045 PRINT "I
"F$":
BYT "OX","OY","X - OX + 1","Y - OY + 1;:H = 0
|
||||
1050 FOR A = 16384 TO EN - 1: IF H / 16 = INT (H / 16) THEN PRINT : PRINT " HEX ";
|
||||
1060 POKE 0, PEEK (A): CALL HX:H = H + 1: NEXT
|
||||
1070 PRINT "
;
;": PRINT "CLOSE"
|
||||
1080 END
|
||||
2000 PRINT "BSAVE"F$",A16384,L"EN - 16384: STOP
|
||||
63999 POKE 2054,48: PRINT "SAVE CAPTURE"
|
|
@ -0,0 +1,36 @@
|
|||
5 F$ = "COMPRESSED BORDERS"
|
||||
10 SP = 4096: PRINT "BLOAD O:BORDDATA,A"SP
|
||||
15 GOSUB 60000
|
||||
20 DP = 8192:OP = DP
|
||||
30 FOR BR = 1 TO 9: PRINT "BORDER #"BR
|
||||
31 CO = 48 * (1 + 2 * (BR < 3)):BR(BR) = DP: GOSUB 1000:EB(BR) = DP - 1
|
||||
32 CO = 28 * (1 + 2 * (BR < 3)):SC(BR) = DP: GOSUB 1000:ES(BR) = DP - 1
|
||||
50 NEXT
|
||||
60 PRINT "OPEN "F$: PRINT "WRITE "F$
|
||||
70 PRINT "INS"
|
||||
100 FOR BR = 1 TO 9
|
||||
110 PRINT "PSBRD"BR;:A1 = BR(BR):A2 = EB(BR): GOSUB 200
|
||||
115 PRINT ";"
|
||||
120 PRINT "PSSCR"BR;:A1 = SC(BR):A2 = ES(BR): GOSUB 200
|
||||
130 PRINT ";-------"
|
||||
140 NEXT
|
||||
142 Q$ = CHR$ (34)
|
||||
145 FOR A = 1 TO 3: PRINT ";": NEXT : PRINT " USR "Q$"BOEDIT,V12"Q$",ORG": PRINT " END"
|
||||
150 PRINT "CLOSE": STOP
|
||||
200 C = 0: FOR A = A1 TO A2: IF NOT C THEN PRINT " HEX ";
|
||||
210 CALL 768, PEEK (A):C = C + 1: IF C = 8 THEN C = 0: PRINT
|
||||
220 NEXT : IF C THEN PRINT
|
||||
230 RETURN
|
||||
1000 AA = DP:BB = SP
|
||||
1010 A = PEEK (SP): ON A = PEEK (SP + 1) GOTO 2000
|
||||
1020 SP = SP + 1: POKE DP,A:DP = DP + 1:CO = CO - 1
|
||||
1040 IF CO THEN 1010
|
||||
1050 PRINT DP - AA,SP - BB: RETURN
|
||||
2000 C = 1:RB = A: IF CO = 1 THEN 1020
|
||||
2010 IF PEEK (SP) < > PEEK (SP + 1) THEN 3000
|
||||
2020 SP = SP + 1:C = C + 1:CO = CO - 1: IF CO THEN 2010
|
||||
3000 POKE DP,C + 128: POKE DP + 1,RB:DP = DP + 2
|
||||
3005 SP = SP + (CO > 0):CO = CO - (CO > 0)
|
||||
3010 GOTO 1040
|
||||
60000 FOR A = 768 TO 774: READ B: POKE A,B: NEXT : RETURN : DATA 32,76,231,138,76,218,253
|
||||
63999 PRINT "SAVE COMP BORDS"
|
|
@ -0,0 +1,29 @@
|
|||
5 F$ = "NUMB BORDER"
|
||||
10 SP = 4096: PRINT "BLOAD O:NUMBBORD,A"SP
|
||||
15 GOSUB 60000
|
||||
20 DP = 8192:OP = DP
|
||||
32 CO = 28 * 3:SC(BR) = DP: GOSUB 1000:ES(BR) = DP - 1
|
||||
60 PRINT "OPEN "F$: PRINT "WRITE "F$
|
||||
70 PRINT "INS"
|
||||
120 PRINT "PAGE3DAT";:A1 = SC(BR):A2 = ES(BR): GOSUB 200
|
||||
130 PRINT ";-------"
|
||||
142 Q$ = CHR$ (34)
|
||||
145 FOR A = 1 TO 3: PRINT ";": NEXT
|
||||
150 PRINT "CLOSE": STOP
|
||||
200 C = 0: FOR A = A1 TO A2: IF NOT C THEN PRINT " HEX ";
|
||||
210 CALL 768, PEEK (A):C = C + 1: IF C = 8 THEN C = 0: PRINT
|
||||
220 NEXT : IF C THEN PRINT
|
||||
230 RETURN
|
||||
1000 AA = DP:BB = SP
|
||||
1010 A = PEEK (SP): ON A = PEEK (SP + 1) GOTO 2000
|
||||
1020 SP = SP + 1: POKE DP,A:DP = DP + 1:CO = CO - 1
|
||||
1040 IF CO THEN 1010
|
||||
1050 PRINT DP - AA,SP - BB: RETURN
|
||||
2000 C = 1:RB = A: IF CO = 1 THEN 1020
|
||||
2010 IF PEEK (SP) < > PEEK (SP + 1) THEN 3000
|
||||
2020 SP = SP + 1:C = C + 1:CO = CO - 1: IF CO THEN 2010
|
||||
3000 POKE DP,C + 128: POKE DP + 1,RB:DP = DP + 2
|
||||
3005 SP = SP + (CO > 0):CO = CO - (CO > 0)
|
||||
3010 GOTO 1040
|
||||
60000 FOR A = 768 TO 774: READ B: POKE A,B: NEXT : RETURN : DATA 32,76,231,138,76,218,253
|
||||
63999 PRINT "SAVE COMP NUMB BORD"
|
|
@ -0,0 +1,9 @@
|
|||
5 A = 25344:E = A: PRINT "MONC"
|
||||
10 DEF FN A(A) = PEEK ( - 21920) + PEEK ( - 21919) * 256
|
||||
20 READ A$: IF A$ < > "" THEN PRINT "BLOAD"A$",A"E:E = E + FN A(0): GOTO 20
|
||||
30 READ V: IF V THEN GOSUB 100: GOTO 30
|
||||
40 END
|
||||
100 F$ = "[CD],V" + STR$ (V): PRINT "UNLOCK "F$: PRINT "BSAVE "F$",A"A",L"E - A: PRINT "LOCK "F$: RETURN
|
||||
1000 DATA "O:SUPPHEADER","O:D000","O:SUPPGET",
|
||||
60000 DATA 11,14,15,
|
||||
63999 PRINT "SAVE MAKE SUPP"
|
|
@ -0,0 +1,523 @@
|
|||
1000- 00 BRK
|
||||
1001- 00 BRK
|
||||
1002- 00 BRK
|
||||
1003- 00 BRK
|
||||
1004- 00 BRK
|
||||
1005- 00 BRK
|
||||
1006- 00 BRK
|
||||
1007- 00 BRK
|
||||
1008- 80 80 BRA $0F8A
|
||||
100A- 80 80 BRA $0F8C
|
||||
100C- 80 80 BRA $0F8E
|
||||
100E- 80 80 BRA $0F90
|
||||
1010- 00 BRK
|
||||
1011- 00 BRK
|
||||
1012- 00 BRK
|
||||
1013- 00 BRK
|
||||
1014- 00 BRK
|
||||
1015- 00 BRK
|
||||
1016- 00 BRK
|
||||
1017- 00 BRK
|
||||
1018- 80 80 BRA $0F9A
|
||||
101A- 80 80 BRA $0F9C
|
||||
101C- 80 80 BRA $0F9E
|
||||
101E- 80 80 BRA $0FA0
|
||||
1020- 00 BRK
|
||||
1021- 00 BRK
|
||||
1022- 00 BRK
|
||||
1023- 00 BRK
|
||||
1024- 00 BRK
|
||||
1025- 00 BRK
|
||||
1026- 00 BRK
|
||||
1027- 00 BRK
|
||||
1028- 80 80 BRA $0FAA
|
||||
102A- 80 80 BRA $0FAC
|
||||
102C- 80 80 BRA $0FAE
|
||||
102E- 80 80 BRA $0FB0
|
||||
1030- 00 BRK
|
||||
1031- 00 BRK
|
||||
1032- 00 BRK
|
||||
1033- 00 BRK
|
||||
1034- 00 BRK
|
||||
1035- 00 BRK
|
||||
1036- 00 BRK
|
||||
1037- 00 BRK
|
||||
1038- 80 80 BRA $0FBA
|
||||
103A- 80 80 BRA $0FBC
|
||||
103C- 80 80 BRA $0FBE
|
||||
103E- 80 80 BRA $0FC0
|
||||
1040- 28 PLP
|
||||
1041- 28 PLP
|
||||
1042- 28 PLP
|
||||
1043- 28 PLP
|
||||
1044- 28 PLP
|
||||
1045- 28 PLP
|
||||
1046- 28 PLP
|
||||
1047- 28 PLP
|
||||
1048- A8 TAY
|
||||
1049- A8 TAY
|
||||
104A- A8 TAY
|
||||
104B- A8 TAY
|
||||
104C- A8 TAY
|
||||
104D- A8 TAY
|
||||
104E- A8 TAY
|
||||
104F- A8 TAY
|
||||
1050- 28 PLP
|
||||
1051- 28 PLP
|
||||
1052- 28 PLP
|
||||
1053- 28 PLP
|
||||
1054- 28 PLP
|
||||
1055- 28 PLP
|
||||
1056- 28 PLP
|
||||
1057- 28 PLP
|
||||
1058- A8 TAY
|
||||
1059- A8 TAY
|
||||
105A- A8 TAY
|
||||
105B- A8 TAY
|
||||
105C- A8 TAY
|
||||
105D- A8 TAY
|
||||
105E- A8 TAY
|
||||
105F- A8 TAY
|
||||
1060- 28 PLP
|
||||
1061- 28 PLP
|
||||
1062- 28 PLP
|
||||
1063- 28 PLP
|
||||
1064- 28 PLP
|
||||
1065- 28 PLP
|
||||
1066- 28 PLP
|
||||
1067- 28 PLP
|
||||
1068- A8 TAY
|
||||
1069- A8 TAY
|
||||
106A- A8 TAY
|
||||
106B- A8 TAY
|
||||
106C- A8 TAY
|
||||
106D- A8 TAY
|
||||
106E- A8 TAY
|
||||
106F- A8 TAY
|
||||
1070- 28 PLP
|
||||
1071- 28 PLP
|
||||
1072- 28 PLP
|
||||
1073- 28 PLP
|
||||
1074- 28 PLP
|
||||
1075- 28 PLP
|
||||
1076- 28 PLP
|
||||
1077- 28 PLP
|
||||
1078- A8 TAY
|
||||
1079- A8 TAY
|
||||
107A- A8 TAY
|
||||
107B- A8 TAY
|
||||
107C- A8 TAY
|
||||
107D- A8 TAY
|
||||
107E- A8 TAY
|
||||
107F- A8 TAY
|
||||
1080- 50 50 BVC $10D2
|
||||
1082- 50 50 BVC $10D4
|
||||
1084- 50 50 BVC $10D6
|
||||
1086- 50 50 BVC $10D8
|
||||
1088- D0 D0 BNE $105A
|
||||
108A- D0 D0 BNE $105C
|
||||
108C- D0 D0 BNE $105E
|
||||
108E- D0 D0 BNE $1060
|
||||
1090- 50 50 BVC $10E2
|
||||
1092- 50 50 BVC $10E4
|
||||
1094- 50 50 BVC $10E6
|
||||
1096- 50 50 BVC $10E8
|
||||
1098- D0 D0 BNE $106A
|
||||
109A- D0 D0 BNE $106C
|
||||
109C- D0 D0 BNE $106E
|
||||
109E- D0 D0 BNE $1070
|
||||
10A0- 50 50 BVC $10F2
|
||||
10A2- 50 50 BVC $10F4
|
||||
10A4- 50 50 BVC $10F6
|
||||
10A6- 50 50 BVC $10F8
|
||||
10A8- D0 D0 BNE $107A
|
||||
10AA- D0 D0 BNE $107C
|
||||
10AC- D0 D0 BNE $107E
|
||||
10AE- D0 D0 BNE $1080
|
||||
10B0- 50 50 BVC $1102
|
||||
10B2- 50 50 BVC $1104
|
||||
10B4- 50 50 BVC $1106
|
||||
10B6- 50 50 BVC $1108
|
||||
10B8- D0 D0 BNE $108A
|
||||
10BA- D0 D0 BNE $108C
|
||||
10BC- D0 D0 BNE $108E
|
||||
10BE- D0 D0 BNE $1090
|
||||
10C0- 00 BRK
|
||||
10C1- 00 BRK
|
||||
10C2- 00 BRK
|
||||
10C3- 00 BRK
|
||||
10C4- 00 BRK
|
||||
10C5- 00 BRK
|
||||
10C6- 00 BRK
|
||||
10C7- 00 BRK
|
||||
10C8- 00 BRK
|
||||
10C9- 00 BRK
|
||||
10CA- 00 BRK
|
||||
10CB- 00 BRK
|
||||
10CC- 00 BRK
|
||||
10CD- 00 BRK
|
||||
10CE- 00 BRK
|
||||
10CF- 00 BRK
|
||||
10D0- 00 BRK
|
||||
10D1- 00 BRK
|
||||
10D2- 00 BRK
|
||||
10D3- 00 BRK
|
||||
10D4- 00 BRK
|
||||
10D5- 00 BRK
|
||||
10D6- 00 BRK
|
||||
10D7- 00 BRK
|
||||
10D8- 00 BRK
|
||||
10D9- 00 BRK
|
||||
10DA- 00 BRK
|
||||
10DB- 00 BRK
|
||||
10DC- 00 BRK
|
||||
10DD- 00 BRK
|
||||
10DE- 00 BRK
|
||||
10DF- 00 BRK
|
||||
10E0- 00 BRK
|
||||
10E1- 00 BRK
|
||||
10E2- 00 BRK
|
||||
10E3- 00 BRK
|
||||
10E4- 00 BRK
|
||||
10E5- 00 BRK
|
||||
10E6- 00 BRK
|
||||
10E7- 00 BRK
|
||||
10E8- 00 BRK
|
||||
10E9- 00 BRK
|
||||
10EA- 00 BRK
|
||||
10EB- 00 BRK
|
||||
10EC- 00 BRK
|
||||
10ED- 00 BRK
|
||||
10EE- 00 BRK
|
||||
10EF- 00 BRK
|
||||
10F0- 00 BRK
|
||||
10F1- 00 BRK
|
||||
10F2- 00 BRK
|
||||
10F3- 00 BRK
|
||||
10F4- 00 BRK
|
||||
10F5- 00 BRK
|
||||
10F6- 00 BRK
|
||||
10F7- 00 BRK
|
||||
10F8- 00 BRK
|
||||
10F9- 00 BRK
|
||||
10FA- 00 BRK
|
||||
10FB- 00 BRK
|
||||
10FC- 00 BRK
|
||||
10FD- 00 BRK
|
||||
10FE- 00 BRK
|
||||
10FF- 00 BRK
|
||||
1100- 20 24 28 JSR $2824
|
||||
1103- 2C 30 34 BIT $3430
|
||||
1106- 38 SEC
|
||||
1107- 3C 20 24 BIT $2420,X
|
||||
110A- 28 PLP
|
||||
110B- 2C 30 34 BIT $3430
|
||||
110E- 38 SEC
|
||||
110F- 3C 21 25 BIT $2521,X
|
||||
1112- 29 2D AND #$2D
|
||||
1114- 31 35 AND ($35),Y
|
||||
1116- 39 3D 21 AND $213D,Y
|
||||
1119- 25 29 AND $29
|
||||
111B- 2D 31 35 AND $3531
|
||||
111E- 39 3D 22 AND $223D,Y
|
||||
1121- 26 2A ROL $2A
|
||||
1123- 2E 32 36 ROL $3632
|
||||
1126- 3A DEC
|
||||
1127- 3E 22 26 ROL $2622,X
|
||||
112A- 2A ROL
|
||||
112B- 2E 32 36 ROL $3632
|
||||
112E- 3A DEC
|
||||
112F- 3E 23 27 ROL $2723,X
|
||||
1132- 2B ???
|
||||
1133- 2F ???
|
||||
1134- 33 ???
|
||||
1135- 37 ???
|
||||
1136- 3B ???
|
||||
1137- 3F ???
|
||||
1138- 23 ???
|
||||
1139- 27 ???
|
||||
113A- 2B ???
|
||||
113B- 2F ???
|
||||
113C- 33 ???
|
||||
113D- 37 ???
|
||||
113E- 3B ???
|
||||
113F- 3F ???
|
||||
1140- 20 24 28 JSR $2824
|
||||
1143- 2C 30 34 BIT $3430
|
||||
1146- 38 SEC
|
||||
1147- 3C 20 24 BIT $2420,X
|
||||
114A- 28 PLP
|
||||
114B- 2C 30 34 BIT $3430
|
||||
114E- 38 SEC
|
||||
114F- 3C 21 25 BIT $2521,X
|
||||
1152- 29 2D AND #$2D
|
||||
1154- 31 35 AND ($35),Y
|
||||
1156- 39 3D 21 AND $213D,Y
|
||||
1159- 25 29 AND $29
|
||||
115B- 2D 31 35 AND $3531
|
||||
115E- 39 3D 22 AND $223D,Y
|
||||
1161- 26 2A ROL $2A
|
||||
1163- 2E 32 36 ROL $3632
|
||||
1166- 3A DEC
|
||||
1167- 3E 22 26 ROL $2622,X
|
||||
116A- 2A ROL
|
||||
116B- 2E 32 36 ROL $3632
|
||||
116E- 3A DEC
|
||||
116F- 3E 23 27 ROL $2723,X
|
||||
1172- 2B ???
|
||||
1173- 2F ???
|
||||
1174- 33 ???
|
||||
1175- 37 ???
|
||||
1176- 3B ???
|
||||
1177- 3F ???
|
||||
1178- 23 ???
|
||||
1179- 27 ???
|
||||
117A- 2B ???
|
||||
117B- 2F ???
|
||||
117C- 33 ???
|
||||
117D- 37 ???
|
||||
117E- 3B ???
|
||||
117F- 3F ???
|
||||
1180- 20 24 28 JSR $2824
|
||||
1183- 2C 30 34 BIT $3430
|
||||
1186- 38 SEC
|
||||
1187- 3C 20 24 BIT $2420,X
|
||||
118A- 28 PLP
|
||||
118B- 2C 30 34 BIT $3430
|
||||
118E- 38 SEC
|
||||
118F- 3C 21 25 BIT $2521,X
|
||||
1192- 29 2D AND #$2D
|
||||
1194- 31 35 AND ($35),Y
|
||||
1196- 39 3D 21 AND $213D,Y
|
||||
1199- 25 29 AND $29
|
||||
119B- 2D 31 35 AND $3531
|
||||
119E- 39 3D 22 AND $223D,Y
|
||||
11A1- 26 2A ROL $2A
|
||||
11A3- 2E 32 36 ROL $3632
|
||||
11A6- 3A DEC
|
||||
11A7- 3E 22 26 ROL $2622,X
|
||||
11AA- 2A ROL
|
||||
11AB- 2E 32 36 ROL $3632
|
||||
11AE- 3A DEC
|
||||
11AF- 3E 23 27 ROL $2723,X
|
||||
11B2- 2B ???
|
||||
11B3- 2F ???
|
||||
11B4- 33 ???
|
||||
11B5- 37 ???
|
||||
11B6- 3B ???
|
||||
11B7- 3F ???
|
||||
11B8- 23 ???
|
||||
11B9- 27 ???
|
||||
11BA- 2B ???
|
||||
11BB- 2F ???
|
||||
11BC- 33 ???
|
||||
11BD- 37 ???
|
||||
11BE- 3B ???
|
||||
11BF- 3F ???
|
||||
11C0- A4 01 LDY $01
|
||||
11C2- B9 00 10 LDA $1000,Y
|
||||
11C5- 85 3A STA $3A
|
||||
11C7- B9 00 11 LDA $1100,Y
|
||||
11CA- 85 3B STA $3B
|
||||
11CC- A4 00 LDY $00
|
||||
11CE- B1 3A LDA ($3A),Y
|
||||
11D0- 49 7F EOR #$7F
|
||||
11D2- 91 3A STA ($3A),Y
|
||||
11D4- 60 RTS
|
||||
11D5- 44 ???
|
||||
11D6- 20 E3 03 JSR $03E3
|
||||
11D9- 20 20 F4 JSR $F420
|
||||
11DC- 11 F0 ORA ($F0),Y
|
||||
11DE- 14 20 TRB $20
|
||||
11E0- A5 00 LDA $00
|
||||
11E2- 4C DA FD JMP $FDDA F8ROM:PRBYTE
|
||||
11E5- 20 61 20 JSR $2061
|
||||
11E8- 66 6C ROR $6C
|
||||
11EA- 6F ???
|
||||
11EB- 70 70 BVS $125D
|
||||
11ED- 79 0A 0D ADC $0D0A,Y
|
||||
11F0- 00 BRK
|
||||
11F1- A9 FF LDA #$FF
|
||||
11F3- 60 RTS
|
||||
11F4- 8D 71 12 STA $1271
|
||||
11F7- CA DEX
|
||||
11F8- 8E 70 12 STX $1270
|
||||
11FB- CE 71 12 DEC $1271
|
||||
11FE- A2 62 LDX #$62
|
||||
1200- A0 00 LDY #$00
|
||||
1202- A9 40 LDA #$40
|
||||
1204- 84 06 STY $06
|
||||
1206- 85 07 STA $07
|
||||
1208- A6 01 LDX $01
|
||||
120A- 20 7D 12 JSR $127D
|
||||
120D- 20 63 12 JSR $1263
|
||||
1210- 85 09 STA $09
|
||||
1212- 24 08 BIT $08
|
||||
1214- 30 3B BMI $1251
|
||||
1216- 24 0A BIT $0A
|
||||
1218- 10 08 BPL $1222
|
||||
121A- C9 00 CMP #$00
|
||||
121C- F0 0A BEQ $1228
|
||||
121E- C9 7F CMP #$7F
|
||||
1220- F0 06 BEQ $1228
|
||||
1222- 20 53 12 JSR $1253
|
||||
1225- 4C 0D 12 JMP $120D
|
||||
1228- 8D 35 12 STA $1235
|
||||
122B- 29 40 AND #$40
|
||||
122D- 09 81 ORA #$81
|
||||
122F- 85 09 STA $09
|
||||
1231- 20 63 12 JSR $1263
|
||||
1234- C9 00 CMP #$00
|
||||
1236- D0 11 BNE $1249
|
||||
1238- E6 09 INC $09
|
||||
123A- 24 08 BIT $08
|
||||
123C- 30 13 BMI $1251
|
||||
123E- A5 09 LDA $09
|
||||
1240- 29 3F AND #$3F
|
||||
1242- D0 ED BNE $1231
|
||||
1244- C6 09 DEC $09
|
||||
1246- AD 35 12 LDA $1235
|
||||
1249- 48 PHA
|
||||
124A- 20 51 12 JSR $1251
|
||||
124D- 68 PLA
|
||||
124E- 4C 10 12 JMP $1210
|
||||
1251- A5 09 LDA $09
|
||||
1253- 8C 61 12 STY $1261
|
||||
1256- A0 00 LDY #$00
|
||||
1258- 91 06 STA ($06),Y
|
||||
125A- E6 06 INC $06
|
||||
125C- D0 02 BNE $1260
|
||||
125E- E6 07 INC $07
|
||||
1260- A0 00 LDY #$00
|
||||
1262- 60 RTS
|
||||
1263- B1 04 LDA ($04),Y
|
||||
1265- 49 7F EOR #$7F
|
||||
1267- 91 04 STA ($04),Y
|
||||
1269- 49 7F EOR #$7F
|
||||
126B- C8 INY
|
||||
126C- C4 02 CPY $02
|
||||
126E- 90 08 BCC $1278
|
||||
1270- 48 PHA
|
||||
1271- E8 INX
|
||||
1272- 20 7D 12 JSR $127D
|
||||
1275- 68 PLA
|
||||
1276- E4 03 CPX $03
|
||||
1278- 66 08 ROR $08
|
||||
127A- 29 7F AND #$7F
|
||||
127C- 60 RTS
|
||||
127D- BD 00 10 LDA $1000,X
|
||||
1280- 85 04 STA $04
|
||||
1282- BD 00 11 LDA $1100,X
|
||||
1285- 85 05 STA $05
|
||||
1287- A4 00 LDY $00
|
||||
1289- 60 RTS
|
||||
128A- 00 BRK
|
||||
128B- 00 BRK
|
||||
128C- 00 BRK
|
||||
128D- 00 BRK
|
||||
128E- 00 BRK
|
||||
128F- 00 BRK
|
||||
1290- 00 BRK
|
||||
1291- 00 BRK
|
||||
1292- 00 BRK
|
||||
1293- 00 BRK
|
||||
1294- 00 BRK
|
||||
1295- 00 BRK
|
||||
1296- 00 BRK
|
||||
1297- 00 BRK
|
||||
1298- 00 BRK
|
||||
1299- 00 BRK
|
||||
129A- 00 BRK
|
||||
129B- 00 BRK
|
||||
129C- 00 BRK
|
||||
129D- 00 BRK
|
||||
129E- 00 BRK
|
||||
129F- 00 BRK
|
||||
12A0- 00 BRK
|
||||
12A1- 00 BRK
|
||||
12A2- 00 BRK
|
||||
12A3- 00 BRK
|
||||
12A4- 00 BRK
|
||||
12A5- 00 BRK
|
||||
12A6- 00 BRK
|
||||
12A7- 00 BRK
|
||||
12A8- 00 BRK
|
||||
12A9- 00 BRK
|
||||
12AA- 00 BRK
|
||||
12AB- 00 BRK
|
||||
12AC- 00 BRK
|
||||
12AD- 00 BRK
|
||||
12AE- 00 BRK
|
||||
12AF- 00 BRK
|
||||
12B0- 00 BRK
|
||||
12B1- 00 BRK
|
||||
12B2- 00 BRK
|
||||
12B3- 00 BRK
|
||||
12B4- 00 BRK
|
||||
12B5- 00 BRK
|
||||
12B6- 00 BRK
|
||||
12B7- 00 BRK
|
||||
12B8- 00 BRK
|
||||
12B9- 00 BRK
|
||||
12BA- 00 BRK
|
||||
12BB- 00 BRK
|
||||
12BC- 00 BRK
|
||||
12BD- 00 BRK
|
||||
12BE- 00 BRK
|
||||
12BF- 00 BRK
|
||||
12C0- 00 BRK
|
||||
12C1- 00 BRK
|
||||
12C2- 00 BRK
|
||||
12C3- 00 BRK
|
||||
12C4- 00 BRK
|
||||
12C5- 00 BRK
|
||||
12C6- 00 BRK
|
||||
12C7- 00 BRK
|
||||
12C8- 00 BRK
|
||||
12C9- 00 BRK
|
||||
12CA- 00 BRK
|
||||
12CB- 00 BRK
|
||||
12CC- 00 BRK
|
||||
12CD- 00 BRK
|
||||
12CE- 00 BRK
|
||||
12CF- 00 BRK
|
||||
12D0- 00 BRK
|
||||
12D1- 00 BRK
|
||||
12D2- 00 BRK
|
||||
12D3- 00 BRK
|
||||
12D4- 00 BRK
|
||||
12D5- 00 BRK
|
||||
12D6- 00 BRK
|
||||
12D7- 00 BRK
|
||||
12D8- 00 BRK
|
||||
12D9- 00 BRK
|
||||
12DA- 00 BRK
|
||||
12DB- 00 BRK
|
||||
12DC- 00 BRK
|
||||
12DD- 00 BRK
|
||||
12DE- 00 BRK
|
||||
12DF- 00 BRK
|
||||
12E0- 00 BRK
|
||||
12E1- 00 BRK
|
||||
12E2- 00 BRK
|
||||
12E3- 00 BRK
|
||||
12E4- 00 BRK
|
||||
12E5- 00 BRK
|
||||
12E6- 00 BRK
|
||||
12E7- 00 BRK
|
||||
12E8- 00 BRK
|
||||
12E9- 00 BRK
|
||||
12EA- 00 BRK
|
||||
12EB- 00 BRK
|
||||
12EC- 00 BRK
|
||||
12ED- 00 BRK
|
||||
12EE- 00 BRK
|
||||
12EF- 00 BRK
|
||||
12F0- 00 BRK
|
||||
12F1- 00 BRK
|
||||
12F2- 00 BRK
|
||||
12F3- 00 BRK
|
||||
12F4- 00 BRK
|
||||
12F5- 00 BRK
|
||||
12F6- 00 BRK
|
||||
12F7- 00 BRK
|
|
@ -0,0 +1,104 @@
|
|||
INS
|
||||
PSBRD1 HEX 827F9600827F9501
|
||||
HEX 9900970100827F96
|
||||
HEX 00827F9600
|
||||
;
|
||||
PSSCR1 HEX 827F030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 03000300827F9A00
|
||||
HEX 0300030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 03000300
|
||||
;-------
|
||||
PSBRD2 HEX 827F89008A40827F
|
||||
HEX 00827F9501009701
|
||||
HEX 00970100827F8900
|
||||
HEX 827F8B00827F8900
|
||||
HEX 827F8B00
|
||||
;
|
||||
PSSCR2 HEX 827F030003000300
|
||||
HEX 0300030003000360
|
||||
HEX 0360036003600360
|
||||
HEX 036003837F8C0082
|
||||
HEX 7F8C009C03
|
||||
;-------
|
||||
PSBRD3 HEX 977F00977F00
|
||||
;
|
||||
PSSCR3 HEX 9C7F
|
||||
;-------
|
||||
PSBRD4 HEX 00030F1F1C3D303A
|
||||
HEX 3075606A6075603A
|
||||
HEX 3035381E1F0F0382
|
||||
HEX 00407078383C0C5C
|
||||
HEX 0C2E0656062E065C
|
||||
HEX 0C2C5C8278704000
|
||||
;
|
||||
PSSCR4 HEX 4003700F18192C34
|
||||
HEX 0C3126640E712664
|
||||
HEX 0C312C341819700F
|
||||
HEX 40038200
|
||||
;-------
|
||||
PSBRD5 HEX 7182738274820C82
|
||||
HEX 1C8221618221821C
|
||||
HEX 820C827482737100
|
||||
HEX 4782678217821882
|
||||
HEX 1C8242438242821C
|
||||
HEX 8218821782674700
|
||||
;
|
||||
PSSCR5 HEX 477167731774180C
|
||||
HEX 821C022084630220
|
||||
HEX 821C180C17746773
|
||||
HEX 4771
|
||||
;-------
|
||||
PSBRD6 HEX 0001020A16821211
|
||||
HEX 091D84231D091182
|
||||
HEX 12160A0201820060
|
||||
HEX 10141A821222646E
|
||||
HEX 84716E642282121A
|
||||
HEX 14106000
|
||||
;
|
||||
PSSCR6 HEX 82004001380E2412
|
||||
HEX 24125C1D62236223
|
||||
HEX 5C1D24122412380E
|
||||
HEX 40018300
|
||||
;-------
|
||||
PSBRD7 HEX 008301830382070F
|
||||
HEX 3F7F3F0F82078303
|
||||
HEX 8301860083408260
|
||||
HEX 707C7E7C70826083
|
||||
HEX 408600
|
||||
;
|
||||
PSSCR7 HEX 0001000140034003
|
||||
HEX 6007781F7E7F781F
|
||||
HEX 6007400340030001
|
||||
HEX 00018300
|
||||
;-------
|
||||
PSBRD8 HEX 8200018203820682
|
||||
HEX 0C1830703018820C
|
||||
HEX 8206820301830038
|
||||
HEX 7C7E46840307060C
|
||||
HEX 180C06078403467E
|
||||
HEX 7C3800
|
||||
;
|
||||
PSSCR8 HEX 82001C0E3E1F6739
|
||||
HEX 4330033007380E82
|
||||
HEX 1C0E380760014085
|
||||
HEX 00
|
||||
;-------
|
||||
PSBRD9 HEX 827F8348824F8948
|
||||
HEX 827F8340827F0082
|
||||
HEX 7F8301827F890982
|
||||
HEX 798309827F00
|
||||
;
|
||||
PSSCR9 HEX 827F19401940797F
|
||||
HEX 194C194C194C194C
|
||||
HEX 194C194C7F4F014C
|
||||
HEX 014C827F
|
||||
;-------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "BOEDIT,V12",ORG
|
||||
END
|
|
@ -0,0 +1,12 @@
|
|||
INS
|
||||
PAGE3DAT HEX 877F7E3F7E1F7E3F
|
||||
HEX 7E3F7E3F7E1F7C8E
|
||||
HEX 7F0F7E677C7F7C3F
|
||||
HEX 7E1F7F4F7F077C8E
|
||||
HEX 7F1F7C4F797F793F
|
||||
HEX 7C7F794F791F7C88
|
||||
HEX 7F
|
||||
;-------
|
||||
;
|
||||
;
|
||||
;
|
|
@ -0,0 +1,779 @@
|
|||
1000- 7F ???
|
||||
1001- 7F ???
|
||||
1002- 00 BRK
|
||||
1003- 00 BRK
|
||||
1004- 00 BRK
|
||||
1005- 00 BRK
|
||||
1006- 00 BRK
|
||||
1007- 00 BRK
|
||||
1008- 00 BRK
|
||||
1009- 00 BRK
|
||||
100A- 00 BRK
|
||||
100B- 00 BRK
|
||||
100C- 00 BRK
|
||||
100D- 00 BRK
|
||||
100E- 00 BRK
|
||||
100F- 00 BRK
|
||||
1010- 00 BRK
|
||||
1011- 00 BRK
|
||||
1012- 00 BRK
|
||||
1013- 00 BRK
|
||||
1014- 00 BRK
|
||||
1015- 00 BRK
|
||||
1016- 00 BRK
|
||||
1017- 00 BRK
|
||||
1018- 7F ???
|
||||
1019- 7F ???
|
||||
101A- 01 01 ORA ($01,X)
|
||||
101C- 01 01 ORA ($01,X)
|
||||
101E- 01 01 ORA ($01,X)
|
||||
1020- 01 01 ORA ($01,X)
|
||||
1022- 01 01 ORA ($01,X)
|
||||
1024- 01 01 ORA ($01,X)
|
||||
1026- 01 01 ORA ($01,X)
|
||||
1028- 01 01 ORA ($01,X)
|
||||
102A- 01 01 ORA ($01,X)
|
||||
102C- 01 01 ORA ($01,X)
|
||||
102E- 01 00 ORA ($00,X)
|
||||
1030- 00 BRK
|
||||
1031- 00 BRK
|
||||
1032- 00 BRK
|
||||
1033- 00 BRK
|
||||
1034- 00 BRK
|
||||
1035- 00 BRK
|
||||
1036- 00 BRK
|
||||
1037- 00 BRK
|
||||
1038- 00 BRK
|
||||
1039- 00 BRK
|
||||
103A- 00 BRK
|
||||
103B- 00 BRK
|
||||
103C- 00 BRK
|
||||
103D- 00 BRK
|
||||
103E- 00 BRK
|
||||
103F- 00 BRK
|
||||
1040- 00 BRK
|
||||
1041- 00 BRK
|
||||
1042- 00 BRK
|
||||
1043- 00 BRK
|
||||
1044- 00 BRK
|
||||
1045- 00 BRK
|
||||
1046- 00 BRK
|
||||
1047- 00 BRK
|
||||
1048- 01 01 ORA ($01,X)
|
||||
104A- 01 01 ORA ($01,X)
|
||||
104C- 01 01 ORA ($01,X)
|
||||
104E- 01 01 ORA ($01,X)
|
||||
1050- 01 01 ORA ($01,X)
|
||||
1052- 01 01 ORA ($01,X)
|
||||
1054- 01 01 ORA ($01,X)
|
||||
1056- 01 01 ORA ($01,X)
|
||||
1058- 01 01 ORA ($01,X)
|
||||
105A- 01 01 ORA ($01,X)
|
||||
105C- 01 01 ORA ($01,X)
|
||||
105E- 01 00 ORA ($00,X)
|
||||
1060- 7F ???
|
||||
1061- 7F ???
|
||||
1062- 00 BRK
|
||||
1063- 00 BRK
|
||||
1064- 00 BRK
|
||||
1065- 00 BRK
|
||||
1066- 00 BRK
|
||||
1067- 00 BRK
|
||||
1068- 00 BRK
|
||||
1069- 00 BRK
|
||||
106A- 00 BRK
|
||||
106B- 00 BRK
|
||||
106C- 00 BRK
|
||||
106D- 00 BRK
|
||||
106E- 00 BRK
|
||||
106F- 00 BRK
|
||||
1070- 00 BRK
|
||||
1071- 00 BRK
|
||||
1072- 00 BRK
|
||||
1073- 00 BRK
|
||||
1074- 00 BRK
|
||||
1075- 00 BRK
|
||||
1076- 00 BRK
|
||||
1077- 00 BRK
|
||||
1078- 7F ???
|
||||
1079- 7F ???
|
||||
107A- 00 BRK
|
||||
107B- 00 BRK
|
||||
107C- 00 BRK
|
||||
107D- 00 BRK
|
||||
107E- 00 BRK
|
||||
107F- 00 BRK
|
||||
1080- 00 BRK
|
||||
1081- 00 BRK
|
||||
1082- 00 BRK
|
||||
1083- 00 BRK
|
||||
1084- 00 BRK
|
||||
1085- 00 BRK
|
||||
1086- 00 BRK
|
||||
1087- 00 BRK
|
||||
1088- 00 BRK
|
||||
1089- 00 BRK
|
||||
108A- 00 BRK
|
||||
108B- 00 BRK
|
||||
108C- 00 BRK
|
||||
108D- 00 BRK
|
||||
108E- 00 BRK
|
||||
108F- 00 BRK
|
||||
1090- 7F ???
|
||||
1091- 7F ???
|
||||
1092- 03 ???
|
||||
1093- 00 BRK
|
||||
1094- 03 ???
|
||||
1095- 00 BRK
|
||||
1096- 03 ???
|
||||
1097- 00 BRK
|
||||
1098- 03 ???
|
||||
1099- 00 BRK
|
||||
109A- 03 ???
|
||||
109B- 00 BRK
|
||||
109C- 03 ???
|
||||
109D- 00 BRK
|
||||
109E- 03 ???
|
||||
109F- 00 BRK
|
||||
10A0- 03 ???
|
||||
10A1- 00 BRK
|
||||
10A2- 03 ???
|
||||
10A3- 00 BRK
|
||||
10A4- 03 ???
|
||||
10A5- 00 BRK
|
||||
10A6- 03 ???
|
||||
10A7- 00 BRK
|
||||
10A8- 03 ???
|
||||
10A9- 00 BRK
|
||||
10AA- 03 ???
|
||||
10AB- 00 BRK
|
||||
10AC- 7F ???
|
||||
10AD- 7F ???
|
||||
10AE- 00 BRK
|
||||
10AF- 00 BRK
|
||||
10B0- 00 BRK
|
||||
10B1- 00 BRK
|
||||
10B2- 00 BRK
|
||||
10B3- 00 BRK
|
||||
10B4- 00 BRK
|
||||
10B5- 00 BRK
|
||||
10B6- 00 BRK
|
||||
10B7- 00 BRK
|
||||
10B8- 00 BRK
|
||||
10B9- 00 BRK
|
||||
10BA- 00 BRK
|
||||
10BB- 00 BRK
|
||||
10BC- 00 BRK
|
||||
10BD- 00 BRK
|
||||
10BE- 00 BRK
|
||||
10BF- 00 BRK
|
||||
10C0- 00 BRK
|
||||
10C1- 00 BRK
|
||||
10C2- 00 BRK
|
||||
10C3- 00 BRK
|
||||
10C4- 00 BRK
|
||||
10C5- 00 BRK
|
||||
10C6- 00 BRK
|
||||
10C7- 00 BRK
|
||||
10C8- 03 ???
|
||||
10C9- 00 BRK
|
||||
10CA- 03 ???
|
||||
10CB- 00 BRK
|
||||
10CC- 03 ???
|
||||
10CD- 00 BRK
|
||||
10CE- 03 ???
|
||||
10CF- 00 BRK
|
||||
10D0- 03 ???
|
||||
10D1- 00 BRK
|
||||
10D2- 03 ???
|
||||
10D3- 00 BRK
|
||||
10D4- 03 ???
|
||||
10D5- 00 BRK
|
||||
10D6- 03 ???
|
||||
10D7- 00 BRK
|
||||
10D8- 03 ???
|
||||
10D9- 00 BRK
|
||||
10DA- 03 ???
|
||||
10DB- 00 BRK
|
||||
10DC- 03 ???
|
||||
10DD- 00 BRK
|
||||
10DE- 03 ???
|
||||
10DF- 00 BRK
|
||||
10E0- 03 ???
|
||||
10E1- 00 BRK
|
||||
10E2- 03 ???
|
||||
10E3- 00 BRK
|
||||
10E4- 7F ???
|
||||
10E5- 7F ???
|
||||
10E6- 00 BRK
|
||||
10E7- 00 BRK
|
||||
10E8- 00 BRK
|
||||
10E9- 00 BRK
|
||||
10EA- 00 BRK
|
||||
10EB- 00 BRK
|
||||
10EC- 00 BRK
|
||||
10ED- 00 BRK
|
||||
10EE- 00 BRK
|
||||
10EF- 40 RTI
|
||||
10F0- 40 RTI
|
||||
10F1- 40 RTI
|
||||
10F2- 40 RTI
|
||||
10F3- 40 RTI
|
||||
10F4- 40 RTI
|
||||
10F5- 40 RTI
|
||||
10F6- 40 RTI
|
||||
10F7- 40 RTI
|
||||
10F8- 40 RTI
|
||||
10F9- 7F ???
|
||||
10FA- 7F ???
|
||||
10FB- 00 BRK
|
||||
10FC- 7F ???
|
||||
10FD- 7F ???
|
||||
10FE- 01 01 ORA ($01,X)
|
||||
1100- 01 01 ORA ($01,X)
|
||||
1102- 01 01 ORA ($01,X)
|
||||
1104- 01 01 ORA ($01,X)
|
||||
1106- 01 01 ORA ($01,X)
|
||||
1108- 01 01 ORA ($01,X)
|
||||
110A- 01 01 ORA ($01,X)
|
||||
110C- 01 01 ORA ($01,X)
|
||||
110E- 01 01 ORA ($01,X)
|
||||
1110- 01 01 ORA ($01,X)
|
||||
1112- 01 00 ORA ($00,X)
|
||||
1114- 01 01 ORA ($01,X)
|
||||
1116- 01 01 ORA ($01,X)
|
||||
1118- 01 01 ORA ($01,X)
|
||||
111A- 01 01 ORA ($01,X)
|
||||
111C- 01 01 ORA ($01,X)
|
||||
111E- 01 01 ORA ($01,X)
|
||||
1120- 01 01 ORA ($01,X)
|
||||
1122- 01 01 ORA ($01,X)
|
||||
1124- 01 01 ORA ($01,X)
|
||||
1126- 01 01 ORA ($01,X)
|
||||
1128- 01 01 ORA ($01,X)
|
||||
112A- 01 00 ORA ($00,X)
|
||||
112C- 01 01 ORA ($01,X)
|
||||
112E- 01 01 ORA ($01,X)
|
||||
1130- 01 01 ORA ($01,X)
|
||||
1132- 01 01 ORA ($01,X)
|
||||
1134- 01 01 ORA ($01,X)
|
||||
1136- 01 01 ORA ($01,X)
|
||||
1138- 01 01 ORA ($01,X)
|
||||
113A- 01 01 ORA ($01,X)
|
||||
113C- 01 01 ORA ($01,X)
|
||||
113E- 01 01 ORA ($01,X)
|
||||
1140- 01 01 ORA ($01,X)
|
||||
1142- 01 00 ORA ($00,X)
|
||||
1144- 7F ???
|
||||
1145- 7F ???
|
||||
1146- 00 BRK
|
||||
1147- 00 BRK
|
||||
1148- 00 BRK
|
||||
1149- 00 BRK
|
||||
114A- 00 BRK
|
||||
114B- 00 BRK
|
||||
114C- 00 BRK
|
||||
114D- 00 BRK
|
||||
114E- 00 BRK
|
||||
114F- 7F ???
|
||||
1150- 7F ???
|
||||
1151- 00 BRK
|
||||
1152- 00 BRK
|
||||
1153- 00 BRK
|
||||
1154- 00 BRK
|
||||
1155- 00 BRK
|
||||
1156- 00 BRK
|
||||
1157- 00 BRK
|
||||
1158- 00 BRK
|
||||
1159- 00 BRK
|
||||
115A- 00 BRK
|
||||
115B- 00 BRK
|
||||
115C- 7F ???
|
||||
115D- 7F ???
|
||||
115E- 00 BRK
|
||||
115F- 00 BRK
|
||||
1160- 00 BRK
|
||||
1161- 00 BRK
|
||||
1162- 00 BRK
|
||||
1163- 00 BRK
|
||||
1164- 00 BRK
|
||||
1165- 00 BRK
|
||||
1166- 00 BRK
|
||||
1167- 7F ???
|
||||
1168- 7F ???
|
||||
1169- 00 BRK
|
||||
116A- 00 BRK
|
||||
116B- 00 BRK
|
||||
116C- 00 BRK
|
||||
116D- 00 BRK
|
||||
116E- 00 BRK
|
||||
116F- 00 BRK
|
||||
1170- 00 BRK
|
||||
1171- 00 BRK
|
||||
1172- 00 BRK
|
||||
1173- 00 BRK
|
||||
1174- 7F ???
|
||||
1175- 7F ???
|
||||
1176- 03 ???
|
||||
1177- 00 BRK
|
||||
1178- 03 ???
|
||||
1179- 00 BRK
|
||||
117A- 03 ???
|
||||
117B- 00 BRK
|
||||
117C- 03 ???
|
||||
117D- 00 BRK
|
||||
117E- 03 ???
|
||||
117F- 00 BRK
|
||||
1180- 03 ???
|
||||
1181- 00 BRK
|
||||
1182- 03 ???
|
||||
1183- 60 RTS
|
||||
1184- 03 ???
|
||||
1185- 60 RTS
|
||||
1186- 03 ???
|
||||
1187- 60 RTS
|
||||
1188- 03 ???
|
||||
1189- 60 RTS
|
||||
118A- 03 ???
|
||||
118B- 60 RTS
|
||||
118C- 03 ???
|
||||
118D- 60 RTS
|
||||
118E- 03 ???
|
||||
118F- 7F ???
|
||||
1190- 7F ???
|
||||
1191- 7F ???
|
||||
1192- 00 BRK
|
||||
1193- 00 BRK
|
||||
1194- 00 BRK
|
||||
1195- 00 BRK
|
||||
1196- 00 BRK
|
||||
1197- 00 BRK
|
||||
1198- 00 BRK
|
||||
1199- 00 BRK
|
||||
119A- 00 BRK
|
||||
119B- 00 BRK
|
||||
119C- 00 BRK
|
||||
119D- 00 BRK
|
||||
119E- 7F ???
|
||||
119F- 7F ???
|
||||
11A0- 00 BRK
|
||||
11A1- 00 BRK
|
||||
11A2- 00 BRK
|
||||
11A3- 00 BRK
|
||||
11A4- 00 BRK
|
||||
11A5- 00 BRK
|
||||
11A6- 00 BRK
|
||||
11A7- 00 BRK
|
||||
11A8- 00 BRK
|
||||
11A9- 00 BRK
|
||||
11AA- 00 BRK
|
||||
11AB- 00 BRK
|
||||
11AC- 03 ???
|
||||
11AD- 03 ???
|
||||
11AE- 03 ???
|
||||
11AF- 03 ???
|
||||
11B0- 03 ???
|
||||
11B1- 03 ???
|
||||
11B2- 03 ???
|
||||
11B3- 03 ???
|
||||
11B4- 03 ???
|
||||
11B5- 03 ???
|
||||
11B6- 03 ???
|
||||
11B7- 03 ???
|
||||
11B8- 03 ???
|
||||
11B9- 03 ???
|
||||
11BA- 03 ???
|
||||
11BB- 03 ???
|
||||
11BC- 03 ???
|
||||
11BD- 03 ???
|
||||
11BE- 03 ???
|
||||
11BF- 03 ???
|
||||
11C0- 03 ???
|
||||
11C1- 03 ???
|
||||
11C2- 03 ???
|
||||
11C3- 03 ???
|
||||
11C4- 03 ???
|
||||
11C5- 03 ???
|
||||
11C6- 03 ???
|
||||
11C7- 03 ???
|
||||
11C8- 7F ???
|
||||
11C9- 7F ???
|
||||
11CA- 7F ???
|
||||
11CB- 7F ???
|
||||
11CC- 7F ???
|
||||
11CD- 7F ???
|
||||
11CE- 7F ???
|
||||
11CF- 7F ???
|
||||
11D0- 7F ???
|
||||
11D1- 7F ???
|
||||
11D2- 7F ???
|
||||
11D3- 7F ???
|
||||
11D4- 7F ???
|
||||
11D5- 7F ???
|
||||
11D6- 7F ???
|
||||
11D7- 7F ???
|
||||
11D8- 7F ???
|
||||
11D9- 7F ???
|
||||
11DA- 7F ???
|
||||
11DB- 7F ???
|
||||
11DC- 7F ???
|
||||
11DD- 7F ???
|
||||
11DE- 7F ???
|
||||
11DF- 00 BRK
|
||||
11E0- 7F ???
|
||||
11E1- 7F ???
|
||||
11E2- 7F ???
|
||||
11E3- 7F ???
|
||||
11E4- 7F ???
|
||||
11E5- 7F ???
|
||||
11E6- 7F ???
|
||||
11E7- 7F ???
|
||||
11E8- 7F ???
|
||||
11E9- 7F ???
|
||||
11EA- 7F ???
|
||||
11EB- 7F ???
|
||||
11EC- 7F ???
|
||||
11ED- 7F ???
|
||||
11EE- 7F ???
|
||||
11EF- 7F ???
|
||||
11F0- 7F ???
|
||||
11F1- 7F ???
|
||||
11F2- 7F ???
|
||||
11F3- 7F ???
|
||||
11F4- 7F ???
|
||||
11F5- 7F ???
|
||||
11F6- 7F ???
|
||||
11F7- 00 BRK
|
||||
11F8- 7F ???
|
||||
11F9- 7F ???
|
||||
11FA- 7F ???
|
||||
11FB- 7F ???
|
||||
11FC- 7F ???
|
||||
11FD- 7F ???
|
||||
11FE- 7F ???
|
||||
11FF- 7F ???
|
||||
1200- 7F ???
|
||||
1201- 7F ???
|
||||
1202- 7F ???
|
||||
1203- 7F ???
|
||||
1204- 7F ???
|
||||
1205- 7F ???
|
||||
1206- 7F ???
|
||||
1207- 7F ???
|
||||
1208- 7F ???
|
||||
1209- 7F ???
|
||||
120A- 7F ???
|
||||
120B- 7F ???
|
||||
120C- 7F ???
|
||||
120D- 7F ???
|
||||
120E- 7F ???
|
||||
120F- 7F ???
|
||||
1210- 7F ???
|
||||
1211- 7F ???
|
||||
1212- 7F ???
|
||||
1213- 7F ???
|
||||
1214- 00 BRK
|
||||
1215- 03 ???
|
||||
1216- 0F ???
|
||||
1217- 1F ???
|
||||
1218- 1C 3D 30 TRB $303D
|
||||
121B- 3A DEC
|
||||
121C- 30 75 BMI $1293
|
||||
121E- 60 RTS
|
||||
121F- 6A ROR
|
||||
1220- 60 RTS
|
||||
1221- 75 60 ADC $60,X
|
||||
1223- 3A DEC
|
||||
1224- 30 35 BMI $125B
|
||||
1226- 38 SEC
|
||||
1227- 1E 1F 0F ASL $0F1F,X
|
||||
122A- 03 ???
|
||||
122B- 00 BRK
|
||||
122C- 00 BRK
|
||||
122D- 40 RTI
|
||||
122E- 70 78 BVS $12A8
|
||||
1230- 38 SEC
|
||||
1231- 3C 0C 5C BIT $5C0C,X
|
||||
1234- 0C 2E 06 TSB $062E
|
||||
1237- 56 06 LSR $06,X
|
||||
1239- 2E 06 5C ROL $5C06
|
||||
123C- 0C 2C 5C TSB $5C2C
|
||||
123F- 78 SEI
|
||||
1240- 78 SEI
|
||||
1241- 70 40 BVS $1283
|
||||
1243- 00 BRK
|
||||
1244- 40 RTI
|
||||
1245- 03 ???
|
||||
1246- 70 0F BVS $1257
|
||||
1248- 18 CLC
|
||||
1249- 19 2C 34 ORA $342C,Y
|
||||
124C- 0C 31 26 TSB $2631
|
||||
124F- 64 0E STZ $0E
|
||||
1251- 71 26 ADC ($26),Y
|
||||
1253- 64 0C STZ $0C
|
||||
1255- 31 2C AND ($2C),Y
|
||||
1257- 34 18 BIT $18,X
|
||||
1259- 19 70 0F ORA $0F70,Y
|
||||
125C- 40 RTI
|
||||
125D- 03 ???
|
||||
125E- 00 BRK
|
||||
125F- 00 BRK
|
||||
1260- 71 73 ADC ($73),Y
|
||||
1262- 73 ???
|
||||
1263- 74 74 STZ $74,X
|
||||
1265- 0C 0C 1C TSB $1C0C
|
||||
1268- 1C 21 21 TRB $2121
|
||||
126B- 61 21 ADC ($21,X)
|
||||
126D- 21 1C AND ($1C,X)
|
||||
126F- 1C 0C 0C TRB $0C0C
|
||||
1272- 74 74 STZ $74,X
|
||||
1274- 73 ???
|
||||
1275- 73 ???
|
||||
1276- 71 00 ADC ($00),Y
|
||||
1278- 47 ???
|
||||
1279- 67 ???
|
||||
127A- 67 ???
|
||||
127B- 17 ???
|
||||
127C- 17 ???
|
||||
127D- 18 CLC
|
||||
127E- 18 CLC
|
||||
127F- 1C 1C 42 TRB $421C
|
||||
1282- 42 ???
|
||||
1283- 43 ???
|
||||
1284- 42 ???
|
||||
1285- 42 ???
|
||||
1286- 1C 1C 18 TRB $181C
|
||||
1289- 18 CLC
|
||||
128A- 17 ???
|
||||
128B- 17 ???
|
||||
128C- 67 ???
|
||||
128D- 67 ???
|
||||
128E- 47 ???
|
||||
128F- 00 BRK
|
||||
1290- 47 ???
|
||||
1291- 71 67 ADC ($67),Y
|
||||
1293- 73 ???
|
||||
1294- 17 ???
|
||||
1295- 74 18 STZ $18,X
|
||||
1297- 0C 1C 1C TSB $1C1C
|
||||
129A- 02 ???
|
||||
129B- 20 63 63 JSR $6363
|
||||
129E- 63 ???
|
||||
129F- 63 ???
|
||||
12A0- 02 ???
|
||||
12A1- 20 1C 1C JSR $1C1C
|
||||
12A4- 18 CLC
|
||||
12A5- 0C 17 74 TSB $7417
|
||||
12A8- 67 ???
|
||||
12A9- 73 ???
|
||||
12AA- 47 ???
|
||||
12AB- 71 00 ADC ($00),Y
|
||||
12AD- 01 02 ORA ($02,X)
|
||||
12AF- 0A ASL
|
||||
12B0- 16 12 ASL $12,X
|
||||
12B2- 12 11 ORA ($11)
|
||||
12B4- 09 1D ORA #$1D
|
||||
12B6- 23 ???
|
||||
12B7- 23 ???
|
||||
12B8- 23 ???
|
||||
12B9- 23 ???
|
||||
12BA- 1D 09 11 ORA $1109,X
|
||||
12BD- 12 12 ORA ($12)
|
||||
12BF- 16 0A ASL $0A,X
|
||||
12C1- 02 ???
|
||||
12C2- 01 00 ORA ($00,X)
|
||||
12C4- 00 BRK
|
||||
12C5- 60 RTS
|
||||
12C6- 10 14 BPL $12DC
|
||||
12C8- 1A INC
|
||||
12C9- 12 12 ORA ($12)
|
||||
12CB- 22 ???
|
||||
12CC- 64 6E STZ $6E
|
||||
12CE- 71 71 ADC ($71),Y
|
||||
12D0- 71 71 ADC ($71),Y
|
||||
12D2- 6E 64 22 ROR $2264
|
||||
12D5- 12 12 ORA ($12)
|
||||
12D7- 1A INC
|
||||
12D8- 14 10 TRB $10
|
||||
12DA- 60 RTS
|
||||
12DB- 00 BRK
|
||||
12DC- 00 BRK
|
||||
12DD- 00 BRK
|
||||
12DE- 40 RTI
|
||||
12DF- 01 38 ORA ($38,X)
|
||||
12E1- 0E 24 12 ASL $1224
|
||||
12E4- 24 12 BIT $12
|
||||
12E6- 5C ???
|
||||
12E7- 1D 62 23 ORA $2362,X
|
||||
12EA- 62 ???
|
||||
12EB- 23 ???
|
||||
12EC- 5C ???
|
||||
12ED- 1D 24 12 ORA $1224,X
|
||||
12F0- 24 12 BIT $12
|
||||
12F2- 38 SEC
|
||||
12F3- 0E 40 01 ASL $0140
|
||||
12F6- 00 BRK
|
||||
12F7- 00 BRK
|
||||
12F8- 00 BRK
|
||||
12F9- 01 01 ORA ($01,X)
|
||||
12FB- 01 03 ORA ($03,X)
|
||||
12FD- 03 ???
|
||||
12FE- 03 ???
|
||||
12FF- 07 ???
|
||||
1300- 07 ???
|
||||
1301- 0F ???
|
||||
1302- 3F ???
|
||||
1303- 7F ???
|
||||
1304- 3F ???
|
||||
1305- 0F ???
|
||||
1306- 07 ???
|
||||
1307- 07 ???
|
||||
1308- 03 ???
|
||||
1309- 03 ???
|
||||
130A- 03 ???
|
||||
130B- 01 01 ORA ($01,X)
|
||||
130D- 01 00 ORA ($00,X)
|
||||
130F- 00 BRK
|
||||
1310- 00 BRK
|
||||
1311- 00 BRK
|
||||
1312- 00 BRK
|
||||
1313- 00 BRK
|
||||
1314- 40 RTI
|
||||
1315- 40 RTI
|
||||
1316- 40 RTI
|
||||
1317- 60 RTS
|
||||
1318- 60 RTS
|
||||
1319- 70 7C BVS $1397
|
||||
131B- 7E 7C 70 ROR $707C,X
|
||||
131E- 60 RTS
|
||||
131F- 60 RTS
|
||||
1320- 40 RTI
|
||||
1321- 40 RTI
|
||||
1322- 40 RTI
|
||||
1323- 00 BRK
|
||||
1324- 00 BRK
|
||||
1325- 00 BRK
|
||||
1326- 00 BRK
|
||||
1327- 00 BRK
|
||||
1328- 00 BRK
|
||||
1329- 01 00 ORA ($00,X)
|
||||
132B- 01 40 ORA ($40,X)
|
||||
132D- 03 ???
|
||||
132E- 40 RTI
|
||||
132F- 03 ???
|
||||
1330- 60 RTS
|
||||
1331- 07 ???
|
||||
1332- 78 SEI
|
||||
1333- 1F ???
|
||||
1334- 7E 7F 78 ROR $787F,X
|
||||
1337- 1F ???
|
||||
1338- 60 RTS
|
||||
1339- 07 ???
|
||||
133A- 40 RTI
|
||||
133B- 03 ???
|
||||
133C- 40 RTI
|
||||
133D- 03 ???
|
||||
133E- 00 BRK
|
||||
133F- 01 00 ORA ($00,X)
|
||||
1341- 01 00 ORA ($00,X)
|
||||
1343- 00 BRK
|
||||
1344- 00 BRK
|
||||
1345- 00 BRK
|
||||
1346- 01 03 ORA ($03,X)
|
||||
1348- 03 ???
|
||||
1349- 06 06 ASL $06
|
||||
134B- 0C 0C 18 TSB $180C
|
||||
134E- 30 70 BMI $13C0
|
||||
1350- 30 18 BMI $136A
|
||||
1352- 0C 0C 06 TSB $060C
|
||||
1355- 06 03 ASL $03
|
||||
1357- 03 ???
|
||||
1358- 01 00 ORA ($00,X)
|
||||
135A- 00 BRK
|
||||
135B- 00 BRK
|
||||
135C- 38 SEC
|
||||
135D- 7C 7E 46 JMP ($467E,X)
|
||||
1360- 03 ???
|
||||
1361- 03 ???
|
||||
1362- 03 ???
|
||||
1363- 03 ???
|
||||
1364- 07 ???
|
||||
1365- 06 0C ASL $0C
|
||||
1367- 18 CLC
|
||||
1368- 0C 06 07 TSB $0706
|
||||
136B- 03 ???
|
||||
136C- 03 ???
|
||||
136D- 03 ???
|
||||
136E- 03 ???
|
||||
136F- 46 7E LSR $7E
|
||||
1371- 7C 38 00 JMP ($0038,X)
|
||||
1374- 00 BRK
|
||||
1375- 00 BRK
|
||||
1376- 1C 0E 3E TRB $3E0E
|
||||
1379- 1F ???
|
||||
137A- 67 ???
|
||||
137B- 39 43 30 AND $3043,Y
|
||||
137E- 03 ???
|
||||
137F- 30 07 BMI $1388
|
||||
1381- 38 SEC
|
||||
1382- 0E 1C 1C ASL $1C1C
|
||||
1385- 0E 38 07 ASL $0738
|
||||
1388- 60 RTS
|
||||
1389- 01 40 ORA ($40,X)
|
||||
138B- 00 BRK
|
||||
138C- 00 BRK
|
||||
138D- 00 BRK
|
||||
138E- 00 BRK
|
||||
138F- 00 BRK
|
||||
1390- 7F ???
|
||||
1391- 7F ???
|
||||
1392- 48 PHA
|
||||
1393- 48 PHA
|
||||
1394- 48 PHA
|
||||
1395- 4F ???
|
||||
1396- 4F ???
|
||||
1397- 48 PHA
|
||||
1398- 48 PHA
|
||||
1399- 48 PHA
|
||||
139A- 48 PHA
|
||||
139B- 48 PHA
|
||||
139C- 48 PHA
|
||||
139D- 48 PHA
|
||||
139E- 48 PHA
|
||||
139F- 48 PHA
|
||||
13A0- 7F ???
|
||||
13A1- 7F ???
|
||||
13A2- 40 RTI
|
||||
13A3- 40 RTI
|
||||
13A4- 40 RTI
|
||||
13A5- 7F ???
|
||||
13A6- 7F ???
|
||||
13A7- 00 BRK
|
||||
13A8- 7F ???
|
||||
13A9- 7F ???
|
||||
13AA- 01 01 ORA ($01,X)
|
||||
13AC- 01 7F ORA ($7F,X)
|
||||
13AE- 7F ???
|
||||
13AF- 09 09 ORA #$09
|
||||
13B1- 09 09 ORA #$09
|
||||
13B3- 09 09 ORA #$09
|
||||
13B5- 09 09 ORA #$09
|
||||
13B7- 09 79 ORA #$79
|
||||
13B9- 79 09 09 ADC $0909,Y
|
||||
13BC- 09 7F ORA #$7F
|
||||
13BE- 7F ???
|
||||
13BF- 00 BRK
|
||||
13C0- 7F ???
|
||||
13C1- 7F ???
|
||||
13C2- 19 40 19 ORA $1940,Y
|
||||
13C5- 40 RTI
|
||||
13C6- 79 7F 19 ADC $197F,Y
|
||||
13C9- 4C 19 4C JMP $4C19
|
||||
13CC- 19 4C 19 ORA $194C,Y
|
||||
13CF- 4C 19 4C JMP $4C19
|
||||
13D2- 19 4C 7F ORA $7F4C,Y
|
||||
13D5- 4F ???
|
||||
13D6- 01 4C ORA ($4C,X)
|
||||
13D8- 01 4C ORA ($4C,X)
|
||||
13DA- 7F ???
|
||||
13DB- 7F ???
|
|
@ -0,0 +1,267 @@
|
|||
D000- 4C 4B D0 JMP $D04B
|
||||
D003- AA TAX
|
||||
D004- A0 3F LDY #$3F
|
||||
D006- B9 19 D0 LDA $D019,Y
|
||||
D009- 99 C0 02 STA $02C0,Y
|
||||
D00C- 88 DEY
|
||||
D00D- 10 F7 BPL $D006
|
||||
D00F- A9 3F LDA #$3F
|
||||
D011- 48 PHA
|
||||
D012- A9 FF LDA #$FF
|
||||
D014- 48 PHA
|
||||
D015- 8A TXA
|
||||
D016- 4C C0 02 JMP $02C0
|
||||
D019- 48 PHA
|
||||
D01A- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
D01D- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
D020- A2 08 LDX #$08
|
||||
D022- A0 07 LDY #$07
|
||||
D024- A9 D2 LDA #$D2
|
||||
D026- 84 3A STY $3A
|
||||
D028- 85 3B STA $3B
|
||||
D02A- A0 00 LDY #$00
|
||||
D02C- A9 40 LDA #$40
|
||||
D02E- 84 3C STY $3C
|
||||
D030- 85 3D STA $3D
|
||||
D032- B1 3A LDA ($3A),Y
|
||||
D034- 48 PHA
|
||||
D035- B1 3C LDA ($3C),Y
|
||||
D037- 91 3A STA ($3A),Y
|
||||
D039- 68 PLA
|
||||
D03A- 91 3C STA ($3C),Y
|
||||
D03C- C8 INY
|
||||
D03D- D0 F3 BNE $D032
|
||||
D03F- E6 3B INC $3B
|
||||
D041- E6 3D INC $3D
|
||||
D043- CA DEX
|
||||
D044- D0 EC BNE $D032
|
||||
D046- 2C 81 C0 BIT $C081 rw:ROMIN
|
||||
D049- 68 PLA
|
||||
D04A- 60 RTS
|
||||
D04B- A9 00 LDA #$00
|
||||
D04D- A0 DE LDY #$DE
|
||||
D04F- AE 00 83 LDX $8300
|
||||
D052- E0 01 CPX #$01
|
||||
D054- D0 01 BNE $D057
|
||||
D056- C8 INY
|
||||
D057- 85 86 STA $86
|
||||
D059- 84 87 STY $87
|
||||
D05B- 20 64 D1 JSR $D164
|
||||
D05E- A5 88 LDA $88
|
||||
D060- 0A ASL
|
||||
D061- 69 20 ADC #$20
|
||||
D063- 85 83 STA $83
|
||||
D065- A9 00 LDA #$00
|
||||
D067- 85 82 STA $82
|
||||
D069- A0 24 LDY #$24
|
||||
D06B- 91 82 STA ($82),Y
|
||||
D06D- 88 DEY
|
||||
D06E- 10 FB BPL $D06B
|
||||
D070- A9 25 LDA #$25
|
||||
D072- 85 82 STA $82
|
||||
D074- A6 88 LDX $88
|
||||
D076- E4 89 CPX $89
|
||||
D078- F0 2C BEQ $D0A6
|
||||
D07A- CA DEX
|
||||
D07B- E4 89 CPX $89
|
||||
D07D- F0 27 BEQ $D0A6
|
||||
D07F- A2 02 LDX #$02
|
||||
D081- A9 00 LDA #$00
|
||||
D083- 20 31 D1 JSR $D131
|
||||
D086- A9 00 LDA #$00
|
||||
D088- 20 DE D0 JSR $D0DE
|
||||
D08B- A9 C3 LDA #$C3
|
||||
D08D- 85 82 STA $82
|
||||
D08F- E6 83 INC $83
|
||||
D091- A9 02 LDA #$02
|
||||
D093- 20 DE D0 JSR $D0DE
|
||||
D096- A0 0A LDY #$0A
|
||||
D098- A9 00 LDA #$00
|
||||
D09A- 91 82 STA ($82),Y
|
||||
D09C- 88 DEY
|
||||
D09D- 10 FB BPL $D09A
|
||||
D09F- E6 88 INC $88
|
||||
D0A1- C6 8A DEC $8A
|
||||
D0A3- D0 B9 BNE $D05E
|
||||
D0A5- 60 RTS
|
||||
D0A6- A9 01 LDA #$01
|
||||
D0A8- A6 89 LDX $89
|
||||
D0AA- E0 18 CPX #$18
|
||||
D0AC- F0 02 BEQ $D0B0
|
||||
D0AE- A9 00 LDA #$00
|
||||
D0B0- 85 3C STA $3C
|
||||
D0B2- A2 00 LDX #$00
|
||||
D0B4- A5 3C LDA $3C
|
||||
D0B6- 20 31 D1 JSR $D131
|
||||
D0B9- 20 DC D0 JSR $D0DC
|
||||
D0BC- A2 01 LDX #$01
|
||||
D0BE- A5 3C LDA $3C
|
||||
D0C0- 20 31 D1 JSR $D131
|
||||
D0C3- A2 11 LDX #$11
|
||||
D0C5- 20 DC D0 JSR $D0DC
|
||||
D0C8- CA DEX
|
||||
D0C9- D0 FA BNE $D0C5
|
||||
D0CB- E6 3C INC $3C
|
||||
D0CD- E6 3C INC $3C
|
||||
D0CF- A2 00 LDX #$00
|
||||
D0D1- A5 3C LDA $3C
|
||||
D0D3- 20 31 D1 JSR $D131
|
||||
D0D6- 20 DC D0 JSR $D0DC
|
||||
D0D9- 4C 96 D0 JMP $D096
|
||||
D0DC- A5 3C LDA $3C
|
||||
D0DE- A0 00 LDY #$00
|
||||
D0E0- 84 3A STY $3A
|
||||
D0E2- 31 86 AND ($86),Y
|
||||
D0E4- 4A LSR
|
||||
D0E5- 66 3D ROR $3D
|
||||
D0E7- 4A LSR
|
||||
D0E8- 90 02 BCC $D0EC
|
||||
D0EA- A0 16 LDY #$16
|
||||
D0EC- 84 3B STY $3B
|
||||
D0EE- A4 3A LDY $3A
|
||||
D0F0- B1 84 LDA ($84),Y
|
||||
D0F2- 24 3D BIT $3D
|
||||
D0F4- 10 04 BPL $D0FA
|
||||
D0F6- A8 TAY
|
||||
D0F7- B9 80 90 LDA $9080,Y
|
||||
D0FA- A4 3B LDY $3B
|
||||
D0FC- 31 82 AND ($82),Y
|
||||
D0FE- 8D 0E D1 STA $D10E
|
||||
D101- A4 3A LDY $3A
|
||||
D103- B1 80 LDA ($80),Y
|
||||
D105- 24 3D BIT $3D
|
||||
D107- 10 04 BPL $D10D
|
||||
D109- A8 TAY
|
||||
D10A- B9 80 90 LDA $9080,Y
|
||||
D10D- 09 00 ORA #$00
|
||||
D10F- A4 3B LDY $3B
|
||||
D111- 91 82 STA ($82),Y
|
||||
D113- B0 02 BCS $D117
|
||||
D115- C8 INY
|
||||
D116- C8 INY
|
||||
D117- E6 3A INC $3A
|
||||
D119- 88 DEY
|
||||
D11A- 84 3B STY $3B
|
||||
D11C- A5 3A LDA $3A
|
||||
D11E- 49 17 EOR #$17
|
||||
D120- D0 CC BNE $D0EE
|
||||
D122- A9 17 LDA #$17
|
||||
D124- 18 CLC
|
||||
D125- 65 82 ADC $82
|
||||
D127- 85 82 STA $82
|
||||
D129- 90 02 BCC $D12D
|
||||
D12B- E6 83 INC $83
|
||||
D12D- 60 RTS
|
||||
D12E- 04 34 TSB $34
|
||||
D130- 64 A0 STZ $A0
|
||||
D132- 00 BRK
|
||||
D133- 31 86 AND ($86),Y
|
||||
D135- 45 88 EOR $88
|
||||
D137- 4A LSR
|
||||
D138- B0 02 BCS $D13C
|
||||
D13A- A0 18 LDY #$18
|
||||
D13C- A5 86 LDA $86
|
||||
D13E- 85 80 STA $80
|
||||
D140- A5 87 LDA $87
|
||||
D142- 85 81 STA $81
|
||||
D144- 98 TYA
|
||||
D145- 18 CLC
|
||||
D146- 7D 2E D1 ADC $D12E,X
|
||||
D149- 8D 5B D1 STA $D15B
|
||||
D14C- 18 CLC
|
||||
D14D- 65 80 ADC $80
|
||||
D14F- 85 80 STA $80
|
||||
D151- 90 02 BCC $D155
|
||||
D153- E6 81 INC $81
|
||||
D155- A9 00 LDA #$00
|
||||
D157- A0 BB LDY #$BB
|
||||
D159- 18 CLC
|
||||
D15A- 69 00 ADC #$00
|
||||
D15C- 85 84 STA $84
|
||||
D15E- 90 01 BCC $D161
|
||||
D160- C8 INY
|
||||
D161- 84 85 STY $85
|
||||
D163- 60 RTS
|
||||
D164- 20 FC D1 JSR $D1FC
|
||||
D167- A0 00 LDY #$00
|
||||
D169- B1 86 LDA ($86),Y
|
||||
D16B- 29 04 AND #$04
|
||||
D16D- D0 01 BNE $D170
|
||||
D16F- 60 RTS
|
||||
D170- A2 02 LDX #$02
|
||||
D172- A0 00 LDY #$00
|
||||
D174- 20 3C D1 JSR $D13C
|
||||
D177- 20 81 D1 JSR $D181
|
||||
D17A- 20 CB D1 JSR $D1CB
|
||||
D17D- CA DEX
|
||||
D17E- 10 F2 BPL $D172
|
||||
D180- 60 RTS
|
||||
D181- E0 02 CPX #$02
|
||||
D183- F0 41 BEQ $D1C6
|
||||
D185- A0 2E LDY #$2E
|
||||
D187- 84 3B STY $3B
|
||||
D189- A0 16 LDY #$16
|
||||
D18B- 84 3A STY $3A
|
||||
D18D- A9 7F LDA #$7F
|
||||
D18F- 85 3C STA $3C
|
||||
D191- 31 80 AND ($80),Y
|
||||
D193- F0 07 BEQ $D19C
|
||||
D195- A5 3C LDA $3C
|
||||
D197- 0A ASL
|
||||
D198- 29 7F AND #$7F
|
||||
D19A- 10 F3 BPL $D18F
|
||||
D19C- A5 3C LDA $3C
|
||||
D19E- 91 84 STA ($84),Y
|
||||
D1A0- D0 04 BNE $D1A6
|
||||
D1A2- E0 00 CPX #$00
|
||||
D1A4- F0 20 BEQ $D1C6
|
||||
D1A6- C9 7F CMP #$7F
|
||||
D1A8- D0 15 BNE $D1BF
|
||||
D1AA- A9 7F LDA #$7F
|
||||
D1AC- A4 3B LDY $3B
|
||||
D1AE- 85 3C STA $3C
|
||||
D1B0- 31 80 AND ($80),Y
|
||||
D1B2- F0 07 BEQ $D1BB
|
||||
D1B4- A5 3C LDA $3C
|
||||
D1B6- 0A ASL
|
||||
D1B7- 29 7F AND #$7F
|
||||
D1B9- 10 F3 BPL $D1AE
|
||||
D1BB- A5 3C LDA $3C
|
||||
D1BD- 91 84 STA ($84),Y
|
||||
D1BF- C6 3B DEC $3B
|
||||
D1C1- A4 3A LDY $3A
|
||||
D1C3- 88 DEY
|
||||
D1C4- 10 C5 BPL $D18B
|
||||
D1C6- 60 RTS
|
||||
D1C7- 31 84 AND ($84),Y
|
||||
D1C9- 29 FF AND #$FF
|
||||
D1CB- E0 01 CPX #$01
|
||||
D1CD- F0 F7 BEQ $D1C6
|
||||
D1CF- BD C7 D1 LDA $D1C7,X
|
||||
D1D2- 8D ED D1 STA $D1ED
|
||||
D1D5- BD C8 D1 LDA $D1C8,X
|
||||
D1D8- 8D EE D1 STA $D1EE
|
||||
D1DB- A0 2E LDY #$2E
|
||||
D1DD- A9 7F LDA #$7F
|
||||
D1DF- 85 3C STA $3C
|
||||
D1E1- B1 80 LDA ($80),Y
|
||||
D1E3- 25 3C AND $3C
|
||||
D1E5- F0 04 BEQ $D1EB
|
||||
D1E7- 45 3C EOR $3C
|
||||
D1E9- 85 3C STA $3C
|
||||
D1EB- A5 3C LDA $3C
|
||||
D1ED- 11 84 ORA ($84),Y
|
||||
D1EF- 91 84 STA ($84),Y
|
||||
D1F1- 88 DEY
|
||||
D1F2- 30 07 BMI $D1FB
|
||||
D1F4- C0 17 CPY #$17
|
||||
D1F6- D0 E9 BNE $D1E1
|
||||
D1F8- 88 DEY
|
||||
D1F9- D0 E2 BNE $D1DD
|
||||
D1FB- 60 RTS
|
||||
D1FC- A0 90 LDY #$90
|
||||
D1FE- A9 00 LDA #$00
|
||||
D200- 88 DEY
|
||||
D201- 99 00 BB STA $BB00,Y
|
||||
D204- D0 FA BNE $D200
|
||||
D206- 60 RTS
|
|
@ -0,0 +1,62 @@
|
|||
1000- 7F ???
|
||||
1001- 7F ???
|
||||
1002- 7F ???
|
||||
1003- 7F ???
|
||||
1004- 7F ???
|
||||
1005- 7F ???
|
||||
1006- 7F ???
|
||||
1007- 7E 3F 7E ROR $7E3F,X
|
||||
100A- 1F ???
|
||||
100B- 7E 3F 7E ROR $7E3F,X
|
||||
100E- 3F ???
|
||||
100F- 7E 3F 7E ROR $7E3F,X
|
||||
1012- 1F ???
|
||||
1013- 7C 7F 7F JMP ($7F7F,X)
|
||||
1016- 7F ???
|
||||
1017- 7F ???
|
||||
1018- 7F ???
|
||||
1019- 7F ???
|
||||
101A- 7F ???
|
||||
101B- 7F ???
|
||||
101C- 7F ???
|
||||
101D- 7F ???
|
||||
101E- 7F ???
|
||||
101F- 7F ???
|
||||
1020- 7F ???
|
||||
1021- 7F ???
|
||||
1022- 0F ???
|
||||
1023- 7E 67 7C ROR $7C67,X
|
||||
1026- 7F ???
|
||||
1027- 7C 3F 7E JMP ($7E3F,X)
|
||||
102A- 1F ???
|
||||
102B- 7F ???
|
||||
102C- 4F ???
|
||||
102D- 7F ???
|
||||
102E- 07 ???
|
||||
102F- 7C 7F 7F JMP ($7F7F,X)
|
||||
1032- 7F ???
|
||||
1033- 7F ???
|
||||
1034- 7F ???
|
||||
1035- 7F ???
|
||||
1036- 7F ???
|
||||
1037- 7F ???
|
||||
1038- 7F ???
|
||||
1039- 7F ???
|
||||
103A- 7F ???
|
||||
103B- 7F ???
|
||||
103C- 7F ???
|
||||
103D- 7F ???
|
||||
103E- 1F ???
|
||||
103F- 7C 4F 79 JMP ($794F,X)
|
||||
1042- 7F ???
|
||||
1043- 79 3F 7C ADC $7C3F,Y
|
||||
1046- 7F ???
|
||||
1047- 79 4F 79 ADC $794F,Y
|
||||
104A- 1F ???
|
||||
104B- 7C 7F 7F JMP ($7F7F,X)
|
||||
104E- 7F ???
|
||||
104F- 7F ???
|
||||
1050- 7F ???
|
||||
1051- 7F ???
|
||||
1052- 7F ???
|
||||
1053- 7F ???
|
|
@ -0,0 +1,510 @@
|
|||
4000- 20 F3 42 JSR $42F3
|
||||
4003- A9 00 LDA #$00
|
||||
4005- 8D 0D B0 STA $B00D
|
||||
4008- AD F4 95 LDA $95F4
|
||||
400B- 8D 68 AA STA $AA68
|
||||
400E- 8D EA B7 STA $B7EA
|
||||
4011- 09 30 ORA #$30
|
||||
4013- C9 31 CMP #$31
|
||||
4015- D0 02 BNE $4019
|
||||
4017- A9 20 LDA #$20
|
||||
4019- 8D 53 40 STA $4053
|
||||
401C- 20 C9 42 JSR $42C9
|
||||
401F- 20 FF 41 JSR $41FF
|
||||
4022- 04 01 TSB $01
|
||||
4024- 8C 00 34 STY $3400
|
||||
4027- 43 ???
|
||||
4028- 48 PHA
|
||||
4029- 4F ???
|
||||
402A- 4F ???
|
||||
402B- 53 ???
|
||||
402C- 45 20 EOR $20
|
||||
402E- 41 20 EOR ($20,X)
|
||||
4030- 02 ???
|
||||
4031- 0C 44 3A TSB $3A44
|
||||
4034- 05 03 ORA $03
|
||||
4036- 01 0F ORA ($0F,X)
|
||||
4038- 00 BRK
|
||||
4039- 5C ???
|
||||
403A- 50 4C BVC $4088
|
||||
403C- 41 43 EOR ($43,X)
|
||||
403E- 45 20 EOR $20
|
||||
4040- 44 ???
|
||||
4041- 41 54 EOR ($54,X)
|
||||
4043- 41 20 EOR ($20,X)
|
||||
4045- 44 ???
|
||||
4046- 49 53 EOR #$53
|
||||
4048- 4B ???
|
||||
4049- 20 49 4E JSR $4E49
|
||||
404C- 20 44 52 JSR $5244
|
||||
404F- 49 56 EOR #$56
|
||||
4051- 45 20 EOR $20
|
||||
4053- 32 05 AND ($05)
|
||||
4055- 05 05 ORA $05
|
||||
4057- 54 ???
|
||||
4058- 59 50 45 EOR $4550,Y
|
||||
405B- 20 49 4E JSR $4E49
|
||||
405E- 20 4E 41 JSR $414E
|
||||
4061- 4D 45 20 EOR $2045
|
||||
4064- 4F ???
|
||||
4065- 46 20 LSR $20
|
||||
4067- 02 ???
|
||||
4068- 0C 44 20 TSB $2044
|
||||
406B- 4F ???
|
||||
406C- 52 05 EOR ($05)
|
||||
406E- 50 52 BVC $40C2
|
||||
4070- 45 53 EOR $53
|
||||
4072- 53 ???
|
||||
4073- 20 3C 52 JSR $523C
|
||||
4076- 45 54 EOR $54
|
||||
4078- 55 52 EOR $52,X
|
||||
407A- 4E 3E 20 LSR $203E
|
||||
407D- 46 4F LSR $4F
|
||||
407F- 52 20 EOR ($20)
|
||||
4081- 02 ???
|
||||
4082- 0C 44 20 TSB $2044
|
||||
4085- 4C 49 53 JMP $5349
|
||||
4088- 54 ???
|
||||
4089- 05 05 ORA $05
|
||||
408B- 3E 06 00 ROL $0006,X
|
||||
408E- 20 41 41 JSR $4141
|
||||
4091- AD 00 C0 LDA $C000 r:KBD w:CLR80COL
|
||||
4094- 8D FF 83 STA $83FF
|
||||
4097- B0 15 BCS $40AE
|
||||
4099- 20 19 70 JSR $7019
|
||||
409C- D0 0D BNE $40AB
|
||||
409E- 20 C9 42 JSR $42C9
|
||||
40A1- AD 13 44 LDA $4413
|
||||
40A4- F0 13 BEQ $40B9
|
||||
40A6- 20 64 41 JSR $4164
|
||||
40A9- 90 03 BCC $40AE
|
||||
40AB- 4C 1C 40 JMP $401C
|
||||
40AE- A9 01 LDA #$01
|
||||
40B0- 8D 68 AA STA $AA68
|
||||
40B3- 20 C9 42 JSR $42C9
|
||||
40B6- 4C C0 02 JMP $02C0
|
||||
40B9- 20 FF 41 JSR $41FF
|
||||
40BC- 04 01 TSB $01
|
||||
40BE- 8C 00 14 STY $1400
|
||||
40C1- 4C 49 53 JMP $5349
|
||||
40C4- 54 ???
|
||||
40C5- 20 4F 46 JSR $464F
|
||||
40C8- 20 02 0C JSR $0C02
|
||||
40CB- 44 ???
|
||||
40CC- 53 ???
|
||||
40CD- 20 4F 4E JSR $4E4F
|
||||
40D0- 20 54 48 JSR $4854
|
||||
40D3- 49 53 EOR #$53
|
||||
40D5- 20 44 49 JSR $4944
|
||||
40D8- 53 ???
|
||||
40D9- 4B ???
|
||||
40DA- 3A DEC
|
||||
40DB- 05 00 ORA $00
|
||||
40DD- A9 FF LDA #$FF
|
||||
40DF- 8D 10 41 STA $4110
|
||||
40E2- 8D 2A 41 STA $412A
|
||||
40E5- 20 65 43 JSR $4365
|
||||
40E8- EE 2A 41 INC $412A
|
||||
40EB- 20 70 43 JSR $4370
|
||||
40EE- B0 39 BCS $4129
|
||||
40F0- 8D 22 41 STA $4122
|
||||
40F3- 8C 23 41 STY $4123
|
||||
40F6- EE 10 41 INC $4110
|
||||
40F9- AD 10 41 LDA $4110
|
||||
40FC- 49 0F EOR #$0F
|
||||
40FE- D0 0F BNE $410F
|
||||
4100- 8D 10 41 STA $4110
|
||||
4103- 20 05 80 JSR $8005
|
||||
4106- 29 7F AND #$7F
|
||||
4108- C9 1B CMP #$1B
|
||||
410A- F0 32 BEQ $413E
|
||||
410C- 20 CC 42 JSR $42CC
|
||||
410F- A9 00 LDA #$00
|
||||
4111- 0A ASL
|
||||
4112- 0A ASL
|
||||
4113- 0A ASL
|
||||
4114- 69 24 ADC #$24
|
||||
4116- 8D 20 41 STA $4120
|
||||
4119- 20 FF 41 JSR $41FF
|
||||
411C- 03 ???
|
||||
411D- 01 40 ORA ($40,X)
|
||||
411F- 00 BRK
|
||||
4120- FF ???
|
||||
4121- 02 ???
|
||||
4122- FF ???
|
||||
4123- FF ???
|
||||
4124- 05 00 ORA $00
|
||||
4126- 4C E8 40 JMP $40E8
|
||||
4129- A9 00 LDA #$00
|
||||
412B- D0 0E BNE $413B
|
||||
412D- 20 FF 41 JSR $41FF
|
||||
4130- 04 01 TSB $01
|
||||
4132- 8C 00 40 STY $4000
|
||||
4135- 4E 4F 4E LSR $4E4F
|
||||
4138- 45 05 EOR $05
|
||||
413A- 00 BRK
|
||||
413B- 20 05 80 JSR $8005
|
||||
413E- 4C 1C 40 JMP $401C
|
||||
4141- A2 58 LDX #$58
|
||||
4143- A0 41 LDY #$41
|
||||
4145- A9 0F LDA #$0F
|
||||
4147- 8E 15 8E STX $8E15
|
||||
414A- 8C 16 8E STY $8E16
|
||||
414D- 8D 17 8E STA $8E17
|
||||
4150- A9 00 LDA #$00
|
||||
4152- 8D 13 44 STA $4413
|
||||
4155- 4C 12 8E JMP $8E12
|
||||
4158- 02 ???
|
||||
4159- 00 BRK
|
||||
415A- 1B ???
|
||||
415B- 00 BRK
|
||||
415C- 8C 00 00 STY $0000
|
||||
415F- 02 ???
|
||||
4160- 00 BRK
|
||||
4161- 13 ???
|
||||
4162- 44 ???
|
||||
4163- 02 ???
|
||||
4164- A0 0F LDY #$0F
|
||||
4166- A9 20 LDA #$20
|
||||
4168- 88 DEY
|
||||
4169- 99 4E 43 STA $434E,Y
|
||||
416C- D0 FA BNE $4168
|
||||
416E- B9 13 44 LDA $4413,Y
|
||||
4171- F0 06 BEQ $4179
|
||||
4173- 99 4E 43 STA $434E,Y
|
||||
4176- C8 INY
|
||||
4177- D0 F5 BNE $416E
|
||||
4179- A2 49 LDX #$49
|
||||
417B- A0 43 LDY #$43
|
||||
417D- 20 09 08 JSR $0809
|
||||
4180- D0 3E BNE $41C0
|
||||
4182- A9 00 LDA #$00
|
||||
4184- D0 38 BNE $41BE
|
||||
4186- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
4189- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
418C- A0 0C LDY #$0C
|
||||
418E- B1 FA LDA ($FA),Y
|
||||
4190- 29 7F AND #$7F
|
||||
4192- 91 FA STA ($FA),Y
|
||||
4194- C8 INY
|
||||
4195- C0 47 CPY #$47
|
||||
4197- 90 F5 BCC $418E
|
||||
4199- A0 2C LDY #$2C
|
||||
419B- A9 58 LDA #$58
|
||||
419D- 91 FA STA ($FA),Y
|
||||
419F- A0 67 LDY #$67
|
||||
41A1- A9 34 LDA #$34
|
||||
41A3- 91 FA STA ($FA),Y
|
||||
41A5- A0 A2 LDY #$A2
|
||||
41A7- A9 00 LDA #$00
|
||||
41A9- 91 FA STA ($FA),Y
|
||||
41AB- A0 DD LDY #$DD
|
||||
41AD- A9 58 LDA #$58
|
||||
41AF- 91 FA STA ($FA),Y
|
||||
41B1- A0 0B LDY #$0B
|
||||
41B3- B1 FA LDA ($FA),Y
|
||||
41B5- 99 16 08 STA $0816,Y
|
||||
41B8- 88 DEY
|
||||
41B9- 10 F8 BPL $41B3
|
||||
41BB- AD 82 C0 LDA $C082
|
||||
41BE- 18 CLC
|
||||
41BF- 60 RTS
|
||||
41C0- C9 06 CMP #$06
|
||||
41C2- F0 08 BEQ $41CC
|
||||
41C4- 20 16 A3 JSR $A316
|
||||
41C7- 20 08 80 JSR $8008
|
||||
41CA- 38 SEC
|
||||
41CB- 60 RTS
|
||||
41CC- 20 C9 42 JSR $42C9
|
||||
41CF- 20 CC 6F JSR $6FCC
|
||||
41D2- 20 FF 41 JSR $41FF
|
||||
41D5- 04 01 TSB $01
|
||||
41D7- 8C 00 30 STY $3000
|
||||
41DA- 43 ???
|
||||
41DB- 41 4E EOR ($4E,X)
|
||||
41DD- 4E 4F 54 LSR $544F
|
||||
41E0- 20 46 49 JSR $4946
|
||||
41E3- 4E 44 05 LSR $0544
|
||||
41E6- 05 02 ORA $02
|
||||
41E8- 13 ???
|
||||
41E9- 44 ???
|
||||
41EA- 05 05 ORA $05
|
||||
41EC- 4F ???
|
||||
41ED- 4E 20 54 LSR $5420
|
||||
41F0- 48 PHA
|
||||
41F1- 49 53 EOR #$53
|
||||
41F3- 20 44 49 JSR $4944
|
||||
41F6- 53 ???
|
||||
41F7- 4B ???
|
||||
41F8- 05 00 ORA $00
|
||||
41FA- 20 05 80 JSR $8005
|
||||
41FD- 38 SEC
|
||||
41FE- 60 RTS
|
||||
41FF- 68 PLA
|
||||
4200- 85 3A STA $3A
|
||||
4202- 68 PLA
|
||||
4203- 85 3B STA $3B
|
||||
4205- A9 02 LDA #$02
|
||||
4207- 8D 03 8A STA $8A03
|
||||
420A- 8D 0A 8A STA $8A0A
|
||||
420D- A2 00 LDX #$00
|
||||
420F- 20 B6 42 JSR $42B6
|
||||
4212- C9 20 CMP #$20
|
||||
4214- 90 06 BCC $421C
|
||||
4216- 9D 00 BB STA $BB00,X
|
||||
4219- E8 INX
|
||||
421A- D0 F3 BNE $420F
|
||||
421C- 0A ASL
|
||||
421D- A8 TAY
|
||||
421E- B9 32 42 LDA $4232,Y
|
||||
4221- 8D 2C 42 STA $422C
|
||||
4224- B9 33 42 LDA $4233,Y
|
||||
4227- 8D 2D 42 STA $422D
|
||||
422A- 18 CLC
|
||||
422B- 20 FF FF JSR $FFFF
|
||||
422E- 90 DF BCC $420F
|
||||
4230- B0 DB BCS $420D
|
||||
4232- 40 RTI
|
||||
4233- 42 ???
|
||||
4234- 48 PHA
|
||||
4235- 42 ???
|
||||
4236- 61 42 ADC ($42,X)
|
||||
4238- 81 42 STA ($42,X)
|
||||
423A- 84 42 STY $42
|
||||
423C- 8A TXA
|
||||
423D- 42 ???
|
||||
423E- A2 42 LDX #$42
|
||||
4240- 68 PLA
|
||||
4241- 68 PLA
|
||||
4242- 20 B6 42 JSR $42B6
|
||||
4245- 6C 3A 00 JMP ($003A)
|
||||
4248- 20 B6 42 JSR $42B6
|
||||
424B- 8D 05 8A STA $8A05
|
||||
424E- 8D 8E 42 STA $428E
|
||||
4251- 20 B6 42 JSR $42B6
|
||||
4254- 8D 06 8A STA $8A06
|
||||
4257- 8D 90 42 STA $4290
|
||||
425A- 20 B6 42 JSR $42B6
|
||||
425D- 8D 07 8A STA $8A07
|
||||
4260- 60 RTS
|
||||
4261- 20 B6 42 JSR $42B6
|
||||
4264- 8D 70 42 STA $4270
|
||||
4267- 20 B6 42 JSR $42B6
|
||||
426A- 8D 71 42 STA $4271
|
||||
426D- A0 00 LDY #$00
|
||||
426F- B9 FF FF LDA $FFFF,Y
|
||||
4272- F0 0B BEQ $427F
|
||||
4274- C9 20 CMP #$20
|
||||
4276- 90 04 BCC $427C
|
||||
4278- 9D 00 BB STA $BB00,X
|
||||
427B- E8 INX
|
||||
427C- C8 INY
|
||||
427D- D0 F0 BNE $426F
|
||||
427F- 18 CLC
|
||||
4280- 60 RTS
|
||||
4281- A9 00 LDA #$00
|
||||
4283- 2C A9 02 BIT $02A9
|
||||
4286- 8D 04 8A STA $8A04
|
||||
4289- 60 RTS
|
||||
428A- 20 A2 42 JSR $42A2
|
||||
428D- A0 00 LDY #$00
|
||||
428F- A9 00 LDA #$00
|
||||
4291- 8C 05 8A STY $8A05
|
||||
4294- 8D 06 8A STA $8A06
|
||||
4297- AD 07 8A LDA $8A07
|
||||
429A- 18 CLC
|
||||
429B- 69 08 ADC #$08
|
||||
429D- 8D 07 8A STA $8A07
|
||||
42A0- 38 SEC
|
||||
42A1- 60 RTS
|
||||
42A2- A9 00 LDA #$00
|
||||
42A4- 9D 00 BB STA $BB00,X
|
||||
42A7- A0 00 LDY #$00
|
||||
42A9- A9 BB LDA #$BB
|
||||
42AB- 8C 0C 8A STY $8A0C
|
||||
42AE- 8D 0D 8A STA $8A0D
|
||||
42B1- 20 00 8A JSR $8A00
|
||||
42B4- 38 SEC
|
||||
42B5- 60 RTS
|
||||
42B6- E6 3A INC $3A
|
||||
42B8- D0 02 BNE $42BC
|
||||
42BA- E6 3B INC $3B
|
||||
42BC- A0 00 LDY #$00
|
||||
42BE- B1 3A LDA ($3A),Y
|
||||
42C0- 60 RTS
|
||||
42C1- 01 11 ORA ($11,X)
|
||||
42C3- 26 A5 ROL $A5
|
||||
42C5- 01 1C ORA ($1C,X)
|
||||
42C7- 26 9A ROL $9A
|
||||
42C9- A2 03 LDX #$03
|
||||
42CB- 2C A2 07 BIT $07A2
|
||||
42CE- A0 03 LDY #$03
|
||||
42D0- BD C1 42 LDA $42C1,X
|
||||
42D3- 99 0C 8E STA $8E0C,Y
|
||||
42D6- CA DEX
|
||||
42D7- 88 DEY
|
||||
42D8- 10 F6 BPL $42D0
|
||||
42DA- A9 01 LDA #$01
|
||||
42DC- 4C 09 8E JMP $8E09
|
||||
42DF- 81 89 STA ($89,X)
|
||||
42E1- 00 BRK
|
||||
42E2- 07 ???
|
||||
42E3- 46 4F LSR $4F
|
||||
42E5- 4E 54 00 LSR $0054
|
||||
42E8- D0 E8 BNE $42D2
|
||||
42EA- 42 ???
|
||||
42EB- 4F ???
|
||||
42EC- 52 44 EOR ($44)
|
||||
42EE- 45 52 EOR $52
|
||||
42F0- 00 BRK
|
||||
42F1- DE DF 8D DEC $8DDF,X
|
||||
42F4- 83 ???
|
||||
42F5- 41 A8 EOR ($A8,X)
|
||||
42F7- BE DF 42 LDX $42DF,Y
|
||||
42FA- BD 00 C0 LDA $C000,X
|
||||
42FD- BD 00 C0 LDA $C000,X
|
||||
4300- BE E1 42 LDX $42E1,Y
|
||||
4303- A0 00 LDY #$00
|
||||
4305- BD E3 42 LDA $42E3,X
|
||||
4308- 99 0C 44 STA $440C,Y
|
||||
430B- F0 0B BEQ $4318
|
||||
430D- C0 04 CPY #$04
|
||||
430F- B0 03 BCS $4314
|
||||
4311- 99 49 43 STA $4349,Y
|
||||
4314- E8 INX
|
||||
4315- C8 INY
|
||||
4316- D0 ED BNE $4305
|
||||
4318- AD F5 95 LDA $95F5
|
||||
431B- 4A LSR
|
||||
431C- 90 08 BCC $4326
|
||||
431E- 4D 00 83 EOR $8300
|
||||
4321- C9 01 CMP #$01
|
||||
4323- D0 01 BNE $4326
|
||||
4325- E8 INX
|
||||
4326- BD E4 42 LDA $42E4,X
|
||||
4329- A0 00 LDY #$00
|
||||
432B- 84 FA STY $FA
|
||||
432D- 85 FB STA $FB
|
||||
432F- 48 PHA
|
||||
4330- 4A LSR
|
||||
4331- 4A LSR
|
||||
4332- 4A LSR
|
||||
4333- 4A LSR
|
||||
4334- 20 3B 43 JSR $433B
|
||||
4337- 8D 60 43 STA $4360
|
||||
433A- 68 PLA
|
||||
433B- 29 0F AND #$0F
|
||||
433D- 09 30 ORA #$30
|
||||
433F- C9 3A CMP #$3A
|
||||
4341- 90 02 BCC $4345
|
||||
4343- 69 06 ADC #$06
|
||||
4345- 8D 61 43 STA $4361
|
||||
4348- 60 RTS
|
||||
4349- 58 CLI
|
||||
434A- 58 CLI
|
||||
434B- 58 CLI
|
||||
434C- 58 CLI
|
||||
434D- 2E 00 00 ROL $0000
|
||||
4350- 00 BRK
|
||||
4351- 00 BRK
|
||||
4352- 00 BRK
|
||||
4353- 00 BRK
|
||||
4354- 00 BRK
|
||||
4355- 00 BRK
|
||||
4356- 00 BRK
|
||||
4357- 00 BRK
|
||||
4358- 00 BRK
|
||||
4359- 00 BRK
|
||||
435A- 00 BRK
|
||||
435B- 00 BRK
|
||||
435C- 00 BRK
|
||||
435D- 2C 41 24 BIT $2441
|
||||
4360- 58 CLI
|
||||
4361- 58 CLI
|
||||
4362- 30 30 BMI $4394
|
||||
4364- 00 BRK
|
||||
4365- A9 00 LDA #$00
|
||||
4367- 85 FE STA $FE
|
||||
4369- A0 11 LDY #$11
|
||||
436B- 20 DD 43 JSR $43DD
|
||||
436E- 38 SEC
|
||||
436F- 60 RTS
|
||||
4370- A5 FC LDA $FC
|
||||
4372- 18 CLC
|
||||
4373- 69 23 ADC #$23
|
||||
4375- 85 FC STA $FC
|
||||
4377- 90 02 BCC $437B
|
||||
4379- E6 FD INC $FD
|
||||
437B- C6 FE DEC $FE
|
||||
437D- 10 19 BPL $4398
|
||||
437F- AC 14 44 LDY $4414
|
||||
4382- AD 15 44 LDA $4415
|
||||
4385- F0 E7 BEQ $436E
|
||||
4387- 20 DD 43 JSR $43DD
|
||||
438A- A0 FB LDY #$FB
|
||||
438C- A9 43 LDA #$43
|
||||
438E- 84 FC STY $FC
|
||||
4390- 85 FD STA $FD
|
||||
4392- A9 07 LDA #$07
|
||||
4394- 85 FE STA $FE
|
||||
4396- D0 D8 BNE $4370
|
||||
4398- A0 00 LDY #$00
|
||||
439A- B1 FC LDA ($FC),Y
|
||||
439C- 30 D2 BMI $4370
|
||||
439E- F0 CE BEQ $436E
|
||||
43A0- C8 INY
|
||||
43A1- C8 INY
|
||||
43A2- B1 FC LDA ($FC),Y
|
||||
43A4- 29 7F AND #$7F
|
||||
43A6- C9 04 CMP #$04
|
||||
43A8- D0 C6 BNE $4370
|
||||
43AA- A2 00 LDX #$00
|
||||
43AC- C8 INY
|
||||
43AD- B1 FC LDA ($FC),Y
|
||||
43AF- 29 7F AND #$7F
|
||||
43B1- DD 49 43 CMP $4349,X
|
||||
43B4- D0 BA BNE $4370
|
||||
43B6- E8 INX
|
||||
43B7- E0 05 CPX #$05
|
||||
43B9- 90 F1 BCC $43AC
|
||||
43BB- A0 20 LDY #$20
|
||||
43BD- B1 FC LDA ($FC),Y
|
||||
43BF- 49 A0 EOR #$A0
|
||||
43C1- D0 05 BNE $43C8
|
||||
43C3- 91 FC STA ($FC),Y
|
||||
43C5- 88 DEY
|
||||
43C6- 10 F5 BPL $43BD
|
||||
43C8- B1 FC LDA ($FC),Y
|
||||
43CA- 29 7F AND #$7F
|
||||
43CC- 91 FC STA ($FC),Y
|
||||
43CE- 88 DEY
|
||||
43CF- D0 F7 BNE $43C8
|
||||
43D1- A5 FC LDA $FC
|
||||
43D3- A4 FD LDY $FD
|
||||
43D5- 18 CLC
|
||||
43D6- 69 08 ADC #$08
|
||||
43D8- 90 01 BCC $43DB
|
||||
43DA- C8 INY
|
||||
43DB- 18 CLC
|
||||
43DC- 60 RTS
|
||||
43DD- 8D ED B7 STA $B7ED
|
||||
43E0- 8C EC B7 STY $B7EC
|
||||
43E3- A9 00 LDA #$00
|
||||
43E5- 8D EB B7 STA $B7EB
|
||||
43E8- A0 13 LDY #$13
|
||||
43EA- A9 44 LDA #$44
|
||||
43EC- 8C F0 B7 STY $B7F0
|
||||
43EF- 8D F1 B7 STA $B7F1
|
||||
43F2- A9 01 LDA #$01
|
||||
43F4- 8D F4 B7 STA $B7F4
|
||||
43F7- 20 E3 03 JSR $03E3
|
||||
43FA- 20 D9 03 JSR $03D9
|
||||
43FD- B0 01 BCS $4400
|
||||
43FF- 60 RTS
|
||||
4400- 68 PLA
|
||||
4401- 68 PLA
|
||||
4402- 68 PLA
|
||||
4403- 68 PLA
|
||||
4404- A9 08 LDA #$08
|
||||
4406- 20 C0 41 JSR $41C0
|
||||
4409- 4C 1C 40 JMP $401C
|
|
@ -0,0 +1,97 @@
|
|||
6300- 48 PHA
|
||||
6301- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
6304- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
6307- A2 08 LDX #$08
|
||||
6309- A0 00 LDY #$00
|
||||
630B- B9 CA 63 LDA $63CA,Y
|
||||
630E- 99 00 D0 STA $D000,Y
|
||||
6311- C8 INY
|
||||
6312- D0 F7 BNE $630B
|
||||
6314- EE 0D 63 INC $630D
|
||||
6317- EE 10 63 INC $6310
|
||||
631A- CA DEX
|
||||
631B- D0 EE BNE $630B
|
||||
631D- BD 51 63 LDA $6351,X
|
||||
6320- F0 1D BEQ $633F
|
||||
6322- A0 00 LDY #$00
|
||||
6324- BD 51 63 LDA $6351,X
|
||||
6327- E8 INX
|
||||
6328- 99 3A 00 STA $003A,Y
|
||||
632B- C8 INY
|
||||
632C- C0 03 CPY #$03
|
||||
632E- 90 F4 BCC $6324
|
||||
6330- A0 00 LDY #$00
|
||||
6332- BD 51 63 LDA $6351,X
|
||||
6335- E8 INX
|
||||
6336- 91 3B STA ($3B),Y
|
||||
6338- C8 INY
|
||||
6339- C6 3A DEC $3A
|
||||
633B- D0 F5 BNE $6332
|
||||
633D- F0 DE BEQ $631D
|
||||
633F- 68 PLA
|
||||
6340- 20 03 D0 JSR $D003
|
||||
6343- A0 3B LDY #$3B
|
||||
6345- B9 8E 63 LDA $638E,Y
|
||||
6348- 99 25 02 STA $0225,Y
|
||||
634B- 88 DEY
|
||||
634C- 10 F7 BPL $6345
|
||||
634E- 4C 25 02 JMP $0225
|
||||
6351- 09 8B ORA #$8B
|
||||
6353- 0B ???
|
||||
6354- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
6357- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
635A- 4C 03 D0 JMP $D003
|
||||
635D- 1C D0 88 TRB $88D0
|
||||
6360- 38 SEC
|
||||
6361- 66 4E ROR $4E
|
||||
6363- 38 SEC
|
||||
6364- E9 20 SBC #$20
|
||||
6366- AA TAX
|
||||
6367- BD 00 60 LDA $6000,X
|
||||
636A- C5 4E CMP $4E
|
||||
636C- B0 02 BCS $6370
|
||||
636E- 85 4E STA $4E
|
||||
6370- 4C 76 8C JMP $8C76
|
||||
6373- A5 4E LDA $4E
|
||||
6375- 18 CLC
|
||||
6376- 6D 0A 8A ADC $8A0A
|
||||
6379- 85 D9 STA $D9
|
||||
637B- 60 RTS
|
||||
637C- 02 ???
|
||||
637D- 10 8C BPL $630B
|
||||
637F- D0 88 BNE $6309
|
||||
6381- 02 ???
|
||||
6382- 28 PLP
|
||||
6383- 8C D3 88 STY $88D3
|
||||
6386- 04 3F TSB $3F
|
||||
6388- 8C 20 E3 STY $E320
|
||||
638B- 88 DEY
|
||||
638C- EA NOP
|
||||
638D- 00 BRK
|
||||
638E- 18 CLC
|
||||
638F- 20 4B 02 JSR $024B
|
||||
6392- 20 3E 02 JSR $023E
|
||||
6395- A2 27 LDX #$27
|
||||
6397- A0 0B LDY #$0B
|
||||
6399- 20 D2 0C JSR $0CD2
|
||||
639C- D0 F4 BNE $6392
|
||||
639E- 38 SEC
|
||||
639F- 20 4B 02 JSR $024B
|
||||
63A2- 68 PLA
|
||||
63A3- 68 PLA
|
||||
63A4- 4C 53 0B JMP $0B53
|
||||
63A7- AD F4 95 LDA $95F4
|
||||
63AA- C9 02 CMP #$02
|
||||
63AC- F0 03 BEQ $63B1
|
||||
63AE- 4C 15 78 JMP $7815
|
||||
63B1- 4C F9 77 JMP $77F9
|
||||
63B4- A0 1E LDY #$1E
|
||||
63B6- B0 08 BCS $63C0
|
||||
63B8- B9 00 70 LDA $7000,Y
|
||||
63BB- 99 61 02 STA $0261,Y
|
||||
63BE- 90 06 BCC $63C6
|
||||
63C0- B9 61 02 LDA $0261,Y
|
||||
63C3- 99 00 70 STA $7000,Y
|
||||
63C6- 88 DEY
|
||||
63C7- 10 ED BPL $63B6
|
||||
63C9- 60 RTS
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:BOEDIT
|
||||
ICL "S:BOEDIT1"
|
|
@ -0,0 +1,459 @@
|
|||
TTL "S:BOEDIT"
|
||||
; S:BOEDIT1
|
||||
NOG
|
||||
ORG = $4000
|
||||
;
|
||||
; 06/03/85
|
||||
; 07/24/85 last mod
|
||||
;
|
||||
; The Print Shop COMPANION
|
||||
;
|
||||
; Border Editor
|
||||
;
|
||||
; Copyright 1985
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
DAT EPZ $00
|
||||
;
|
||||
BORDER EPZ DAT
|
||||
XCOOR EPZ DAT+2
|
||||
YCOOR EPZ DAT+3
|
||||
SECTION EPZ DAT+4
|
||||
BUTTON EPZ DAT+5
|
||||
OLDXCOOR EPZ DAT+6
|
||||
OLDYCOOR EPZ DAT+7
|
||||
MINICNT EPZ DAT+8
|
||||
CNSTRAIN EPZ DAT+9
|
||||
;
|
||||
; Temporary z-page for use within
|
||||
; subroutines
|
||||
;
|
||||
HIRES1 EPZ $40
|
||||
HIRES2 EPZ $42
|
||||
HIRES3 EPZ $44
|
||||
;
|
||||
; Absolute references:
|
||||
;
|
||||
BORDBASE = $7800
|
||||
BORDLEN = $94
|
||||
UNDOBUFF = $7900
|
||||
FFBUFFER = $7A00
|
||||
FFSTACK = $7B00
|
||||
;
|
||||
; Constants:
|
||||
;
|
||||
XMAX = 23
|
||||
YMAX = 14
|
||||
;
|
||||
XOFFSET = 5
|
||||
YOFFSET = 45
|
||||
;
|
||||
MINIX1 = 1
|
||||
MINIY1 = 23
|
||||
MINIW1 = 11
|
||||
MINIH1 = 11
|
||||
;
|
||||
MINIX2 = 28
|
||||
MINIY2 = 79
|
||||
MINIW2 = 4
|
||||
MINIH2 = 4
|
||||
;
|
||||
INFO1Y = 123
|
||||
;
|
||||
XCENT = 223
|
||||
XEDGE = 170
|
||||
XEDGEB = XEDGE/7
|
||||
XR1 = 13
|
||||
XR2 = 24
|
||||
;
|
||||
LOCKX = 37
|
||||
LOCKY = 9
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
JSR SETTYPE
|
||||
TXTBORD BYT 'BORDER',0
|
||||
BETEXT BYT 'BORDER EDITOR',0
|
||||
BYT 'BORD.',0
|
||||
BYT 2
|
||||
ADR BORDBASE
|
||||
ADR BORDLEN
|
||||
;
|
||||
JSR ZEROBORD
|
||||
LDA #0
|
||||
STA MINICNT
|
||||
;-----------------------
|
||||
;
|
||||
; Draw Border Editor main screen
|
||||
;
|
||||
JSR SCREEN1
|
||||
JSR BUFFSAVE
|
||||
JMP MAINLOOP
|
||||
;
|
||||
ASC "(C) 1985"
|
||||
ASC "R GUSTAFSSON"
|
||||
;---
|
||||
TXTCTRL BYT 'CTRL-',0
|
||||
TXTEB BYT 'EDIT BOX',0
|
||||
;-----------
|
||||
;
|
||||
; Get a border
|
||||
;
|
||||
BRGET JSR GETTEXT
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#60
|
||||
.DA #PRSTR,CABTEXT,#CR
|
||||
BYT CR,CR
|
||||
BYT 'FROM PRINT SHOP DISK',CR
|
||||
BYT 'FROM COMPANION DISK',CR
|
||||
BYT 'FROM OTHER DISK',CR,0
|
||||
;
|
||||
^0 LDY #00
|
||||
JSR SELECT
|
||||
BYT 6,28,83,3
|
||||
ADR RTS
|
||||
BCS >1
|
||||
;
|
||||
STY <0+1
|
||||
JSR >2
|
||||
BCS BRGET
|
||||
JSR BUFFSAVE
|
||||
^1 JMP SCREEN1
|
||||
;
|
||||
^2 JSR JMPVECTS
|
||||
ADR GETPSDSK
|
||||
ADR GETCPDSK
|
||||
ADR GETOTDSK
|
||||
;
|
||||
CABTEXT BYT 'CHOOSE A BORDER:',0
|
||||
;
|
||||
GETCPDSK LDA #0
|
||||
CLC
|
||||
HEX 24
|
||||
GETOTDSK SEC
|
||||
JMP GETFILE
|
||||
;-----------
|
||||
;
|
||||
; "GET" text window
|
||||
;
|
||||
GETTEXT JSR WITEBORD
|
||||
JSR PRINT
|
||||
BYT PRINVR,PRRITE
|
||||
.DA #PRLOC,149,#4
|
||||
.DA #PRSTR,BETEXT
|
||||
BYT ':',CR
|
||||
BYT PRBIG,PRLEFT
|
||||
.DA #PRLOC,160,#1
|
||||
BYT 'GET',CR,0
|
||||
JMP ESCBACK
|
||||
;-----------
|
||||
;
|
||||
; Save a border
|
||||
;
|
||||
BRSAVE JSR SAVEFILE
|
||||
JMP SCREEN1
|
||||
;-----------
|
||||
;
|
||||
; Print the border
|
||||
;
|
||||
BRPRINT JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#185
|
||||
BRK
|
||||
LDA #'-'
|
||||
JSR CHKPRINT
|
||||
BCS >0
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET
|
||||
BYT ' TO PRINT '
|
||||
.DA #PRSTR,TXTBORD,#CR,#0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE >0
|
||||
JSR PRINTBR
|
||||
^0 JMP SHOWBOTM
|
||||
;-----------
|
||||
;
|
||||
; Clear the border
|
||||
;
|
||||
CMDCLEAR JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#185
|
||||
.DA #PRSTR,TXTRET
|
||||
BYT ' TO CLEAR '
|
||||
.DA #PRSTR,TXTBORD
|
||||
BYT CR,0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE >0
|
||||
JSR BUFFSAVE
|
||||
JSR BRINIT
|
||||
JSR MINITURE
|
||||
^0 JMP SHOWBOTM
|
||||
;-----------
|
||||
;
|
||||
; Quit?
|
||||
;
|
||||
QUIT JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#185
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET
|
||||
BYT ' TO '
|
||||
BYT 'GO TO MAIN MENU',NOCR,0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BEQ >0
|
||||
JMP SHOWBOTM
|
||||
^0 JMP MAINMENU
|
||||
;
|
||||
TXTPRET BYT 'PRESS '
|
||||
TXTRET BYT '<RETURN>',0
|
||||
;-----------
|
||||
;
|
||||
; Draw starup screen
|
||||
;
|
||||
SCREEN1 JSR CLSCREEN
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,0,0,24,16
|
||||
BYT PRINVR,PRCNTR
|
||||
.DA #PRLOC,84,#4
|
||||
.DA #PRSTR,BETEXT,#CR
|
||||
;
|
||||
BYT RTOSANY,$70,MINIX1-1,MINIY1-3
|
||||
BYT 1,6+14*MINIH1
|
||||
BYT RTOSWITE,MINIX1,MINIY1-3
|
||||
BYT 2*MINIW1,6+14*MINIH1
|
||||
BYT RTOSANY,$07,MINIX1+2*MINIW1,MINIY1-3
|
||||
BYT 1,6+14*MINIH1
|
||||
BRK
|
||||
;
|
||||
; Draw border window
|
||||
;
|
||||
MX1 = XOFFSET*7
|
||||
MY1 = YOFFSET
|
||||
;
|
||||
JSR LINES
|
||||
BYT 'H'
|
||||
; BYT BLAK,MX1-4,MY1-4,102,BLAK,MX1-4,MY1-3,102
|
||||
BYT GRAY,MX1-2,MY1-2,98,GRAY,MX1-2,MY1-1,98
|
||||
BYT GRAY,MX1-2,MY1+42,98,GRAY,MX1-2,MY1+43,98
|
||||
; BYT BLAK,MX1+48,MY1+44,50,BLAK,MX1+48,MY1+45,50
|
||||
BYT GRAY,MX1-2,MY1+86,48,GRAY,MX1-2,MY1+87,48
|
||||
; BYT BLAK,MX1-4,MY1+88,54,BLAK,MX1-4,MY1+89,54
|
||||
BYT 1
|
||||
;
|
||||
JSR LINES
|
||||
BYT 'V'
|
||||
; BYT BLAK,MX1-4,MY1-4,94,BLAK,MX1-3,MY1-4,94
|
||||
BYT GRAY,MX1-2,MY1-2,90,GRAY,MX1-1,MY1-2,90
|
||||
BYT GRAY,MX1+46,MY1-2,90,GRAY,MX1+47,MY1-2,90
|
||||
; BYT BLAK,MX1+48,MY1+44,46,BLAK,MX1+49,MY1+44,46
|
||||
BYT GRAY,MX1+94,MY1-2,46,GRAY,MX1+95,MY1-2,46
|
||||
; BYT BLAK,MX1+96,MY1-4,50,BLAK,MX1+97,MY1-4,50
|
||||
BYT 1
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRINVR
|
||||
BYT PRSPC,44
|
||||
.DA #PRLOC,MX1-9,#MY1+17
|
||||
BYT '1',NOCR
|
||||
BYT PRRTAB2,107
|
||||
BYT '2',CR
|
||||
.DA #PRHTAB,MX1-10
|
||||
BYT '3',NOCR
|
||||
BRK
|
||||
;
|
||||
; Draw miniature greeting card border
|
||||
;
|
||||
JSR MINITURE
|
||||
JSR SHOWRITE
|
||||
JMP BRCENTER
|
||||
;-----------
|
||||
BLAKRITE JSR PRINT
|
||||
BYT RTOSBLAK,XEDGEB,0,40-XEDGEB,192
|
||||
BYT RTOSWITE,XEDGEB,61,40-XEDGEB,2
|
||||
BYT RTOSWITE,XEDGEB,177,40-XEDGEB,2
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
BLAKBOTM JSR PRINT
|
||||
BYT RTOSBLAK,0,181,40,11,0
|
||||
RTS
|
||||
;
|
||||
BLAKPAGE JSR PRINT
|
||||
BYT RTOSBLAK,XEDGEB,63,40-XEDGEB,114,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Display help info on right side
|
||||
; of screen
|
||||
;
|
||||
SHOWRITE JSR BLAKRITE
|
||||
LDX #XEDGEB
|
||||
LDY #0
|
||||
TYA
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
.DA #PRLOC,XEDGE+45,#11
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
.DA #PRLOC,XCENT,#41
|
||||
BYT PRCNTR
|
||||
BYT PRCSPACE,1
|
||||
BYT 'USE 1, 2 OR 3 TO',CR
|
||||
BYT 'SELECT '
|
||||
.DA #PRSTR,TXTEB,#CR
|
||||
;
|
||||
BRK
|
||||
;
|
||||
JSR SHOWPAGE
|
||||
;
|
||||
; Display bottom
|
||||
;
|
||||
SHOWBOTM JSR BLAKBOTM
|
||||
JSR SHOWCOOR
|
||||
JSR PRINT
|
||||
.DA #PRHTAB,164
|
||||
BYT PRRITE,PRCSPACE,1
|
||||
BYT 'U - UNDO',NOCR
|
||||
BRK
|
||||
LDA #XEDGEB+1
|
||||
JSR SPACEBAR
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show coor X= Y=
|
||||
;
|
||||
SHOWCOOR JSR PRINT
|
||||
.DA #PRLOC,7,#185
|
||||
BYT 'X=',NOCR
|
||||
BYT PRRTAB,42
|
||||
BYT 'Y=',NOCR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show next help page
|
||||
;
|
||||
CMDSPACE INC PAGENUM
|
||||
LDA PAGENUM
|
||||
EOR #4
|
||||
BNE SHOWPAGE
|
||||
STA PAGENUM
|
||||
;
|
||||
; Show current help page
|
||||
;
|
||||
SHOWPAGE JSR BLAKPAGE
|
||||
JSR >0
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^0 LDY #00
|
||||
PAGENUM = *-1
|
||||
JSR JMPVECTS
|
||||
ADR PAGE1
|
||||
ADR PAGE2
|
||||
ADR PAGE3
|
||||
ADR PAGE4
|
||||
;-----------
|
||||
PAGE1 JSR PRINT
|
||||
BYT PRSPC,15
|
||||
.DA #PRLOC,XEDGE,#71
|
||||
.DA #PRSTR,TXTCTRL,'S',#CR
|
||||
.DA #PRSTR,TXTCTRL,'G',#CR
|
||||
.DA #PRSTR,TXTCTRL,'P',#CR
|
||||
.DA #PRSTR,TXTCTRL,'C',#CR
|
||||
.DA #PRSTR,TXTCTRL,'D',#CR
|
||||
.DA #PRSTR,TXTCTRL,'Q',#CR
|
||||
.DA #PRSTR,TXTCTRL,'L',#CR
|
||||
.DA #PRLOC,277,#71
|
||||
BYT PRRITE
|
||||
BYT 'SAVE',CR
|
||||
BYT 'GET',CR
|
||||
BYT 'PRINT',CR
|
||||
BYT 'CLEAR',CR
|
||||
BYT 'DEVICE',CR
|
||||
BYT 'QUIT',CR
|
||||
BYT 'LOCK',CR
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
P2SPC = 11
|
||||
;
|
||||
PAGE2 JSR PRINT
|
||||
BYT PRCSPACE,1
|
||||
BYT PRSPC,P2SPC
|
||||
.DA #PRLOC,XEDGE,#67
|
||||
BYT 'D - DRAW',CR
|
||||
BYT 'E',PRRTAB,XR1,'- ERASE',CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT 'H - FLIP',CR
|
||||
BYT PRSPC,P2SPC,PRRTAB,XR2
|
||||
BYT 'HORIZONTAL',CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT 'V',PRRTAB,XR1,'- FLIP',CR
|
||||
BYT PRSPC,P2SPC,PRRTAB,XR2
|
||||
BYT 'VERTICAL',CR
|
||||
;
|
||||
BYT 'N',PRRTAB,XR1,'- NEGATIVE',CR
|
||||
BRK
|
||||
LDX #XEDGEB
|
||||
LDY #136
|
||||
LDA #1
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
.DA #PRLOC,XEDGE+45,#151
|
||||
BYT 'SCROLL',CR
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
P3Y = 66
|
||||
PAGE3 JSR PRINT
|
||||
.DA #PRLOC,XCENT,#P3Y
|
||||
BYT PRCNTR,PRCSPACE,1
|
||||
.DA #PRSTR,TXTBORD
|
||||
BYT ' LAYOUT:',CR
|
||||
BYT PRLEFT
|
||||
.DA #PRLOC,XEDGE,#MINIY2+6+MINIH2*14
|
||||
BYT 'B - FLIP BOTTOM',CR
|
||||
BYT 'R - FLIP RIGHT',CR
|
||||
BYT 'T',PRRTAB,XR1,'- TILE',CR
|
||||
BYT PRRTAB,XR2,'BOUNDARY',CR
|
||||
BRK
|
||||
JMP PAG3DIAG
|
||||
;-----------
|
||||
P4Y = 83
|
||||
;
|
||||
FFXLOC = 37
|
||||
FFYLOC = 131
|
||||
;
|
||||
PAGE4 JSR PRINT
|
||||
.DA #PRLOC,XEDGE,#P4Y
|
||||
BYT 'C',PRRTAB,XR1,'-',PRRTAB,XR2,'COPY THE',CR
|
||||
BYT PRRTAB2,XR2
|
||||
BYT 'CURRENT',CR
|
||||
.DA #PRSTR,TXTEB,' TO',#CR
|
||||
BYT 'THE OTHER',CR
|
||||
.DA #PRSTR,TXTEB,'ES',#CR
|
||||
BYT CR
|
||||
.DA #PRHTAB,XEDGE
|
||||
BYT 'P',PRRTAB,XR1,'-',PRRTAB,XR2,'PATTERN',CR
|
||||
BYT RTOSANY,$70,FFXLOC,FFYLOC-1,1,10
|
||||
BYT RTOSWITE,FFXLOC+1,FFYLOC-1,1,10
|
||||
BYT RTOSANY,$03,FFXLOC+2,FFYLOC-1,1,10
|
||||
BYT CR
|
||||
BYT 'F',PRRTAB,XR1,'-',PRRTAB,XR2,'FLOOD FILL',CR
|
||||
BRK
|
||||
JMP SHOWFILL
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:BOEDIT2"
|
|
@ -0,0 +1,816 @@
|
|||
;
|
||||
; S:BOEDIT2
|
||||
;
|
||||
; Here is the Main Loop
|
||||
;
|
||||
MAINLOOP LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
JSR DEVICEST
|
||||
;
|
||||
^0 JSR SETFLASH
|
||||
LDX MINICNT
|
||||
BEQ >1
|
||||
DEX
|
||||
STX MINICNT
|
||||
BNE >1
|
||||
JSR MINITURE
|
||||
;
|
||||
^1 LDY #1
|
||||
JSR DEVICERD
|
||||
BCS >2
|
||||
;
|
||||
STA BUTTON
|
||||
JSR DODEVICE
|
||||
BIT BUTTON
|
||||
BMI >3
|
||||
BVC >2
|
||||
LDX #0
|
||||
STX MINICNT
|
||||
JSR MINITURE
|
||||
;
|
||||
^2 LDA #0
|
||||
STA CNSTRAIN
|
||||
JSR POLEKEY
|
||||
BMI KEYPRESS
|
||||
;
|
||||
^3 DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
KEYPRESS STA >1+1
|
||||
JSR BRRESET
|
||||
LDY #$FC
|
||||
^0 INY
|
||||
INY
|
||||
INY
|
||||
INY
|
||||
LDA COMMANDS,Y
|
||||
BEQ MAINLOOP
|
||||
^1 CMP #00
|
||||
BNE <0
|
||||
;
|
||||
CPY #LOCKSTOP-COMMANDS
|
||||
BLT >1
|
||||
JSR LOCKOFF
|
||||
;
|
||||
^1 CPY #MOVECOM?-COMMANDS
|
||||
BGE >1
|
||||
LDA #00
|
||||
LOCKMODE = *-1
|
||||
BPL >1
|
||||
TYA
|
||||
PHA
|
||||
LDA #2
|
||||
STA MINICNT
|
||||
JSR PLOT
|
||||
PLA
|
||||
TAY
|
||||
;
|
||||
^1 LDA COMMANDS+1,Y
|
||||
LDX #$20
|
||||
LSR
|
||||
BCS *+4
|
||||
LDX #$2C
|
||||
STX >2+0
|
||||
;
|
||||
LDX #$20
|
||||
LSR
|
||||
BCS *+4
|
||||
LDX #$2C
|
||||
STX >4+0
|
||||
;
|
||||
LDA COMMANDS+2,Y
|
||||
STA >3+1
|
||||
LDA COMMANDS+3,Y
|
||||
STA >3+2
|
||||
;
|
||||
^2 JSR BUFFSAVE
|
||||
;
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
LDA SECTION
|
||||
;
|
||||
^3 JSR $FFFF
|
||||
^4 JSR MINITURE
|
||||
JMP MAINLOOP
|
||||
;
|
||||
; #key,<buffsave,miniature>,<address>
|
||||
;
|
||||
; byte 1= bit 0:BUFFSAVE?
|
||||
; bit 1:MINITURE?
|
||||
;
|
||||
COMMANDS .DA #'I',#0,MOVEUP
|
||||
.DA #$0B,#0,MOVEUP
|
||||
.DA #'M',#0,MOVEDOWN
|
||||
.DA #$0A,#0,MOVEDOWN
|
||||
.DA #'J',#0,MOVELEFT
|
||||
.DA #$08,#0,MOVELEFT
|
||||
.DA #'K',#0,MOVERITE
|
||||
.DA #$15,#0,MOVERITE
|
||||
MOVECOM?:
|
||||
.DA #'L'-$40,#0,TOGGLOCK
|
||||
.DA #'D',#3,BRSET
|
||||
.DA #'E',#3,BRCLEAR
|
||||
LOCKSTOP:
|
||||
.DA #'C',#3,BRCOPY
|
||||
.DA #'C'-$40,#0,CMDCLEAR
|
||||
.DA #'F',#3,FLODFILL
|
||||
.DA #'P',#0,NEXTPATT
|
||||
;
|
||||
.DA #'W',#2,SCRLUP
|
||||
.DA #'Z',#2,SCRLDOWN
|
||||
.DA #'A',#2,SCRLLEFT
|
||||
.DA #'S',#2,SCRLRITE
|
||||
;
|
||||
.DA #'H',#2,FLIPHORI
|
||||
.DA #'V',#2,FLIPVERT
|
||||
.DA #'N',#2,BRNEGATI
|
||||
;
|
||||
.DA #'1',#0,SECTION1
|
||||
.DA #'2',#0,SECTION2
|
||||
.DA #'3',#0,SECTION3
|
||||
;
|
||||
.DA #$07,#0,BRGET
|
||||
.DA #$13,#0,BRSAVE
|
||||
.DA #$11,#0,QUIT
|
||||
;
|
||||
.DA #'T',#2,TGLMASK
|
||||
.DA #'R',#2,TGLRITE
|
||||
.DA #'B',#2,TGLBOTT
|
||||
;
|
||||
.DA #'U',#2,UNDO
|
||||
;
|
||||
.DA #' ',#0,CMDSPACE
|
||||
.DA #'D'-$40,#0,NWDEVICE
|
||||
.DA #'P'-$40,#0,BRPRINT
|
||||
;
|
||||
BRK
|
||||
;-----------
|
||||
;
|
||||
; Input device handler
|
||||
;
|
||||
DODEVICE CPX XCOOR
|
||||
BNE >0
|
||||
CPY YCOOR
|
||||
BEQ >3
|
||||
;
|
||||
; Device moved
|
||||
;
|
||||
^0 LDA CNSTRAIN
|
||||
BPL >1
|
||||
;
|
||||
; Figure out which direction
|
||||
; to constrain
|
||||
;
|
||||
LDA #1
|
||||
CPX XCOOR
|
||||
BEQ *+3
|
||||
ASL
|
||||
STA CNSTRAIN
|
||||
;
|
||||
^1 STX >1+1
|
||||
STY >2+1
|
||||
JSR BRRESET
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
^1 LDX #00
|
||||
^2 LDY #00
|
||||
JSR DEVCONST
|
||||
;
|
||||
; If button down, plot new point
|
||||
; else, just plot cursor.
|
||||
;
|
||||
BIT BUTTON
|
||||
BMI DOBUTTON
|
||||
BPL SETFLASH
|
||||
;
|
||||
; End up here if device didn't move.
|
||||
; If button is not down or if button
|
||||
; was down last time, then exit.
|
||||
;
|
||||
^3 STX OLDXCOOR
|
||||
STY OLDYCOOR
|
||||
BIT BUTTON
|
||||
BPL DEVRTS
|
||||
BVS DEVRTS
|
||||
;
|
||||
; Handle button press
|
||||
;
|
||||
DOBUTTON BVS >0
|
||||
;
|
||||
; Button down for first time, so
|
||||
; get bit and invert.
|
||||
;
|
||||
LDA LOCKMODE
|
||||
STA CNSTRAIN
|
||||
JSR BUFFSAVE
|
||||
JSR SETPLOTX
|
||||
;
|
||||
; Plot current position and
|
||||
; set new cursor.
|
||||
;
|
||||
^0 JSR PLOT
|
||||
;
|
||||
; After flashing cursor in the
|
||||
; same place 10 times, then
|
||||
; display the miniature.
|
||||
;
|
||||
LDA #10
|
||||
STA MINICNT
|
||||
;
|
||||
SETFLASH JSR BRFLASH
|
||||
JSR FLSHINIT
|
||||
;
|
||||
; Display X,Y coordinates
|
||||
;
|
||||
SHOWXY LDA XCOOR
|
||||
LDX #4
|
||||
LDY #185
|
||||
JSR NUMBER
|
||||
LDA YCOOR
|
||||
LDX #10
|
||||
LDY #185
|
||||
JMP NUMBER
|
||||
;
|
||||
DEVRTS RTS
|
||||
;
|
||||
; Device input constrain
|
||||
; but only when the constrain
|
||||
; feature is selected.
|
||||
;
|
||||
DEVCONST BIT DEVRTS
|
||||
LDA CNSTRAIN
|
||||
BEQ DEVCLAMP
|
||||
;
|
||||
LSR
|
||||
BCC >0
|
||||
;
|
||||
; Constrain X?
|
||||
;
|
||||
CPX XCOOR
|
||||
BEQ DEVCLMP2
|
||||
LDX XCOOR
|
||||
CLV
|
||||
BVC DEVCLMP2
|
||||
;
|
||||
; Constrain Y?
|
||||
;
|
||||
^0 CPY YCOOR
|
||||
BEQ DEVCLMP2
|
||||
LDY YCOOR
|
||||
CLV
|
||||
BVC DEVCLMP2
|
||||
;
|
||||
; Input device clamping
|
||||
;
|
||||
DEVCLAMP BIT DEVRTS
|
||||
DEVCLMP2 CPX #XMAX
|
||||
BLT >0
|
||||
CLV
|
||||
LDX #XMAX-1
|
||||
^0 CPY #YMAX
|
||||
BLT >1
|
||||
CLV
|
||||
LDY #YMAX-1
|
||||
^1 STX XCOOR
|
||||
STY YCOOR
|
||||
BVS DEVRTS
|
||||
JMP DEVICEST
|
||||
;-----------
|
||||
;
|
||||
; Given XCOOR,YCOOR set PLOT routine
|
||||
; to opposite of whatever is in this
|
||||
; coordinate
|
||||
;
|
||||
SETPLOTX JSR GETMASK
|
||||
AND (BORDER),Y
|
||||
SETPLOT PHP
|
||||
LDY #CLRBIT
|
||||
LDX /CLRBIT
|
||||
PLP
|
||||
BNE >0
|
||||
LDY #SETBIT
|
||||
LDX /SETBIT
|
||||
^0 STY PLOT+1
|
||||
STX PLOT+2
|
||||
RTS
|
||||
;
|
||||
PLOT JMP SETBIT
|
||||
;-----------
|
||||
;
|
||||
; Swap UNDO buffer and EDIT buffer
|
||||
;
|
||||
UNDO JSR UNDO2
|
||||
JMP BRDRAWAL
|
||||
;
|
||||
UNDO2 LDY #0
|
||||
^0 LDA BORDBASE,Y
|
||||
PHA
|
||||
LDA UNDOBUFF,Y
|
||||
STA BORDBASE,Y
|
||||
PLA
|
||||
STA UNDOBUFF,Y
|
||||
INY
|
||||
CPY #$94
|
||||
BNE <0
|
||||
RTS
|
||||
;
|
||||
BUFFSAVE LDY #0
|
||||
^0 LDA BORDBASE,Y
|
||||
STA UNDOBUFF,Y
|
||||
INY
|
||||
CPY #$94
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Scroll left/right
|
||||
;
|
||||
SCRLLEFT LDX #1
|
||||
HEX 2C
|
||||
SCRLRITE LDX #22
|
||||
;
|
||||
^0 LDY #0
|
||||
^1 LDA (BORDER),Y
|
||||
PHA
|
||||
^2 INY
|
||||
LDA (BORDER),Y
|
||||
DEY
|
||||
STA (BORDER),Y
|
||||
INY
|
||||
CPY #22
|
||||
BEQ >3
|
||||
CPY #46
|
||||
BNE <2
|
||||
^3 PLA
|
||||
STA (BORDER),Y
|
||||
INY
|
||||
INY
|
||||
CPY #24
|
||||
BEQ <1
|
||||
DEX
|
||||
BNE <0
|
||||
JMP BRDRAW
|
||||
;-----------
|
||||
;
|
||||
; Scroll up/down
|
||||
;
|
||||
SCRLUP LDX #1
|
||||
HEX 2C
|
||||
SCRLDOWN LDX #13
|
||||
;
|
||||
^0 LDY #0
|
||||
^1 LDA (BORDER),Y
|
||||
LSR
|
||||
LDA #0
|
||||
ROR
|
||||
STA TMP0
|
||||
TYA
|
||||
PHA
|
||||
CLC
|
||||
ADC #24
|
||||
TAY
|
||||
LDA TMP0
|
||||
ORA (BORDER),Y
|
||||
LSR
|
||||
STA (BORDER),Y
|
||||
PLA
|
||||
TAY
|
||||
LDA #0
|
||||
ROR
|
||||
ORA (BORDER),Y
|
||||
LSR
|
||||
STA (BORDER),Y
|
||||
INY
|
||||
CPY #23
|
||||
BLT <1
|
||||
DEX
|
||||
BNE <0
|
||||
JMP BRDRAW
|
||||
;-----------
|
||||
;
|
||||
; Flip vertical
|
||||
;
|
||||
FLIPVERT LDY #0
|
||||
^0 LDA (BORDER),Y
|
||||
TAX
|
||||
TYA
|
||||
PHA
|
||||
CLC
|
||||
ADC #24
|
||||
TAY
|
||||
LDA (BORDER),Y
|
||||
PHA
|
||||
LDA FLIPPER,X
|
||||
STA (BORDER),Y
|
||||
PLA
|
||||
TAX
|
||||
PLA
|
||||
TAY
|
||||
LDA FLIPPER,X
|
||||
STA (BORDER),Y
|
||||
INY
|
||||
CPY #23
|
||||
BLT <0
|
||||
JMP BRDRAW
|
||||
;-----------
|
||||
;
|
||||
; Flip horizontal
|
||||
;
|
||||
FLIPHORI LDA #0
|
||||
HEX 2C
|
||||
FLIPHOR2 LDA #24
|
||||
STA TMP0
|
||||
CLC
|
||||
ADC #22
|
||||
STA TMP1
|
||||
LDX #11
|
||||
^0 LDY TMP0
|
||||
LDA (BORDER),Y
|
||||
PHA
|
||||
LDY TMP1
|
||||
LDA (BORDER),Y
|
||||
LDY TMP0
|
||||
STA (BORDER),Y
|
||||
PLA
|
||||
LDY TMP1
|
||||
STA (BORDER),Y
|
||||
INC TMP0
|
||||
DEC TMP1
|
||||
DEX
|
||||
BNE <0
|
||||
LDA TMP0
|
||||
CMP #24
|
||||
BLT FLIPHOR2
|
||||
JMP BRDRAW
|
||||
;-----------
|
||||
;
|
||||
; Move up
|
||||
;
|
||||
MOVEUP DEY
|
||||
BPL MOVEDONE
|
||||
LDY #YMAX-2
|
||||
;
|
||||
; Move down
|
||||
;
|
||||
MOVEDOWN INY
|
||||
CPY #YMAX
|
||||
BLT MOVEDONE
|
||||
LDY #0
|
||||
;
|
||||
; Set new coordinates
|
||||
;
|
||||
MOVEDONE STX XCOOR
|
||||
STY YCOOR
|
||||
RTS
|
||||
;
|
||||
; Move left
|
||||
;
|
||||
MOVELEFT DEX
|
||||
BPL MOVEDONE
|
||||
LDX #XMAX-2
|
||||
;
|
||||
; Move right
|
||||
;
|
||||
MOVERITE INX
|
||||
CPX #XMAX
|
||||
BLT MOVEDONE
|
||||
LDX #0
|
||||
BEQ MOVEDONE
|
||||
;-----------
|
||||
;
|
||||
; Move cursor to section
|
||||
;
|
||||
SECTION1 LDA #0
|
||||
HEX 2C
|
||||
SECTION2 LDA #1
|
||||
HEX 2C
|
||||
SECTION3 LDA #2
|
||||
;
|
||||
; Given A=section, set BORDER pointer
|
||||
; and SECTION to correct values
|
||||
;
|
||||
SETBORD STA SECTION
|
||||
ASL
|
||||
ADC SECTION
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC #4
|
||||
STA BORDER
|
||||
LDA /BORDBASE
|
||||
STA BORDER+1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Zero out border area
|
||||
;
|
||||
ZEROBORD LDY #$94
|
||||
LDA #0
|
||||
^0 DEY
|
||||
STA BORDBASE,Y
|
||||
BNE <0
|
||||
^1 RTS
|
||||
;-----------
|
||||
;
|
||||
; Initialize border data
|
||||
;
|
||||
BRINIT JSR ZEROBORD
|
||||
;
|
||||
; Center the cursor
|
||||
;
|
||||
BRCENTER LDX #11
|
||||
LDY #6
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
;
|
||||
; Start with corner
|
||||
;
|
||||
LDA #0
|
||||
JSR SETBORD
|
||||
;
|
||||
; fall into re-draw routine
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Draw all sections
|
||||
; restore old section
|
||||
;
|
||||
BRDRAWAL JSR SHOWMASK
|
||||
LDA SECTION
|
||||
PHA
|
||||
LDY #0
|
||||
^0 STY SECTION
|
||||
TYA
|
||||
JSR SETBORD
|
||||
JSR BRDRAW
|
||||
LDY SECTION
|
||||
INY
|
||||
CPY #3
|
||||
BLT <0
|
||||
PLA
|
||||
JMP SETBORD
|
||||
;-----------
|
||||
;
|
||||
; Copy from 0 to 1 and 2
|
||||
;
|
||||
BRCOPY LDY #47
|
||||
^0 LDA (BORDER),Y
|
||||
STA BORDBASE+$04,Y
|
||||
STA BORDBASE+$34,Y
|
||||
STA BORDBASE+$64,Y
|
||||
DEY
|
||||
BPL <0
|
||||
BMI BRDRAWAL
|
||||
;-----------
|
||||
;
|
||||
; Draw current section
|
||||
;
|
||||
BRDRAW LDA XCOOR
|
||||
PHA
|
||||
LDA YCOOR
|
||||
PHA
|
||||
LDY #0
|
||||
STY XCOOR
|
||||
^0 STY YCOOR
|
||||
JSR BRRESET
|
||||
;
|
||||
LDY YCOOR
|
||||
INY
|
||||
CPY #14
|
||||
BLT <0
|
||||
;
|
||||
LDY #0
|
||||
INC XCOOR
|
||||
LDA XCOOR
|
||||
CMP #23
|
||||
BLT <0
|
||||
PLA
|
||||
STA YCOOR
|
||||
PLA
|
||||
STA XCOOR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Restore current location, use
|
||||
; after BRFLASH
|
||||
;
|
||||
BRRESET JSR GETMASK
|
||||
AND (BORDER),Y
|
||||
BEQ >0
|
||||
JMP PLOTON
|
||||
^0 JMP PLOTOFF
|
||||
;-----------
|
||||
;
|
||||
; Invert current section
|
||||
;
|
||||
BRNEGATI LDY #46
|
||||
^0 LDA (BORDER),Y
|
||||
EOR #$7F
|
||||
STA (BORDER),Y
|
||||
DEY
|
||||
;
|
||||
; When done, redraw section
|
||||
;
|
||||
BMI BRDRAW
|
||||
CPY #23
|
||||
BNE <0
|
||||
DEY
|
||||
BNE <0
|
||||
;-----------
|
||||
;
|
||||
; Clear bit in section and screen
|
||||
;
|
||||
BRCLEAR LDA #$18
|
||||
LDY #1
|
||||
BNE >0
|
||||
;
|
||||
; Set bit in section and screen
|
||||
;
|
||||
BRSET LDA #$16
|
||||
LDY #0
|
||||
^0 PHA
|
||||
JSR SETPLOT
|
||||
JSR PLOT
|
||||
PLA
|
||||
TAY
|
||||
;
|
||||
BRBEEP LDX #7
|
||||
^0 LDA $C030
|
||||
TYA
|
||||
JSR WAIT
|
||||
DEX
|
||||
BNE <0
|
||||
RTS
|
||||
;
|
||||
CLRBIT JSR GETMASK
|
||||
EOR #$7F
|
||||
AND (BORDER),Y
|
||||
STA (BORDER),Y
|
||||
JMP PLOTOFF
|
||||
;
|
||||
SETBIT JSR GETMASK
|
||||
ORA (BORDER),Y
|
||||
STA (BORDER),Y
|
||||
JMP PLOTON
|
||||
;
|
||||
; Get mask (in A) and offset (in Y)
|
||||
;
|
||||
GETMASK LDY YCOOR
|
||||
LDA GETMASKT,Y
|
||||
PHA
|
||||
LDA XCOOR
|
||||
CPY #7
|
||||
BGE >0
|
||||
ADC #24
|
||||
^0 TAY
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
; Y-coor mask for border 0-13
|
||||
;
|
||||
GETMASKT BYT %0000001
|
||||
BYT %0000010
|
||||
BYT %0000100
|
||||
BYT %0001000
|
||||
BYT %0010000
|
||||
BYT %0100000
|
||||
BYT %1000000
|
||||
BYT %0000001
|
||||
BYT %0000010
|
||||
BYT %0000100
|
||||
BYT %0001000
|
||||
BYT %0010000
|
||||
BYT %0100000
|
||||
BYT %1000000
|
||||
;-----------
|
||||
;
|
||||
; Toggle masking
|
||||
;
|
||||
TGLMASK LDA BORDBASE
|
||||
EOR #%100
|
||||
STA BORDBASE
|
||||
AND #%100
|
||||
BEQ SHOWMASK
|
||||
LDA BORDBASE
|
||||
ORA #%111
|
||||
STA BORDBASE
|
||||
;
|
||||
SHOWMASK JSR PAG3DIAG
|
||||
LDX #WITE
|
||||
JSR TGLMSK2
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,15,132,4,17,0
|
||||
LDX #GRAY2
|
||||
LDA BORDBASE
|
||||
AND #%100
|
||||
BEQ TGLMSK2
|
||||
;
|
||||
; "Fill to edge" arrows
|
||||
;
|
||||
LDX #15
|
||||
LDY #132
|
||||
JMP TILEAROW
|
||||
;
|
||||
; Tile boundary line
|
||||
;
|
||||
TGLMSK2 STX >0+0
|
||||
STX >1+0
|
||||
STX >2+0
|
||||
STX >3+0
|
||||
JSR LINES
|
||||
BYT "H",MINIX1
|
||||
^0 BYT GRAY,14,MINIY1+14,14*MINIW1-2
|
||||
^1 BYT GRAY,14,MINIY1+13+14*MINIH1-2,14*MINIW1-2
|
||||
BYT 1
|
||||
JSR LINES
|
||||
BYT "V",MINIX1
|
||||
^2 BYT GRAY,14,MINIY1+14,14*MINIH1-2
|
||||
^3 BYT GRAY,13+14*MINIW1-2,MINIY1+14,14*MINIH1-2
|
||||
BYT 1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Toggle right side
|
||||
;
|
||||
TGLRITE LDA BORDBASE
|
||||
AND #%11111011
|
||||
EOR #%00000010
|
||||
STA BORDBASE
|
||||
JMP SHOWMASK
|
||||
;-----------
|
||||
;
|
||||
; Toggle bottom
|
||||
;
|
||||
TGLBOTT LDA BORDBASE
|
||||
AND #%11111011
|
||||
EOR #%00000001
|
||||
STA BORDBASE
|
||||
JMP SHOWMASK
|
||||
;-----------
|
||||
;
|
||||
; Tile boundary arrow
|
||||
;
|
||||
TILEAROW STX >0+0
|
||||
STY >0+1
|
||||
JSR PICDRAW
|
||||
^0 BYT 15,132,4,17
|
||||
HEX C27EC23F7CC21F78C20F70C21F78C21B
|
||||
HEX 58C20181C2827E3F827CC1827EC10181
|
||||
HEX C21B58C21F78C20F70C21F78C23F7CC3
|
||||
HEX 7E7F
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Turn off lock mode
|
||||
;
|
||||
LOCKOFF STX >0+1
|
||||
STY >1+1
|
||||
STA >2+1
|
||||
LDA LOCKMODE
|
||||
BPL >2
|
||||
;
|
||||
; Toggle lock mode
|
||||
;
|
||||
TOGGLOCK LDA LOCKMODE
|
||||
EOR #$80
|
||||
STA LOCKMODE
|
||||
BPL SHOWLOCK
|
||||
;
|
||||
; If we are turning on lock mode,
|
||||
; then save border in UNDOBUFF.
|
||||
;
|
||||
JSR BUFFSAVE
|
||||
JSR SETPLOTX
|
||||
;
|
||||
; Show lock mode
|
||||
;
|
||||
SHOWLOCK JSR PRINT
|
||||
BYT RTOSBLAK,LOCKX,LOCKY,1,9,0
|
||||
LDA LOCKMODE
|
||||
BPL >0
|
||||
JSR PICDRAW
|
||||
BYT LOCKX,LOCKY,1,9
|
||||
HEX 1C222222C17777777F
|
||||
^0 LDX #00
|
||||
^1 LDY #00
|
||||
^2 LDA #00
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Select input device
|
||||
;
|
||||
NWDEVICE JSR DEVICECH
|
||||
JMP SHOWBOTM
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:BOEDIT3"
|
|
@ -0,0 +1,505 @@
|
|||
;
|
||||
; S:BOEDIT3
|
||||
; ---------
|
||||
; Low-level screen stuff
|
||||
;
|
||||
;
|
||||
; Draw Miniature greeting card border
|
||||
; on hires page, complete with
|
||||
; right and bottom flipping.
|
||||
;
|
||||
MNZ EPZ $80
|
||||
;
|
||||
MINIX EPZ MNZ
|
||||
MINIY EPZ MNZ+1
|
||||
MINIWITH EPZ MNZ+2
|
||||
MINIHITE EPZ MNZ+3
|
||||
;
|
||||
; Temporary table where miniature
|
||||
; is built.
|
||||
;
|
||||
MINITEMP = $BB00
|
||||
MINIBUFF = MINITEMP
|
||||
TEMPTBL = MINITEMP+28*3
|
||||
;
|
||||
MINITURE LDX #MINIX1
|
||||
LDY #MINIY1
|
||||
STX MINIX
|
||||
STY MINIY
|
||||
LDX #MINIW1
|
||||
LDY #MINIH1
|
||||
CLC
|
||||
;-----------
|
||||
;
|
||||
; Enter with X=width
|
||||
; Y=height
|
||||
;
|
||||
; z-page MINIX=x position
|
||||
; MINIY=y position
|
||||
;
|
||||
MINITUR2 DEX
|
||||
STX MINIWITH
|
||||
DEY
|
||||
STY MINIHITE
|
||||
;
|
||||
; If carry set, then don't do
|
||||
; the compression, data is all
|
||||
; ready at MINIBUFF.
|
||||
;
|
||||
BCS *+5
|
||||
JSR MINICALC
|
||||
;
|
||||
; Top line
|
||||
;
|
||||
LDY #0
|
||||
JSR MINILINE
|
||||
;
|
||||
; Do left and right edges
|
||||
;
|
||||
^1 INY
|
||||
CPY MINIHITE
|
||||
BEQ MINILINE
|
||||
LDX #0
|
||||
JSR MINISTR2
|
||||
LDX MINIWITH
|
||||
JSR MINISTR2
|
||||
JMP <1
|
||||
;
|
||||
; Given Y, do one line
|
||||
;
|
||||
MINILINE LDX MINIWITH
|
||||
JSR MINISTR0
|
||||
^0 DEX
|
||||
BEQ >1
|
||||
JSR MINISTR1
|
||||
JMP <0
|
||||
^1 JMP MINISTR0
|
||||
;
|
||||
; Interpolate from 23x14 to 14x14
|
||||
; for each of the 3 sections.
|
||||
;
|
||||
; TMP0.1 points into BORDBASE
|
||||
; TMP2.3 points into MINIBUFF
|
||||
;
|
||||
MINICALC LDY #BORDBASE+4
|
||||
LDA /BORDBASE+4
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDY #MINIBUFF
|
||||
LDA /MINIBUFF
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
;
|
||||
; Now squish the three sections
|
||||
;
|
||||
LDA #3
|
||||
^0 PHA
|
||||
;
|
||||
; Do top part then bottom part
|
||||
;
|
||||
LDY #24
|
||||
JSR MINISQSH
|
||||
LDY #0
|
||||
JSR MINISQSH
|
||||
;
|
||||
LDA TMP0
|
||||
CLC
|
||||
ADC #48
|
||||
STA TMP0
|
||||
;
|
||||
PLA
|
||||
SBC #0
|
||||
BNE <0
|
||||
RTS
|
||||
;
|
||||
; Squish 23 vertically oriented bytes
|
||||
; to 14 horizontally oriented bytes.
|
||||
;
|
||||
MINISQSH LDX #0
|
||||
^0 LDA MINIORTB,X
|
||||
STA TMP4
|
||||
;
|
||||
LDA #0
|
||||
^1 ORA (TMP0),Y
|
||||
INY
|
||||
DEC TMP4
|
||||
BNE <1
|
||||
;
|
||||
STX >3+1
|
||||
ASL
|
||||
STA TMP4
|
||||
LDX #12
|
||||
;
|
||||
^2 LSR TEMPTBL,X
|
||||
LSR TEMPTBL+1,X
|
||||
LDA #0
|
||||
ROR
|
||||
ROR
|
||||
ORA TEMPTBL,X
|
||||
STA TEMPTBL,X
|
||||
LDA #0
|
||||
ASL TMP4
|
||||
ROR
|
||||
ROR
|
||||
ORA TEMPTBL+1,X
|
||||
STA TEMPTBL+1,X
|
||||
DEX
|
||||
DEX
|
||||
BPL <2
|
||||
;
|
||||
^3 LDX #00
|
||||
INX
|
||||
CPX #14
|
||||
BLT <0
|
||||
;
|
||||
LDY #13
|
||||
^4 LDA TEMPTBL,Y
|
||||
EOR #$7F
|
||||
STA (TMP2),Y
|
||||
DEY
|
||||
BPL <4
|
||||
LDA TMP2
|
||||
CLC
|
||||
ADC #14
|
||||
STA TMP2
|
||||
RTS
|
||||
;
|
||||
; Table which tells how many
|
||||
; bytes to OR together
|
||||
;
|
||||
MINIORTB HEX 02010202010202
|
||||
HEX 01020102020102
|
||||
;
|
||||
; Draw a section given:
|
||||
;
|
||||
; A=section to use
|
||||
; X,Y=position
|
||||
;
|
||||
; Computed:
|
||||
; TMP0.1= MINIBUFF pointer
|
||||
;
|
||||
MINISTR0 LDA #0
|
||||
HEX 2C
|
||||
MINISTR1 LDA #28
|
||||
HEX 2C
|
||||
MINISTR2 LDA #56
|
||||
STA TMP0
|
||||
LDA /MINIBUFF
|
||||
STA TMP1
|
||||
STX MINIXSAV
|
||||
STY MINIYSAV
|
||||
LDA #0
|
||||
CPX MINIWITH
|
||||
BNE *+4
|
||||
ORA #2
|
||||
CPY MINIHITE
|
||||
BNE *+4
|
||||
ORA #1
|
||||
AND BORDBASE
|
||||
PHA
|
||||
;
|
||||
; Compute X and Y screen addresses
|
||||
;
|
||||
; X= X*2+MINIX
|
||||
;
|
||||
TXA
|
||||
ASL
|
||||
ADC MINIX
|
||||
STA MINIXPOS
|
||||
;
|
||||
; Y= Y*14+MINIY
|
||||
;
|
||||
TYA
|
||||
ASL
|
||||
STA TMP2
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC MINIY
|
||||
SEC
|
||||
SBC TMP2
|
||||
STA MINIYPOS
|
||||
;
|
||||
PLA
|
||||
LSR
|
||||
AND #1
|
||||
STA MINIFLIP
|
||||
;
|
||||
; If flipping bottom, then start from
|
||||
; end of MINIBUFF data.
|
||||
;
|
||||
LDY #$E6 ; INC
|
||||
LDA #0
|
||||
BCC >0
|
||||
LDA #26
|
||||
LDY #$C6 ; DEC
|
||||
^0 CLC
|
||||
ADC TMP0
|
||||
STA TMP0
|
||||
STY MINIBMD0
|
||||
STY MINIBMD1
|
||||
LDX #14
|
||||
;
|
||||
; Miniature border section store loop
|
||||
;
|
||||
MINISLOP LDY #00
|
||||
MINIYPOS = *-1
|
||||
LDA YBASELO,Y
|
||||
CLC
|
||||
ADC #00
|
||||
MINIXPOS = *-1
|
||||
STA HIRES1
|
||||
LDA YBASEHI,Y
|
||||
STA HIRES1+1
|
||||
;
|
||||
; Now do a single row
|
||||
;
|
||||
LDY #0
|
||||
LDA #00
|
||||
MINIFLIP = *-1
|
||||
BNE >0
|
||||
;
|
||||
; Standard
|
||||
;
|
||||
LDA (TMP0),Y
|
||||
STA (HIRES1),Y
|
||||
INY
|
||||
LDA (TMP0),Y
|
||||
JMP >1
|
||||
;
|
||||
; Flip horizontally
|
||||
;
|
||||
^0 LDA (TMP0),Y
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
LDY #1
|
||||
STA (HIRES1),Y
|
||||
LDA (TMP0),Y
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
LDY #0
|
||||
;
|
||||
^1 STA (HIRES1),Y
|
||||
MINIBMD0 INC TMP0
|
||||
MINIBMD1 INC TMP0
|
||||
;
|
||||
INC MINIYPOS
|
||||
DEX
|
||||
BNE MINISLOP
|
||||
;
|
||||
LDX #00
|
||||
MINIXSAV = *-1
|
||||
LDY #00
|
||||
MINIYSAV = *-1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Plot routine entry points
|
||||
;
|
||||
PLOTON JSR PLOTINIT
|
||||
EOR #$7F
|
||||
STA TMP0
|
||||
AND (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES3),Y
|
||||
LDA TMP0
|
||||
AND (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
TXA
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 INY
|
||||
EOR #$7F
|
||||
TAX
|
||||
AND (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES3),Y
|
||||
TXA
|
||||
AND (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
RTS
|
||||
;
|
||||
PLOTOFF JSR PLOTINIT
|
||||
STA TMP0
|
||||
ORA (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES3),Y
|
||||
LDA TMP0
|
||||
ORA (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
TXA
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 INY
|
||||
ORA (HIRES1),Y
|
||||
STA (HIRES1),Y
|
||||
STA (HIRES3),Y
|
||||
TXA
|
||||
ORA (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
RTS
|
||||
;
|
||||
BRFLASH JSR PLOTINIT
|
||||
EOR (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
INY
|
||||
TXA
|
||||
EOR (HIRES2),Y
|
||||
STA (HIRES2),Y
|
||||
RTS
|
||||
;
|
||||
; Init plot routine
|
||||
;
|
||||
; Multiply Y by 3 and add
|
||||
; section offset.
|
||||
;
|
||||
PLOTINIT LDA YCOOR
|
||||
ASL
|
||||
ADC YCOOR
|
||||
LDY SECTION
|
||||
ADC YBYTEOFF,Y
|
||||
TAX
|
||||
;
|
||||
LDA YBASELO+YOFFSET,X
|
||||
STA HIRES1
|
||||
LDA YBASEHI+YOFFSET,X
|
||||
STA HIRES1+1
|
||||
LDA YBASELO+YOFFSET+1,X
|
||||
STA HIRES2
|
||||
LDA YBASEHI+YOFFSET+1,X
|
||||
STA HIRES2+1
|
||||
LDA YBASELO+YOFFSET+2,X
|
||||
STA HIRES3
|
||||
LDA YBASEHI+YOFFSET+2,X
|
||||
STA HIRES3+1
|
||||
;
|
||||
; Get bit pattern
|
||||
;
|
||||
LDA XCOOR
|
||||
ADC XBITOFF,Y
|
||||
TAX
|
||||
;
|
||||
LDA XLOOK,X
|
||||
AND #$0F
|
||||
ASL
|
||||
TAY
|
||||
LDA XDATA,Y
|
||||
STA >0+1
|
||||
LDA XDATA+1,Y
|
||||
STA >1+1
|
||||
;
|
||||
; Get X byte offset
|
||||
;
|
||||
LDA XLOOK,X
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LDY SECTION
|
||||
ADC XBYTEOFF,Y
|
||||
TAY
|
||||
;
|
||||
^0 LDA #00
|
||||
^1 LDX #00
|
||||
RTS
|
||||
;
|
||||
; X lookup table
|
||||
;
|
||||
XLOOK HEX 0001020314151620
|
||||
HEX 2122233435364041
|
||||
HEX 4243545556606162
|
||||
HEX 63747576
|
||||
;
|
||||
XDATA HEX 0300
|
||||
HEX 0C00
|
||||
HEX 3000
|
||||
HEX 4001
|
||||
HEX 0600
|
||||
HEX 1800
|
||||
HEX 6000
|
||||
;
|
||||
; Offsets for the 3 border sections
|
||||
;
|
||||
XBITOFF BYT 0
|
||||
BYT 3
|
||||
BYT 0
|
||||
;
|
||||
XBYTEOFF BYT XOFFSET
|
||||
BYT XOFFSET+6
|
||||
BYT XOFFSET
|
||||
;
|
||||
YBYTEOFF BYT 0
|
||||
BYT 0
|
||||
BYT 44
|
||||
;-----------
|
||||
;
|
||||
; If page 3 is being displayed, then
|
||||
; update "border layout"
|
||||
;
|
||||
PAG3DIAG LDA PAGENUM
|
||||
CMP #2
|
||||
BEQ >0
|
||||
RTS
|
||||
;
|
||||
^0 JSR PRINT
|
||||
BYT RTOSWITE,MINIX2+2,MINIY2+14
|
||||
BYT 2*MINIW2-2,14*MINIH2-2,0
|
||||
;
|
||||
LDA BORDBASE
|
||||
PHA
|
||||
LDY #>1
|
||||
LDA />1
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDA #28
|
||||
STA TMP4
|
||||
LDY #MINIBUFF
|
||||
LDA /MINIBUFF
|
||||
LDX #0
|
||||
JSR GETPSUNP
|
||||
LDX #MINIX2
|
||||
LDY #MINIY2
|
||||
STX MINIX
|
||||
STY MINIY
|
||||
LDX #MINIW2
|
||||
LDY #MINIH2
|
||||
SEC
|
||||
PLA
|
||||
STA BORDBASE
|
||||
JSR MINITUR2
|
||||
;
|
||||
; Display tile boundary info
|
||||
;
|
||||
LDA BORDBASE
|
||||
AND #%100
|
||||
BEQ >0
|
||||
LDX #MINIX2+2
|
||||
LDY #MINIY2-8-MINIH2*7
|
||||
JMP TILEAROW
|
||||
;
|
||||
^0 JSR LINES
|
||||
BYT "H",MINIX2
|
||||
BYT GRAY2,14,MINIY2+14,14*MINIW2-2
|
||||
BYT GRAY2,14,MINIY2+13+14*MINIH2-2,14*MINIW2-2
|
||||
BYT 1
|
||||
JSR LINES
|
||||
BYT "V",MINIX2
|
||||
BYT GRAY2,14,MINIY2+14,14*MINIH2-2
|
||||
BYT GRAY2,13+14*MINIW2-2,MINIY2+14,14*MINIH2-2
|
||||
BYT 1
|
||||
RTS
|
||||
;
|
||||
^1 HEX 877F7E3F7E1F7E3F
|
||||
HEX 7E3F7E3F7E1F7C8E
|
||||
HEX 7F0F7E677C7F7C3F
|
||||
HEX 7E1F7F4F7F077C8E
|
||||
HEX 7F1F7C4F797F793F
|
||||
HEX 7C7F794F791F7C88
|
||||
HEX 7F
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:BOEDIT4"
|
|
@ -0,0 +1,330 @@
|
|||
;
|
||||
; S:BOEDIT4
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Print border
|
||||
;
|
||||
BPWIDTH = 120
|
||||
CRLF = $1803
|
||||
SENDGC = $1806
|
||||
GCOUT = $1809
|
||||
;
|
||||
PRINTBR LDA #24
|
||||
JSR PRINTBR2
|
||||
JSR PRINTBR2
|
||||
LDA #120
|
||||
JSR PRINTBR2
|
||||
JSR PRINTBR2
|
||||
LDX #12
|
||||
LDY #1
|
||||
JMP CRLF
|
||||
;
|
||||
PRINTBR2 STA TMP2
|
||||
LDX #BPWIDTH
|
||||
LDY #0
|
||||
STY TMP0
|
||||
JSR SENDGC
|
||||
LDA #32
|
||||
JSR PRINTBR3
|
||||
LDX TMP2
|
||||
^0 LDA #23
|
||||
STA TMP1
|
||||
^1 LDY BORDBASE+4,X
|
||||
LDA FLIPPER,Y
|
||||
JSR GCOUT
|
||||
INX
|
||||
INC TMP0
|
||||
DEC TMP1
|
||||
BNE <1
|
||||
INX
|
||||
TXA
|
||||
CLC
|
||||
ADC #24
|
||||
TAX
|
||||
CPX #96
|
||||
BLT <0
|
||||
LDA #BPWIDTH
|
||||
SEC
|
||||
SBC TMP0
|
||||
JSR PRINTBR3
|
||||
LDX #7
|
||||
LDY #1
|
||||
JSR CRLF
|
||||
LDA TMP2
|
||||
SEC
|
||||
SBC #24
|
||||
RTS
|
||||
;
|
||||
; Output X zero bytes
|
||||
;
|
||||
PRINTBR3 TAX
|
||||
^0 LDA #0
|
||||
JSR GCOUT
|
||||
INC TMP0
|
||||
DEX
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Get a border from the original
|
||||
; Print Shop. All of them are stored
|
||||
; in here in packed format.
|
||||
;
|
||||
GETPSDSK JSR GETTEXT
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#26
|
||||
.DA #PRSTR,CABTEXT,#CR
|
||||
BYT PRVTAB,66
|
||||
BYT 'THIN LINE',CR
|
||||
BYT 'DOUBLE LINE',CR
|
||||
BYT 'THICK LINE',CR
|
||||
BYT 'BEADS',CR
|
||||
BYT 'LATTICE',CR
|
||||
BYT 'FLORAL',CR
|
||||
BYT 'STARS',CR
|
||||
BYT 'HEARTS',CR
|
||||
BYT 'WICKER',CR
|
||||
BRK
|
||||
^0 LDY #00
|
||||
JSR SELECT
|
||||
BYT 11,18,65,9
|
||||
ADR GETPSHOW
|
||||
BCS >1
|
||||
;
|
||||
; Unpack actual data and store it
|
||||
;
|
||||
STY <0+1
|
||||
TYA
|
||||
ASL
|
||||
TAX
|
||||
LDA PSBRDTBL,X
|
||||
STA TMP0
|
||||
LDA PSBRDTBL+1,X
|
||||
STA TMP1
|
||||
LDA #48
|
||||
STA TMP4
|
||||
LDY #BORDBASE+4
|
||||
LDA /BORDBASE+4
|
||||
JSR GETPSUNP
|
||||
CLC
|
||||
^1 RTS
|
||||
;-----------
|
||||
;
|
||||
; Given X=table pointer, unpack
|
||||
; data into MINIBUFF and display it
|
||||
;
|
||||
GETPSHOW LDA BORDBASE
|
||||
PHA
|
||||
LDA PSSCRTBL,X
|
||||
STA TMP0
|
||||
LDA PSSCRTBL+1,X
|
||||
STA TMP1
|
||||
LDA #28
|
||||
STA TMP4
|
||||
LDY #MINIBUFF
|
||||
LDA /MINIBUFF
|
||||
JSR GETPSUNP
|
||||
;
|
||||
; Got the border in buffer, now
|
||||
; display it
|
||||
;
|
||||
LDX #6
|
||||
LDY #39
|
||||
STX MINIX
|
||||
STY MINIY
|
||||
LDX #14
|
||||
LDY #9
|
||||
SEC
|
||||
JSR MINITUR2
|
||||
PLA
|
||||
STA BORDBASE
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Given TMP4=28 for screen, 48 for
|
||||
; printer data. A,Y=dest buffer.
|
||||
;
|
||||
GETPSUNP STY >3+1
|
||||
STA >3+2
|
||||
;
|
||||
; TMP4=TMP4 * 3
|
||||
;
|
||||
LDA TMP4
|
||||
STA TMP2
|
||||
ASL
|
||||
ADC TMP2
|
||||
STA TMP4
|
||||
;
|
||||
LDY #7
|
||||
CPX #2*2
|
||||
BLT >0
|
||||
;
|
||||
LDY #0
|
||||
LDA TMP2
|
||||
;
|
||||
^0 STY BORDBASE
|
||||
;
|
||||
; First unpack border into buffer.
|
||||
; For 1 and 2 all 3 sections
|
||||
; are defined and info byte=7
|
||||
;
|
||||
; For the rest, decompress 3 times,
|
||||
; until X=LEN*3 (TMP4)
|
||||
;
|
||||
; TMP2=counter
|
||||
; TMP3=repeat counter
|
||||
;
|
||||
LDX #0
|
||||
^1 PHA
|
||||
STA TMP2
|
||||
LDY #$FF
|
||||
^2 LDA #1
|
||||
STA TMP3
|
||||
INY
|
||||
LDA (TMP0),Y
|
||||
BPL >3
|
||||
AND #$7F
|
||||
STA TMP3
|
||||
INY
|
||||
LDA (TMP0),Y
|
||||
^3 STA $FFFF,X
|
||||
INX
|
||||
DEC TMP2
|
||||
BEQ >4
|
||||
DEC TMP3
|
||||
BNE <3
|
||||
BEQ <2
|
||||
;
|
||||
^4 PLA
|
||||
CPX TMP4
|
||||
BLT <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
PSBRDTBL ADR PSBRD1
|
||||
ADR PSBRD2
|
||||
ADR PSBRD3
|
||||
ADR PSBRD4
|
||||
ADR PSBRD5
|
||||
ADR PSBRD6
|
||||
ADR PSBRD7
|
||||
ADR PSBRD8
|
||||
ADR PSBRD9
|
||||
;
|
||||
PSSCRTBL ADR PSSCR1
|
||||
ADR PSSCR2
|
||||
ADR PSSCR3
|
||||
ADR PSSCR4
|
||||
ADR PSSCR5
|
||||
ADR PSSCR6
|
||||
ADR PSSCR7
|
||||
ADR PSSCR8
|
||||
ADR PSSCR9
|
||||
;
|
||||
; Borders from original Print Shop
|
||||
; disk in compressed format.
|
||||
;
|
||||
PSBRD1 HEX 827F9600827F9501
|
||||
HEX 9900970100827F96
|
||||
HEX 00827F9600
|
||||
;
|
||||
PSSCR1 HEX 827F030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 03000300827F9A00
|
||||
HEX 0300030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 0300030003000300
|
||||
HEX 03000300
|
||||
;-------
|
||||
PSBRD2 HEX 827F89008A40827F
|
||||
HEX 00827F9501009701
|
||||
HEX 00970100827F8900
|
||||
HEX 827F8B00827F8900
|
||||
HEX 827F8B00
|
||||
;
|
||||
PSSCR2 HEX 827F030003000300
|
||||
HEX 0300030003000360
|
||||
HEX 0360036003600360
|
||||
HEX 036003837F8C0082
|
||||
HEX 7F8C009C03
|
||||
;-------
|
||||
PSBRD3 HEX 977F00977F00
|
||||
;
|
||||
PSSCR3 HEX 9C7F
|
||||
;-------
|
||||
PSBRD4 HEX 00030F1F1C3D303A
|
||||
HEX 3075606A6075603A
|
||||
HEX 3035381E1F0F0382
|
||||
HEX 00407078383C0C5C
|
||||
HEX 0C2E0656062E065C
|
||||
HEX 0C2C5C8278704000
|
||||
;
|
||||
PSSCR4 HEX 4003700F18192C34
|
||||
HEX 0C3126640E712664
|
||||
HEX 0C312C341819700F
|
||||
HEX 40038200
|
||||
;-------
|
||||
PSBRD5 HEX 7182738274820C82
|
||||
HEX 1C8221618221821C
|
||||
HEX 820C827482737100
|
||||
HEX 4782678217821882
|
||||
HEX 1C8242438242821C
|
||||
HEX 8218821782674700
|
||||
;
|
||||
PSSCR5 HEX 477167731774180C
|
||||
HEX 821C022084630220
|
||||
HEX 821C180C17746773
|
||||
HEX 4771
|
||||
;-------
|
||||
PSBRD6 HEX 0001020A16821211
|
||||
HEX 091D84231D091182
|
||||
HEX 12160A0201820060
|
||||
HEX 10141A821222646E
|
||||
HEX 84716E642282121A
|
||||
HEX 14106000
|
||||
;
|
||||
PSSCR6 HEX 82004001380E2412
|
||||
HEX 24125C1D62236223
|
||||
HEX 5C1D24122412380E
|
||||
HEX 40018300
|
||||
;-------
|
||||
PSBRD7 HEX 008301830382070F
|
||||
HEX 3F7F3F0F82078303
|
||||
HEX 8301860083408260
|
||||
HEX 707C7E7C70826083
|
||||
HEX 408600
|
||||
;
|
||||
PSSCR7 HEX 0001000140034003
|
||||
HEX 6007781F7E7F781F
|
||||
HEX 6007400340030001
|
||||
HEX 00018300
|
||||
;-------
|
||||
PSBRD8 HEX 8200018203820682
|
||||
HEX 0C1830703018820C
|
||||
HEX 8206820301830038
|
||||
HEX 7C7E46840307060C
|
||||
HEX 180C06078403467E
|
||||
HEX 7C3800
|
||||
;
|
||||
PSSCR8 HEX 82001C0E3E1F6739
|
||||
HEX 4330033007380E82
|
||||
HEX 1C0E380760014085
|
||||
HEX 00
|
||||
;-------
|
||||
PSBRD9 HEX 827F8348824F8948
|
||||
HEX 827F8340827F0082
|
||||
HEX 7F8301827F890982
|
||||
HEX 798309827F00
|
||||
;
|
||||
PSSCR9 HEX 827F19401940797F
|
||||
HEX 194C194C194C194C
|
||||
HEX 194C194C7F4F014C
|
||||
HEX 014C827F
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:BOEDIT5"
|
|
@ -0,0 +1,293 @@
|
|||
;
|
||||
; S:BOEDIT5
|
||||
;
|
||||
; Here is the nifty flood-fill
|
||||
; routine. (Same as in Dazzle Draw)
|
||||
;
|
||||
FLZ EPZ $80
|
||||
;
|
||||
FLTMP0 EPZ FLZ
|
||||
FLINVERT EPZ FLZ+1
|
||||
FLXMIN EPZ FLZ+2
|
||||
FLXMAX EPZ FLZ+3
|
||||
FLMASK EPZ FLZ+4
|
||||
FLSTACK1 EPZ FLZ+5
|
||||
FLSTACK2 EPZ FLZ+6
|
||||
;
|
||||
FLODFILL LDA XCOOR
|
||||
PHA
|
||||
LDA YCOOR
|
||||
PHA
|
||||
;
|
||||
LDY #47
|
||||
LDA #0
|
||||
^0 STA FFBUFFER,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
STA FLSTACK1
|
||||
STA FLSTACK2
|
||||
STA FLINVERT
|
||||
;
|
||||
JSR FLODPUSH
|
||||
JSR FLGETBIT
|
||||
STA FLINVERT
|
||||
;
|
||||
; Main recursive routine:
|
||||
;
|
||||
FLODMAIN JSR FLODPULL
|
||||
;
|
||||
; If we've already been here,
|
||||
; then don't bother checking
|
||||
;
|
||||
JSR FLGETBIT
|
||||
LDA FLMASK
|
||||
AND FFBUFFER,Y
|
||||
BNE FLODRDON
|
||||
;
|
||||
; Fill left
|
||||
;
|
||||
LDA XCOOR
|
||||
PHA
|
||||
^0 DEC XCOOR
|
||||
BMI >1
|
||||
JSR FLODCHEK
|
||||
BEQ <0
|
||||
;
|
||||
; Fill right
|
||||
;
|
||||
^1 LDX XCOOR
|
||||
INX
|
||||
STX FLXMIN
|
||||
PLA
|
||||
STA XCOOR
|
||||
;
|
||||
^2 JSR FLODCHEK
|
||||
BNE >3
|
||||
INC XCOOR
|
||||
LDA XCOOR
|
||||
CMP #XMAX
|
||||
BLT <2
|
||||
;
|
||||
; Now scan above and below
|
||||
;
|
||||
^3 LDA XCOOR
|
||||
STA FLXMAX
|
||||
;
|
||||
INC YCOOR
|
||||
JSR FLODSCAN
|
||||
DEC YCOOR
|
||||
DEC YCOOR
|
||||
JSR FLODSCAN
|
||||
;
|
||||
; Is stack empty?
|
||||
;
|
||||
FLODRDON LDA FLSTACK1
|
||||
CMP FLSTACK2
|
||||
BNE FLODMAIN
|
||||
PLA
|
||||
STA YCOOR
|
||||
PLA
|
||||
STA XCOOR
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Scan a line for new runs
|
||||
;
|
||||
FLODSCAN LDA YCOOR
|
||||
CMP #YMAX
|
||||
BGE >2
|
||||
LDA FLXMAX
|
||||
STA XCOOR
|
||||
;
|
||||
^0 JSR FLDECGET
|
||||
BNE <0
|
||||
LDA FLMASK
|
||||
AND FFBUFFER,Y
|
||||
BNE >1
|
||||
JSR FLODPUSH
|
||||
;
|
||||
^1 JSR FLDECGET
|
||||
BEQ <1
|
||||
BNE <0
|
||||
;
|
||||
^2 RTS
|
||||
;
|
||||
BITS8 HEX 8040201008040201
|
||||
;
|
||||
FLODCHEK JSR FLGETBIT
|
||||
BNE >9
|
||||
;
|
||||
; Get bit from pattern
|
||||
;
|
||||
LDA YCOOR
|
||||
AND #7
|
||||
STA FLTMP0
|
||||
LDA CURRPATT
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC FLTMP0
|
||||
TAX
|
||||
LDA FILLPATT,X
|
||||
STA FLTMP0
|
||||
LDA XCOOR
|
||||
AND #7
|
||||
TAX
|
||||
LDA BITS8,X
|
||||
AND FLTMP0
|
||||
BEQ >0
|
||||
LDA FLMASK
|
||||
^0 STA FLTMP0
|
||||
;
|
||||
; Set bit in temp buffer
|
||||
;
|
||||
LDA FLMASK
|
||||
ORA FFBUFFER,Y
|
||||
STA FFBUFFER,Y
|
||||
;
|
||||
; Set bit in edit buffer
|
||||
;
|
||||
LDA FLMASK
|
||||
EOR #$FF
|
||||
AND (BORDER),Y
|
||||
;
|
||||
ORA FLTMP0
|
||||
STA (BORDER),Y
|
||||
JSR PLOTOFF
|
||||
LDA FLTMP0
|
||||
BEQ >8
|
||||
JSR PLOTON
|
||||
^8 LDA #0
|
||||
^9 RTS
|
||||
;
|
||||
; Push current point on stack
|
||||
;
|
||||
FLODPUSH LDY FLSTACK1
|
||||
LDA XCOOR
|
||||
STA FFSTACK,Y
|
||||
LDA YCOOR
|
||||
STA FFSTACK+1,Y
|
||||
INC FLSTACK1
|
||||
INC FLSTACK1
|
||||
RTS
|
||||
;
|
||||
; Pull next point from stack
|
||||
;
|
||||
FLODPULL LDY FLSTACK2
|
||||
LDA FFSTACK,Y
|
||||
STA XCOOR
|
||||
LDA FFSTACK+1,Y
|
||||
STA YCOOR
|
||||
INC FLSTACK2
|
||||
INC FLSTACK2
|
||||
RTS
|
||||
;
|
||||
; Decrement X, check for min
|
||||
;
|
||||
FLDECGET LDA XCOOR
|
||||
CMP FLXMIN
|
||||
BNE >0
|
||||
PLA
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
^0 DEC XCOOR
|
||||
;
|
||||
; Check bit
|
||||
;
|
||||
FLGETBIT JSR GETMASK
|
||||
STA FLMASK
|
||||
AND (BORDER),Y
|
||||
PHP
|
||||
PLA
|
||||
EOR FLINVERT
|
||||
AND #2
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Increment pattern pointer
|
||||
;
|
||||
NEXTPATT INC CURRPATT
|
||||
SHOWFILL LDA #01
|
||||
CURRPATT = *-1
|
||||
CMP #FILLPATS/8
|
||||
BNE >0
|
||||
LDA #0
|
||||
^0 STA CURRPATT
|
||||
LDY PAGENUM
|
||||
CPY #3
|
||||
BNE >1
|
||||
JSR SHOWPATT
|
||||
^1 RTS
|
||||
;
|
||||
; Fill patterns:
|
||||
;
|
||||
FILLPATT HEX FFFFFFFFFFFFFFFF
|
||||
HEX 55AA55AA55AA55AA
|
||||
HEX 8822882288228822
|
||||
HEX 8800220088002200
|
||||
HEX 8000080080000800
|
||||
HEX 0000000000000000
|
||||
HEX 8010022001084004
|
||||
;
|
||||
HEX FF808080FF080808
|
||||
HEX 8040200002040800
|
||||
HEX 8244384482010101
|
||||
HEX F87422478F172271
|
||||
HEX FF000000FF000000
|
||||
HEX 8888888888888888
|
||||
HEX 081C22C180010204
|
||||
HEX 40A00000040A0000
|
||||
HEX 8080413E080814E3
|
||||
HEX 0102040810204080
|
||||
FILLPATS = *-FILLPATT
|
||||
;-----------
|
||||
;
|
||||
; Display current pattern on screen
|
||||
;
|
||||
SHOWPATT ASL
|
||||
ASL
|
||||
ASL
|
||||
STA TMP0
|
||||
LDA #8
|
||||
STA TMP1
|
||||
LDX #FFYLOC
|
||||
;
|
||||
^0 LDA YBASELO,X
|
||||
STA HIRES1
|
||||
LDA YBASEHI,X
|
||||
STA HIRES1+1
|
||||
;
|
||||
LDY TMP0
|
||||
INC TMP0
|
||||
LDA FILLPATT,Y
|
||||
EOR #$FF
|
||||
PHA
|
||||
ASL
|
||||
PHP
|
||||
LDY #FFXLOC
|
||||
LDA (HIRES1),Y
|
||||
ASL
|
||||
ASL
|
||||
PLP
|
||||
ROR
|
||||
LSR
|
||||
STA (HIRES1),Y
|
||||
PLA
|
||||
AND #$7F
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
LDY #FFXLOC+1
|
||||
STA (HIRES1),Y
|
||||
INX
|
||||
DEC TMP1
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "BOEDIT,S4",ORG
|
||||
;
|
||||
ICL "S:COMMON"
|
|
@ -0,0 +1,307 @@
|
|||
NLS
|
||||
TTL "S:BORDDATA"
|
||||
ORG = $1000
|
||||
;
|
||||
; BORDER TILE PIXEL DATA
|
||||
; ----------------------
|
||||
; Actual data followed by
|
||||
; screen equivalent
|
||||
;
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
;
|
||||
; SINGLE LINE
|
||||
;
|
||||
HEX 7F7F0000000000000000000000000000
|
||||
HEX 00000000000000007F7F010101010101
|
||||
HEX 01010101010101010101010101010100
|
||||
HEX 00000000000000000000000000000000
|
||||
HEX 00000000000000000101010101010101
|
||||
HEX 01010101010101010101010101010100
|
||||
HEX 7F7F0000000000000000000000000000
|
||||
HEX 00000000000000007F7F000000000000
|
||||
HEX 00000000000000000000000000000000
|
||||
;
|
||||
HEX 7F7F
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
;
|
||||
HEX 7F7F
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
;
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
;-----------
|
||||
;
|
||||
; DOUBLE LINE
|
||||
;
|
||||
B2 HEX 7F7F0000000000000000004040404040
|
||||
HEX 40404040407F7F007F7F010101010101
|
||||
HEX 01010101010101010101010101010100
|
||||
HEX 01010101010101010101010101010101
|
||||
HEX 01010101010101000101010101010101
|
||||
HEX 01010101010101010101010101010100
|
||||
HEX 7F7F0000000000000000007F7F000000
|
||||
HEX 00000000000000007F7F000000000000
|
||||
HEX 0000007F7F0000000000000000000000
|
||||
;
|
||||
HEX 7F7F
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0300
|
||||
HEX 0360
|
||||
HEX 0360
|
||||
HEX 0360
|
||||
HEX 0360
|
||||
HEX 0360
|
||||
HEX 0360
|
||||
HEX 037F
|
||||
;
|
||||
HEX 7F7F
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 7F7F
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
;
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
HEX 0303
|
||||
;-----------
|
||||
;
|
||||
; THICK LINE
|
||||
;
|
||||
HEX 7F7F7F7F7F7F7F7F
|
||||
HEX 7F7F7F7F7F7F7F7F
|
||||
HEX 7F7F7F7F7F7F7F00
|
||||
HEX 7F7F7F7F7F7F7F7F
|
||||
HEX 7F7F7F7F7F7F7F7F
|
||||
HEX 7F7F7F7F7F7F7F00
|
||||
;
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
HEX 7F7F
|
||||
;-----------
|
||||
;
|
||||
; BEADS
|
||||
;
|
||||
HEX 00030F1F1C3D303A
|
||||
HEX 3075606A6075603A
|
||||
HEX 3035381E1F0F0300
|
||||
HEX 00407078383C0C5C
|
||||
HEX 0C2E0656062E065C
|
||||
HEX 0C2C5C7878704000
|
||||
;
|
||||
HEX 4003
|
||||
HEX 700F
|
||||
HEX 1819
|
||||
HEX 2C34
|
||||
HEX 0C31
|
||||
HEX 2664
|
||||
HEX 0E71
|
||||
HEX 2664
|
||||
HEX 0C31
|
||||
HEX 2C34
|
||||
HEX 1819
|
||||
HEX 700F
|
||||
HEX 4003
|
||||
HEX 0000
|
||||
;-----------
|
||||
;
|
||||
; FANCY
|
||||
;
|
||||
HEX 71737374740C0C1C
|
||||
HEX 1C21216121211C1C
|
||||
HEX 0C0C747473737100
|
||||
HEX 476767171718181C
|
||||
HEX 1C42424342421C1C
|
||||
HEX 1818171767674700
|
||||
;
|
||||
HEX 4771
|
||||
HEX 6773
|
||||
HEX 1774
|
||||
HEX 180C
|
||||
HEX 1C1C
|
||||
HEX 0220
|
||||
HEX 6363
|
||||
HEX 6363
|
||||
HEX 0220
|
||||
HEX 1C1C
|
||||
HEX 180C
|
||||
HEX 1774
|
||||
HEX 6773
|
||||
HEX 4771
|
||||
;-----------
|
||||
;
|
||||
; FLORAL
|
||||
;
|
||||
HEX 0001020A16121211
|
||||
HEX 091D232323231D09
|
||||
HEX 111212160A020100
|
||||
HEX 006010141A121222
|
||||
HEX 646E717171716E64
|
||||
HEX 2212121A14106000
|
||||
;
|
||||
HEX 0000
|
||||
HEX 4001
|
||||
HEX 380E
|
||||
HEX 2412
|
||||
HEX 2412
|
||||
HEX 5C1D
|
||||
HEX 6223
|
||||
HEX 6223
|
||||
HEX 5C1D
|
||||
HEX 2412
|
||||
HEX 2412
|
||||
HEX 380E
|
||||
HEX 4001
|
||||
HEX 0000
|
||||
;-----------
|
||||
;
|
||||
; STARS
|
||||
;
|
||||
HEX 0001010103030307
|
||||
HEX 070F3F7F3F0F0707
|
||||
HEX 0303030101010000
|
||||
HEX 0000000040404060
|
||||
HEX 60707C7E7C706060
|
||||
HEX 4040400000000000
|
||||
;
|
||||
HEX 0001
|
||||
HEX 0001
|
||||
HEX 4003
|
||||
HEX 4003
|
||||
HEX 6007
|
||||
HEX 781F
|
||||
HEX 7E7F
|
||||
HEX 781F
|
||||
HEX 6007
|
||||
HEX 4003
|
||||
HEX 4003
|
||||
HEX 0001
|
||||
HEX 0001
|
||||
HEX 0000
|
||||
;-----------
|
||||
;
|
||||
; HEARTS
|
||||
;
|
||||
HEX 000001030306060C
|
||||
HEX 0C18307030180C0C
|
||||
HEX 0606030301000000
|
||||
HEX 387C7E4603030303
|
||||
HEX 07060C180C060703
|
||||
HEX 030303467E7C3800
|
||||
;
|
||||
HEX 0000
|
||||
HEX 1C0E
|
||||
HEX 3E1F
|
||||
HEX 6739
|
||||
HEX 4330
|
||||
HEX 0330
|
||||
HEX 0738
|
||||
HEX 0E1C
|
||||
HEX 1C0E
|
||||
HEX 3807
|
||||
HEX 6001
|
||||
HEX 4000
|
||||
HEX 0000
|
||||
HEX 0000
|
||||
;-----------
|
||||
;
|
||||
; WICKER
|
||||
;
|
||||
HEX 7F7F4848484F4F48
|
||||
HEX 4848484848484848
|
||||
HEX 7F7F4040407F7F00
|
||||
HEX 7F7F0101017F7F09
|
||||
HEX 0909090909090909
|
||||
HEX 79790909097F7F00
|
||||
;
|
||||
HEX 7F7F
|
||||
HEX 1940
|
||||
HEX 1940
|
||||
HEX 797F
|
||||
HEX 194C
|
||||
HEX 194C
|
||||
HEX 194C
|
||||
HEX 194C
|
||||
HEX 194C
|
||||
HEX 194C
|
||||
HEX 7F4F
|
||||
HEX 014C
|
||||
HEX 014C
|
||||
HEX 7F7F
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "O:BORDDATA",ORG
|
||||
END
|
|
@ -0,0 +1,139 @@
|
|||
;
|
||||
; S:COMMON
|
||||
;
|
||||
TMP EPZ $F0
|
||||
TMP0 EPZ TMP
|
||||
TMP1 EPZ TMP+1
|
||||
TMP2 EPZ TMP+2
|
||||
TMP3 EPZ TMP+3
|
||||
TMP4 EPZ TMP+4
|
||||
TMP5 EPZ TMP+5
|
||||
;
|
||||
TMPLO EPZ TMP0
|
||||
TMPHI EPZ TMP1
|
||||
;
|
||||
FLASHLO EPZ $4E
|
||||
FLASHHI EPZ $4F
|
||||
;
|
||||
ESC = 27
|
||||
;-----------
|
||||
;
|
||||
; MAIN MENU routines
|
||||
;
|
||||
MM = $0800
|
||||
;
|
||||
MAINMENU = MM
|
||||
FGETMAIN = MM+3
|
||||
FGETPSD = MM+6
|
||||
FGETCD = MM+9
|
||||
;
|
||||
HAS128K = $27F
|
||||
;-----------
|
||||
;
|
||||
; Subroutine package
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
PRINT = SP
|
||||
CLSCREEN = SP+3
|
||||
WITEBORD = SP+6
|
||||
ESCBACK = SP+9
|
||||
PICDRAW = SP+12
|
||||
;
|
||||
DEVICENW = SP+15
|
||||
DEVICEON = SP+18
|
||||
DEVICEOF = SP+21
|
||||
DEVICERD = SP+24
|
||||
DEVICEST = SP+27
|
||||
SCALING = SP+30
|
||||
;
|
||||
POLEBTN = SP+31
|
||||
POLEKEY = SP+34
|
||||
GETKEY = SP+37
|
||||
SELECT = SP+40
|
||||
;
|
||||
SETTYPE = SP+43
|
||||
GETFILE = SP+46
|
||||
SAVEFILE = SP+49
|
||||
TYPELEN = SP+52
|
||||
FLSTART = SP+53
|
||||
FLLENGTH = SP+55
|
||||
BLOAD = SP+57
|
||||
BSAVE = SP+60
|
||||
DOSCR = SP+63
|
||||
ERROR = SP+66
|
||||
;
|
||||
MUSIC = SP+69
|
||||
FLSHINIT = SP+72
|
||||
JMPVECTS = SP+75
|
||||
LINES = SP+78
|
||||
PARSE = SP+81
|
||||
SHOWAROW = SP+84
|
||||
NUMBER = SP+87
|
||||
WAITPSD = SP+90
|
||||
WAITCD = SP+93
|
||||
ANYKEY = SP+96
|
||||
CHKPRINT = SP+99
|
||||
BOOP = SP+102
|
||||
GETINIT = SP+105
|
||||
GETBYTE = SP+108
|
||||
INPUT = SP+111
|
||||
CLS1 = SP+114
|
||||
PRINTGRP = SP+117
|
||||
RTOS = SP+120
|
||||
SPACEBAR = SP+123
|
||||
GETPDISK = SP+126
|
||||
ESCMAIN = SP+129
|
||||
TESTPAPR = SP+132
|
||||
GETANUMB = SP+135
|
||||
ANYKEY2 = SP+138
|
||||
DEVICECH = SP+141
|
||||
;
|
||||
WITE = $FF
|
||||
GRAY = $AA
|
||||
GRAY2 = $55
|
||||
BLAK = $00
|
||||
;
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
PRPIC = 19
|
||||
PRRTAB = 20
|
||||
PRRTAB2 = 21
|
||||
PRKERN = 22
|
||||
RTOSINV = 23
|
||||
;-----------
|
||||
;
|
||||
; Monitor routines
|
||||
;
|
||||
WAIT = $FCA8
|
||||
RTS = $FF58
|
||||
;-----------
|
||||
;
|
||||
; SYSLIB stuff
|
||||
;
|
||||
FLIPPER = $9080
|
||||
YBASEHI = $9100
|
||||
YBASELO = $91C0
|
||||
XBYTE = $9398
|
||||
XBIT = $94B0
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
END
|
|
@ -0,0 +1,46 @@
|
|||
;
|
||||
; S:COMMONEDIT
|
||||
;
|
||||
; Edit buffer locations
|
||||
;
|
||||
EDZ EPZ $D0
|
||||
;
|
||||
XCOOR EPZ EDZ
|
||||
YCOOR EPZ EDZ+1
|
||||
BUFLO EPZ EDZ+2
|
||||
BUFHI EPZ EDZ+3
|
||||
TBUFLO EPZ EDZ+4
|
||||
TBUFHI EPZ EDZ+5
|
||||
;
|
||||
ED = $5000
|
||||
;
|
||||
EDITINIT = ED
|
||||
SHOWBOXS = ED+3
|
||||
SHOWGR = ED+6
|
||||
CHKBUFF = ED+9
|
||||
CLRBUFF = ED+12
|
||||
ORBUFF = ED+15
|
||||
BUFFSAVE = ED+18
|
||||
BASECALC = ED+21
|
||||
SETPLOTX = ED+24
|
||||
SETBIT = ED+27
|
||||
CLRBIT = ED+30
|
||||
PRINTGR = ED+33
|
||||
DRAWTEXT = ED+36
|
||||
DOSHAPE = ED+39
|
||||
EDITLOOP = ED+42
|
||||
FONTMODS = ED+45
|
||||
;
|
||||
REFLINES = ED+48
|
||||
REFX1 = ED+48
|
||||
REFY1 = ED+49
|
||||
REFY2 = ED+50
|
||||
REFFLAGS = ED+51
|
||||
RESETBIT = ED+52
|
||||
;
|
||||
EDITBUFF = $7800
|
||||
UNDOBUFF = EDITBUFF+$240
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:COMMON"
|
|
@ -0,0 +1,449 @@
|
|||
NLS
|
||||
TTL "S:D000"
|
||||
ORG = $D000
|
||||
;
|
||||
; 02/09/85
|
||||
;
|
||||
; Border routine that is used during
|
||||
; printing. It sits at $D000, $8B$8B
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
MASKBUFF = $BB00
|
||||
SUPPGET = $4000
|
||||
SUPPBORD = ORG
|
||||
SWAPRAM = $02C0
|
||||
;
|
||||
;
|
||||
TMP0 EPZ $3A
|
||||
TMP1 EPZ $3B
|
||||
TMP2 EPZ $3C
|
||||
TMP3 EPZ $3D
|
||||
;
|
||||
BORDER EPZ $80
|
||||
BUFFER EPZ $82
|
||||
MASK EPZ $84
|
||||
BASELO EPZ $86
|
||||
BASEHI EPZ $87
|
||||
SCANLINE EPZ $88
|
||||
DOACROSS EPZ $89
|
||||
COUNTER EPZ $8A
|
||||
;
|
||||
FLIPPER = $9080
|
||||
;
|
||||
BORDDATA = $DE00
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $0800
|
||||
;-----------
|
||||
JMP DRAWBORD
|
||||
;
|
||||
; Move swap routine down to its home
|
||||
; and call it.
|
||||
;
|
||||
TAX
|
||||
;
|
||||
LDY #$3F
|
||||
^0 LDA SWPRAM,Y
|
||||
STA SWAPRAM,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
LDA /SUPPGET-1
|
||||
PHA
|
||||
LDA #SUPPGET-1
|
||||
PHA
|
||||
TXA
|
||||
JMP SWAPRAM
|
||||
;-----------
|
||||
;
|
||||
; Swap RAMcard with $4000, 8 pages.
|
||||
;
|
||||
SWPRAM PHA
|
||||
BIT $C08B
|
||||
BIT $C08B
|
||||
LDX #8
|
||||
LDY #END
|
||||
LDA /END
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDY #0
|
||||
LDA /SUPPGET
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
^0 LDA (TMP0),Y
|
||||
PHA
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
PLA
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <0
|
||||
BIT $C081
|
||||
PLA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Draw the border
|
||||
;
|
||||
; Point to the border data
|
||||
;
|
||||
DRAWBORD LDA #BORDDATA
|
||||
LDY /BORDDATA
|
||||
LDX $8300
|
||||
CPX #1
|
||||
BNE >0
|
||||
INY
|
||||
;
|
||||
^0 STA BASELO
|
||||
STY BASEHI
|
||||
;
|
||||
JSR SETMASKS
|
||||
;
|
||||
; Generate buffer address
|
||||
;
|
||||
BORDLOOP LDA SCANLINE
|
||||
ASL
|
||||
ADC #$20
|
||||
STA BUFFER+1
|
||||
LDA #0
|
||||
STA BUFFER
|
||||
;
|
||||
; Clear first bytes to zero
|
||||
;
|
||||
LDY #$24
|
||||
^0 STA (BUFFER),Y
|
||||
DEY
|
||||
BPL <0
|
||||
LDA #$25
|
||||
STA BUFFER
|
||||
;
|
||||
; Check for top or bottom
|
||||
;
|
||||
LDX SCANLINE
|
||||
CPX DOACROSS
|
||||
BEQ DOLINE
|
||||
DEX
|
||||
CPX DOACROSS
|
||||
BEQ DOLINE
|
||||
;
|
||||
; Not top or bottom, so do edges
|
||||
;
|
||||
; Left side first
|
||||
;
|
||||
LDX #2
|
||||
LDA #0
|
||||
JSR GETADR
|
||||
LDA #0
|
||||
JSR STORE
|
||||
;
|
||||
; Now skip to right side
|
||||
;
|
||||
LDA #$C3
|
||||
STA BUFFER
|
||||
INC BUFFER+1
|
||||
;
|
||||
; Store right side
|
||||
;
|
||||
LDA #2
|
||||
JSR STORE
|
||||
;
|
||||
; Now go for nextline
|
||||
;
|
||||
NEXTLINE LDY #10
|
||||
LDA #0
|
||||
^0 STA (BUFFER),Y
|
||||
DEY
|
||||
BPL <0
|
||||
INC SCANLINE
|
||||
DEC COUNTER
|
||||
BNE BORDLOOP
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Do either top or bottom line
|
||||
;
|
||||
; Determine if top or bottom
|
||||
;
|
||||
DOLINE LDA #1 ; bottom
|
||||
LDX DOACROSS
|
||||
CPX #$18
|
||||
BEQ >0
|
||||
LDA #0
|
||||
;
|
||||
^0 STA TMP2
|
||||
;
|
||||
; First do left corner
|
||||
;
|
||||
LDX #0
|
||||
LDA TMP2
|
||||
JSR GETADR
|
||||
JSR STORTMP2
|
||||
;
|
||||
; Now fill in 17 borders
|
||||
;
|
||||
LDX #1
|
||||
LDA TMP2
|
||||
JSR GETADR
|
||||
;
|
||||
LDX #17
|
||||
^0 JSR STORTMP2
|
||||
DEX
|
||||
BNE <0
|
||||
;
|
||||
; Next do right corner
|
||||
;
|
||||
INC TMP2
|
||||
INC TMP2
|
||||
LDX #0
|
||||
LDA TMP2
|
||||
JSR GETADR
|
||||
JSR STORTMP2
|
||||
JMP NEXTLINE
|
||||
;
|
||||
STORTMP2 LDA TMP2
|
||||
;
|
||||
; Fall through to store
|
||||
;----------------------
|
||||
;
|
||||
; STORE border
|
||||
;
|
||||
; A=mask, 0=normal
|
||||
; 1=bottom
|
||||
; 2=right
|
||||
; 3=bottom and right
|
||||
;
|
||||
YFLIP EPZ TMP3
|
||||
;
|
||||
STORE LDY #0
|
||||
STY TMP0
|
||||
AND (BASELO),Y
|
||||
LSR
|
||||
ROR YFLIP
|
||||
LSR
|
||||
BCC >0
|
||||
LDY #22
|
||||
;
|
||||
^0 STY TMP1
|
||||
;
|
||||
^1 LDY TMP0
|
||||
LDA (MASK),Y
|
||||
BIT YFLIP
|
||||
BPL >2
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
;
|
||||
^2 LDY TMP1
|
||||
AND (BUFFER),Y
|
||||
STA >3+1
|
||||
LDY TMP0
|
||||
LDA (BORDER),Y
|
||||
BIT YFLIP
|
||||
BPL >3
|
||||
TAY
|
||||
LDA FLIPPER,Y
|
||||
^3 ORA #00
|
||||
LDY TMP1
|
||||
STA (BUFFER),Y
|
||||
;
|
||||
BCS >4
|
||||
INY
|
||||
INY
|
||||
^4 INC TMP0
|
||||
DEY
|
||||
STY TMP1
|
||||
LDA TMP0
|
||||
EOR #23
|
||||
BNE <1
|
||||
;
|
||||
LDA #23
|
||||
;
|
||||
INCBUF CLC
|
||||
ADC BUFFER
|
||||
STA BUFFER
|
||||
BCC >1
|
||||
INC BUFFER+1
|
||||
^1 RTS
|
||||
;-----------
|
||||
;
|
||||
; Generate BORDER and MASK addresses
|
||||
; given A=00,ignore config
|
||||
; 01,use config (for right)
|
||||
; X=border # 0-2
|
||||
;
|
||||
BORDLOC HEX 043464
|
||||
;
|
||||
GETADR LDY #0
|
||||
AND (BASELO),Y
|
||||
EOR SCANLINE
|
||||
LSR
|
||||
BCS GETADR2
|
||||
LDY #$18
|
||||
;
|
||||
GETADR2 LDA BASELO
|
||||
STA BORDER
|
||||
LDA BASEHI
|
||||
STA BORDER+1
|
||||
;
|
||||
TYA
|
||||
CLC
|
||||
ADC BORDLOC,X
|
||||
STA >2+1
|
||||
;
|
||||
CLC
|
||||
ADC BORDER
|
||||
STA BORDER
|
||||
BCC >1
|
||||
INC BORDER+1
|
||||
;
|
||||
^1 LDA #MASKBUFF
|
||||
LDY /MASKBUFF
|
||||
;
|
||||
CLC
|
||||
^2 ADC #00
|
||||
STA MASK
|
||||
BCC >3
|
||||
INY
|
||||
^3 STY MASK+1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear mask tables and if mask
|
||||
; generator bit is set, create
|
||||
; the MASKBUFF table.
|
||||
;
|
||||
SETMASKS JSR CLRMASKS
|
||||
LDY #0
|
||||
LDA (BASELO),Y
|
||||
AND #4
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 LDX #2
|
||||
;
|
||||
^1 LDY #0
|
||||
JSR GETADR2
|
||||
JSR DOMASK1
|
||||
JSR DOMASK2
|
||||
DEX
|
||||
BPL <1
|
||||
RTS
|
||||
;-----------
|
||||
CURRENT EPZ TMP2
|
||||
;
|
||||
; Create mask from bottom to top,
|
||||
; storing values into MASK
|
||||
;
|
||||
DOMASK1 CPX #2
|
||||
BEQ QUITMASK
|
||||
;
|
||||
LDY #46
|
||||
STY TMP1
|
||||
LDY #22
|
||||
;
|
||||
^0 STY TMP0
|
||||
LDA #$7F
|
||||
^1 STA CURRENT
|
||||
AND (BORDER),Y
|
||||
BEQ >2
|
||||
LDA CURRENT
|
||||
ASL
|
||||
AND #$7F
|
||||
BPL <1
|
||||
;
|
||||
^2 LDA CURRENT
|
||||
STA (MASK),Y
|
||||
BNE >3
|
||||
;
|
||||
; If the right to left scan up mask
|
||||
; hits zero, and we are doing a
|
||||
; corner, quit!
|
||||
;
|
||||
CPX #0
|
||||
BEQ QUITMASK
|
||||
;
|
||||
^3 CMP #$7F
|
||||
BNE >6
|
||||
;
|
||||
LDA #$7F
|
||||
LDY TMP1
|
||||
^4 STA CURRENT
|
||||
AND (BORDER),Y
|
||||
BEQ >5
|
||||
LDA CURRENT
|
||||
ASL
|
||||
AND #$7F
|
||||
BPL <4
|
||||
;
|
||||
^5 LDA CURRENT
|
||||
STA (MASK),Y
|
||||
;
|
||||
^6 DEC TMP1
|
||||
LDY TMP0
|
||||
DEY
|
||||
BPL <0
|
||||
QUITMASK RTS
|
||||
;-----------
|
||||
;
|
||||
; Create mask by scanning right
|
||||
; to left. If corner, then AND
|
||||
; data together to get correct
|
||||
; mask.
|
||||
;
|
||||
DOMASK2T AND (MASK),Y
|
||||
AND #$FF
|
||||
;
|
||||
DOMASK2 CPX #1
|
||||
BEQ QUITMASK
|
||||
;
|
||||
; X=0 means corner AND (MASK),Y
|
||||
; X=2 means left AND #$FF
|
||||
;
|
||||
LDA DOMASK2T,X
|
||||
STA DOMASK2M
|
||||
LDA DOMASK2T+1,X
|
||||
STA DOMASK2M+1
|
||||
;
|
||||
LDY #46
|
||||
;
|
||||
^0 LDA #$7F
|
||||
STA CURRENT
|
||||
;
|
||||
^1 LDA (BORDER),Y
|
||||
AND CURRENT
|
||||
BEQ >2
|
||||
EOR CURRENT
|
||||
STA CURRENT
|
||||
;
|
||||
^2 LDA CURRENT
|
||||
DOMASK2M ORA (MASK),Y
|
||||
STA (MASK),Y
|
||||
DEY
|
||||
BMI >3
|
||||
CPY #23
|
||||
BNE <1
|
||||
DEY
|
||||
BNE <0
|
||||
;
|
||||
^3 RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear mask tables to zero
|
||||
;
|
||||
CLRMASKS LDY #48*3
|
||||
LDA #0
|
||||
^0 DEY
|
||||
STA MASKBUFF,Y
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
END:
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "O:D000",ORG
|
||||
END
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:FOEDIT
|
||||
ICL "S:FOEDIT1"
|
|
@ -0,0 +1,844 @@
|
|||
TTL "S:FOEDIT"
|
||||
; S:FOEDIT1
|
||||
NOG
|
||||
ORG = $4000
|
||||
ORGLOAD = $6000
|
||||
ORGDIFF = ORGLOAD-ORG
|
||||
TAILORG = $9600
|
||||
;
|
||||
; 08/02/85
|
||||
; 09/10/85 last mod
|
||||
;
|
||||
; Font Editor main control
|
||||
;
|
||||
; The Print Shop Companion
|
||||
;
|
||||
; Copyright 1985
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
;
|
||||
XOFF = 1
|
||||
XOFF2 = XOFF*7
|
||||
YOFF = 38
|
||||
FONTW = 48
|
||||
FONTH = 38
|
||||
;
|
||||
SDX = 113
|
||||
SDY = YOFF+4
|
||||
SDW = 4
|
||||
SDH = 9
|
||||
;---
|
||||
FONTBUFF = $5FF4
|
||||
MAXLEN = $1800
|
||||
;
|
||||
FONT1BUF = $6000
|
||||
FONT1W = FONT1BUF
|
||||
FONT1H = FONT1BUF+$3B
|
||||
FONT1AL = FONT1BUF+$76
|
||||
FONT1AH = FONT1BUF+$B1
|
||||
FONT1BEG = FONT1BUF+$EC
|
||||
;
|
||||
FONT2BUF = $7800
|
||||
FONT2W = FONT2BUF
|
||||
FONT2H = FONT2BUF+$3B
|
||||
FONT2AL = FONT2BUF+$76
|
||||
FONT2AH = FONT2BUF+$B1
|
||||
FONT2BEG = FONT2BUF+$EC
|
||||
;
|
||||
UFONTBUF = $8500
|
||||
UFONTW = UFONTBUF
|
||||
;
|
||||
DAT EPZ $00
|
||||
;
|
||||
LENLO EPZ DAT
|
||||
LENHI EPZ DAT+1
|
||||
;
|
||||
OLDCHAR EPZ DAT+2
|
||||
OLDLEN EPZ DAT+3
|
||||
;
|
||||
NEWCHAR EPZ DAT+4
|
||||
NEWWITH EPZ DAT+5
|
||||
NEWHITE EPZ DAT+6
|
||||
NEWLEN EPZ DAT+7
|
||||
;
|
||||
ACC1LO EPZ DAT+8
|
||||
ACC1HI EPZ DAT+9
|
||||
ACC2LO EPZ DAT+10
|
||||
ACC2HI EPZ DAT+11
|
||||
REMLO EPZ DAT+12
|
||||
REMHI EPZ DAT+13
|
||||
;
|
||||
SAVED? EPZ DAT+14
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
START JMP MOVEPROG+ORGDIFF
|
||||
JMP MOVEREFS
|
||||
;-----------
|
||||
ASC "COPYRIGHT 1985 "
|
||||
ASC "ROLAND GUSTAFSSON"
|
||||
;
|
||||
TXTCTRL BYT 'CTRL-',0
|
||||
TXTTOCLR BYT ' TO CLEAR ',0
|
||||
TXTTOPRN BYT ' TO PRINT ',0
|
||||
;-----------
|
||||
;
|
||||
; Set default font to MEDIUM REFERENCE
|
||||
;
|
||||
START2 JSR MOVUFONT
|
||||
LDY #1
|
||||
JSR SGRFONT2
|
||||
;-----------
|
||||
;
|
||||
; Draw Font Editor main screen
|
||||
;
|
||||
SCR1MAIN JSR SCREEN1
|
||||
JSR SHOWDONE
|
||||
;
|
||||
^0 JSR LOADCHAR
|
||||
LSR REFFLAGS
|
||||
JSR SHOWGR
|
||||
ASL REFFLAGS
|
||||
JSR SHOWCURR
|
||||
JSR GETKEY
|
||||
JSR >1
|
||||
BCC <0
|
||||
BCS SCR1MAIN
|
||||
;
|
||||
^1 JSR PARSE
|
||||
.DA #'G'-$40,SCR1GET
|
||||
.DA #'S'-$40,SCR1SAVE
|
||||
.DA #'Q'-$40,SCR1QUIT
|
||||
.DA #'C'-$40,SCR1CLR
|
||||
.DA #'P'-$40,SCR1PRIN
|
||||
.DA #CR,SCR1EDIT
|
||||
.DA #'@',SCR1SKIP
|
||||
.DA #' ',SCR1SKIP
|
||||
BRK
|
||||
SEC
|
||||
SBC #$20
|
||||
CMP #'Z'-$1F
|
||||
BGE SCR1SKIP
|
||||
STA OLDCHAR
|
||||
SCR1SKIP CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear the "done bit" flags
|
||||
;
|
||||
SCR1CLR JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#184
|
||||
.DA #PRSTR,TXTPRET
|
||||
.DA #PRSTR,TXTTOCLR
|
||||
BYT 'LIST',CR
|
||||
BRK
|
||||
JSR WAITCR
|
||||
BNE >1
|
||||
;
|
||||
LDY #'Z'-$20
|
||||
^0 LDA FONT1W,Y
|
||||
AND #$7F
|
||||
STA FONT1W,Y
|
||||
DEY
|
||||
BPL <0
|
||||
JSR BLAKDONE
|
||||
JSR SHOWDONE
|
||||
;
|
||||
^1 JMP BLAKBOTM
|
||||
;-----------
|
||||
SCR1PRIN JSR CKPRINT
|
||||
BCS <1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET
|
||||
.DA #PRSTR,TXTTOPRN
|
||||
.DA #PRSTR,TXTFONT,#CR
|
||||
BRK
|
||||
JSR WAITCR
|
||||
BNE <1
|
||||
JSR DEVICEOF
|
||||
JSR PRINFONT
|
||||
JSR DEVICEON
|
||||
SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Load the character to edit
|
||||
;
|
||||
SCR1EDIT JSR SHOWGR
|
||||
JSR BUFFSAVE
|
||||
;
|
||||
; Edit without reloading char or
|
||||
; messing with the UNDO buffer.
|
||||
;
|
||||
^0 JSR SCR2RITE
|
||||
JSR EDITCHAR
|
||||
BCS >3
|
||||
;
|
||||
; Left justify the character
|
||||
;
|
||||
JSR LEFTJUST
|
||||
;
|
||||
; Now select where to store this
|
||||
; character.
|
||||
;
|
||||
JSR BLAKDONE
|
||||
JSR SHOWDONE
|
||||
JSR BLAKBOTM
|
||||
;
|
||||
SCR3AGAN JSR SCR3RITE
|
||||
LDA OLDCHAR
|
||||
STA NEWCHAR
|
||||
;
|
||||
^1 LDY #SC3Y1+25
|
||||
JSR SCR3KEY
|
||||
PHA
|
||||
JSR BLAKBOTM
|
||||
PLA
|
||||
CMP #CR
|
||||
BEQ SCR3ESTR
|
||||
CMP #ESC
|
||||
BEQ <0
|
||||
;
|
||||
CMP #'@'
|
||||
BEQ >2
|
||||
CMP #'!'
|
||||
BCC >2
|
||||
CMP #'Z'+1
|
||||
BCS >2
|
||||
SBC #$1F
|
||||
STA NEWCHAR
|
||||
BNE <1
|
||||
;
|
||||
; Attempt to store NEWCHAR
|
||||
;
|
||||
SCR3ESTR JSR SCR3ALRY
|
||||
BCS SCR3AGAN
|
||||
SEC
|
||||
ROR SAVED?
|
||||
JSR SAVECHAR
|
||||
BCC >5
|
||||
ASL SAVED?
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#185
|
||||
BYT 'NOT ENOUGH ROOM ! '
|
||||
BYT 'SEE MANUAL.',NOCR,0
|
||||
;
|
||||
^2 JSR BOOP
|
||||
JMP SCR3AGAN
|
||||
;
|
||||
^3 JSR CMPCHAR
|
||||
BEQ >4
|
||||
JSR CMPCHAR
|
||||
JSR BLAKBOTM
|
||||
JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#185
|
||||
BYT PRCSPACE,1
|
||||
BYT '<ESC> TO MAIN SCREEN WILL ERASE CHANGES',CR,0
|
||||
JSR GETKEY
|
||||
CMP #ESC
|
||||
BEQ >4
|
||||
JMP <0
|
||||
;
|
||||
^4 JSR BLAKDONE
|
||||
;
|
||||
^5 JSR SHOWDONE
|
||||
JSR TOP1
|
||||
JSR SCR1RITE
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
BLAKDONE JSR PRINT
|
||||
BYT RTOSBLAK,16,32,9,126,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Save the graphic
|
||||
;
|
||||
SCR1SAVE JSR CALCHEAD
|
||||
;
|
||||
LDY LENLO
|
||||
LDA LENHI
|
||||
STY SETLEN
|
||||
STA SETLEN+1
|
||||
JSR SETADR
|
||||
JSR SAVEFILE
|
||||
BCS >0
|
||||
LSR SAVED?
|
||||
^0 SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Get a font
|
||||
;
|
||||
TXTGET BYT 'GET',0
|
||||
;
|
||||
SCR1GET LDX #TXTGET
|
||||
LDY /TXTGET
|
||||
JSR NEEDSAVE
|
||||
JSR GETTEXT
|
||||
JSR SETADR
|
||||
^0 LDY #00
|
||||
SEC
|
||||
JSR FGETMAIN
|
||||
BCS >1
|
||||
STY <0+1
|
||||
JSR SCR1GET2
|
||||
BCS <0
|
||||
LDA #0
|
||||
;
|
||||
; Special secret command!
|
||||
; type password during GET
|
||||
; and press ESC to double the
|
||||
; font in memory. MAY CRASH
|
||||
; if font is too big...
|
||||
;
|
||||
^1 EOR #6
|
||||
BNE >2
|
||||
INC DUBLMOD
|
||||
JSR SGMOVE
|
||||
DEC DUBLMOD
|
||||
;
|
||||
^2 SEC
|
||||
RTS
|
||||
;---
|
||||
SCR1GET2 JSR JMPVECTS
|
||||
ADR SGRFONT
|
||||
ADR SGPSD
|
||||
ADR SGCD
|
||||
ADR SGOD
|
||||
;---
|
||||
;
|
||||
; Get from Print Shop disk
|
||||
;
|
||||
SGPSD LDY #00
|
||||
JSR FGETPSD
|
||||
STY SGPSD+1
|
||||
BCS >9
|
||||
STY TMP5
|
||||
JMP SGMOVE
|
||||
;---
|
||||
;
|
||||
; Get from Companion disk
|
||||
;
|
||||
SGCD LDY #00
|
||||
JSR FGETCD
|
||||
STY SGCD+1
|
||||
BCS >9
|
||||
JMP SGMOVE
|
||||
;---
|
||||
;
|
||||
; Get font from other disk
|
||||
;
|
||||
SGOD SEC
|
||||
JSR GETFILE
|
||||
LDY #11
|
||||
STY TMP5
|
||||
BCC SGMOVE
|
||||
^9 RTS
|
||||
;---
|
||||
;
|
||||
; Select reference size font
|
||||
;
|
||||
SGRFY = 60
|
||||
;
|
||||
SGRFONT JSR MOVUFONT
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#SGRFY
|
||||
BYT PRCNTR
|
||||
BYT 'CHOOSE SIZE:',CR
|
||||
BYT CR
|
||||
BYT 'SMALL',CR
|
||||
BYT 'MEDIUM',CR
|
||||
BYT 'LARGE',CR,0
|
||||
;
|
||||
^0 LDY #00
|
||||
JSR SELECT
|
||||
BYT 15,10,SGRFY+15,3
|
||||
ADR RTS
|
||||
BCS <9
|
||||
STY <0+1
|
||||
;
|
||||
SGRFONT2 TYA
|
||||
PHA
|
||||
JSR MOVEFONT
|
||||
PLA
|
||||
CLC
|
||||
ADC #8
|
||||
TAY
|
||||
JMP SGSETREF
|
||||
;---
|
||||
;
|
||||
; Save $8000.8FFF
|
||||
;
|
||||
SGMOVE JSR CLS1
|
||||
JSR SWAPD000
|
||||
;
|
||||
; Move font data to buffer2
|
||||
;
|
||||
LDY #0
|
||||
LDA /FONT1BUF
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDA /FONT2BUF
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
LDX #$18
|
||||
^1 LDA (TMP0),Y
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <1
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <1
|
||||
;
|
||||
; Now do lint removal and unpacking
|
||||
;
|
||||
LDY #0
|
||||
DUBLMOD = *-1
|
||||
JSR MOVEFONT
|
||||
JSR SWAPD000
|
||||
;
|
||||
; Set the reference lines
|
||||
;
|
||||
LDA FONT1W+$20
|
||||
STA REFX1
|
||||
LDA FONT1H+$20
|
||||
STA REFY1
|
||||
LDA FONT1AL+$20
|
||||
STA REFY2
|
||||
;
|
||||
LDA FONT1AH+$20
|
||||
CMP #$58
|
||||
BLT >0
|
||||
;
|
||||
; If no reference lines, then use
|
||||
; lookup table
|
||||
;
|
||||
LDY TMP5
|
||||
SGSETREF LDA PSREFX1,Y
|
||||
STA REFX1
|
||||
LDA PSREFY1,Y
|
||||
STA REFY1
|
||||
LDA PSREFY2,Y
|
||||
STA REFY2
|
||||
;
|
||||
^0 LDA #'A'-$20
|
||||
STA OLDCHAR
|
||||
LSR SAVED?
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
; Reference line lookup table
|
||||
; First 8 are for Print Shop fonts
|
||||
; then 3 are for the reference fonts
|
||||
; the last one is the default
|
||||
;
|
||||
PSREFX1 BYT 35,27,23,21,19,15,10,12
|
||||
BYT 6,13,27,13
|
||||
PSREFY1 BYT 15,10,12,9,9,7,7,6
|
||||
BYT 2,5,11,5
|
||||
PSREFY2 BYT 29,29,25,24,24,17,16,14
|
||||
BYT 6,13,27,13
|
||||
;---
|
||||
;
|
||||
; SWAP $D000 area
|
||||
;
|
||||
SWAPD000 BIT $C083
|
||||
BIT $C083
|
||||
LDY #0
|
||||
LDA #$80
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDA #$D0
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
LDX #16
|
||||
^0 LDA (TMP0),Y
|
||||
PHA
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
PLA
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; GET text window
|
||||
;
|
||||
GETTEXT JSR WITEBORD
|
||||
JSR PRINT
|
||||
BYT PRINVR,PRRITE
|
||||
.DA #PRLOC,149,#4
|
||||
.DA #PRSTR,TXTFEDIT
|
||||
BYT ':',CR
|
||||
BYT PRBIG,PRLEFT
|
||||
.DA #PRLOC,160,#1
|
||||
BYT 'GET',CR,0
|
||||
JMP ESCBACK
|
||||
;-----------
|
||||
;
|
||||
; Set load/save parameters
|
||||
;
|
||||
SETADR JSR SETTYPE
|
||||
TXTFONT BYT 'FONT',0
|
||||
TXTFEDIT BYT 'FONT EDITOR',0
|
||||
BYT 'FONT.',0
|
||||
BYT 0
|
||||
ADR FONTBUFF
|
||||
SETLEN ADR 0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Quit the editor
|
||||
;
|
||||
TXTQUIT BYT 'QUIT',0
|
||||
;
|
||||
SCR1QUIT LDX #TXTQUIT
|
||||
LDY /TXTQUIT
|
||||
JSR NEEDSAVE
|
||||
PHP
|
||||
JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#184
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET,' TO '
|
||||
.DA #PRSTR,TXTGTMM,#NOCR,#0
|
||||
JSR WAITCR
|
||||
BNE >0
|
||||
JMP MAINMENU
|
||||
^0 JSR BLAKBOTM
|
||||
PLP
|
||||
RTS
|
||||
;-----------
|
||||
TXTGTMM BYT 'GO TO MAIN MENU',0
|
||||
TXTPRET BYT 'PRESS '
|
||||
TXTRET BYT '<RETURN>',0
|
||||
;-----------
|
||||
;
|
||||
; Draw initial screen
|
||||
;
|
||||
SCREEN1 JSR CLSCREEN
|
||||
JSR TOP1
|
||||
;
|
||||
; Edit box
|
||||
;
|
||||
JSR PRINT
|
||||
BYT RTOSANY,$7E,XOFF-1,YOFF-6,1,12+3*FONTH
|
||||
BYT RTOSWITE,XOFF,YOFF-6,14,12+3*FONTH
|
||||
BYT RTOSANY,$0F,XOFF+14,YOFF-6,1,12+3*FONTH
|
||||
BRK
|
||||
JSR LINES
|
||||
BYT 'H'
|
||||
BYT GRAY,XOFF2-4,YOFF-4,8+2*FONTW
|
||||
BYT GRAY,XOFF2-4,YOFF-3,8+2*FONTW
|
||||
BYT GRAY,XOFF2-4,YOFF+2+3*FONTH,8+2*FONTW
|
||||
BYT GRAY,XOFF2-4,YOFF+3+3*FONTH,8+2*FONTW
|
||||
BYT 1
|
||||
JSR LINES
|
||||
BYT 'V'
|
||||
BYT GRAY,XOFF2-4,YOFF-4,8+3*FONTH
|
||||
BYT GRAY,XOFF2-3,YOFF-4,8+3*FONTH
|
||||
BYT GRAY,XOFF2+2+2*FONTW,YOFF-4,8+3*FONTH
|
||||
BYT GRAY,XOFF2+3+2*FONTW,YOFF-4,8+3*FONTH
|
||||
BYT 1
|
||||
;
|
||||
; Right side of SCREEN1
|
||||
;
|
||||
S1SPC = 18
|
||||
SC1Y1 = 20
|
||||
SC1Y2 = SC1Y1+67
|
||||
;
|
||||
SCR1RITE JSR BLAKRITE
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#SC1Y1
|
||||
BYT 'SELECT',CR
|
||||
BRK
|
||||
JSR MESS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
BYT 'TO EDIT',CR
|
||||
;
|
||||
BYT RTOSWITE,26,SC1Y2,14,2
|
||||
;
|
||||
BYT PRSPC,S1SPC
|
||||
BYT PRLEFT
|
||||
.DA #PRLOC,XEDGE,#SC1Y2+9
|
||||
.DA #PRSTR,TXTCTRL,'G',#CR
|
||||
.DA #PRSTR,TXTCTRL,'S',#CR
|
||||
.DA #PRSTR,TXTCTRL,'P',#CR
|
||||
.DA #PRSTR,TXTCTRL,'C',#CR
|
||||
.DA #PRSTR,TXTCTRL,'Q',#CR
|
||||
BYT PRRITE
|
||||
.DA #PRLOC,279,#SC1Y2+9+4
|
||||
.DA #PRSTR,TXTFONT,#CR
|
||||
.DA #PRSTR,TXTFONT,#CR
|
||||
.DA #PRSTR,TXTFONT,#CR
|
||||
BYT 'LIST',CR
|
||||
.DA #PRLOC,279,#SC1Y2+5
|
||||
BYT 'GET',CR
|
||||
BYT 'SAVE',CR
|
||||
BYT 'PRINT',CR
|
||||
BYT PRSPC,S1SPC+4
|
||||
BYT 'CLEAR',CR
|
||||
BYT 'QUIT',CR
|
||||
BYT RTOSWITE,26,SC1Y2+91,14,2
|
||||
;
|
||||
MUY = YOFF+124
|
||||
BYT PRLEFT
|
||||
.DA #PRLOC,3,#MUY
|
||||
BYT 'MEMORY USED: %',CR
|
||||
BRK
|
||||
JSR CALCMEM
|
||||
LDX #16
|
||||
LDY #MUY
|
||||
JMP NUMBER
|
||||
;-----------
|
||||
MESS1 JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTCHAR,#CR
|
||||
BYT 'USING THE',CR
|
||||
BYT 'KEYBOARD',CR
|
||||
BYT CR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show the current letter
|
||||
;
|
||||
SCY = MUY+9
|
||||
SCX1 = 108
|
||||
SCX2 = 16
|
||||
SCX2B = SCX2*7
|
||||
;
|
||||
SHOWCURR LDA OLDCHAR
|
||||
CLC
|
||||
ADC #$20
|
||||
STA >0+0
|
||||
JSR PRINT
|
||||
BYT PRRITE
|
||||
.DA #PRLOC,SCX1,#SCY
|
||||
.DA #PRSTR,TXTCHAR
|
||||
BYT ':',NOCR
|
||||
BYT RTOSWITE,SCX2,SCY-1,2,9
|
||||
.DA #PRHTAB,SCX2B+7
|
||||
BYT PRCNTR
|
||||
BYT PRINVR
|
||||
^0 BYT ' ',NOCR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Top line of screen
|
||||
;
|
||||
TOPX = 140
|
||||
;
|
||||
TOP JSR PRINT
|
||||
BYT RTOSWITE,0,0,40,16
|
||||
BYT PRRITE,PRINVR
|
||||
.DA #PRLOC,TOPX,#4
|
||||
.DA #PRSTR,TXTFEDIT
|
||||
BYT ':',CR
|
||||
.DA #PRLOC,TOPX+5,#1
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
TOP1 JSR TOP
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRINVR
|
||||
BYT 'MAIN',CR,0
|
||||
RTS
|
||||
;
|
||||
T2X = 105
|
||||
T2Y = 74
|
||||
TOP2 JSR BLAKDONE
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,17,T2Y-2,7,35
|
||||
BYT PRCNTR,PRINVR
|
||||
.DA #PRLOC,143,#T2Y
|
||||
BYT PRCSPACE,1
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTCTRL,'S',#CR
|
||||
BYT 'WHEN',CR
|
||||
BYT 'DONE',CR
|
||||
BYT PRCSPACE,2
|
||||
BYT RTOSWITE,0,0,26,16
|
||||
BYT PRRITE
|
||||
.DA #PRLOC,T2X,#4
|
||||
.DA #PRSTR,TXTFEDIT
|
||||
BYT ':',CR
|
||||
.DA #PRLOC,T2X+5,#1
|
||||
BYT PRBIG,PRLEFT
|
||||
BYT 'EDIT',CR,0
|
||||
RTS
|
||||
;
|
||||
TOP3 JSR TOP
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRINVR
|
||||
BYT 'STORE',CR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Right side of SCREEN3
|
||||
;
|
||||
SC3Y1 = YOFF+11
|
||||
SC3Y2 = 164
|
||||
;
|
||||
TXTTSA BYT 'TO STORE AS',0
|
||||
;
|
||||
SCR3RITE JSR PRINT
|
||||
BYT RTOSBLAK,26,16,14,169,0
|
||||
JSR TOP3
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#SC3Y1
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
.DA #PRSTR,TXTTSA,#CR
|
||||
BYT PRVTAB,SC3Y1+36
|
||||
BYT 'OR STORE AS',CR
|
||||
BYT 'A DIFFERENT',CR
|
||||
BRK
|
||||
JSR MESS1
|
||||
;
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,26,SC3Y2-5,14,2
|
||||
BYT PRVTAB,SC3Y2
|
||||
BRK
|
||||
JMP >0
|
||||
;---
|
||||
;
|
||||
; Error message for right side
|
||||
; of screen 3, when user tries
|
||||
; to save character more than
|
||||
; once.
|
||||
;
|
||||
SC3Y9 = SC3Y1-12
|
||||
SCR3RIT2 JSR BLAKRITE
|
||||
JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT RTOSANY,$60,26,SC3Y9-8,1,132
|
||||
BYT RTOSANY,$60,39,SC3Y9-8,1,132
|
||||
BYT RTOSWITE,27,SC3Y9-8,13,2
|
||||
BYT RTOSWITE,27,SC3Y9+122,13,2
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#SC3Y9
|
||||
BYT 'WARNING !',CR
|
||||
BYT CR
|
||||
BYT 'YOU HAVE',CR
|
||||
BYT 'ALREADY',CR
|
||||
BYT 'STORED A',CR
|
||||
.DA #PRSTR,TXTCHAR,#CR
|
||||
BYT PRSPC,2,CR,PRSPC,8
|
||||
BYT 'AS: ',CR
|
||||
BYT PRSPC,2,CR,PRSPC,8
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
BYT PRSPC,12
|
||||
BYT 'TO STORE',CR
|
||||
BYT 'OR',CR
|
||||
BRK
|
||||
;---
|
||||
^0 JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT '<ESC> TO',CR
|
||||
BYT 'GO BACK',CR
|
||||
BRK
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Show NEWCHAR and get key
|
||||
;
|
||||
SCR3KEY STY SLOP0
|
||||
STY SLOP2
|
||||
INY
|
||||
STY SLOP1
|
||||
;
|
||||
LDA NEWCHAR
|
||||
CLC
|
||||
ADC #$20
|
||||
STA >0+0
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK,32,SC3Y1+25,2,9
|
||||
SLOP0 = *-3
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#SC3Y1+26
|
||||
SLOP1 = *-1
|
||||
^0 BYT '?',CR,0
|
||||
;---
|
||||
ASL TMP0
|
||||
^0 JSR SCR3CURS
|
||||
JSR FLSHINIT
|
||||
ASL FLASHLO
|
||||
ROL FLASHHI
|
||||
^1 JSR POLEBTN
|
||||
BMI >2
|
||||
DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
SCR3CURS JSR PRINT
|
||||
BYT RTOSINV,32,SC3Y1+25,2,9,0
|
||||
SLOP2 = *-4
|
||||
INC TMP0
|
||||
^2 RTS
|
||||
;-----------
|
||||
;
|
||||
; Check to see if this char has
|
||||
; already been stored. If so,
|
||||
; display message. SEC=<ESC>
|
||||
; CLC=ok to store.
|
||||
;
|
||||
SCR3ALRY LDY NEWCHAR
|
||||
LDA FONT1W,Y
|
||||
BPL >1
|
||||
JSR SCR3RIT2
|
||||
^0 LDY #SC3Y9+49
|
||||
JSR SCR3KEY
|
||||
CMP #ESC
|
||||
BEQ >2
|
||||
CMP #CR
|
||||
BEQ >1
|
||||
JSR BOOP
|
||||
JMP <0
|
||||
;
|
||||
^1 CLC
|
||||
^2 RTS
|
||||
;-----------
|
||||
;
|
||||
; Wait for return key
|
||||
; with flashing bottom line
|
||||
;
|
||||
WAITCR JSR PRINT
|
||||
BYT RTOSINV,0,183,40,9,0
|
||||
JSR FLSHINIT
|
||||
^0 JSR POLEBTN
|
||||
BNE >1
|
||||
DEC FLASHLO
|
||||
BNE <0
|
||||
DEC FLASHHI
|
||||
BPL <0
|
||||
BMI WAITCR
|
||||
;
|
||||
^1 CMP #CR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:FOEDIT2"
|
|
@ -0,0 +1,602 @@
|
|||
;
|
||||
; S:FOEDIT2
|
||||
;
|
||||
; Routines necessary to edit
|
||||
; single character.
|
||||
;
|
||||
; Main Editor loop
|
||||
;
|
||||
EDITCHAR JSR EDITLOOP
|
||||
JSR >1
|
||||
JMP EDITCHAR
|
||||
;
|
||||
^1 JSR PARSE
|
||||
.DA #'L',CMDLINES
|
||||
.DA #'R',CMDRAYS
|
||||
.DA #'B',CMDBOX
|
||||
.DA #'O',CMDOVAL
|
||||
;
|
||||
.DA #'C'-$40,CMDCLEAR
|
||||
.DA #'P'-$40,CMDPRINT
|
||||
.DA #'D'-$40,CMDDEVIC
|
||||
.DA #'I'-$40,CMDREFLN
|
||||
.DA #'A'-$40,CMDADJST
|
||||
.DA #'R'-$40,CMDRESTR
|
||||
.DA #' ',CMDSPACE
|
||||
.DA #ESC,EDITDESC
|
||||
.DA #'S'-$40,EDITDCR
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Restore old character
|
||||
;
|
||||
CMDRESTR JSR BUFFSAVE
|
||||
JSR LOADCHAR
|
||||
JMP SHOWGR
|
||||
;-----------
|
||||
;
|
||||
; Leave the EDIT mode
|
||||
;
|
||||
EDITDESC SEC
|
||||
HEX 24
|
||||
EDITDCR CLC
|
||||
PLA
|
||||
PLA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Toggle reference lines
|
||||
;
|
||||
CMDREFLN LDA REFFLAGS
|
||||
EOR #$80
|
||||
STA REFFLAGS
|
||||
JMP SHOWGR
|
||||
;-----------
|
||||
;
|
||||
; Adjust reference lines
|
||||
;
|
||||
ARY1 = 34
|
||||
ARY2 = ARY1+80
|
||||
;
|
||||
; Save ref lines and X,Y
|
||||
;
|
||||
CMDADJST JSR BLAKDONE
|
||||
LDA XCOOR
|
||||
PHA
|
||||
LDA YCOOR
|
||||
PHA
|
||||
LDX #2
|
||||
^0 LDA REFX1,X
|
||||
PHA
|
||||
DEX
|
||||
BPL <0
|
||||
;
|
||||
BIT REFFLAGS
|
||||
BMI >1
|
||||
JSR CMDREFLN
|
||||
;
|
||||
^1 JSR BLAKRIT2
|
||||
LDX #26
|
||||
LDY #ARY1
|
||||
LDA #0
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
BYT PRSPC,9
|
||||
.DA #PRLOC,227,#ARY1+3
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
BYT 'TO',CR
|
||||
BYT 'ADJUST',CR
|
||||
BYT PRCNTR
|
||||
.DA #PRHTAB,XCENT
|
||||
BYT 'INDEX',CR
|
||||
.DA #PRSTR,TXTLINES,#CR
|
||||
;
|
||||
BYT PRVTAB,ARY2
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
.DA #PRSTR,TXTWD,#CR
|
||||
BRK
|
||||
JSR SHOWCOOR
|
||||
;
|
||||
LDX #1
|
||||
JSR ADJUST1
|
||||
BCS >0
|
||||
LDX #0
|
||||
JSR ADJUST1
|
||||
;
|
||||
; If SEC then restore ref lines
|
||||
;
|
||||
^0 ROR TMP0
|
||||
LDX #0
|
||||
^1 PLA
|
||||
BIT TMP0
|
||||
BPL >2
|
||||
STA REFX1,X
|
||||
^2 INX
|
||||
CPX #3
|
||||
BLT <1
|
||||
PLA
|
||||
STA YCOOR
|
||||
PLA
|
||||
STA XCOOR
|
||||
JSR SHOWGR
|
||||
JMP SCR2RITE
|
||||
;---
|
||||
;
|
||||
; Enter with X=0 or 1, move the
|
||||
; reference lines.
|
||||
;
|
||||
ADJUST1 STX MOVERFY
|
||||
LDA REFY1,X
|
||||
STA YCOOR
|
||||
LDA REFX1
|
||||
STA XCOOR
|
||||
LDX #6
|
||||
CLC
|
||||
JMP DOSHAPE
|
||||
;
|
||||
; DOSHAPE calls this routine which
|
||||
; erases the old reference lines.
|
||||
; DOSHAPE will plot the new lines
|
||||
; automatically upon return.
|
||||
;
|
||||
MOVEREFS STX >8+1
|
||||
STY >9+1
|
||||
;
|
||||
; Erase horizontal line
|
||||
;
|
||||
LDX #00
|
||||
MOVERFY = *-1
|
||||
LDY REFY1,X
|
||||
LDX #FONTW-1
|
||||
^0 JSR MOVEREF1
|
||||
DEX
|
||||
BPL <0
|
||||
;
|
||||
; Erase vertical line
|
||||
;
|
||||
LDX REFX1
|
||||
LDY #FONTH-1
|
||||
^1 JSR MOVEREF1
|
||||
DEY
|
||||
BPL <1
|
||||
;
|
||||
^8 LDX #00
|
||||
STX REFX1
|
||||
^9 LDA #00
|
||||
LDX MOVERFY
|
||||
STA REFY1,X
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Reset bit at X,Y
|
||||
;
|
||||
MOVEREF1 STX XCOOR
|
||||
STY YCOOR
|
||||
JSR RESETBIT
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear work area
|
||||
;
|
||||
CMDCLEAR JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#185
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTRET
|
||||
.DA #PRSTR,TXTTOCLR
|
||||
.DA #PRSTR,TXTCHAR,#CR,#0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE >0
|
||||
JSR BUFFSAVE
|
||||
JSR CLRBUFF
|
||||
JSR SHOWGR
|
||||
^0 JMP SCR2BOTM
|
||||
TXTCHAR BYT 'CHARACTER',0
|
||||
;-----------
|
||||
;
|
||||
; Check SETUP
|
||||
;
|
||||
CKPRINT JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#184
|
||||
BRK
|
||||
LDA #'-'
|
||||
JMP CHKPRINT
|
||||
;-----------
|
||||
;
|
||||
; Print character
|
||||
;
|
||||
CMDPRINT JSR CKPRINT
|
||||
BCS >0
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET
|
||||
.DA #PRSTR,TXTTOPRN
|
||||
.DA #PRSTR,TXTCHAR
|
||||
BYT CR,0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE >0
|
||||
JSR PRINTGR
|
||||
^0 JMP SCR2BOTM
|
||||
;-----------
|
||||
;
|
||||
; Change input device
|
||||
;
|
||||
CMDDEVIC JSR DEVICECH
|
||||
JMP SCR2BOTM
|
||||
;-----------
|
||||
;
|
||||
; Shape handlers
|
||||
;
|
||||
CMDLINES LDA #0
|
||||
HEX 2C
|
||||
CMDRAYS LDA #1
|
||||
HEX 2C
|
||||
CMDBOX LDA #2
|
||||
HEX 2C
|
||||
CMDOVAL LDA #3
|
||||
JSR SHAPHELP
|
||||
JSR SHOWCOOR
|
||||
;
|
||||
LDA SHAPETYP
|
||||
AND #7
|
||||
STA >0+1
|
||||
CLC
|
||||
;
|
||||
^0 LDX #00
|
||||
JSR DOSHAPE
|
||||
BCS >1
|
||||
LDA #00
|
||||
SHAPETYP = *-1
|
||||
ASL
|
||||
BMI <0
|
||||
;
|
||||
; Fix up screen when done
|
||||
;
|
||||
^1 JMP SCR2RITE
|
||||
;-----------
|
||||
;
|
||||
; Print help screen
|
||||
;
|
||||
HY1 = 2
|
||||
HY2 = 36
|
||||
HY3 = 105
|
||||
HY4 = 164
|
||||
;
|
||||
SHAPHELP STA TMP0
|
||||
ASL
|
||||
ADC TMP0
|
||||
ASL
|
||||
TAX
|
||||
LDY SHAPHLP9+0,X
|
||||
LDA SHAPHLP9+1,X
|
||||
STY >0+1
|
||||
STA >0+2
|
||||
LDA SHAPHLP9+2,X
|
||||
STA SHAPETYP
|
||||
;
|
||||
LDY SHAPHLP9+3,X
|
||||
LDA SHAPHLP9+4,X
|
||||
STY >4+1
|
||||
STA >4+2
|
||||
;
|
||||
LDA SHAPHLP9+5,X
|
||||
STA HELPTEMP
|
||||
;
|
||||
JSR SETPLOTX
|
||||
JSR BUFFSAVE
|
||||
;
|
||||
JSR BLAKDONE
|
||||
JSR BLAKRIT2
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRCNTR
|
||||
.DA #PRLOC,XCENT,#HY1
|
||||
^0 .DA #PRSTR,$FFFF,#NOCR,#0
|
||||
;
|
||||
LDX #26
|
||||
LDY #HY2
|
||||
LDA #0
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
.DA #PRLOC,227,#HY2+3
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
BYT 'TO',CR
|
||||
BYT 'DRAW',CR
|
||||
.DA #PRLOC,XCENT,#HY2+48
|
||||
BYT PRCNTR
|
||||
BYT PRCSPACE,1
|
||||
.DA 'N ',#PRSTR,TXTNEGA,#CR
|
||||
BYT PRCSPACE,2
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#HY3
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
BYT 'TO PLACE',CR
|
||||
BYT PRCNTR
|
||||
^4 .DA #PRSTR,$FFFF,#CR
|
||||
BYT RTOSWITE,26,HY4-6,14,2
|
||||
BYT PRVTAB,HY4
|
||||
BYT 'PRESS <ESC>',CR,0
|
||||
;
|
||||
LDA #00
|
||||
HELPTEMP = *-1
|
||||
BPL >5
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTWD,#CR,#0
|
||||
JMP >6
|
||||
;
|
||||
^5 JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'TO GO BACK',CR,0
|
||||
;
|
||||
^6 RTS
|
||||
;
|
||||
TXTWD BYT 'WHEN DONE',0
|
||||
;
|
||||
; 64 means stay in shape routine
|
||||
; until ESC is pressed. 128 means
|
||||
; don't re-initialize X1,Y1 each time
|
||||
; the remaining number is the shape
|
||||
; number used by DOSHAPE
|
||||
;
|
||||
SHAPHLP9 .DA TXTLINES,#0+64
|
||||
.DA TXTLINE,#$80
|
||||
;
|
||||
.DA TXTRAYS,#0+64+128
|
||||
.DA TXTLINE,#$80
|
||||
;
|
||||
.DA TXTBOX,#2
|
||||
.DA TXTBOX,#$00
|
||||
;
|
||||
.DA TXTOVAL,#4
|
||||
.DA TXTOVAL,#$00
|
||||
;
|
||||
TXTLINE BYT 'LINE',0
|
||||
TXTLINES BYT 'LINES',0
|
||||
TXTRAYS BYT 'RAYS',0
|
||||
TXTBOX BYT 'BOX',0
|
||||
TXTOVAL BYT 'OVAL',0
|
||||
;-----------
|
||||
;
|
||||
; Show next page
|
||||
;
|
||||
CMDSPACE INC PAGENUM
|
||||
LDA PAGENUM
|
||||
EOR #4
|
||||
BNE SHOWPAGE
|
||||
STA PAGENUM
|
||||
;
|
||||
; Show help screen
|
||||
;
|
||||
SHOWPAGE JSR BLAKPAGE
|
||||
;
|
||||
LDY #0
|
||||
PAGENUM = *-1
|
||||
JSR JMPVECTS
|
||||
ADR PAGE1
|
||||
ADR PAGE2
|
||||
ADR PAGE3
|
||||
ADR PAGE4
|
||||
;
|
||||
XCENT = 231
|
||||
XEDGE = 182
|
||||
XR1 = 13
|
||||
XR2 = 24
|
||||
P1SPC = 13
|
||||
;
|
||||
PG1Y = 69
|
||||
PAGE1 JSR PRINT
|
||||
BYT PRCSPACE,1
|
||||
BYT PRSPC,P1SPC
|
||||
.DA #PRLOC,XEDGE,#PG1Y
|
||||
.DA #PRSTR,TXTCTRL,'P',#CR
|
||||
.DA #PRSTR,TXTCTRL,'C',#CR
|
||||
.DA #PRSTR,TXTCTRL,'D',#CR
|
||||
.DA #PRSTR,TXTCTRL,'L',#CR
|
||||
.DA #PRSTR,TXTCTRL,'I'
|
||||
BYT PRSPC,8+P1SPC,CR
|
||||
.DA #PRSTR,TXTCTRL,'A'
|
||||
BYT PRSPC,8+P1SPC,CR
|
||||
.DA #PRSTR,TXTCTRL,'R',#CR
|
||||
;
|
||||
BYT PRRITE,PRSPC,P1SPC
|
||||
.DA #PRLOC,279,#PG1Y
|
||||
BYT 'PRINT',CR
|
||||
BYT 'CLEAR',CR
|
||||
BYT 'DEVICE',CR
|
||||
BYT 'LOCK',CR
|
||||
BYT PRSPC,8
|
||||
BYT 'INDEX',CR
|
||||
BYT PRSPC,P1SPC
|
||||
BYT 'LINES',CR
|
||||
BYT PRSPC,8
|
||||
BYT 'ADJUST',CR
|
||||
BYT PRSPC,P1SPC
|
||||
BYT 'INDEX LINES',CR
|
||||
BYT 'REDO',CR
|
||||
;
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
PAGE2 JSR PRINT
|
||||
BYT PRSPC,14
|
||||
BYT PRCSPACE,1
|
||||
.DA #PRLOC,XEDGE,#66
|
||||
;
|
||||
BYT 'D - DRAW',CR
|
||||
BYT 'E',PRRTAB,XR1,'- ERASE',CR
|
||||
BYT '1',PRRTAB,XR1,'- INSERT ROW',CR
|
||||
BYT '2',PRRTAB,XR1,'- DELETE ROW',CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT '3',PRRTAB,XR1,'- INSERT',CR
|
||||
BYT PRSPC,14,PRRTAB,XR2
|
||||
.DA #PRSTR,PAGE2COL,#CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT '4',PRRTAB,XR1,'- DELETE',CR
|
||||
BYT PRSPC,14,PRRTAB,XR2
|
||||
.DA #PRSTR,PAGE2COL,#CR
|
||||
;
|
||||
BYT 'F',PRRTAB,XR1,'- FLOOD FILL',CR
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
PAGE2COL BYT 'COLUMN',0
|
||||
;-----------
|
||||
PAGE3 JSR PRINT
|
||||
BYT PRCSPACE,1
|
||||
.DA #PRLOC,XEDGE,#66
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT 'H - FLIP',CR
|
||||
BYT PRSPC,12,PRRTAB,XR2
|
||||
BYT 'HORIZONTAL',CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT 'V',PRRTAB,XR1,'- FLIP',CR
|
||||
BYT PRSPC,12,PRRTAB,XR2
|
||||
BYT 'VERTICAL',CR
|
||||
;
|
||||
BYT 'N',PRRTAB,XR1
|
||||
.DA #PRSTR,TXTNEGA,#CR
|
||||
BYT 'ESC - GO BACK',CR
|
||||
BRK
|
||||
LDX #26
|
||||
LDY #133
|
||||
LDA #1
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
BYT PRRITE
|
||||
.DA #PRLOC,279,#148
|
||||
BYT 'SCROLL',CR,0
|
||||
RTS
|
||||
TXTNEGA BYT '- NEGATIVE',0
|
||||
;-----------
|
||||
PAGE4Y = 105
|
||||
Z1 = 17
|
||||
Z2 = PAGE4Y-1
|
||||
;
|
||||
PAGE4 JSR PRINT
|
||||
.DA #PRLOC,XCENT,#66
|
||||
BYT PRCNTR
|
||||
BYT 'POSITION',CR
|
||||
BYT 'CURSOR',CR
|
||||
BYT '& PRESS:',CR
|
||||
; BYT RTOSWITE,26,92,14,2
|
||||
BYT PRLEFT,PRSPC,Z1
|
||||
BYT PRVTAB,PAGE4Y
|
||||
.DA #PRHTAB,XEDGE
|
||||
;
|
||||
BYT 'L',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTLINES,#CR
|
||||
BYT PRPIC,37,Z2,2,9
|
||||
HEX 813E70230F2081208123602018200620
|
||||
HEX C13F
|
||||
;
|
||||
BYT 'R',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTRAYS,#CR
|
||||
BYT PRPIC,37,Z2+Z1,2,9
|
||||
HEX 218131811181191809064D0135810F81
|
||||
HEX C13F
|
||||
;
|
||||
BYT 'B',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTBOX,#CR
|
||||
BYT PRPIC,37,Z2+Z1*2,2,9
|
||||
HEX C13F0120012001200120012001200120
|
||||
HEX C13F
|
||||
;
|
||||
BYT 'O',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTOVAL,#CR
|
||||
BYT PRPIC,37,Z2+Z1*3,2,9
|
||||
HEX 70030C0C021001200120012002100C0C
|
||||
HEX 7003
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Erase the top of the right side
|
||||
; used by EDIT screen.
|
||||
;
|
||||
BLAKRIT2 JSR PRINT
|
||||
BYT RTOSBLAK,26,0,14,16
|
||||
BRK
|
||||
;
|
||||
; Erase right side of screen
|
||||
;
|
||||
BLAKRITE JSR PRINT
|
||||
BYT RTOSBLAK,26,16,14,176
|
||||
BRK
|
||||
;
|
||||
; Erase bottom of screen
|
||||
;
|
||||
BLAKBOTM JSR PRINT
|
||||
BYT RTOSBLAK,0,181,40,11,0
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
; Erase help page area
|
||||
;
|
||||
BLAKPAGE JSR PRINT
|
||||
BYT RTOSBLAK,26,63,14,114,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show right part of screen
|
||||
;
|
||||
SCR2RITE JSR TOP2
|
||||
JSR BLAKRIT2
|
||||
LDX #26
|
||||
LDY #0
|
||||
TYA
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
.DA #PRLOC,227,#11
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
.DA #PRLOC,182,#39
|
||||
BYT PRSPC,11
|
||||
BYT PRCSPACE,1
|
||||
BYT 'P - PATTERN',CR
|
||||
BYT 'X',PRRTAB,XR1,'- MIRRORS',CR
|
||||
BYT RTOSWITE,26,61,14,2
|
||||
BYT RTOSWITE,26,177,14,2
|
||||
BRK
|
||||
JSR SHOWBOXS
|
||||
JSR SHOWPAGE
|
||||
;
|
||||
; Display bottom help stuff
|
||||
;
|
||||
SCR2BOTM JSR BLAKBOTM
|
||||
JSR SHOWCOOR
|
||||
JSR PRINT
|
||||
.DA #PRHTAB,169
|
||||
BYT PRRITE,PRCSPACE,1
|
||||
BYT 'U - UNDO',NOCR,0
|
||||
;
|
||||
LDA #XEDGE/7
|
||||
JMP SPACEBAR
|
||||
;-----------
|
||||
;
|
||||
; Show coordinates X= Y=
|
||||
;
|
||||
SHOWCOOR JSR PRINT
|
||||
.DA #PRLOC,7,#185
|
||||
BYT 'X=',NOCR
|
||||
.DA #PRHTAB,49
|
||||
BYT 'Y=',NOCR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:FOEDIT3"
|
|
@ -0,0 +1,653 @@
|
|||
;
|
||||
; S:FOEDIT3
|
||||
;
|
||||
; Low level stuff
|
||||
; ---------------
|
||||
;
|
||||
; MOVEFONT: given Y=size 0,1 or 2,
|
||||
; move font loaded at BUF2
|
||||
; into BUF1 with sizing.
|
||||
;
|
||||
; MOVUFONT: move user font to BUF2
|
||||
;
|
||||
; LOADCHAR: given OLDCHAR=character
|
||||
; move data into EDITBUFF
|
||||
;
|
||||
; SAVECHAR: given NEWCHAR=char to be
|
||||
; replaced, remove that
|
||||
; character from buffer.
|
||||
; If not enough room then
|
||||
; SEC is returned.
|
||||
;
|
||||
; SHOWDONE: show which characters have
|
||||
; been altered.
|
||||
;
|
||||
;--------------
|
||||
MFZ EPZ $80
|
||||
;
|
||||
MFSIZE EPZ MFZ
|
||||
MFSIZEX2 EPZ MFZ+1
|
||||
MFSIZET EPZ MFZ+2
|
||||
MFCHAR EPZ MFZ+3
|
||||
MFDESTL EPZ MFZ+4
|
||||
MFDESTH EPZ MFZ+5
|
||||
MFSOURL EPZ MFZ+6
|
||||
MFSOURH EPZ MFZ+7
|
||||
MFHEIGHT EPZ MFZ+8
|
||||
MFWIDTH EPZ MFZ+9
|
||||
MFTMPW EPZ MFZ+10
|
||||
MFFDATA EPZ MFZ+11
|
||||
MFBUILD EPZ MFZ+12
|
||||
;
|
||||
; Given Y=0,1 or 2 for small, medium
|
||||
; or large sizing, move font in
|
||||
; FONT2BUF down to official font
|
||||
; buffer. This routine also removes
|
||||
; and extraneous lint bits.
|
||||
;
|
||||
^0 BYT 1,2,4
|
||||
;
|
||||
MOVEFONT STY MFSIZE
|
||||
LDA <0+0,Y
|
||||
STA MFSIZEX2
|
||||
;
|
||||
; Initialize destination pointer
|
||||
;
|
||||
LDY #FONT1BEG
|
||||
LDA /FONT1BEG
|
||||
STY MFDESTL
|
||||
STA MFDESTH
|
||||
;
|
||||
; Scan through the entire font,
|
||||
; skipping: " " and "@"
|
||||
;
|
||||
LDX #1
|
||||
MFNXCHAR STX MFCHAR
|
||||
CPX #'@'-$20
|
||||
BEQ MFSKIP
|
||||
;
|
||||
; Point to font data
|
||||
;
|
||||
LDA FONT2AL,X
|
||||
STA MFSOURL
|
||||
LDA FONT2AH,X
|
||||
CLC
|
||||
ADC /FONT2BUF-FONT1BUF
|
||||
STA MFSOURH
|
||||
;
|
||||
LDA FONT2W,X
|
||||
AND #$7F
|
||||
STA MFWIDTH
|
||||
STA FONT1W,X
|
||||
;
|
||||
LDA FONT2H,X
|
||||
STA MFHEIGHT
|
||||
STA FONT1H,X
|
||||
;
|
||||
; Compute new size
|
||||
;
|
||||
LDY MFSIZE
|
||||
^0 DEY
|
||||
BMI >1
|
||||
ASL FONT1W,X
|
||||
ASL FONT1H,X
|
||||
JMP <0
|
||||
;
|
||||
; Add "done bit" back in
|
||||
;
|
||||
^1 LDA FONT2W,X
|
||||
AND #$80
|
||||
ORA FONT1W,X
|
||||
STA FONT1W,X
|
||||
;
|
||||
; Update data pointer
|
||||
;
|
||||
LDA MFDESTL
|
||||
STA FONT1AL,X
|
||||
LDA MFDESTH
|
||||
STA FONT1AH,X
|
||||
;
|
||||
JSR MFDOCHAR
|
||||
;
|
||||
MFSKIP LDX MFCHAR
|
||||
INX
|
||||
CPX #'Z'-$1F
|
||||
BCC MFNXCHAR
|
||||
LDA MFDESTL
|
||||
SBC #FONTBUFF
|
||||
STA LENLO
|
||||
LDA MFDESTH
|
||||
SBC /FONTBUFF
|
||||
STA LENHI
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Move character to FONT1BUF
|
||||
;
|
||||
MFDOCHAR LDY MFSOURL
|
||||
LDA MFSOURH
|
||||
STY >1+1
|
||||
STA >2+1
|
||||
LDA MFSIZEX2
|
||||
^0 PHA
|
||||
^1 LDY #00
|
||||
^2 LDA #00
|
||||
STY MFSOURL
|
||||
STA MFSOURH
|
||||
JSR MFDOLINE
|
||||
PLA
|
||||
SEC
|
||||
SBC #1
|
||||
BNE <0
|
||||
DEC MFHEIGHT
|
||||
BNE MFDOCHAR
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Move one line of font data
|
||||
;
|
||||
MFDOLINE LDA MFWIDTH
|
||||
STA MFTMPW
|
||||
LDX #8
|
||||
^0 LDY #0
|
||||
LDA (MFSOURL),Y
|
||||
STA MFFDATA
|
||||
INC MFSOURL
|
||||
BNE *+4
|
||||
INC MFSOURH
|
||||
LDY #8
|
||||
;
|
||||
^1 LDA MFSIZEX2
|
||||
STA MFSIZET
|
||||
ASL MFFDATA
|
||||
^2 PHP
|
||||
ROL MFBUILD
|
||||
DEX
|
||||
BNE >3
|
||||
JSR MFSTORE
|
||||
LDX #8
|
||||
^3 PLP
|
||||
DEC MFSIZET
|
||||
BNE <2
|
||||
;
|
||||
DEC MFTMPW
|
||||
BEQ >4
|
||||
DEY
|
||||
BNE <1
|
||||
BEQ <0
|
||||
;
|
||||
^4 CPX #8
|
||||
BEQ MFSRTS
|
||||
;
|
||||
; Compensate for straggling bits
|
||||
;
|
||||
^5 ASL MFBUILD
|
||||
DEX
|
||||
BNE <5
|
||||
;
|
||||
; Fall into STORE
|
||||
;
|
||||
; Store a byte into FONT1BUF
|
||||
;
|
||||
MFSTORE LDA MFBUILD
|
||||
STY >0+1
|
||||
LDY #0
|
||||
STA (MFDESTL),Y
|
||||
INC MFDESTL
|
||||
BNE >0
|
||||
INC MFDESTH
|
||||
^0 LDY #00
|
||||
MFSRTS RTS
|
||||
;-----------
|
||||
;
|
||||
; Move user font into BUF2
|
||||
; and make it look like a normal
|
||||
; font that is loaded at $6000
|
||||
;
|
||||
MOVUFONT LDY #0
|
||||
^0 LDA UFONTBUF,Y
|
||||
STA FONT2BUF,Y
|
||||
LDA UFONTBUF+$100,Y
|
||||
STA FONT2BUF+$100,Y
|
||||
LDA UFONTBUF+$200,Y
|
||||
STA FONT2BUF+$200,Y
|
||||
LDA UFONTBUF+$300,Y
|
||||
STA FONT2BUF+$300,Y
|
||||
INY
|
||||
BNE <0
|
||||
;
|
||||
; Adjust data pointers
|
||||
;
|
||||
LDY #'Z'-$20
|
||||
^1 LDA FONT2AH,Y
|
||||
SEC
|
||||
SBC /UFONTBUF-FONT1BUF
|
||||
STA FONT2AH,Y
|
||||
DEY
|
||||
BPL <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Load char into edit buffer
|
||||
;
|
||||
LOADCHAR JSR CLRBUFF
|
||||
;
|
||||
; Compare character with edit
|
||||
; buffer BEQ if the same, BNE
|
||||
; if different.
|
||||
;
|
||||
CMPCHAR LDY OLDCHAR
|
||||
LDA FONT1AL,Y
|
||||
STA >1+1
|
||||
LDA FONT1AH,Y
|
||||
STA >1+2
|
||||
JSR GETXYLEN
|
||||
STX NEWWITH
|
||||
STY NEWHITE
|
||||
JSR PNTEDIT
|
||||
^0 LDY #0
|
||||
^1 LDA $FFFF,X
|
||||
INX
|
||||
EOR (TMP0),Y
|
||||
STA (TMP0),Y
|
||||
INY
|
||||
CPY NEWWITH
|
||||
BLT <1
|
||||
JSR INCEDIT
|
||||
DEC NEWHITE
|
||||
BNE <0
|
||||
JMP CHKBUFF
|
||||
;-----------
|
||||
;
|
||||
; Save the character
|
||||
;
|
||||
; First check to see if there is
|
||||
; enough room for the edited char.
|
||||
;
|
||||
; This is done by subracting out the
|
||||
; length of the character that is to
|
||||
; be replaced and adding in the new
|
||||
; length of the edited character. If
|
||||
; this value is greater than or equal
|
||||
; to $17F4, then MEMORY FULL!!!
|
||||
;
|
||||
SAVECHAR JSR FINDDIM
|
||||
LDY NEWCHAR
|
||||
LDA FONT1AL,Y
|
||||
STA TMP0
|
||||
LDA FONT1AH,Y
|
||||
STA TMP1
|
||||
JSR GETXYLEN
|
||||
STA OLDLEN
|
||||
;
|
||||
; Subtract out old char length
|
||||
;
|
||||
LDA LENLO
|
||||
LDY LENHI
|
||||
SEC
|
||||
SBC OLDLEN
|
||||
BCS >0
|
||||
DEY
|
||||
;
|
||||
; Add in new char length
|
||||
;
|
||||
^0 CLC
|
||||
ADC NEWLEN
|
||||
BCC >1
|
||||
INY
|
||||
;
|
||||
; Is it too big?
|
||||
;
|
||||
^1 CPY /MAXLEN+1
|
||||
BNE >2
|
||||
CMP #MAXLEN+1
|
||||
^2 BCC >3
|
||||
RTS
|
||||
;
|
||||
; Enough room, so:
|
||||
;
|
||||
; Remove character given in NEWCHAR
|
||||
;
|
||||
; TMP0.1 points to data for char
|
||||
; to be removed
|
||||
;
|
||||
; TMP2.3 points to data just above
|
||||
; char to be removed
|
||||
;
|
||||
^3 LDA OLDLEN
|
||||
CLC
|
||||
ADC TMP0
|
||||
STA TMP2
|
||||
LDA TMP1
|
||||
ADC #0
|
||||
STA TMP3
|
||||
;
|
||||
; Scan through FONT DATA and fix
|
||||
; all pointers that point to data
|
||||
; above this character
|
||||
;
|
||||
LDX #$3A
|
||||
^0 CPX #'@'-$20
|
||||
BEQ >2
|
||||
;
|
||||
LDA FONT1AH,X
|
||||
CMP TMP1
|
||||
BNE >1
|
||||
LDA FONT1AL,X
|
||||
CMP TMP0
|
||||
^1 BLT >2
|
||||
;
|
||||
LDA FONT1AL,X
|
||||
SEC
|
||||
SBC OLDLEN
|
||||
STA FONT1AL,X
|
||||
BCS >2
|
||||
DEC FONT1AH,X
|
||||
;
|
||||
^2 DEX
|
||||
BPL <0
|
||||
;
|
||||
; Calculate new length by
|
||||
; subtracting length of removed char
|
||||
;
|
||||
LDA LENLO
|
||||
LDY LENHI
|
||||
SEC
|
||||
SBC OLDLEN
|
||||
BCS >3
|
||||
DEY
|
||||
^3 STA LENLO
|
||||
STY LENHI
|
||||
;
|
||||
; Set TMP4.5 to first available byte
|
||||
;
|
||||
CLC
|
||||
ADC #FONTBUFF
|
||||
STA TMP4
|
||||
TYA
|
||||
ADC /FONTBUFF
|
||||
STA TMP5
|
||||
;
|
||||
; Move data down
|
||||
;
|
||||
LDY #0
|
||||
^0 LDA TMP1
|
||||
CMP TMP5
|
||||
BNE >1
|
||||
LDA TMP0
|
||||
CMP TMP4
|
||||
BEQ >2
|
||||
^1 LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
INC TMP0
|
||||
BNE *+4
|
||||
INC TMP1
|
||||
INC TMP2
|
||||
BNE *+4
|
||||
INC TMP3
|
||||
JMP <0
|
||||
;
|
||||
; Move edited character to its home
|
||||
;
|
||||
; Given TMP4.5 points to end of file
|
||||
; NEWWITH, NEWHITE and NEWCHAR.
|
||||
;
|
||||
^2 LDY NEWCHAR
|
||||
LDA NEWWITH
|
||||
;
|
||||
; Set "done bit"
|
||||
;
|
||||
ORA #$80
|
||||
STA FONT1W,Y
|
||||
;
|
||||
LDA NEWHITE
|
||||
STA FONT1H,Y
|
||||
LDA TMP4
|
||||
STA >2+1
|
||||
STA FONT1AL,Y
|
||||
LDA TMP5
|
||||
STA >2+2
|
||||
STA FONT1AH,Y
|
||||
;
|
||||
; Calc width in bytes
|
||||
;
|
||||
LDX NEWWITH
|
||||
JSR GETLENTH
|
||||
STX NEWWITH
|
||||
;
|
||||
JSR PNTEDIT
|
||||
;
|
||||
; Move EDITBUFF data to end of
|
||||
; FONT data file
|
||||
;
|
||||
^0 LDY #0
|
||||
^1 LDA (TMP0),Y
|
||||
^2 STA $FFFF,X
|
||||
INX
|
||||
INY
|
||||
CPY NEWWITH
|
||||
BLT <1
|
||||
JSR INCEDIT
|
||||
DEC NEWHITE
|
||||
BNE <0
|
||||
;
|
||||
TXA
|
||||
CLC
|
||||
ADC LENLO
|
||||
STA LENLO
|
||||
BCC >3
|
||||
INC LENHI
|
||||
^3 CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Given Y=character
|
||||
; return: X=width in bytes
|
||||
; Y=height in bytes
|
||||
; A=length in bytes
|
||||
;
|
||||
GETXYLEN LDA FONT1W,Y
|
||||
AND #$7F
|
||||
TAX
|
||||
LDA FONT1H,Y
|
||||
TAY
|
||||
;
|
||||
; Calculate length given
|
||||
; X=width, Y=height
|
||||
; See above for returned values
|
||||
;
|
||||
GETLENTH STY >1+1
|
||||
DEX
|
||||
TXA
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAX
|
||||
INX
|
||||
LDA #0
|
||||
CLC
|
||||
STX >0+1
|
||||
^0 ADC #00
|
||||
DEY
|
||||
BNE <0
|
||||
^1 LDY #00
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Point to EDITBUFF
|
||||
;
|
||||
PNTEDIT LDY #EDITBUFF
|
||||
LDA /EDITBUFF
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDX #0
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; INC EDITBUFF pointer by 11
|
||||
;
|
||||
INCEDIT LDA TMP0
|
||||
CLC
|
||||
ADC #11
|
||||
STA TMP0
|
||||
BCC >0
|
||||
INC TMP1
|
||||
^0 RTS
|
||||
;-----------
|
||||
;
|
||||
; Find dimensions of character
|
||||
; in the edit buffer.
|
||||
;
|
||||
FINDDIM LDA XCOOR
|
||||
PHA
|
||||
LDA YCOOR
|
||||
PHA
|
||||
;
|
||||
LDA #0
|
||||
STA NEWWITH
|
||||
STA NEWHITE
|
||||
STA XCOOR
|
||||
STA YCOOR
|
||||
;
|
||||
^0 JSR BASECALC
|
||||
AND (BUFLO),Y
|
||||
BEQ >2
|
||||
;
|
||||
LDA XCOOR
|
||||
CMP NEWWITH
|
||||
BLT >1
|
||||
STA NEWWITH
|
||||
;
|
||||
^1 LDA YCOOR
|
||||
CMP NEWHITE
|
||||
BLT >2
|
||||
STA NEWHITE
|
||||
;
|
||||
^2 INC XCOOR
|
||||
LDA XCOOR
|
||||
EOR #FONTW
|
||||
BNE <0
|
||||
STA XCOOR
|
||||
INC YCOOR
|
||||
LDA YCOOR
|
||||
EOR #FONTH
|
||||
BNE <0
|
||||
;
|
||||
INC NEWWITH
|
||||
INC NEWHITE
|
||||
;
|
||||
LDX NEWWITH
|
||||
LDY NEWHITE
|
||||
JSR GETLENTH
|
||||
STA NEWLEN
|
||||
PLA
|
||||
STA YCOOR
|
||||
PLA
|
||||
STA XCOOR
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Display all the letters in font
|
||||
; and inverse those that have been
|
||||
; altered.
|
||||
;
|
||||
SDCENTER BYT 2,0,4,3,4,5
|
||||
BYT 1,4,4,6,6,4
|
||||
SDCRCHR BYT '!&,16;AFKOSW',0
|
||||
;
|
||||
SHOWDONE LDY #0
|
||||
STY SDYLOC
|
||||
LDY #SDY-SDH
|
||||
STY SHOWDY
|
||||
LDA #'!'
|
||||
SDLOOP PHA
|
||||
STA SDBOXMD3
|
||||
TAX
|
||||
CMP #'@'
|
||||
BEQ SDSKIP
|
||||
;
|
||||
LDY #$FF
|
||||
^0 INY
|
||||
LDA SDCRCHR,Y
|
||||
BEQ >1
|
||||
PLA
|
||||
PHA
|
||||
CMP SDCRCHR,Y
|
||||
BEQ >0
|
||||
BNE <0
|
||||
;
|
||||
; Start new line
|
||||
;
|
||||
^0 LDY #00
|
||||
SDYLOC = *-1
|
||||
INC SDYLOC
|
||||
LDA SDCENTER,Y
|
||||
CLC
|
||||
ADC #SDX
|
||||
STA SHOWDX
|
||||
LDA SHOWDY
|
||||
ADC #SDH
|
||||
STA SHOWDY
|
||||
STA SDBOXMD1+3
|
||||
;
|
||||
; Update X
|
||||
;
|
||||
^1 LDA #00
|
||||
SHOWDX = *-1
|
||||
STA SDBOXMD0+2
|
||||
CLC
|
||||
ADC #SDW/2
|
||||
STA SDBOXMD1+1
|
||||
;
|
||||
; Get char width
|
||||
;
|
||||
LDA UFONTW-$20,X
|
||||
CLC
|
||||
ADC #SDW
|
||||
STA SDBOXMD0+4
|
||||
ADC SHOWDX
|
||||
STA SHOWDX
|
||||
;
|
||||
; Has char been altered?
|
||||
;
|
||||
LDA FONT1W-$20,X
|
||||
BPL >3
|
||||
;
|
||||
; Draw white box where letter is to
|
||||
; be drawn.
|
||||
;
|
||||
LDY #00
|
||||
SHOWDY = *-1
|
||||
DEY
|
||||
STY SDBOXMD0+3
|
||||
LDA #9
|
||||
^2 PHA
|
||||
JSR LINES
|
||||
SDBOXMD0 BYT 'H',WITE,0,0,0,1
|
||||
INC SDBOXMD0+3
|
||||
PLA
|
||||
SEC
|
||||
SBC #1
|
||||
BNE <2
|
||||
LDA #PRINVR
|
||||
HEX 2C
|
||||
;
|
||||
^3 LDA #PRNORM
|
||||
STA SDBOXMD2
|
||||
JSR PRINT
|
||||
SDBOXMD1 .DA #PRLOC,0,#0
|
||||
SDBOXMD2 BYT PRINVR
|
||||
SDBOXMD3 BYT ' ',NOCR,0
|
||||
;
|
||||
SDSKIP PLA
|
||||
CLC
|
||||
ADC #1
|
||||
CMP #'Z'+1
|
||||
BEQ >4
|
||||
JMP SDLOOP
|
||||
^4 RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:FOEDIT4"
|
|
@ -0,0 +1,500 @@
|
|||
;
|
||||
; S:FOEDIT4
|
||||
;
|
||||
; MAINCODE is the length of the
|
||||
; code that must fit in the
|
||||
; $4000.4FFF area
|
||||
;
|
||||
MCODE = *-ORG
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Move program to it's home
|
||||
;
|
||||
MOVEPROG LDY #0
|
||||
STY SAVED?
|
||||
LDX #16
|
||||
^0 LDA ORGLOAD,Y
|
||||
^1 STA ORG,Y
|
||||
INY
|
||||
BNE <0
|
||||
INC <0+2+ORGDIFF
|
||||
INC <1+2+ORGDIFF
|
||||
DEX
|
||||
BNE <0
|
||||
;
|
||||
LDX #4
|
||||
^2 LDA TAILEND+ORGDIFF,Y
|
||||
^3 STA TAILORG,Y
|
||||
TXA
|
||||
BNE >4
|
||||
CPY #$A5
|
||||
BEQ >5
|
||||
^4 INY
|
||||
BNE <2
|
||||
INC <2+2+ORGDIFF
|
||||
INC <3+2+ORGDIFF
|
||||
DEX
|
||||
BPL <2
|
||||
;
|
||||
; Set EDIT routines
|
||||
;
|
||||
^5 LDX #FONTW
|
||||
LDY #FONTH
|
||||
JSR EDITINIT
|
||||
JSR FONTMODS
|
||||
JMP START2
|
||||
;-----------
|
||||
TAILEND:
|
||||
PHS TAILORG
|
||||
;-----------
|
||||
;
|
||||
; Math routines
|
||||
;
|
||||
;
|
||||
; CALCMEM : returns A=% memory used
|
||||
;
|
||||
; CALCHEAD: calculates and stores the
|
||||
; 12 header bytes and also
|
||||
; calculates the values for
|
||||
; the space character ($20)
|
||||
;
|
||||
CPLMAX = 26
|
||||
LPPMAX = 14
|
||||
;-----------
|
||||
;
|
||||
; Calculate percentage of memory used
|
||||
;
|
||||
MAXLD100 = MAXLEN/100
|
||||
;
|
||||
CALCMEM LDY #MAXLD100+1
|
||||
LDA /MAXLD100+1
|
||||
STY ACC2LO
|
||||
STA ACC2HI
|
||||
LDY LENLO
|
||||
LDA LENHI
|
||||
JSR DIVIDE
|
||||
TYA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Calculate the 12 header bytes
|
||||
;
|
||||
;------
|
||||
CHZ EPZ $80
|
||||
;
|
||||
CHMWL EPZ $50+13
|
||||
CHMWH EPZ $50+14
|
||||
CHMH EPZ CHZ
|
||||
;
|
||||
HEADER = FONTBUFF
|
||||
;
|
||||
CALCHEAD JSR STINSTAL
|
||||
ADR RTS
|
||||
ADR RTS
|
||||
HBY FONT2BUF
|
||||
;
|
||||
; Transfer font pointers over to
|
||||
; FONT2BUF
|
||||
;
|
||||
JSR TRF1F2
|
||||
;
|
||||
; Print sample text to generate width
|
||||
; variable
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRRITE
|
||||
BYT PRCSPACE,0
|
||||
BYT PRKERN,1
|
||||
^2 BYT 'ABCDEFGHIJKLM'
|
||||
BYT 'NOPQRSTUVWXYZ'
|
||||
CHLCOUNT = *-<2
|
||||
BYT CR
|
||||
BYT PRKERN,0
|
||||
BRK
|
||||
JSR STSCREEN
|
||||
;---
|
||||
;
|
||||
; Calculate the maximum height
|
||||
;
|
||||
LDA #0
|
||||
LDX #'Z'-$20
|
||||
^3 CPX #'@'-$20
|
||||
BEQ >4
|
||||
CMP FONT1H,X
|
||||
BGE >4
|
||||
LDA FONT1H,X
|
||||
^4 DEX
|
||||
BNE <3
|
||||
STA CHMH
|
||||
;---
|
||||
;
|
||||
; Calculate average width and
|
||||
; store space ($20) values
|
||||
;
|
||||
LDY #CHLCOUNT
|
||||
LDA /CHLCOUNT
|
||||
STY ACC2LO
|
||||
STA ACC2HI
|
||||
LDY CHMWL
|
||||
LDA CHMWH
|
||||
JSR DIVIDE
|
||||
;
|
||||
; Use 1/2 of average width
|
||||
;
|
||||
TYA
|
||||
LSR
|
||||
STA FONT1W
|
||||
LDA #0
|
||||
STA FONT1H
|
||||
LDY #FONT1H
|
||||
LDA /FONT1H
|
||||
STY FONT1AL
|
||||
STA FONT1AH
|
||||
;---
|
||||
;
|
||||
; Store the reference line values
|
||||
;
|
||||
LDA REFX1
|
||||
STA FONT1W+$20
|
||||
LDA REFY1
|
||||
STA FONT1H+$20
|
||||
LDA REFY2
|
||||
STA FONT1AL+$20
|
||||
LDA #0
|
||||
STA FONT1AH+$20
|
||||
;---
|
||||
;
|
||||
; Greeting card data
|
||||
;
|
||||
LDY #0
|
||||
LDX #CHGCTABL-CHTABLES
|
||||
JSR CHCALC
|
||||
;---
|
||||
;
|
||||
; Letterhead data
|
||||
;
|
||||
; If the font will fit after it
|
||||
; has been doubled, then use
|
||||
; that value instead...
|
||||
;
|
||||
LDA CHMH
|
||||
PHA
|
||||
CMP #1+FONTH/2
|
||||
BGE >0
|
||||
ASL CHMH
|
||||
;
|
||||
^0 LDY #4
|
||||
LDX #CHLHTABL-CHTABLES
|
||||
JSR CHCALC
|
||||
;
|
||||
LDA #52
|
||||
SEC
|
||||
SBC CHMH
|
||||
LSR
|
||||
CLC
|
||||
ADC #3
|
||||
STA HEADER+5
|
||||
LDA HEADER+7
|
||||
STA HEADER+6
|
||||
PLA
|
||||
STA CHMH
|
||||
;---
|
||||
;
|
||||
; Banner calc
|
||||
;
|
||||
LDA #40
|
||||
SEC
|
||||
SBC CHMH
|
||||
LSR
|
||||
STA HEADER+7
|
||||
;---
|
||||
;
|
||||
; Screen Magic data
|
||||
;
|
||||
LDY #8
|
||||
LDX #CHSMTABL-CHTABLES
|
||||
;
|
||||
; fall into CHCALC
|
||||
;
|
||||
;------
|
||||
;
|
||||
; Calculate group of values
|
||||
;
|
||||
; 1) Characters Per Line (CPL)
|
||||
;
|
||||
; (WIDTH/MW)
|
||||
;
|
||||
CHCALC STY TMP0
|
||||
STX TMP1
|
||||
LDY CHMWL
|
||||
LDA CHMWH
|
||||
STY ACC2LO
|
||||
STA ACC2HI
|
||||
LDY CHTABLES,X
|
||||
LDA CHTABLES+1,X
|
||||
JSR DIVIDE
|
||||
TYA
|
||||
;
|
||||
; Make even
|
||||
;
|
||||
LSR
|
||||
ASL
|
||||
;
|
||||
CMP #CPLMAX
|
||||
BLT *+4
|
||||
LDA #CPLMAX
|
||||
LDY TMP0
|
||||
STA HEADER,Y
|
||||
;
|
||||
; 2) Y-Increment (YINC)
|
||||
;
|
||||
; (MH+ADD VALUE)
|
||||
;
|
||||
LDX TMP1
|
||||
LDA CHMH
|
||||
CLC
|
||||
ADC CHTABLES+5,X
|
||||
STA HEADER+3,Y
|
||||
;
|
||||
; 3) Letters Per Page (LPP)
|
||||
;
|
||||
; (HEIGHT/YINC)
|
||||
;
|
||||
STA ACC2LO
|
||||
LDA #0
|
||||
STA ACC2HI
|
||||
LDY CHTABLES+2,X
|
||||
LDA CHTABLES+3,X
|
||||
JSR DIVIDE
|
||||
TYA
|
||||
;
|
||||
CMP #LPPMAX
|
||||
BLT *+4
|
||||
LDA #LPPMAX
|
||||
LDY TMP0
|
||||
STA HEADER+1,Y
|
||||
;
|
||||
; 4) Y starting Top (YTOP)
|
||||
;
|
||||
; (HEIGHT-(LPP*YINC))/2
|
||||
;
|
||||
STA ACC1LO
|
||||
LDA #0
|
||||
STA ACC1HI
|
||||
LDA HEADER+3,Y
|
||||
TAY
|
||||
LDA #0
|
||||
JSR MULTIPLY
|
||||
;
|
||||
LDX TMP1
|
||||
LDA CHTABLES+2,X
|
||||
SEC
|
||||
SBC ACC1LO
|
||||
STA ACC1LO
|
||||
LDA CHTABLES+3,X
|
||||
SBC ACC1HI
|
||||
LSR
|
||||
LDA ACC1LO
|
||||
ROR
|
||||
LDY TMP0
|
||||
CLC
|
||||
ADC CHTABLES+4,X
|
||||
STA HEADER+2,Y
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Header calc tables
|
||||
;
|
||||
CHTABLES:
|
||||
CHGCTABL .DA CHLCOUNT*391,336
|
||||
BYT 30
|
||||
BYT 4
|
||||
CHLHTABL .DA CHLCOUNT*960,0
|
||||
BYT 0
|
||||
BYT 4
|
||||
CHSMTABL .DA CHLCOUNT*280,192
|
||||
BYT 0
|
||||
BYT 4
|
||||
;-----------
|
||||
;
|
||||
; 16 bit multiply routine
|
||||
;
|
||||
; ACC1=ACC1*ACC2
|
||||
;
|
||||
; Enter with ACC2 in A,Y
|
||||
;
|
||||
; Return with result in A,Y
|
||||
;
|
||||
MULTIPLY STY ACC2LO
|
||||
STA ACC2HI
|
||||
LDA #0
|
||||
STA REMLO
|
||||
STA REMHI
|
||||
LDY #16
|
||||
^0 ASL REMLO
|
||||
ROL REMHI
|
||||
ASL ACC2LO
|
||||
ROL ACC2HI
|
||||
BCC >1
|
||||
CLC
|
||||
LDA REMLO
|
||||
ADC ACC1LO
|
||||
STA REMLO
|
||||
LDA REMHI
|
||||
ADC ACC1HI
|
||||
STA REMHI
|
||||
^1 DEY
|
||||
BNE <0
|
||||
LDY REMLO
|
||||
LDA REMHI
|
||||
STY ACC1LO
|
||||
STA ACC1HI
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; 16 bit divide routine
|
||||
;
|
||||
; ACC1=ACC1/ACC2, remainder in REM
|
||||
;
|
||||
; Enter with A=hi, Y=lo
|
||||
; ACC2LO,HI set
|
||||
;
|
||||
; Return with result in A=hi, Y=lo
|
||||
;
|
||||
DIVIDE STY ACC1LO
|
||||
STA ACC1HI
|
||||
LDA #0
|
||||
STA REMLO
|
||||
STA REMHI
|
||||
LDY #16
|
||||
^0 ASL ACC1LO
|
||||
ROL ACC1HI
|
||||
ROL REMLO
|
||||
ROL REMHI
|
||||
SEC
|
||||
LDA REMLO
|
||||
SBC ACC2LO
|
||||
TAX
|
||||
LDA REMHI
|
||||
SBC ACC2HI
|
||||
BCC >1
|
||||
STX REMLO
|
||||
STA REMHI
|
||||
INC ACC1LO
|
||||
^1 DEY
|
||||
BNE <0
|
||||
LDY ACC1LO
|
||||
LDA ACC1HI
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; We can't use the FONT1BUF
|
||||
; because the width table has all
|
||||
; the hi bits messed up, so
|
||||
; transfer the width, height and
|
||||
; pointer tables to the FONT2BUF
|
||||
; and clear the hi bits.
|
||||
;
|
||||
TRF1F2 LDY #0
|
||||
^0 LDA FONT1BUF,Y
|
||||
STA FONT2BUF,Y
|
||||
INY
|
||||
CPY #$EC
|
||||
BLT <0
|
||||
LDY #$3A
|
||||
^1 LDA FONT2W,Y
|
||||
AND #$7F
|
||||
STA FONT2W,Y
|
||||
DEY
|
||||
BPL <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; If the FONT hasn't been saved,
|
||||
; then put warning on the screen.
|
||||
;
|
||||
NEEDSAVE LDA SAVED?
|
||||
BMI >0
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^0 STX >1+1
|
||||
STY >1+2
|
||||
JSR >9
|
||||
JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#50
|
||||
BYT 'WARNING !',CR,CR,CR
|
||||
BYT 'YOU HAVE NOT SAVED',CR
|
||||
BYT 'YOUR CURRENT FONT',CR
|
||||
BYT CR
|
||||
.DA #PRSTR,TXTPRET,' TO '
|
||||
^1 .DA #PRSTR,$FFFF,#CR
|
||||
BYT PRSPC,4,CR
|
||||
BYT 'OR',CR,CR
|
||||
BYT CR,PRSPC,8
|
||||
BYT '<ESC> TO GO BACK',CR,0
|
||||
;
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BEQ >9
|
||||
PLA
|
||||
PLA
|
||||
^9 JSR PRINT
|
||||
BYT RTOSBLAK,0,16,40,176,0
|
||||
SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Left justify character
|
||||
;
|
||||
LEFTJUST JSR CHKBUFF
|
||||
BEQ >9
|
||||
;
|
||||
LDA XCOOR
|
||||
PHA
|
||||
LDA YCOOR
|
||||
PHA
|
||||
;
|
||||
^0 LDX #0
|
||||
LDY #FONTH-1
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
^1 JSR BASECALC
|
||||
AND (BUFLO),Y
|
||||
BNE >8
|
||||
DEC YCOOR
|
||||
BPL <1
|
||||
;
|
||||
; Scroll to the left one bit
|
||||
;
|
||||
LDX #FONTH
|
||||
^2 LDY #5
|
||||
CLC
|
||||
^3 LDA (BUFLO),Y
|
||||
ROL
|
||||
STA (BUFLO),Y
|
||||
DEY
|
||||
BPL <3
|
||||
LDA BUFLO
|
||||
ADC #11
|
||||
STA BUFLO
|
||||
BCC *+4
|
||||
INC BUFHI
|
||||
DEX
|
||||
BNE <2
|
||||
BEQ <0
|
||||
;
|
||||
^8 JSR SHOWGR
|
||||
PLA
|
||||
STA YCOOR
|
||||
PLA
|
||||
STA XCOOR
|
||||
^9 RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:FOEDIT5"
|
|
@ -0,0 +1,459 @@
|
|||
;
|
||||
; S:FOEDIT5
|
||||
;
|
||||
; Print the entire font
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; PRCOMS locations
|
||||
;
|
||||
CRLF = $1803
|
||||
SENDGC = $1806
|
||||
GCOUT = $1809
|
||||
MTHINK = $180C
|
||||
MPRINT = $180F
|
||||
MPAUSE = $1812
|
||||
COPYCONT = $1815
|
||||
UPLRK = $1816
|
||||
;-----------
|
||||
;
|
||||
; Print buffer constants
|
||||
;
|
||||
BUFWIDTH = 1024
|
||||
;
|
||||
BUFMAX = 950
|
||||
;
|
||||
PBUFFER = $2000
|
||||
TBUFFER = $BB00
|
||||
;-----------
|
||||
;
|
||||
; STROUT variables
|
||||
;
|
||||
STROUT = $8A00
|
||||
SPARM = STROUT+3
|
||||
;
|
||||
; STROUT mod routines
|
||||
;
|
||||
STINSTAL = STROUT+$0F
|
||||
STSCREEN = STROUT+$12
|
||||
;
|
||||
STRZ EPZ $50
|
||||
;
|
||||
PIXAD EPZ STRZ
|
||||
XCUR EPZ STRZ+2
|
||||
WCOUNT EPZ STRZ+4
|
||||
BUFFER1 EPZ STRZ+5
|
||||
BUFFER2 EPZ STRZ+7
|
||||
SDXBYTE EPZ STRZ+9
|
||||
DATABYTE EPZ STRZ+10
|
||||
BCOUNT EPZ STRZ+11
|
||||
BLDBYTE EPZ STRZ+12
|
||||
;-----------
|
||||
PRZ EPZ $80
|
||||
;
|
||||
PYEND EPZ PRZ
|
||||
PXCOOR EPZ PRZ+1
|
||||
PYCOOR EPZ PRZ+2
|
||||
PYCOORSV EPZ PRZ+3
|
||||
;
|
||||
PXCOUNT EPZ PRZ+4
|
||||
PYCOUNT EPZ PRZ+5
|
||||
;
|
||||
PBUILD EPZ PRZ+6
|
||||
PYSPACE EPZ PRZ+7
|
||||
;
|
||||
PBUFSAVL EPZ PRZ+8
|
||||
PBUFSAVH EPZ PRZ+9
|
||||
PBUFL EPZ PRZ+10
|
||||
PBUFH EPZ PRZ+11
|
||||
;
|
||||
PCHAR EPZ PRZ+12
|
||||
PCHAREND EPZ PRZ+13
|
||||
PMAXH EPZ PRZ+14
|
||||
PSTACK EPZ PRZ+15
|
||||
;-----------
|
||||
;
|
||||
; Print the font
|
||||
;
|
||||
; First install the font
|
||||
;
|
||||
PRINFONT JSR PRINT
|
||||
BYT PRKERN,1
|
||||
BYT PRCSPACE,3
|
||||
BYT PRVTAB,0
|
||||
BRK
|
||||
JSR STINSTAL
|
||||
ADR PFOPTION
|
||||
ADR PFLINDRW
|
||||
HBY FONT2BUF
|
||||
;
|
||||
JSR TRF1F2
|
||||
JSR MTHINK
|
||||
;
|
||||
TSX
|
||||
STX PSTACK
|
||||
LDY #'A'
|
||||
STY PCHAR
|
||||
BNE PRSTART
|
||||
;-----------
|
||||
;
|
||||
; Main loop
|
||||
;
|
||||
^0 STY PCHAR
|
||||
;
|
||||
; Find end of buffer
|
||||
;
|
||||
LDX #$FF
|
||||
^1 INX
|
||||
LDA TBUFFER,X
|
||||
BNE <1
|
||||
STX PCHAREND
|
||||
;
|
||||
; Store char into buffer
|
||||
;
|
||||
TYA
|
||||
STA TBUFFER,X
|
||||
LDA #0
|
||||
STA TBUFFER+1,X
|
||||
;
|
||||
; Will the string fit?
|
||||
;
|
||||
LDA #3
|
||||
STA SPARM+1
|
||||
JSR UPLRK
|
||||
JSR STROUT
|
||||
CPY #BUFMAX
|
||||
SBC /BUFMAX
|
||||
BLT >3
|
||||
;
|
||||
; String too long, get rid of last
|
||||
; character and print the string.
|
||||
;
|
||||
LDX PCHAREND
|
||||
LDA #0
|
||||
STA TBUFFER,X
|
||||
JSR PRINLINE
|
||||
;
|
||||
PRSTART JSR MTHINK
|
||||
LDY PCHAR
|
||||
LDA #0
|
||||
STA TBUFFER
|
||||
STA PMAXH
|
||||
BEQ <0
|
||||
;
|
||||
^3 LDY PCHAR
|
||||
LDA FONT2H-$20,Y
|
||||
CMP PMAXH
|
||||
BLT >4
|
||||
STA PMAXH
|
||||
^4 INY
|
||||
CPY #'@'
|
||||
BEQ >5
|
||||
CPY #'Z'+1
|
||||
BLT <0
|
||||
LDY #'!'
|
||||
BNE <0
|
||||
;
|
||||
; Now print
|
||||
;
|
||||
^5 LDA PMAXH
|
||||
BEQ PFABORT
|
||||
JSR PRINLINE
|
||||
CLC
|
||||
;
|
||||
PFABORT LDX PSTACK
|
||||
TXS
|
||||
PHP
|
||||
JSR STSCREEN
|
||||
LDA #0
|
||||
STA SPARM+11
|
||||
JSR CLRPBUF2
|
||||
PLP
|
||||
BCS >0
|
||||
LDX #12
|
||||
LDY #3
|
||||
JSR CRLF
|
||||
^0 SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear print buffer
|
||||
;
|
||||
CLRPBUFF JSR MTHINK
|
||||
;
|
||||
CLRPBUF2 LDY #0
|
||||
LDX #$20
|
||||
STY TMP0
|
||||
STX TMP1
|
||||
TYA
|
||||
^0 STA (TMP0),Y
|
||||
INY
|
||||
BNE <0
|
||||
INC TMP1
|
||||
DEX
|
||||
BNE <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; SMC for OPTION
|
||||
;
|
||||
PFOPTION STA SD0MOD0
|
||||
STA SD0MOD1
|
||||
;
|
||||
STX SD1MOD0
|
||||
STX SD1MOD1
|
||||
;
|
||||
STY SD2MOD0
|
||||
RTS
|
||||
;
|
||||
; LINEDRAW routine
|
||||
; Buffer is PBUFFER+Y*128.
|
||||
;
|
||||
LORESL BRK
|
||||
LORESH BRK
|
||||
;
|
||||
PFLINDRW TYA
|
||||
LSR
|
||||
ORA #$20
|
||||
STA BUFFER1+1
|
||||
LDA #0
|
||||
ROR
|
||||
STA BUFFER1
|
||||
;
|
||||
; Update lores screen?
|
||||
;
|
||||
LDA LORESL
|
||||
ADC WCOUNT
|
||||
STA LORESL
|
||||
BCC >1
|
||||
INC LORESH
|
||||
LDA LORESH
|
||||
EOR #20
|
||||
BNE >1
|
||||
STA LORESH
|
||||
JSR CHECKESC
|
||||
JSR UPLRK
|
||||
;
|
||||
; Starting X-byte offset = XCUR/8
|
||||
;
|
||||
^1 LDA XCUR+1
|
||||
STA SDXBYTE
|
||||
LDA XCUR
|
||||
LSR SDXBYTE
|
||||
ROR
|
||||
LSR SDXBYTE
|
||||
ROR
|
||||
LSR
|
||||
STA SDXBYTE
|
||||
;
|
||||
; Compensate for bits not to be
|
||||
; affected to the left.
|
||||
;
|
||||
LDA XCUR
|
||||
AND #7
|
||||
TAX
|
||||
LDY #9
|
||||
SD1MOD0 SEC
|
||||
ROL BLDBYTE
|
||||
DEY
|
||||
DEX
|
||||
BPL SD1MOD0
|
||||
;
|
||||
LDX #0
|
||||
;
|
||||
; Do a line of normal size
|
||||
;
|
||||
PFLINNRM LDA (PIXAD,X)
|
||||
EOR #$FF
|
||||
SD2MOD0 = *-1
|
||||
STA DATABYTE
|
||||
INC PIXAD
|
||||
BNE *+4
|
||||
INC PIXAD+1
|
||||
LDX #8
|
||||
^0 ASL DATABYTE
|
||||
ROL BLDBYTE
|
||||
DEY
|
||||
BNE >1
|
||||
;
|
||||
LDY SDXBYTE
|
||||
INC SDXBYTE
|
||||
LDA BLDBYTE
|
||||
SD0MOD0 AND (BUFFER1),Y
|
||||
STA (BUFFER1),Y
|
||||
LDY #8
|
||||
;
|
||||
^1 DEC WCOUNT
|
||||
BEQ >2
|
||||
DEX
|
||||
BNE <0
|
||||
BEQ PFLINNRM
|
||||
;
|
||||
^2 CPY #8
|
||||
BEQ >3
|
||||
LDA BLDBYTE
|
||||
SD1MOD1 SEC
|
||||
ROL
|
||||
DEY
|
||||
BNE SD1MOD1
|
||||
LDY SDXBYTE
|
||||
SD0MOD1 AND (BUFFER1),Y
|
||||
STA (BUFFER1),Y
|
||||
^3 RTS
|
||||
;-----------
|
||||
;
|
||||
; Print string to buffer, then print.
|
||||
;
|
||||
PRINLINE JSR CLRPBUFF
|
||||
STA SPARM+1
|
||||
STA SPARM+2
|
||||
STA SPARM+3
|
||||
JSR STROUT
|
||||
;
|
||||
LDA PMAXH
|
||||
CLC
|
||||
ADC #6
|
||||
STA PYEND
|
||||
;
|
||||
JSR MPRINT
|
||||
;
|
||||
LDA #0
|
||||
;
|
||||
; Print single line of buffer
|
||||
;
|
||||
PFPRLOP1 STA PYCOORSV
|
||||
;
|
||||
; Calculate buffer address
|
||||
;
|
||||
LSR
|
||||
TAY
|
||||
LDA #0
|
||||
ROR
|
||||
STA PBUFSAVL
|
||||
TYA
|
||||
ADC /PBUFFER
|
||||
STA PBUFSAVH
|
||||
;
|
||||
; Tell printer how many bytes
|
||||
;
|
||||
LDX #BUFWIDTH
|
||||
LDY /BUFWIDTH
|
||||
JSR SENDGC
|
||||
;
|
||||
LDX #0
|
||||
;
|
||||
; Output line of data
|
||||
;
|
||||
PFPRLOP2 STX PXCOOR
|
||||
LDX #0
|
||||
;
|
||||
; Output 8 bytes
|
||||
;
|
||||
PFPRLOP3 STX PXCOUNT
|
||||
LDX PBUFSAVL
|
||||
LDA PBUFSAVH
|
||||
STX PBUFL
|
||||
STA PBUFH
|
||||
LDX #0
|
||||
STX PBUILD
|
||||
LDY PYCOORSV
|
||||
;
|
||||
; Output 1 byte
|
||||
;
|
||||
; X=counter, 0-6
|
||||
; Y=Y-coordinate
|
||||
;
|
||||
PFPRLOP4 STX PYCOUNT
|
||||
STY PYCOOR
|
||||
;
|
||||
LDY PXCOOR
|
||||
LDA (PBUFL),Y
|
||||
LDX PXCOUNT
|
||||
AND PBITS8,X
|
||||
BEQ >1
|
||||
;
|
||||
LDY PYCOUNT
|
||||
LDA PBITS7,Y
|
||||
ORA PBUILD
|
||||
STA PBUILD
|
||||
;
|
||||
^1 LDA PBUFL
|
||||
EOR #$80
|
||||
STA PBUFL
|
||||
BNE *+4
|
||||
INC PBUFH
|
||||
;
|
||||
LDY PYCOOR
|
||||
INY
|
||||
LDX PYCOUNT
|
||||
INX
|
||||
CPY PYEND
|
||||
BEQ >2
|
||||
CPX #7
|
||||
BLT PFPRLOP4
|
||||
;
|
||||
^2 STX PYSPACE
|
||||
LDA PBUILD
|
||||
JSR GCOUT
|
||||
;
|
||||
LDX PXCOUNT
|
||||
INX
|
||||
CPX #8
|
||||
BLT PFPRLOP3
|
||||
;
|
||||
LDX PXCOOR
|
||||
INX
|
||||
CPX #BUFWIDTH/8
|
||||
BLT PFPRLOP2
|
||||
;
|
||||
LDX PYSPACE
|
||||
LDY #1
|
||||
JSR CRLF
|
||||
;
|
||||
JSR CHECKESC
|
||||
;
|
||||
LDA PYCOORSV
|
||||
CLC
|
||||
ADC PYSPACE
|
||||
CMP PYEND
|
||||
CLC
|
||||
BEQ >9
|
||||
JMP PFPRLOP1
|
||||
;
|
||||
; Set spacing back to 6 characters
|
||||
; per inch (12/72)
|
||||
;
|
||||
^9 RTS
|
||||
;
|
||||
; Bit lookup tables
|
||||
;
|
||||
PBITS8 HEX 80
|
||||
PBITS7 HEX 40201008040201
|
||||
;-----------
|
||||
;
|
||||
; Check for <ESC>, if yes then
|
||||
; show pausing message and allow
|
||||
; another <ESC> to abort.
|
||||
;
|
||||
CHECKESC JSR POLEKEY
|
||||
CMP #ESC
|
||||
BNE <9
|
||||
JSR DEVICEON
|
||||
JSR MPAUSE
|
||||
PHP
|
||||
JSR DEVICEOF
|
||||
PLP
|
||||
BCC <9
|
||||
JMP PFABORT
|
||||
;-----------
|
||||
ACODE = *-TAILORG
|
||||
DPH
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "FOEDIT,S4",ORGLOAD
|
||||
LST
|
||||
MAINLEN = MCODE
|
||||
ALTLEN = ACODE
|
||||
ICL "S:COMMONEDIT"
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:GREDIT
|
||||
ICL "S:GREDIT1"
|
|
@ -0,0 +1,817 @@
|
|||
TTL "S:GREDIT"
|
||||
; S:GREDIT1
|
||||
NOG
|
||||
;
|
||||
ORG = $4000
|
||||
OBJ = $800
|
||||
;
|
||||
; 04/11/85
|
||||
; 09/11/85 last mod
|
||||
; (removed ESC)
|
||||
;
|
||||
; Graphic Editor main control
|
||||
;
|
||||
; The Print Shop Companion Disk
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
;
|
||||
XSCRNMAX = 192
|
||||
YSCRNMAX = 140
|
||||
;
|
||||
PICTBUFF = $6000
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ OBJ
|
||||
;-----------
|
||||
START JMP GREDIT
|
||||
JMP TILEMAGC
|
||||
JMP CRMAKER
|
||||
;
|
||||
ASC "COPYRIGHT 1985 "
|
||||
ASC "ROLAND GUSTAFSSON"
|
||||
;
|
||||
; Graphic Editor main entry point
|
||||
;
|
||||
GREDIT JSR SETMAX
|
||||
JSR BUFFSAVE
|
||||
;
|
||||
; Graphic Editor entry point from
|
||||
; Tile Magic and Creature Maker
|
||||
;
|
||||
GREDIT2:
|
||||
;
|
||||
; Draw Graphic Editor main screen
|
||||
;
|
||||
MAINSCRN JSR CLSCREEN
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,0,0,25,16
|
||||
BYT PRCNTR,PRINVR
|
||||
.DA #PRLOC,88,#4
|
||||
.DA #PRSTR,TXTGEDIT,#CR
|
||||
BRK
|
||||
;
|
||||
JSR SHOWGR
|
||||
JSR SHOWRITE
|
||||
;
|
||||
; Main loop
|
||||
;
|
||||
^0 JSR EDITLOOP
|
||||
JSR >1
|
||||
BCC <0
|
||||
JMP MAINSCRN
|
||||
;
|
||||
^1 JSR PARSE
|
||||
.DA #'L',CMDLINES
|
||||
.DA #'R',CMDRAYS
|
||||
.DA #'B',CMDBOX
|
||||
.DA #'O',CMDOVAL
|
||||
.DA #'T',CMDTEXT
|
||||
;
|
||||
.DA #'S'-$40,CMDSAVE
|
||||
.DA #'G'-$40,CMDGET
|
||||
.DA #'P'-$40,CMDPRINT
|
||||
.DA #'D'-$40,CMDDEVIC
|
||||
.DA #'C'-$40,CMDCLEAR
|
||||
.DA #'Q'-$40,CMDQUIT
|
||||
.DA #'T'-$40,CMDTILES
|
||||
.DA #' ',CMDSPACE
|
||||
TILEMOD .DA #$FF,ESC4TILE
|
||||
CRMOD .DA #$FF,ESC4CR
|
||||
BRK
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show graphic tiled
|
||||
;
|
||||
CMDTILES JSR CLSCREEN
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,0,0,40,172
|
||||
BYT PRINVR
|
||||
BYT PRSPC,52
|
||||
BYT PRCSPACE,0
|
||||
.DA #PRLOC,8,#8
|
||||
BYT '@@@',CR
|
||||
BYT '@@@',CR
|
||||
BYT '@@@',CR,0
|
||||
JMP ANYKEY2
|
||||
;-----------
|
||||
;
|
||||
; Save the graphic
|
||||
;
|
||||
CMDSAVE LDY #EDITBUFF
|
||||
LDA /EDITBUFF
|
||||
JSR SETADR
|
||||
JSR SAVEFILE
|
||||
SEC
|
||||
^9 RTS
|
||||
;-----------
|
||||
;
|
||||
; Get a graphic
|
||||
;
|
||||
CMDGET JSR LOADUNDO
|
||||
BCS >1
|
||||
JSR CHKBUFF
|
||||
BEQ >0
|
||||
JSR SUPERIMP
|
||||
BCS CMDGET
|
||||
DEY
|
||||
BEQ >0
|
||||
JSR CLRBUFF
|
||||
^0 JSR ORBUFF
|
||||
JSR BUFFSAVE
|
||||
^1 LSR SCALING
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
; Ask question about superimposing:
|
||||
;
|
||||
SUPERIMP JSR GETTEXT
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#60
|
||||
BYT 'WOULD YOU LIKE TO SUPERIMPOSE',CR
|
||||
BYT 'THE '
|
||||
.DA #PRSTR,TXTGR,' THAT YOU JUST',#CR
|
||||
BYT 'SELECTED OVER THE '
|
||||
.DA #PRSTR,TXTGR,#CR
|
||||
BYT 'ALREADY IN THE EDIT WINDOW ?',CR
|
||||
BYT CR,'NO',CR,'YES',CR,0
|
||||
LDY #0
|
||||
JSR SELECT
|
||||
BYT 17,6,99,2
|
||||
ADR >0
|
||||
^0 RTS
|
||||
;
|
||||
; Load the UNDO buffer with graphic
|
||||
; that user selects from any of many
|
||||
; different places! SEC=ESC pressed
|
||||
;
|
||||
TXTFRM BYT 'FROM ',0
|
||||
LOADUNDO JSR GETTEXT
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#52
|
||||
BYT 'CHOOSE A '
|
||||
.DA #PRSTR,TXTGR,':',#CR
|
||||
BYT CR,CR
|
||||
.DA #PRSTR,TXTFRM,'PRINT SHOP DISK',#CR
|
||||
.DA #PRSTR,TXTFRM,'COMPANION DISK',#CR
|
||||
.DA #PRSTR,TXTFRM,'OTHER DISK',#CR
|
||||
.DA #PRSTR,TXTFRM,#PRSTR,TXTSCRN,' MEMORY',#CR
|
||||
.DA #PRSTR,TXTFRM,#PRSTR,TXTSCRN,' FILE',#CR
|
||||
BRK
|
||||
^0 LDY #00
|
||||
LOADFROM = *-1
|
||||
JSR SELECT
|
||||
BYT 6,28,75,5
|
||||
ADR RTS
|
||||
BCS >2
|
||||
;
|
||||
STY LOADFROM
|
||||
JSR >1
|
||||
BCC >2
|
||||
JMP LOADUNDO
|
||||
;
|
||||
^1 JSR JMPVECTS
|
||||
ADR >3
|
||||
ADR GETCDISK
|
||||
ADR GETODISK
|
||||
ADR FRAMGRAB
|
||||
ADR PICTLOAD
|
||||
;
|
||||
^2 RTS
|
||||
;---
|
||||
;
|
||||
; Get graphic from PS disk
|
||||
;
|
||||
^3 LDA #00
|
||||
LDX #UNDOBUFF
|
||||
LDY /UNDOBUFF
|
||||
JSR GETPDISK
|
||||
BCS >4
|
||||
STA <3+1
|
||||
LDA #$FF
|
||||
STA CRMOD
|
||||
^4 RTS
|
||||
;---
|
||||
;
|
||||
; Get graphic from Companion Disk
|
||||
; SIDE 2 !!!
|
||||
;
|
||||
GETCDISK LDA #2
|
||||
CLC
|
||||
HEX 24
|
||||
;
|
||||
; Get graphic from other disk
|
||||
;
|
||||
GETODISK SEC
|
||||
PHP
|
||||
LDY #UNDOBUFF
|
||||
LDA /UNDOBUFF
|
||||
JSR SETADR
|
||||
PLP
|
||||
JMP GETFILE
|
||||
;
|
||||
; Load a new hires picture file
|
||||
;
|
||||
PICTLOAD JSR SWAPD000
|
||||
;
|
||||
JSR SETTYPE
|
||||
TXTSCRN BYT 'SCREEN',0
|
||||
BYT 'SCREEN',0
|
||||
BYT 0
|
||||
BYT 34
|
||||
^0 ADR PICTBUFF
|
||||
ADR $1FF8
|
||||
;
|
||||
SEC
|
||||
JSR GETFILE
|
||||
PHP
|
||||
JSR SWAPD000
|
||||
PLP
|
||||
BCS >2
|
||||
JMP FRAMGRAB
|
||||
;
|
||||
; Swap $6000.7FFF with $D000 banks
|
||||
;
|
||||
SWAPD000 LDY #0
|
||||
LDA /PICTBUFF
|
||||
STY TMP0
|
||||
STA TMP1
|
||||
LDX #$03
|
||||
JSR >0
|
||||
LDX #$0B
|
||||
;
|
||||
^0 LDA $C080,X
|
||||
LDA $C080,X
|
||||
STY TMP2
|
||||
LDA #$D0
|
||||
STA TMP3
|
||||
LDX #16
|
||||
;
|
||||
^1 LDA (TMP0),Y
|
||||
PHA
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
PLA
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
BNE <1
|
||||
INC TMP1
|
||||
INC TMP3
|
||||
DEX
|
||||
BNE <1
|
||||
^2 RTS
|
||||
;-----------
|
||||
;
|
||||
; GET text window
|
||||
;
|
||||
GETTEXT JSR WITEBORD
|
||||
JSR PRINT
|
||||
BYT PRINVR,PRRITE
|
||||
.DA #PRLOC,149,#4
|
||||
.DA #PRSTR,TXTGEDIT
|
||||
BYT ':',CR
|
||||
BYT PRBIG,PRLEFT
|
||||
.DA #PRLOC,160,#1
|
||||
BYT 'GET',CR,0
|
||||
JMP ESCBACK
|
||||
;
|
||||
; Set type info with correct
|
||||
; address for load/save
|
||||
;
|
||||
SETADR STY >0+0
|
||||
STA >0+1
|
||||
JSR SETTYPE
|
||||
TXTGR BYT 'GRAPHIC',0
|
||||
TXTGEDIT BYT 'GRAPHIC EDITOR+',0
|
||||
BYT 0
|
||||
BYT 4
|
||||
^0 ADR UNDOBUFF
|
||||
ADR $240
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Print current EDITBUFF to printer
|
||||
;
|
||||
CMDPRINT JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#185
|
||||
BRK
|
||||
LDA #'-'
|
||||
JSR CHKPRINT
|
||||
BCS >0
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET
|
||||
BYT ' TO PRINT '
|
||||
.DA #PRSTR,TXTGR,#CR,#0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE >0
|
||||
JSR PRINTGR
|
||||
^0 JMP SHOWBOTM
|
||||
;-----------
|
||||
;
|
||||
; Change input device
|
||||
;
|
||||
CMDDEVIC JSR DEVICECH
|
||||
JMP SHOWBOTM
|
||||
;-----------
|
||||
;
|
||||
; Clear buffer
|
||||
;
|
||||
CMDCLEAR JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#185
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTRET
|
||||
BYT ' TO CLEAR '
|
||||
.DA #PRSTR,TXTGR
|
||||
BYT ' AREA',CR,0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE >0
|
||||
JSR BUFFSAVE
|
||||
JSR SETMAX
|
||||
JSR SHOWGR
|
||||
^0 JMP SHOWBOTM
|
||||
;-----------
|
||||
;
|
||||
; Quit the editor
|
||||
;
|
||||
CMDQUIT JSR CMDQUIT2
|
||||
JSR SHOWBOTM
|
||||
QUITRTS RTS
|
||||
;
|
||||
CMDQUIT2 JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#185
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTPRET,' TO '
|
||||
.DA #PRSTR,TXTGTMM,#NOCR,#0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE QUITRTS
|
||||
JMP MAINMENU
|
||||
TXTGTMM BYT 'GO TO MAIN MENU',0
|
||||
TXTPRET BYT 'PRESS '
|
||||
TXTRET BYT '<RETURN>',0
|
||||
;-----------
|
||||
;
|
||||
; Text in graphic
|
||||
;
|
||||
CMDTEXT LDA #4
|
||||
JSR SHAPHELP
|
||||
JSR DRAWTEXT
|
||||
JMP SHOWRITE
|
||||
;-----------
|
||||
;
|
||||
; Shape handlers
|
||||
;
|
||||
CMDLINES LDA #0
|
||||
HEX 2C
|
||||
CMDRAYS LDA #1
|
||||
HEX 2C
|
||||
CMDBOX LDA #2
|
||||
HEX 2C
|
||||
CMDOVAL LDA #3
|
||||
JSR SHAPHELP
|
||||
JSR SHOWCOOR
|
||||
;
|
||||
LDA SHAPETYP
|
||||
AND #7
|
||||
STA >0+1
|
||||
CLC
|
||||
;
|
||||
^0 LDX #00
|
||||
JSR DOSHAPE
|
||||
BCS >1
|
||||
LDA #00
|
||||
SHAPETYP = *-1
|
||||
ASL
|
||||
BMI <0
|
||||
;
|
||||
; Fix up screen when done
|
||||
;
|
||||
^1 JMP SHOWRITE
|
||||
;-----------
|
||||
;
|
||||
; Print help screen
|
||||
;
|
||||
HY1 = 2
|
||||
HY2 = 36
|
||||
HY3 = 105
|
||||
HY4 = 164
|
||||
;
|
||||
HELPTEMP BRK
|
||||
;
|
||||
SHAPHELP STA TMP0
|
||||
ASL
|
||||
ADC TMP0
|
||||
ASL
|
||||
TAX
|
||||
LDY SHAPHLP9+0,X
|
||||
LDA SHAPHLP9+1,X
|
||||
STY >0+1
|
||||
STA >0+2
|
||||
LDA SHAPHLP9+2,X
|
||||
STA SHAPETYP
|
||||
;
|
||||
LDY SHAPHLP9+3,X
|
||||
LDA SHAPHLP9+4,X
|
||||
STY >4+1
|
||||
STA >4+2
|
||||
;
|
||||
LDA SHAPHLP9+5,X
|
||||
STA HELPTEMP
|
||||
;
|
||||
JSR SETPLOTX
|
||||
JSR BUFFSAVE
|
||||
;
|
||||
JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK,26,0,14,192
|
||||
BYT PRBIG,PRCNTR
|
||||
.DA #PRLOC,XCENT,#HY1
|
||||
^0 .DA #PRSTR,$FFFF,#NOCR,#0
|
||||
;
|
||||
LSR HELPTEMP
|
||||
BCC >1
|
||||
;
|
||||
LDX #26
|
||||
LDY #HY2
|
||||
LDA #0
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
.DA #PRLOC,227,#HY2+3
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
BYT 'TO',CR
|
||||
BYT 'DRAW',CR
|
||||
.DA #PRLOC,XCENT,#HY2+48
|
||||
BYT PRCNTR
|
||||
BYT PRCSPACE,1
|
||||
.DA 'N ',#PRSTR,TXTNEGA,#CR
|
||||
BRK
|
||||
;
|
||||
^1 LSR HELPTEMP
|
||||
BCC >2
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#HY2+26
|
||||
BYT 'USE',CR
|
||||
BYT 'KEYBOARD',CR
|
||||
BYT 'TO ENTER',CR,0
|
||||
JMP >3
|
||||
;
|
||||
^2 JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,XCENT,#HY3
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
BYT 'TO PLACE',CR,0
|
||||
;
|
||||
^3 JSR PRINT
|
||||
BYT PRCNTR
|
||||
^4 .DA #PRSTR,$FFFF,#CR
|
||||
BYT RTOSWITE,26,HY4-6,14,2
|
||||
BYT PRVTAB,HY4
|
||||
BYT 'PRESS <ESC>',CR,0
|
||||
;
|
||||
LSR HELPTEMP
|
||||
BCC >5
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTWD,#CR,#0
|
||||
JMP >6
|
||||
;
|
||||
^5 JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'TO GO BACK',CR,0
|
||||
;
|
||||
^6 RTS
|
||||
;
|
||||
TXTWD BYT 'WHEN DONE',0
|
||||
;
|
||||
; 64 means stay in shape routine
|
||||
; until ESC is pressed. 128 means
|
||||
; don't re-initialize X1,Y1 each time
|
||||
; the remaining number is the shape
|
||||
; number used by DOSHAPE
|
||||
;
|
||||
SHAPHLP9 .DA TXTLINES,#0+64
|
||||
.DA TXTLINE,#%101
|
||||
;
|
||||
.DA TXTRAYS,#0+64+128
|
||||
.DA TXTLINE,#%101
|
||||
;
|
||||
.DA TXTBOX,#2
|
||||
.DA TXTBOX,#%001
|
||||
;
|
||||
.DA TXTOVAL,#4
|
||||
.DA TXTOVAL,#%001
|
||||
;
|
||||
.DA TXTTEXT,#0
|
||||
.DA TXTTEXT,#%110
|
||||
;
|
||||
TXTLINE BYT 'LINE',0
|
||||
TXTLINES BYT 'LINES',0
|
||||
TXTRAYS BYT 'RAYS',0
|
||||
TXTBOX BYT 'BOX',0
|
||||
TXTOVAL BYT 'OVAL',0
|
||||
TXTTEXT BYT 'TEXT',0
|
||||
;-----------
|
||||
;
|
||||
; Show next page
|
||||
;
|
||||
CMDSPACE INC PAGENUM
|
||||
LDA PAGENUM
|
||||
EOR #4
|
||||
BNE SHOWPAGE
|
||||
STA PAGENUM
|
||||
;
|
||||
; Show help screen
|
||||
;
|
||||
SHOWPAGE JSR BLAKPAGE
|
||||
JSR >0
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^0 LDY #0
|
||||
PAGENUM = *-1
|
||||
JSR JMPVECTS
|
||||
ADR PAGE1
|
||||
ADR PAGE2
|
||||
ADR PAGE3
|
||||
ADR PAGE4
|
||||
;
|
||||
XCENT = 231
|
||||
XEDGE = 182
|
||||
XR1 = 13
|
||||
XR2 = 24
|
||||
;
|
||||
PG1Y = 68
|
||||
PAGE1 JSR PRINT
|
||||
BYT PRCSPACE,1
|
||||
BYT PRSPC,14
|
||||
.DA #PRLOC,XEDGE,#PG1Y
|
||||
.DA #PRSTR,TXTCTRL,'S',#CR
|
||||
.DA #PRSTR,TXTCTRL,'G',#CR
|
||||
.DA #PRSTR,TXTCTRL,'P',#CR
|
||||
.DA #PRSTR,TXTCTRL,'C',#CR
|
||||
.DA #PRSTR,TXTCTRL,'D',#CR
|
||||
.DA #PRSTR,TXTCTRL,'Q',#CR
|
||||
.DA #PRSTR,TXTCTRL,'L',#CR
|
||||
.DA #PRSTR,TXTCTRL,'T',#CR
|
||||
.DA #PRLOC,279,#PG1Y
|
||||
BYT PRRITE
|
||||
BYT 'SAVE',CR
|
||||
BYT 'GET',CR
|
||||
BYT 'PRINT',CR
|
||||
BYT 'CLEAR',CR
|
||||
BYT 'DEVICE',CR
|
||||
BYT 'QUIT',CR
|
||||
BYT 'LOCK',CR
|
||||
.DA #PRSTR,TXTTILE,#CR
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
TXTCTRL BYT 'CTRL-',0
|
||||
;-----------
|
||||
PAGE2 JSR PRINT
|
||||
BYT PRSPC,14
|
||||
BYT PRCSPACE,1
|
||||
.DA #PRLOC,XEDGE,#66
|
||||
;
|
||||
BYT 'D - DRAW',CR
|
||||
BYT 'E',PRRTAB,XR1,'- ERASE',CR
|
||||
BYT '1',PRRTAB,XR1,'- INSERT ROW',CR
|
||||
BYT '2',PRRTAB,XR1,'- DELETE ROW',CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT '3',PRRTAB,XR1,'- INSERT',CR
|
||||
BYT PRSPC,14,PRRTAB,XR2
|
||||
.DA #PRSTR,PAGE2COL,#CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT '4',PRRTAB,XR1,'- DELETE',CR
|
||||
BYT PRSPC,14,PRRTAB,XR2
|
||||
.DA #PRSTR,PAGE2COL,#CR
|
||||
;
|
||||
BYT 'F',PRRTAB,XR1,'- FLOOD FILL',CR
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
PAGE2COL BYT 'COLUMN',0
|
||||
;-----------
|
||||
P3SPC = 15
|
||||
;
|
||||
PAGE3 JSR PRINT
|
||||
BYT PRCSPACE,1
|
||||
.DA #PRLOC,XEDGE,#66
|
||||
;
|
||||
BYT 'H - FLIP',CR
|
||||
BYT PRSPC,P3SPC,PRRTAB,XR2
|
||||
BYT 'HORIZONTAL',CR
|
||||
;
|
||||
BYT PRSPC,8
|
||||
BYT 'V',PRRTAB,XR1,'- FLIP',CR
|
||||
BYT PRSPC,P3SPC,PRRTAB,XR2
|
||||
BYT 'VERTICAL',CR
|
||||
;
|
||||
BYT 'N',PRRTAB,XR1
|
||||
.DA #PRSTR,TXTNEGA,#CR
|
||||
;;;;;;;; BYT 'ESC - GO BACK',CR
|
||||
BRK
|
||||
LDX #26
|
||||
LDY #133
|
||||
LDA #1
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
BYT PRRITE
|
||||
.DA #PRLOC,279,#148
|
||||
BYT 'SCROLL',CR,0
|
||||
RTS
|
||||
TXTNEGA BYT '- NEGATIVE',0
|
||||
;-----------
|
||||
PAGE4Y = 101
|
||||
Z1 = 15
|
||||
Z2 = PAGE4Y-1
|
||||
;
|
||||
PAGE4 JSR PRINT
|
||||
.DA #PRLOC,XCENT,#66
|
||||
BYT PRCNTR
|
||||
BYT 'POSITION',CR
|
||||
BYT 'CURSOR',CR
|
||||
BYT '& PRESS:',CR
|
||||
; BYT RTOSWITE,26,92,14,2
|
||||
BYT PRLEFT,PRSPC,Z1
|
||||
BYT PRVTAB,PAGE4Y
|
||||
.DA #PRHTAB,XEDGE
|
||||
;
|
||||
BYT 'L',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTLINES,#CR
|
||||
BYT PRPIC,37,Z2,2,9
|
||||
HEX 813E70230F2081208123602018200620
|
||||
HEX C13F
|
||||
;
|
||||
BYT 'R',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTRAYS,#CR
|
||||
BYT PRPIC,37,Z2+Z1,2,9
|
||||
HEX 218131811181191809064D0135810F81
|
||||
HEX C13F
|
||||
;
|
||||
BYT 'B',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTBOX,#CR
|
||||
BYT PRPIC,37,Z2+Z1*2,2,9
|
||||
HEX C13F0120012001200120012001200120
|
||||
HEX C13F
|
||||
;
|
||||
BYT 'O',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTOVAL,#CR
|
||||
BYT PRPIC,37,Z2+Z1*3,2,9
|
||||
HEX 70030C0C021001200120012002100C0C
|
||||
HEX 7003
|
||||
;
|
||||
LISABUG0 = Z2+Z1*4
|
||||
BYT 'T',PRRTAB,XR1,'- '
|
||||
.DA #PRSTR,TXTTEXT,#CR
|
||||
BYT PRPIC,37,LISABUG0-1,2,11
|
||||
HEX 1E1F33333F1F3333331F821E1F033303
|
||||
HEX 3303331E1F
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Erase right side of screen
|
||||
;
|
||||
BLAKRITE JSR PRINT
|
||||
BYT RTOSBLAK,26,0,14,192
|
||||
BYT RTOSWITE,26,61,14,2
|
||||
BYT RTOSWITE,26,177,14,2,0
|
||||
;
|
||||
; Erase bottom of screen
|
||||
;
|
||||
BLAKBOTM JSR PRINT
|
||||
BYT RTOSBLAK,0,181,40,11,0
|
||||
RTS
|
||||
;
|
||||
; Erase help page area
|
||||
;
|
||||
BLAKPAGE JSR PRINT
|
||||
BYT RTOSBLAK,26,63,14,114,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show right part of screen
|
||||
;
|
||||
SHOWRITE JSR BLAKRITE
|
||||
LDX #26
|
||||
LDY #0
|
||||
TYA
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
.DA #PRLOC,227,#11
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
.DA #PRLOC,182,#39
|
||||
BYT PRSPC,11
|
||||
BYT PRCSPACE,1
|
||||
BYT 'P - PATTERN',CR
|
||||
BYT 'X',PRRTAB,XR1,'- MIRRORS',CR
|
||||
BRK
|
||||
JSR SHOWBOXS
|
||||
JSR SHOWPAGE
|
||||
;
|
||||
; Display bottom help stuff
|
||||
;
|
||||
SHOWBOTM JSR BLAKBOTM
|
||||
JSR SHOWCOOR
|
||||
JSR PRINT
|
||||
.DA #PRHTAB,169
|
||||
BYT PRRITE,PRCSPACE,1
|
||||
BYT 'U - UNDO',NOCR,0
|
||||
;
|
||||
LDA #XEDGE/7
|
||||
JSR SPACEBAR
|
||||
;
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show coordinates X= Y=
|
||||
;
|
||||
SHOWCOOR JSR PRINT
|
||||
.DA #PRLOC,7,#185
|
||||
BYT 'X=',NOCR
|
||||
.DA #PRHTAB,49
|
||||
BYT 'Y=',NOCR,0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Set parameters for EDIT routines
|
||||
; and clear EDITBUFF
|
||||
;
|
||||
SETMAX LDX #88
|
||||
LDY #52
|
||||
JSR EDITINIT
|
||||
JMP CLRBUFF
|
||||
;-----------
|
||||
;
|
||||
; Save special graphic
|
||||
; enter with A: 0=Tile Magic
|
||||
; 1=Creature Maker
|
||||
;
|
||||
SAVESP0 ADR TXTTM
|
||||
ADR TXTCMAKE
|
||||
SAVESP1 ADR TXTTILE
|
||||
ADR TXTCREAT
|
||||
;
|
||||
TXTTILE BYT 'TILE',0
|
||||
TXTCREAT BYT 'CREATURE',0
|
||||
;
|
||||
SAVESPY0 = 32
|
||||
SAVESPY1 = 108
|
||||
;
|
||||
SAVESPEC ASL
|
||||
TAX
|
||||
LDA SAVESP0,X
|
||||
STA >0+1
|
||||
LDA SAVESP0+1,X
|
||||
STA >0+2
|
||||
LDA SAVESP1,X
|
||||
STA >1+1
|
||||
LDA SAVESP1+1,X
|
||||
STA >1+2
|
||||
;
|
||||
JSR WITEBORD
|
||||
JSR ESCBACK
|
||||
JSR PRINT
|
||||
BYT PRCNTR,PRBIG,PRINVR
|
||||
.DA #PRLOC,140,#1
|
||||
^0 .DA #PRSTR,0000,#CR
|
||||
BYT RTOSWITE,13,SAVESPY0,14,60
|
||||
BYT PRVTAB,SAVESPY0+4
|
||||
BYT PRSMAL,'@',CR
|
||||
BYT PRVTAB,SAVESPY1
|
||||
BYT PRNORM
|
||||
BYT 'MAKE A CHOICE:',CR
|
||||
BYT CR,CR
|
||||
BYT 'SAVE '
|
||||
^1 .DA #PRSTR,0000,#CR
|
||||
.DA 'GO TO ',#PRSTR,TXTGEDIT,#CR
|
||||
.DA #PRSTR,TXTGTMM,#CR
|
||||
BRK
|
||||
^2 LDY #00
|
||||
JSR SELECT
|
||||
BYT 6,28,SAVESPY1+23,3
|
||||
ADR RTS
|
||||
BCS >3
|
||||
STY <2+1
|
||||
^3 RTS
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:GREDIT2"
|
|
@ -0,0 +1,405 @@
|
|||
;
|
||||
; S:GREDIT2
|
||||
;
|
||||
FZ EPZ $80
|
||||
;
|
||||
FGXCOOR EPZ FZ
|
||||
FGYCOOR EPZ FZ+1
|
||||
FGHIRES EPZ FZ+2 ; 3
|
||||
FGBYTE EPZ FZ+4
|
||||
FGBCOUNT EPZ FZ+5
|
||||
FGRAMCRD EPZ FZ+6
|
||||
FGHIRES2 EPZ FZ+8
|
||||
FGWIDTH EPZ FZ+10
|
||||
;
|
||||
; Frame grabber CAPTURE
|
||||
;
|
||||
FRAMGRAB JSR FRAMPICT
|
||||
SEC
|
||||
ROR SCALING
|
||||
LDX #96
|
||||
LDY #70
|
||||
STX FGXCOOR
|
||||
STY FGYCOOR
|
||||
;
|
||||
; Invert current position and
|
||||
; set countdown timer
|
||||
;
|
||||
FRAMLOOP ASL KEEPTRAK
|
||||
LDX FGXCOOR
|
||||
LDY FGYCOOR
|
||||
JSR DEVICEST
|
||||
FRAMLOP2 JSR FLSHINIT
|
||||
JSR DRAWBOX
|
||||
INC KEEPTRAK
|
||||
;
|
||||
^0 LDY #2
|
||||
JSR DEVICERD
|
||||
BCS >1
|
||||
ASL
|
||||
BMI >1
|
||||
BCS FRAMDON2
|
||||
JSR FRAMDEV
|
||||
;
|
||||
^1 JSR POLEKEY
|
||||
BMI >3
|
||||
;
|
||||
^2 DEC FLASHLO
|
||||
BNE <0
|
||||
DEC FLASHHI
|
||||
BPL <0
|
||||
BMI FRAMLOP2
|
||||
;
|
||||
FRAMDONE PLA
|
||||
PLA
|
||||
FRAMDON2 JSR RESTSCRN
|
||||
JSR CAPBOX
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^3 PHA
|
||||
JSR RESTSCRN
|
||||
PLA
|
||||
LDX FGXCOOR
|
||||
LDY FGYCOOR
|
||||
JSR >1
|
||||
STX FGXCOOR
|
||||
STY FGYCOOR
|
||||
JMP FRAMLOOP
|
||||
;
|
||||
^1 JSR PARSE
|
||||
.DA #'I',FRAMUP
|
||||
.DA #$0B,FRAMUP
|
||||
.DA #'M',FRAMDOWN
|
||||
.DA #$0A,FRAMDOWN
|
||||
.DA #'J',FRAMLEFT
|
||||
.DA #$08,FRAMLEFT
|
||||
.DA #'K',FRAMRITE
|
||||
.DA #$15,FRAMRITE
|
||||
;
|
||||
.DA #'N',FRAMNEG
|
||||
;
|
||||
.DA #'D',FRAMDUBL
|
||||
.DA #'A',FRAM2LFT
|
||||
.DA #'S',FRAM2RIT
|
||||
;
|
||||
.DA #$1B,FRAMESC
|
||||
.DA #$0D,FRAMDONE
|
||||
;
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
FRAMESC PLA
|
||||
PLA
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
; Invert screen
|
||||
;
|
||||
FRAMNEG LDA FRAMIMD0
|
||||
EOR #$7F
|
||||
STA FRAMIMD0
|
||||
STA FRAMIMD1
|
||||
STA FRAMIMD2
|
||||
;
|
||||
; Pop stack, draw screen and return
|
||||
; to main loop
|
||||
;
|
||||
FRAMWERD JSR FRAMPICT
|
||||
FRAMWRD2 PLA
|
||||
PLA
|
||||
JMP FRAMLOOP
|
||||
;-----------
|
||||
;
|
||||
; Toggle double-hires option
|
||||
;
|
||||
; If not 128k, then ignore
|
||||
;
|
||||
FRAMDUBL LDA HAS128K
|
||||
BPL FRAMWERD
|
||||
;
|
||||
LDA FRAM2FLG
|
||||
EOR #$80
|
||||
STA FRAM2FLG
|
||||
BNE FRAMWERD
|
||||
;
|
||||
; Move double hires picture right
|
||||
;
|
||||
FRAM2RIT LDX FRAM2POS
|
||||
DEX
|
||||
BPL FRAM2ST
|
||||
;
|
||||
FRAM2ERR JSR BOOP
|
||||
JMP FRAMWRD2
|
||||
;
|
||||
; Move double hires left
|
||||
;
|
||||
FRAM2LFT LDX FRAM2POS
|
||||
INX
|
||||
CPX #21
|
||||
BGE FRAM2ERR
|
||||
;
|
||||
FRAM2ST STX FRAM2POS
|
||||
JMP FRAMWERD
|
||||
;
|
||||
FRAM2FLG HEX 01
|
||||
FRAM2POS HEX 00
|
||||
;-----------
|
||||
;
|
||||
; Up
|
||||
;
|
||||
FRAMUP DEY
|
||||
CPY #$FF
|
||||
BNE >0
|
||||
LDY #YSCRNMAX-1
|
||||
;
|
||||
; Down
|
||||
;
|
||||
FRAMDOWN INY
|
||||
CPY #YSCRNMAX+1
|
||||
BLT >0
|
||||
LDY #0
|
||||
^0 RTS
|
||||
;
|
||||
; Left
|
||||
;
|
||||
FRAMLEFT DEX
|
||||
CPX #$FF
|
||||
BNE >0
|
||||
LDX #XSCRNMAX-1
|
||||
;
|
||||
; Right
|
||||
;
|
||||
FRAMRITE INX
|
||||
CPX #XSCRNMAX+1
|
||||
BLT >0
|
||||
LDX #0
|
||||
^0 RTS
|
||||
;------------
|
||||
;
|
||||
; Check to see if device moved
|
||||
;
|
||||
FRAMDEV CPX FGXCOOR
|
||||
BNE >0
|
||||
CPY FGYCOOR
|
||||
BNE >0
|
||||
FRAMRTS RTS
|
||||
;
|
||||
; Device moved
|
||||
;
|
||||
^0 STX >1+1
|
||||
STY >2+1
|
||||
JSR RESTSCRN
|
||||
^1 LDX #00
|
||||
^2 LDY #00
|
||||
;
|
||||
; Device input clamping
|
||||
;
|
||||
BIT FRAMRTS
|
||||
CPX #XSCRNMAX+1
|
||||
BLT >3
|
||||
CLV
|
||||
LDX #XSCRNMAX
|
||||
^3 CPY #YSCRNMAX+1
|
||||
BLT >4
|
||||
CLV
|
||||
LDY #YSCRNMAX
|
||||
^4 STX FGXCOOR
|
||||
STY FGYCOOR
|
||||
BVS FRAMRTS
|
||||
JMP DEVICEST
|
||||
;
|
||||
KEEPTRAK BRK
|
||||
;
|
||||
; Remove box if necessary
|
||||
;
|
||||
RESTSCRN LSR KEEPTRAK
|
||||
ROR
|
||||
ASL KEEPTRAK
|
||||
ROL
|
||||
BCC FRAMRTS
|
||||
;-----------
|
||||
;
|
||||
; Draw box
|
||||
;
|
||||
DRAWBOX LDY FGYCOOR
|
||||
STY TMP1
|
||||
LDY #0
|
||||
;
|
||||
DRAWBOXL JSR YBASCALC
|
||||
LDX #0
|
||||
^0 JSR BITCALC
|
||||
EOR (FGHIRES),Y
|
||||
STA (FGHIRES),Y
|
||||
CPX #87
|
||||
BEQ >2
|
||||
LDA TMP0
|
||||
BEQ >1
|
||||
CMP #51
|
||||
BEQ >1
|
||||
LDX #86
|
||||
^1 INX
|
||||
BNE <0
|
||||
;
|
||||
^2 LDY TMP0
|
||||
INY
|
||||
CPY #52
|
||||
BLT DRAWBOXL
|
||||
RTS
|
||||
;
|
||||
; Capture box into UNDOBUFF
|
||||
;
|
||||
CAPBOX LDY #UNDOBUFF
|
||||
LDA /UNDOBUFF
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
;
|
||||
LDY FGYCOOR
|
||||
STY TMP1
|
||||
LDY #0
|
||||
STY FGBCOUNT
|
||||
;
|
||||
CAPBOXL JSR YBASCALC
|
||||
LDX #0
|
||||
^0 JSR BITCALC
|
||||
AND (FGHIRES),Y
|
||||
CMP #1
|
||||
LDA #0
|
||||
ROL
|
||||
EOR #1
|
||||
LSR
|
||||
ROL FGBYTE
|
||||
INC FGBCOUNT
|
||||
LDA FGBCOUNT
|
||||
EOR #8
|
||||
BNE >1
|
||||
;
|
||||
STA FGBCOUNT
|
||||
LDA FGBYTE
|
||||
LDY #0
|
||||
STA (TMP2),Y
|
||||
INC TMP2
|
||||
BNE >1
|
||||
INC TMP3
|
||||
;
|
||||
^1 INX
|
||||
CPX #88
|
||||
BLT <0
|
||||
;
|
||||
^2 LDY TMP0
|
||||
INY
|
||||
CPY #52
|
||||
BLT CAPBOXL
|
||||
RTS
|
||||
;
|
||||
; Calc Ybase
|
||||
;
|
||||
YBASCALC STY TMP0
|
||||
LDY TMP1
|
||||
INC TMP1
|
||||
LDA YBASELO,Y
|
||||
STA FGHIRES
|
||||
LDA YBASEHI,Y
|
||||
STA FGHIRES+1
|
||||
RTS
|
||||
;
|
||||
; Calculate hires X coor
|
||||
;
|
||||
BITCALC TXA
|
||||
CLC
|
||||
ADC FGXCOOR
|
||||
TAY
|
||||
BCC >1
|
||||
;
|
||||
LDA XBIT+256,Y
|
||||
PHA
|
||||
LDA XBYTE+256,Y
|
||||
TAY
|
||||
PLA
|
||||
BNE >2
|
||||
;
|
||||
^1 LDA XBIT,Y
|
||||
PHA
|
||||
LDA XBYTE,Y
|
||||
TAY
|
||||
PLA
|
||||
^2 RTS
|
||||
;-----------
|
||||
;
|
||||
; Get picture from RAMcard
|
||||
;
|
||||
FRAMPICT LDA #0
|
||||
FRAMPCT2 PHA
|
||||
;
|
||||
; Transfer line
|
||||
;
|
||||
TAY
|
||||
LDA YBASELO,Y
|
||||
STA FGHIRES
|
||||
STA FGHIRES2
|
||||
STA FGRAMCRD
|
||||
LDA YBASEHI,Y
|
||||
STA FGHIRES+1
|
||||
STA FGHIRES2+1
|
||||
LDY #0
|
||||
AND #$10
|
||||
BEQ >0
|
||||
LDY #8
|
||||
^0 LDA $C083,Y
|
||||
LDA $C083,Y
|
||||
LDA FGHIRES+1
|
||||
AND #$0F
|
||||
ORA #$D0
|
||||
STA FGRAMCRD+1
|
||||
;
|
||||
LDA #39
|
||||
BIT FRAM2FLG
|
||||
BMI >2
|
||||
;
|
||||
; Regular hires
|
||||
;
|
||||
TAY
|
||||
^1 LDA (FGRAMCRD),Y
|
||||
EOR #00
|
||||
FRAMIMD0 = *-1
|
||||
STA (FGHIRES),Y
|
||||
DEY
|
||||
BPL <1
|
||||
BMI >4
|
||||
;
|
||||
; Double hires
|
||||
;
|
||||
^2 LSR
|
||||
STA FGWIDTH
|
||||
LDY FRAM2POS
|
||||
LDX #0
|
||||
STA $C001
|
||||
^3 BIT $C055
|
||||
LDA (FGHIRES2),Y
|
||||
BIT $C054
|
||||
EOR #00
|
||||
FRAMIMD1 = *-1
|
||||
STA (FGHIRES,X)
|
||||
INC FGHIRES
|
||||
LDA (FGRAMCRD),Y
|
||||
EOR #00
|
||||
FRAMIMD2 = *-1
|
||||
STA (FGHIRES,X)
|
||||
INC FGHIRES
|
||||
INY
|
||||
DEC FGWIDTH
|
||||
BPL <3
|
||||
STA $C000
|
||||
;
|
||||
; Next line
|
||||
;
|
||||
^4 PLA
|
||||
CLC
|
||||
ADC #1
|
||||
CMP #$C0
|
||||
BLT FRAMPCT2
|
||||
RTS
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:GREDIT3"
|
|
@ -0,0 +1,433 @@
|
|||
;
|
||||
; S:GREDIT3
|
||||
;
|
||||
; Print Shop Companion
|
||||
;
|
||||
; Tile Magic
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
; Copyright 1985
|
||||
;
|
||||
TZ EPZ $80
|
||||
;
|
||||
TMXSTART EPZ TZ
|
||||
TMYSTART EPZ TZ+1
|
||||
TMXPOS EPZ TZ+2
|
||||
TMYPOS EPZ TZ+3
|
||||
TMXQTR EPZ TZ+4
|
||||
TMYQTR EPZ TZ+5
|
||||
TMCOLOR EPZ TZ+6
|
||||
TMCOUNT EPZ TZ+7
|
||||
TMBCOUNT EPZ TZ+8
|
||||
;
|
||||
TILEXMAX = 88
|
||||
TILEYMAX = 52
|
||||
;
|
||||
;
|
||||
TILEMAGC LDA #ESC
|
||||
STA TILEMOD
|
||||
JSR SETMAX
|
||||
;
|
||||
JSR CLSCREEN
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,0,0,25,16
|
||||
BYT PRCNTR,PRINVR
|
||||
.DA #PRLOC,88,#4
|
||||
.DA #PRSTR,TXTTM
|
||||
BYT CR,0
|
||||
JSR DOMAGIC
|
||||
;
|
||||
ESC4TILE LDA #0
|
||||
JSR SAVESPEC
|
||||
BCC >0
|
||||
JMP TILEMAGC
|
||||
;
|
||||
^0 JSR JMPVECTS
|
||||
ADR TILESAVE
|
||||
ADR GREDIT2
|
||||
ADR MAINMENU
|
||||
;-----------
|
||||
;
|
||||
; Save the Tile
|
||||
;
|
||||
TILESAVE JSR SETTYPE
|
||||
BYT 'GRAPHIC',0
|
||||
TXTTM BYT 'TILE MAGIC',0
|
||||
BYT 0
|
||||
BYT 4
|
||||
ADR EDITBUFF
|
||||
ADR $240
|
||||
JSR SAVEFILE
|
||||
JMP ESC4TILE
|
||||
;-----------
|
||||
;
|
||||
; Helpful instructions for our
|
||||
; favorite person, the consumer.
|
||||
;
|
||||
DOMAGIC JSR BLAKRITE
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,26,0,14,2
|
||||
BYT PRBIG,PRCNTR
|
||||
BYT PRSPC,16
|
||||
.DA #PRLOC,231,#16
|
||||
BYT 'TILE',CR
|
||||
BYT 'MAGIC',CR,0
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,231,#83
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
BYT 'TO CHANGE',CR
|
||||
BYT 'PATTERN',CR,CR,CR
|
||||
BYT '<ESC>',CR
|
||||
BYT 'TO "FREEZE"',CR
|
||||
BYT 'TILE',CR
|
||||
BRK
|
||||
;
|
||||
; Do the fireworks
|
||||
;
|
||||
; Same as Kaleidoscope 1 from
|
||||
; the original Print Shop.
|
||||
;
|
||||
JSR BUFFSAVE
|
||||
NEXTTILE JSR SETTRP
|
||||
JSR CLRBUFF
|
||||
JSR SHOWGR
|
||||
;
|
||||
LTRP LDA #$40
|
||||
STA TMXSTART
|
||||
LDA #0
|
||||
STA TMYSTART
|
||||
STA TMCOLOR
|
||||
LDA #12
|
||||
STA STRTFLAG
|
||||
LTRP2 LDA $C05F
|
||||
ADC $C059
|
||||
ADC $C05D
|
||||
ADC TMXSTART
|
||||
STA TMXSTART
|
||||
STA TMXPOS
|
||||
LDA TMYPOS
|
||||
ROL
|
||||
EOR TMXPOS
|
||||
STA TMYPOS
|
||||
STA TMYSTART
|
||||
DEC TMCOLOR
|
||||
LDX #26
|
||||
LDA STRTFLAG
|
||||
BEQ LTRP2A
|
||||
LDX #2
|
||||
DEC STRTFLAG
|
||||
LTRP2A STX TMCOUNT
|
||||
LTRP2B INC TMCOLOR
|
||||
LDA TMCOLOR
|
||||
AND #3
|
||||
CMP #3
|
||||
BEQ LTRP2B
|
||||
CMP #0
|
||||
BNE LTRP2C
|
||||
LDA STRTFLAG
|
||||
BNE LTRP2B
|
||||
LTRP2C DEC TMCOUNT
|
||||
BEQ LTRP2
|
||||
JSR SETC
|
||||
LTRP3 JSR PUT4
|
||||
JSR BTNCHK
|
||||
BPL LTRP8
|
||||
CMP #$0D
|
||||
BEQ NEXTTILE
|
||||
RTS
|
||||
;
|
||||
LTRP8 LDA TMYPOS
|
||||
;
|
||||
YTRIP DFS 6,0
|
||||
;
|
||||
STA TMYQTR
|
||||
LDA TMXPOS
|
||||
SEC
|
||||
SBC TMYQTR
|
||||
STA TMXPOS
|
||||
;
|
||||
XTRIP DFS 6,0
|
||||
;
|
||||
CLC
|
||||
ADC TMYPOS
|
||||
STA TMYPOS
|
||||
CMP TMYSTART
|
||||
BNE LTRP3
|
||||
LDA TMXPOS
|
||||
CMP TMXSTART
|
||||
BNE LTRP3
|
||||
BEQ LTRP2B
|
||||
;
|
||||
PUT4 LDA TMXPOS
|
||||
LSR
|
||||
LSR
|
||||
TAX
|
||||
LDA RANGE44,X
|
||||
STA TMXQTR
|
||||
;
|
||||
LDA TMYPOS
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAX
|
||||
LDA RANGE26,X
|
||||
STA TMYQTR
|
||||
;
|
||||
LDA #TILEXMAX/2
|
||||
CLC
|
||||
ADC TMXQTR
|
||||
TAX
|
||||
LDA #TILEYMAX/2
|
||||
CLC
|
||||
ADC TMYQTR
|
||||
TAY
|
||||
JSR XYPLOT
|
||||
LDA #TILEXMAX/2
|
||||
SEC
|
||||
SBC TMXQTR
|
||||
TAX
|
||||
JSR XYPLOT
|
||||
LDA #TILEYMAX/2
|
||||
SEC
|
||||
SBC TMYQTR
|
||||
TAY
|
||||
JSR XYPLOT
|
||||
LDA #TILEXMAX/2
|
||||
CLC
|
||||
ADC TMXQTR
|
||||
TAX
|
||||
;
|
||||
XYPLOT CPY #TILEYMAX
|
||||
BGE XYDONE
|
||||
CPX #TILEXMAX
|
||||
BGE XYDONE
|
||||
;
|
||||
STX XCOOR
|
||||
STY YCOOR
|
||||
TMXYMOD JSR $FFFF
|
||||
LDX XCOOR
|
||||
LDY YCOOR
|
||||
XYDONE RTS
|
||||
;-----------
|
||||
;
|
||||
; Check for CR
|
||||
;
|
||||
BTNCHK DEC TMBCOUNT
|
||||
LDA TMBCOUNT
|
||||
AND #$7F
|
||||
BNE >0
|
||||
JMP POLEBTN
|
||||
^0 LDA #0
|
||||
RTS
|
||||
;
|
||||
; Set color
|
||||
;
|
||||
SETC LDX #SETBIT
|
||||
LDY /SETBIT
|
||||
LDA TMCOLOR
|
||||
AND #2
|
||||
BNE >0
|
||||
LDX #CLRBIT
|
||||
LDY /CLRBIT
|
||||
;
|
||||
^0 STX TMXYMOD+1
|
||||
STY TMXYMOD+2
|
||||
RTS
|
||||
;
|
||||
; Set trip format
|
||||
;
|
||||
SETTRP LDA TRIPN
|
||||
ASL
|
||||
ADC TRIPN
|
||||
ASL
|
||||
TAX
|
||||
LDY #0
|
||||
^0 LDA XTRPS,X
|
||||
STA XTRIP,Y
|
||||
LDA YTRPS,X
|
||||
STA YTRIP,Y
|
||||
INX
|
||||
INY
|
||||
CPY #6
|
||||
BLT <0
|
||||
LDX TRIPN
|
||||
INX
|
||||
CPX #11
|
||||
BNE >1
|
||||
LDX #0
|
||||
^1 STX TRIPN
|
||||
RTS
|
||||
;X1
|
||||
XTRPS LSR
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;X2
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;X3
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;X4
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;X5
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;X6
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
CLC
|
||||
ADC TMXPOS
|
||||
;X7
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
CLC
|
||||
ADC TMXPOS
|
||||
;X8
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
CLC
|
||||
ADC TMXPOS
|
||||
;X9
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
SEC
|
||||
SBC TMXPOS
|
||||
;X10
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
SEC
|
||||
SBC TMXPOS
|
||||
;X11
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
SEC
|
||||
SBC TMXPOS
|
||||
;Y1
|
||||
YTRPS LSR
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;Y2
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;Y3
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;Y4
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;Y5
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
NOP
|
||||
;Y6
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
CLC
|
||||
ADC TMYPOS
|
||||
;Y7
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
CLC
|
||||
ADC TMYPOS
|
||||
;Y8
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
CLC
|
||||
ADC TMYPOS
|
||||
;Y9
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
SEC
|
||||
SBC TMYPOS
|
||||
;Y10
|
||||
LSR
|
||||
LSR
|
||||
NOP
|
||||
SEC
|
||||
SBC TMYPOS
|
||||
;Y11
|
||||
LSR
|
||||
NOP
|
||||
NOP
|
||||
SEC
|
||||
SBC TMYPOS
|
||||
;
|
||||
;----------
|
||||
;
|
||||
TRIPN HEX 03
|
||||
STRTFLAG HEX 00
|
||||
;
|
||||
; Lookup tables for getting
|
||||
; range
|
||||
;
|
||||
; X= 0-44
|
||||
;
|
||||
RANGE44 HEX 0001010203030405
|
||||
HEX 0606070808090A0A
|
||||
HEX 0B0C0C0D0E0F0F10
|
||||
HEX 1111121313141515
|
||||
HEX 16171718191A1A1B
|
||||
HEX 1C1C1D1E1E1F2020
|
||||
HEX 2122232324252526
|
||||
HEX 27272829292A2B2C
|
||||
;
|
||||
; X= 0-26
|
||||
;
|
||||
RANGE26 HEX 0001020303040506
|
||||
HEX 070808090A0B0C0C
|
||||
HEX 0D0E0F1011111213
|
||||
HEX 141515161718191A
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:GREDIT4"
|
|
@ -0,0 +1,376 @@
|
|||
;
|
||||
; S:GREDIT4
|
||||
;
|
||||
; Print Shop Companion
|
||||
;
|
||||
; Creature Maker
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
; Copyright 1985
|
||||
;
|
||||
;
|
||||
YPOS1 = 93
|
||||
YPOS2 = 121
|
||||
YPOS3 = 149
|
||||
;
|
||||
CRPART1 = 18
|
||||
CRPART2 = 17
|
||||
CRPART3 = 17
|
||||
;
|
||||
CREATURS = $6000
|
||||
CRCOUNT = CREATURS
|
||||
;
|
||||
;
|
||||
CRMAKER LDA #ESC
|
||||
STA CRMOD
|
||||
JSR SETMAX
|
||||
JSR CLSCREEN
|
||||
LDX #26
|
||||
LDY #13
|
||||
LDA #0
|
||||
JSR SHOWAROW
|
||||
;
|
||||
JSR PRINT
|
||||
BYT RTOSWITE,0,0,25,16
|
||||
BYT PRCNTR,PRINVR
|
||||
.DA #PRLOC,88,#4
|
||||
.DA #PRSTR,TXTCMAKE,#CR
|
||||
;
|
||||
BYT PRNORM,PRRITE
|
||||
BYT RTOSWITE,26,0,14,2
|
||||
.DA #PRLOC,279,#11
|
||||
BYT PRCSPACE,1,PRSPC,11
|
||||
BYT 'USE UP &',CR
|
||||
BYT 'DOWN TO',CR
|
||||
BYT 'SELECT',CR
|
||||
BYT 'PART. USE',CR
|
||||
.DA #PRHTAB,231
|
||||
BYT PRCSPACE,2
|
||||
BYT PRCNTR
|
||||
BYT 'LEFT & RIGHT',CR
|
||||
BYT 'TO SELECT',CR
|
||||
BYT 'CREATURE.',CR
|
||||
;
|
||||
BYT PRINVR
|
||||
;
|
||||
BYT RTOSWITE,26,YPOS1,14,2+11
|
||||
BYT PRVTAB,YPOS1+3
|
||||
BYT 'HEAD',CR
|
||||
;
|
||||
BYT RTOSWITE,26,YPOS2,14,2+11
|
||||
BYT PRVTAB,YPOS2+3
|
||||
BYT 'BODY',CR
|
||||
;
|
||||
BYT RTOSWITE,26,YPOS3,14,2+11
|
||||
BYT PRVTAB,YPOS3+3
|
||||
BYT 'LEGS',CR
|
||||
;
|
||||
BYT RTOSWITE,26,177,14,2
|
||||
BRK
|
||||
;
|
||||
LDA PART
|
||||
PHA
|
||||
LDA #0
|
||||
STA PART
|
||||
JSR MOVEPIEC
|
||||
INC PART
|
||||
JSR MOVEPIEC
|
||||
INC PART
|
||||
JSR MOVEPIEC
|
||||
PLA
|
||||
STA PART
|
||||
;
|
||||
; Do the creature selection stuff
|
||||
;
|
||||
CRMAKER2 JSR BLAKBOTM
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#185
|
||||
.DA #PRSTR,TXTPRET
|
||||
BYT ' '
|
||||
.DA #PRSTR,TXTWD,#CR
|
||||
BRK
|
||||
JSR CRSELECT
|
||||
;
|
||||
ESC4CR LDA #1
|
||||
JSR SAVESPEC
|
||||
BCC >0
|
||||
JMP CRMAKER
|
||||
;
|
||||
^0 JSR JMPVECTS
|
||||
ADR CRSAVE
|
||||
ADR GREDIT2
|
||||
ADR MAINMENU
|
||||
;-----------
|
||||
;
|
||||
; Save the creature!
|
||||
;
|
||||
CRSAVE JSR SETTYPE
|
||||
BYT 'GRAPHIC',0
|
||||
TXTCMAKE BYT 'CREATURE MAKER',0
|
||||
BYT 0
|
||||
BYT 4
|
||||
ADR EDITBUFF
|
||||
ADR $240
|
||||
JSR SAVEFILE
|
||||
JMP ESC4CR
|
||||
;-----------
|
||||
;
|
||||
; Build a creature
|
||||
;
|
||||
CRSELECT JSR SHOWGR
|
||||
CRSELEC1 LSR CRARROWF
|
||||
;
|
||||
CRSELEC2 JSR CRARROWT
|
||||
JSR FLSHINIT
|
||||
;
|
||||
^0 JSR POLEBTN
|
||||
BMI >1
|
||||
DEC FLASHLO
|
||||
BNE <0
|
||||
DEC FLASHHI
|
||||
BPL <0
|
||||
BMI CRSELEC2
|
||||
;
|
||||
^1 PHA
|
||||
JSR CRARROW0
|
||||
PLA
|
||||
LDX PART
|
||||
LDY PART1,X
|
||||
JSR >2
|
||||
BCS CRSELECT
|
||||
BCC CRSELEC1
|
||||
;
|
||||
^2 JSR PARSE
|
||||
.DA #'I',CRUP
|
||||
.DA #$0B,CRUP
|
||||
.DA #'M',CRDOWN
|
||||
.DA #$0A,CRDOWN
|
||||
.DA #'J',CRLEFT
|
||||
.DA #$08,CRLEFT
|
||||
.DA #'K',CRRITE
|
||||
.DA #$15,CRRITE
|
||||
;
|
||||
.DA #CR,CRDONE
|
||||
.DA #ESC,CRESC
|
||||
;
|
||||
BRK
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
CRESC PLA
|
||||
PLA
|
||||
PLA
|
||||
PLA
|
||||
JSR CMDQUIT2
|
||||
JMP CRMAKER2
|
||||
;
|
||||
CRDONE PLA
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
CRUP DEX
|
||||
BPL >0
|
||||
LDX #1
|
||||
;
|
||||
CRDOWN INX
|
||||
CPX #3
|
||||
BLT >0
|
||||
LDX #0
|
||||
^0 STX PART
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
CRLEFT DEY
|
||||
BPL >0
|
||||
LDY CRCOUNT
|
||||
DEY
|
||||
DEY
|
||||
;
|
||||
CRRITE INY
|
||||
CPY CRCOUNT
|
||||
BLT >0
|
||||
LDY #0
|
||||
^0 TYA
|
||||
STA PART1,X
|
||||
JSR MOVEPIEC
|
||||
SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Move piece from CRDATA to EDITBUFF
|
||||
; and print it's name.
|
||||
;
|
||||
; PART is given in PART
|
||||
; PIECE 0-9 is given in PART1,2 or 3
|
||||
;
|
||||
MOVEPIEC LDY PART
|
||||
LDA PART1,Y
|
||||
ASL
|
||||
TAX
|
||||
LDA CRADR,X
|
||||
ADC CROFFSTL,Y
|
||||
STA TMP0
|
||||
LDA CRADR+1,X
|
||||
ADC CROFFSTH,Y
|
||||
STA TMP1
|
||||
;
|
||||
LDA #EDITBUFF
|
||||
ADC CROFFSTL,Y
|
||||
STA TMP2
|
||||
LDA /EDITBUFF
|
||||
ADC CROFFSTH,Y
|
||||
STA TMP3
|
||||
;
|
||||
LDA CRLENGTH,Y
|
||||
TAY
|
||||
;
|
||||
; Move piece over to EDITBUFF
|
||||
;
|
||||
^0 DEY
|
||||
CPY #$FF
|
||||
BEQ >1
|
||||
LDA (TMP0),Y
|
||||
STA (TMP2),Y
|
||||
BLT <0
|
||||
;
|
||||
; Now print name of that piece
|
||||
;
|
||||
; First get address of text
|
||||
;
|
||||
^1 LDA CRCOUNT
|
||||
ASL
|
||||
TAY
|
||||
LDA CRADR,Y
|
||||
STA TMP0
|
||||
LDA CRADR+1,Y
|
||||
STA TMP1
|
||||
;
|
||||
LDY PART
|
||||
LDX PART1,Y
|
||||
;
|
||||
LDY #0
|
||||
;
|
||||
; Find text location
|
||||
;
|
||||
^0 DEX
|
||||
BMI >2
|
||||
^1 LDA (TMP0),Y
|
||||
PHA
|
||||
INC TMP0
|
||||
BNE *+4
|
||||
INC TMP1
|
||||
PLA
|
||||
BNE <1
|
||||
BEQ <0
|
||||
;
|
||||
^2 LDY TMP0
|
||||
LDA TMP1
|
||||
STY >5+0
|
||||
STA >5+1
|
||||
;
|
||||
JSR GETYPOS
|
||||
ADC #17
|
||||
STA >3+0
|
||||
STA >4+0
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK,29
|
||||
^3 BYT 0,11,7
|
||||
.DA #PRLOC,203
|
||||
^4 HEX 00
|
||||
BYT PRSTR
|
||||
^5 .DA 0000,#CR,#0
|
||||
RTS
|
||||
;-----------
|
||||
CRARROWF HEX 00
|
||||
;
|
||||
; Toggle arrow on or off
|
||||
;
|
||||
CRARROWT LDA CRARROWF
|
||||
EOR #$80
|
||||
STA CRARROWF
|
||||
BMI CRARROW1
|
||||
;
|
||||
; Erase arrow
|
||||
;
|
||||
CRARROW0 JSR GETYPOS
|
||||
ADC #16
|
||||
STA >0+0
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK
|
||||
BYT 26
|
||||
^0 BYT 0,3,9,0
|
||||
RTS
|
||||
;
|
||||
; Draw arrow
|
||||
;
|
||||
CRARROW1 JSR GETYPOS
|
||||
ADC #16
|
||||
STA >0+0
|
||||
JSR PICDRAW
|
||||
BYT 26
|
||||
^0 BYT 0,3,9
|
||||
HEX 810E8238826001C207C21FC207816001
|
||||
HEX 8138820E00
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; LOOKUP TABLES....
|
||||
;
|
||||
CLEN = 11*52
|
||||
;
|
||||
C = CREATURS+1
|
||||
;
|
||||
; Address of each piece
|
||||
;
|
||||
CRADR ADR C+0*CLEN
|
||||
ADR C+1*CLEN
|
||||
ADR C+2*CLEN
|
||||
ADR C+3*CLEN
|
||||
ADR C+4*CLEN
|
||||
ADR C+5*CLEN
|
||||
ADR C+6*CLEN
|
||||
ADR C+7*CLEN
|
||||
ADR C+8*CLEN
|
||||
ADR C+9*CLEN
|
||||
ADR C+10*CLEN
|
||||
;-----------
|
||||
;
|
||||
; Offsets for each of the 3 parts
|
||||
;
|
||||
CROFF1 = 0
|
||||
CROFF2 = 11*CRPART1
|
||||
CROFF3 = 11*CRPART1+CRPART2
|
||||
;
|
||||
CROFFSTL BYT CROFF1,CROFF2,CROFF3
|
||||
CROFFSTH HBY CROFF1,CROFF2,CROFF3
|
||||
;
|
||||
; Length of each part
|
||||
;
|
||||
CRLENGTH BYT 11*CRPART1
|
||||
BYT 11*CRPART2
|
||||
BYT 11*CRPART3
|
||||
;-----------
|
||||
;
|
||||
; Y position for each part
|
||||
;
|
||||
GETYPOS LDY PART
|
||||
LDA YPOS,Y
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
YPOS BYT YPOS1,YPOS2,YPOS3
|
||||
;-----------
|
||||
;
|
||||
; DATA
|
||||
;
|
||||
PART HEX 00
|
||||
PART1 BRK
|
||||
PART2 BRK
|
||||
PART3 BRK
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "GREDIT,S4",ORG
|
||||
;
|
||||
ICL "S:COMMONEDIT"
|
|
@ -0,0 +1,663 @@
|
|||
NLS
|
||||
TTL "S:SUPPGET"
|
||||
NOG
|
||||
ORG = $4000
|
||||
;
|
||||
SWAPRAM = $2C0
|
||||
;
|
||||
; 02/10/85
|
||||
; 09/09/85 last mod
|
||||
;
|
||||
; Routine that sits in RAMcard and
|
||||
; moves itself down to $4000 when
|
||||
; it is used.
|
||||
;
|
||||
; Constants:
|
||||
;
|
||||
MAXFLEN = 15
|
||||
;
|
||||
ESC = 27
|
||||
;
|
||||
; Zero page
|
||||
;
|
||||
PRLO EPZ $3A
|
||||
PRHI EPZ $3B
|
||||
LOADLO EPZ $FA
|
||||
LOADHI EPZ $FB
|
||||
TMP0 EPZ $FC
|
||||
TMP1 EPZ $FD
|
||||
TMP2 EPZ $FE
|
||||
TMP3 EPZ $FF
|
||||
;
|
||||
TMPLO EPZ TMP0
|
||||
TMPHI EPZ TMP1
|
||||
;
|
||||
; Existing routines:
|
||||
;
|
||||
DATADRIV = $95F4
|
||||
MENUSEL = $95F5
|
||||
;
|
||||
SOUND = $6FCC
|
||||
;
|
||||
BLOAD = $0809
|
||||
PSDQ = $7019
|
||||
ANYKEY = $8005
|
||||
CATERR = $8008
|
||||
STRPUT = $8E06
|
||||
RTOS = $8E09
|
||||
STRGET = $8E12
|
||||
STRGETPM = $8E15
|
||||
;
|
||||
STROUT = $8A00
|
||||
SPARM = STROUT+3
|
||||
PRINBUFF = $BB00
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
JSR SETTYPE
|
||||
;
|
||||
; Access normal catalog
|
||||
;
|
||||
LDA #0
|
||||
STA $B00D
|
||||
LDA DATADRIV
|
||||
STA $AA68
|
||||
STA $B7EA
|
||||
ORA #'0'
|
||||
CMP #'1'
|
||||
BNE *+4
|
||||
LDA #' '
|
||||
STA DRIVENUM
|
||||
;
|
||||
MAINLOOP JSR CLS
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#52
|
||||
BYT 'CHOOSE A '
|
||||
.DA #PRSTR,TXTTYPE
|
||||
BYT ':',CR
|
||||
;
|
||||
BYT PRLEFT
|
||||
.DA #PRLOC,15,#92
|
||||
BYT 'PLACE DATA DISK IN DRIVE '
|
||||
DRIVENUM BYT '2',CR,CR,CR
|
||||
BYT 'TYPE IN NAME OF '
|
||||
.DA #PRSTR,TXTTYPE
|
||||
BYT ' OR',CR
|
||||
BYT 'PRESS <RETURN> FOR '
|
||||
.DA #PRSTR,TXTTYPE
|
||||
BYT ' LIST',CR,CR
|
||||
BYT '>',NOCR,0
|
||||
;
|
||||
JSR INPUTNAM
|
||||
;
|
||||
; <ESC> pressed?
|
||||
;
|
||||
LDA $C000
|
||||
STA $83FF
|
||||
BCS QUIT
|
||||
;
|
||||
; Make sure that data disk is
|
||||
; in the drive.
|
||||
;
|
||||
JSR PSDQ
|
||||
BNE >0
|
||||
;
|
||||
JSR CLS
|
||||
;
|
||||
LDA NAMEBUFF
|
||||
BEQ CATALOG
|
||||
;
|
||||
JSR LOADFILE
|
||||
BCC QUIT
|
||||
^0 JMP MAINLOOP
|
||||
;
|
||||
QUIT LDA #1
|
||||
STA $AA68
|
||||
JSR CLS
|
||||
JMP SWAPRAM
|
||||
;-----------
|
||||
;
|
||||
; CATALOG disk
|
||||
;
|
||||
CATALOG JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#20
|
||||
BYT 'LIST OF '
|
||||
.DA #PRSTR,TXTTYPE
|
||||
BYT 'S ON THIS DISK:',CR,0
|
||||
;
|
||||
LDA #$FF
|
||||
STA CATPAGE
|
||||
STA CATCOUNT
|
||||
JSR CATINIT
|
||||
;
|
||||
^0 INC CATCOUNT
|
||||
JSR CATFILE
|
||||
BCS CATDONE
|
||||
STA CATFLMOD
|
||||
STY CATFLMOD+1
|
||||
INC CATPAGE
|
||||
LDA CATPAGE
|
||||
EOR #15
|
||||
BNE >1
|
||||
STA CATPAGE
|
||||
JSR ANYKEY
|
||||
AND #$7F
|
||||
CMP #ESC
|
||||
BEQ CATDONE2
|
||||
JSR CLS2
|
||||
;
|
||||
^1 LDA #00
|
||||
CATPAGE = *-1
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC #36
|
||||
STA CATYMOD
|
||||
JSR PRINT
|
||||
BYT PRLEFT
|
||||
.DA #PRLOC,64
|
||||
CATYMOD HEX FF
|
||||
.DA #PRSTR
|
||||
CATFLMOD ADR $FFFF
|
||||
BYT CR,0
|
||||
JMP <0
|
||||
;
|
||||
CATDONE LDA #00
|
||||
BNE >0
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#64
|
||||
BYT 'NONE',CR,0
|
||||
;
|
||||
^0 JSR ANYKEY
|
||||
CATDONE2 JMP MAINLOOP
|
||||
;
|
||||
CATCOUNT = CATDONE+1
|
||||
;-----------
|
||||
;
|
||||
; Input file name
|
||||
;
|
||||
INPUTNAM LDX #INPUTNM2
|
||||
LDY /INPUTNM2
|
||||
LDA #MAXFLEN
|
||||
STX STRGETPM
|
||||
STY STRGETPM+1
|
||||
STA STRGETPM+2
|
||||
LDA #0
|
||||
STA NAMEBUFF
|
||||
JMP STRGET
|
||||
;
|
||||
INPUTNM2 HEX 0200
|
||||
ADR 27
|
||||
ADR 140
|
||||
HEX 000200
|
||||
ADR NAMEBUFF
|
||||
HEX 02
|
||||
;-----------
|
||||
;
|
||||
; Load in file
|
||||
;
|
||||
LOADFILE LDY #MAXFLEN
|
||||
LDA #' '
|
||||
^0 DEY
|
||||
STA FILENAME+5,Y
|
||||
BNE <0
|
||||
;
|
||||
^1 LDA NAMEBUFF,Y
|
||||
BEQ >2
|
||||
STA FILENAME+5,Y
|
||||
INY
|
||||
BNE <1
|
||||
;
|
||||
^2 LDX #FILENAME
|
||||
LDY /FILENAME
|
||||
JSR BLOAD
|
||||
BNE ERROR
|
||||
;
|
||||
; If FONT, then transfer info
|
||||
; to $816-$821
|
||||
;
|
||||
LDA #00
|
||||
TYPE = *-1
|
||||
BNE >5
|
||||
;
|
||||
; Turn off hi bits (done flags)
|
||||
;
|
||||
BIT $C083
|
||||
BIT $C083
|
||||
LDY #$00+$0C
|
||||
^3 LDA (LOADLO),Y
|
||||
AND #$7F
|
||||
STA (LOADLO),Y
|
||||
INY
|
||||
CPY #$3B+$0C
|
||||
BLT <3
|
||||
;
|
||||
; Fix "@" pointers in font
|
||||
;
|
||||
LDY #$00+$2C
|
||||
LDA #88
|
||||
STA (LOADLO),Y
|
||||
LDY #$3B+$2C
|
||||
LDA #52
|
||||
STA (LOADLO),Y
|
||||
LDY #$76+$2C
|
||||
LDA #$00
|
||||
STA (LOADLO),Y
|
||||
LDY #$B1+$2C
|
||||
LDA #$58
|
||||
STA (LOADLO),Y
|
||||
;
|
||||
LDY #$0B
|
||||
^4 LDA (LOADLO),Y
|
||||
STA $816,Y
|
||||
DEY
|
||||
BPL <4
|
||||
LDA $C082
|
||||
;
|
||||
^5 CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Handle DOS errors. Only handles
|
||||
;
|
||||
; FILE NOT FOUND and I/O ERROR!
|
||||
;
|
||||
ERROR CMP #6
|
||||
BEQ >0
|
||||
;
|
||||
; I/O error message
|
||||
;
|
||||
JSR $A316
|
||||
JSR CATERR
|
||||
SEC
|
||||
RTS
|
||||
;
|
||||
; File not found message
|
||||
;
|
||||
^0 JSR CLS
|
||||
JSR SOUND
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#48
|
||||
BYT 'CANNOT FIND',CR,CR
|
||||
.DA #PRSTR,NAMEBUFF,#CR,#CR
|
||||
BYT 'ON THIS DISK',CR,0
|
||||
;
|
||||
^1 JSR ANYKEY
|
||||
SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; PRINT routine
|
||||
;
|
||||
PRLOC = 1
|
||||
PRSTR = 2
|
||||
PRLEFT = 3
|
||||
PRCNTR = 4
|
||||
CR = 5
|
||||
NOCR = 6
|
||||
;
|
||||
; WARNING!!! the "CR" defined here is
|
||||
; for PRINT purposes only, as you can
|
||||
; see, it is 5, not the normal 13!
|
||||
;
|
||||
PRINT PLA
|
||||
STA PRLO
|
||||
PLA
|
||||
STA PRHI
|
||||
;
|
||||
LDA #2
|
||||
STA SPARM
|
||||
STA SPARM+7
|
||||
;
|
||||
PRINT1 LDX #0
|
||||
PRINT2 JSR PRINTGET
|
||||
CMP #' '
|
||||
BLT PRINT3
|
||||
STA PRINBUFF,X
|
||||
INX
|
||||
BNE PRINT2
|
||||
;
|
||||
PRINT3 ASL
|
||||
TAY
|
||||
LDA PRINT5,Y
|
||||
STA PRINT4+1
|
||||
LDA PRINT5+1,Y
|
||||
STA PRINT4+2
|
||||
CLC
|
||||
PRINT4 JSR $FFFF
|
||||
BCC PRINT2
|
||||
BCS PRINT1
|
||||
;
|
||||
PRINT5 ADR PRZZDONE
|
||||
ADR PRZZLOC
|
||||
ADR PRZZSTR
|
||||
ADR PRZZLEFT
|
||||
ADR PRZZCNTR
|
||||
ADR PRZZCR
|
||||
ADR PRZZNOCR
|
||||
;-0-
|
||||
PRZZDONE PLA
|
||||
PLA
|
||||
JSR PRINTGET
|
||||
JMP (PRLO)
|
||||
;-1-
|
||||
PRZZLOC JSR PRINTGET
|
||||
STA SPARM+2
|
||||
STA PRNTXLO
|
||||
JSR PRINTGET
|
||||
STA SPARM+3
|
||||
STA PRNTXHI
|
||||
JSR PRINTGET
|
||||
STA SPARM+4
|
||||
RTS
|
||||
;-2-
|
||||
PRZZSTR JSR PRINTGET
|
||||
STA >0+1
|
||||
JSR PRINTGET
|
||||
STA >0+2
|
||||
LDY #0
|
||||
^0 LDA $FFFF,Y
|
||||
BEQ >2
|
||||
CMP #' '
|
||||
BLT >1
|
||||
STA PRINBUFF,X
|
||||
INX
|
||||
^1 INY
|
||||
BNE <0
|
||||
^2 CLC
|
||||
RTS
|
||||
;-3-
|
||||
PRZZLEFT LDA #0
|
||||
HEX 2C
|
||||
;-4-
|
||||
PRZZCNTR LDA #2
|
||||
STA SPARM+1
|
||||
RTS
|
||||
;-5-
|
||||
PRZZCR JSR PRZZNOCR
|
||||
LDY #00
|
||||
PRNTXLO = *-1
|
||||
LDA #00
|
||||
PRNTXHI = *-1
|
||||
STY SPARM+2
|
||||
STA SPARM+3
|
||||
LDA SPARM+4
|
||||
CLC
|
||||
ADC #8
|
||||
STA SPARM+4
|
||||
SEC
|
||||
RTS
|
||||
;-6-
|
||||
PRZZNOCR LDA #0
|
||||
STA PRINBUFF,X
|
||||
LDY #PRINBUFF
|
||||
LDA /PRINBUFF
|
||||
STY SPARM+9
|
||||
STA SPARM+10
|
||||
JSR STROUT
|
||||
SEC
|
||||
RTS
|
||||
;---
|
||||
PRINTGET INC PRLO
|
||||
BNE >0
|
||||
INC PRHI
|
||||
^0 LDY #0
|
||||
LDA (PRLO),Y
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear screen routines
|
||||
;
|
||||
CLSDATA BYT 1,17,38,165
|
||||
BYT 1,28,38,154
|
||||
;
|
||||
CLS LDX #3
|
||||
HEX 2C
|
||||
CLS2 LDX #7
|
||||
LDY #3
|
||||
^0 LDA CLSDATA,X
|
||||
STA RTOS+3,Y
|
||||
DEX
|
||||
DEY
|
||||
BPL <0
|
||||
LDA #1
|
||||
JMP RTOS
|
||||
;-----------
|
||||
;
|
||||
; Given A=TYPE (0:font, 1:border)
|
||||
; initialize all the type variables
|
||||
; text, load address, etc...
|
||||
;
|
||||
SETTRAM BYT $81,$89
|
||||
SETTTYP BYT TXTYPE0-TXTYPES
|
||||
BYT TXTYPE1-TXTYPES
|
||||
;
|
||||
; Text type and load addresses
|
||||
;
|
||||
TXTYPES:
|
||||
TXTYPE0 BYT 'FONT',0
|
||||
HEX D0E8
|
||||
;
|
||||
TXTYPE1 BYT 'BORDER',0
|
||||
HEX DEDF
|
||||
;---
|
||||
;
|
||||
; First set 16k RAMcard
|
||||
;
|
||||
SETTYPE STA TYPE
|
||||
TAY
|
||||
LDX SETTRAM,Y
|
||||
LDA $C000,X
|
||||
LDA $C000,X
|
||||
LDX SETTTYP,Y
|
||||
;
|
||||
LDY #0
|
||||
;
|
||||
; Set type text
|
||||
;
|
||||
^0 LDA TXTYPES,X
|
||||
STA TXTTYPE,Y
|
||||
BEQ >2
|
||||
;
|
||||
; Set file prefix
|
||||
;
|
||||
CPY #4
|
||||
BGE >1
|
||||
STA FILENAME,Y
|
||||
;
|
||||
^1 INX
|
||||
INY
|
||||
BNE <0
|
||||
;---
|
||||
;
|
||||
; Check page byte
|
||||
;
|
||||
; If 2 (SIGN) or 4 (BANNER) then
|
||||
; skip page check.
|
||||
; If 1 (GC) then don't invert
|
||||
; If 3 (LH) then invert
|
||||
;
|
||||
^2 LDA MENUSEL
|
||||
LSR
|
||||
BCC >1
|
||||
EOR $8300
|
||||
CMP #1
|
||||
BNE >1
|
||||
INX
|
||||
;
|
||||
^1 LDA TXTYPES+1,X
|
||||
LDY #0
|
||||
STY LOADLO
|
||||
STA LOADHI
|
||||
;
|
||||
; Store text equivalent in FILEADR
|
||||
;
|
||||
PHA
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
JSR >2
|
||||
STA FILEADR
|
||||
PLA
|
||||
;
|
||||
^2 AND #$0F
|
||||
ORA #'0'
|
||||
CMP #'9'+1
|
||||
BLT >3
|
||||
ADC #6
|
||||
^3 STA FILEADR+1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Filename used during loading
|
||||
;
|
||||
FILENAME ASC 'XXXX.'
|
||||
DFS MAXFLEN,0
|
||||
ASC ',A$'
|
||||
FILEADR ASC 'XX'
|
||||
ASC '00'
|
||||
HEX 00
|
||||
;-----------
|
||||
;
|
||||
; Read CATALOG routine
|
||||
;
|
||||
; JSR CATINIT to initialize
|
||||
;
|
||||
; JSR CATFILE to get a filename
|
||||
;
|
||||
; SEC=no more files
|
||||
;
|
||||
; CLC=found a file
|
||||
; A=lo byte\
|
||||
; Y=hi byte-address of text
|
||||
;
|
||||
CATINIT LDA #0
|
||||
STA TMP2
|
||||
LDY #17
|
||||
JSR READSECT
|
||||
CATEND SEC
|
||||
RTS
|
||||
;
|
||||
CATFILE LDA TMPLO
|
||||
CLC
|
||||
ADC #$23
|
||||
STA TMPLO
|
||||
BCC >0
|
||||
INC TMPHI
|
||||
^0 DEC TMP2
|
||||
BPL >1
|
||||
;
|
||||
LDY SECTBUFF+1
|
||||
LDA SECTBUFF+2
|
||||
BEQ CATEND
|
||||
JSR READSECT
|
||||
LDY #SECTBUFF-24
|
||||
LDA /SECTBUFF-24
|
||||
STY TMPLO
|
||||
STA TMPHI
|
||||
LDA #7
|
||||
STA TMP2
|
||||
BNE CATFILE
|
||||
;
|
||||
; Check filename
|
||||
;
|
||||
; Deleted? end of cat?
|
||||
;
|
||||
^1 LDY #0
|
||||
LDA (TMPLO),Y
|
||||
BMI CATFILE
|
||||
BEQ CATEND
|
||||
;
|
||||
; Binary file?
|
||||
;
|
||||
INY
|
||||
INY
|
||||
LDA (TMPLO),Y
|
||||
AND #$7F
|
||||
CMP #4
|
||||
BNE CATFILE
|
||||
;
|
||||
LDX #0
|
||||
^0 INY
|
||||
LDA (TMPLO),Y
|
||||
AND #$7F
|
||||
CMP FILENAME,X
|
||||
BNE CATFILE
|
||||
INX
|
||||
CPX #5
|
||||
BLT <0
|
||||
;
|
||||
LDY #$20
|
||||
^1 LDA (TMPLO),Y
|
||||
EOR #$A0
|
||||
BNE >2
|
||||
STA (TMPLO),Y
|
||||
DEY
|
||||
BPL <1
|
||||
;
|
||||
^2 LDA (TMPLO),Y
|
||||
AND #$7F
|
||||
STA (TMPLO),Y
|
||||
DEY
|
||||
BNE <2
|
||||
;
|
||||
LDA TMPLO
|
||||
LDY TMPHI
|
||||
CLC
|
||||
ADC #8
|
||||
BCC >3
|
||||
INY
|
||||
^3 CLC
|
||||
RTS
|
||||
;---
|
||||
IOB = $B7E8
|
||||
;
|
||||
; Read a sector
|
||||
; A=sector, Y=track
|
||||
;
|
||||
READSECT STA IOB+5
|
||||
STY IOB+4
|
||||
LDA #0
|
||||
STA IOB+3
|
||||
LDY #SECTBUFF
|
||||
LDA /SECTBUFF
|
||||
STY IOB+8
|
||||
STA IOB+9
|
||||
LDA #1
|
||||
STA IOB+12
|
||||
JSR $3E3
|
||||
JSR $3D9
|
||||
BCS >0
|
||||
RTS
|
||||
;
|
||||
^0 PLA
|
||||
PLA
|
||||
PLA
|
||||
PLA
|
||||
LDA #8
|
||||
JSR ERROR
|
||||
JMP MAINLOOP
|
||||
;-----------
|
||||
;
|
||||
; Don't need to save all the storage
|
||||
; areas
|
||||
;
|
||||
USR "O:SUPPGET",ORG
|
||||
;-----------
|
||||
TXTTYPE BYT 'BORDER',0
|
||||
;
|
||||
; Filename that user enters
|
||||
;
|
||||
NAMEBUFF:
|
||||
SECTBUFF:
|
||||
END:
|
||||
;
|
||||
;
|
||||
;
|
||||
END
|
|
@ -0,0 +1,181 @@
|
|||
NLS
|
||||
TTL "S:SUPPHEADER"
|
||||
;
|
||||
ORG = $6300
|
||||
;
|
||||
; FIXLOC needs $3C+$1F
|
||||
; Make sure it doesn't walk over
|
||||
; the RESET routine at $280
|
||||
;
|
||||
SPECLEN = $3C+$1F
|
||||
FIXLOC = $280-SPECLEN
|
||||
;
|
||||
; First time through SUPP file header
|
||||
;
|
||||
CLS1 = $B53
|
||||
;
|
||||
DATADRIV = $95F4
|
||||
CHECKPS1 = $7815
|
||||
CHECKPS2 = $77F9
|
||||
;
|
||||
TMP0 EPZ $3A
|
||||
TMP1 EPZ $3B
|
||||
TMP2 EPZ $3C
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
PHA
|
||||
;
|
||||
; Move program to RAMcard
|
||||
;
|
||||
BIT $C08B
|
||||
BIT $C08B
|
||||
LDX #8
|
||||
LDY #0
|
||||
^0 LDA PROGRAM,Y
|
||||
^1 STA $D000,Y
|
||||
INY
|
||||
BNE <0
|
||||
INC <0+2
|
||||
INC <1+2
|
||||
DEX
|
||||
BNE <0
|
||||
;
|
||||
; Make patches to Print Shop
|
||||
;
|
||||
^2 LDA PATCHES,X
|
||||
BEQ >5
|
||||
LDY #0
|
||||
^3 LDA PATCHES,X
|
||||
INX
|
||||
STA TMP0,Y
|
||||
INY
|
||||
CPY #3
|
||||
BLT <3
|
||||
LDY #0
|
||||
^4 LDA PATCHES,X
|
||||
INX
|
||||
STA (TMP1),Y
|
||||
INY
|
||||
DEC TMP0
|
||||
BNE <4
|
||||
BEQ <2
|
||||
;
|
||||
^5 PLA
|
||||
JSR $D003
|
||||
;
|
||||
; Now reload MENULIB
|
||||
;
|
||||
LDY #FIXLEN-1
|
||||
^6 LDA FIXIT,Y
|
||||
STA FIXLOC,Y
|
||||
DEY
|
||||
BPL <6
|
||||
JMP FIXLOC
|
||||
;-----------
|
||||
PATCHES:
|
||||
BYT 9
|
||||
ADR $B8B
|
||||
BIT $C08B
|
||||
BIT $C08B
|
||||
JMP $D003
|
||||
;
|
||||
BYT 28
|
||||
ADR $88D0
|
||||
SEC
|
||||
ROR $4E
|
||||
SEC
|
||||
SBC #$20
|
||||
TAX
|
||||
LDA $6000,X
|
||||
CMP $4E
|
||||
BGE *+4
|
||||
STA $4E
|
||||
JMP $8C76
|
||||
LDA $4E
|
||||
CLC
|
||||
ADC $8A0A
|
||||
STA $D9
|
||||
RTS
|
||||
;
|
||||
BYT 2
|
||||
ADR $8C10
|
||||
ADR $88D0
|
||||
;
|
||||
BYT 2
|
||||
ADR $8C28
|
||||
ADR $88D3
|
||||
;
|
||||
BYT 4
|
||||
ADR $8C3F
|
||||
JSR $88E3
|
||||
NOP
|
||||
;
|
||||
BRK
|
||||
;-----------
|
||||
;
|
||||
; Remember MENULIB variables, then
|
||||
; reload it and restore the vars.
|
||||
;
|
||||
FIXIT:
|
||||
PHS FIXLOC
|
||||
;
|
||||
; Save vars and check for PS disk
|
||||
;
|
||||
CLC
|
||||
JSR SWAP7000
|
||||
FIXIT1 JSR FIXIT2
|
||||
;
|
||||
; Load MENULIB
|
||||
;
|
||||
LDX #$27
|
||||
LDY #$0B
|
||||
JSR $CD2
|
||||
BNE FIXIT1
|
||||
;
|
||||
; Restore vars and exit
|
||||
;
|
||||
SEC
|
||||
JSR SWAP7000
|
||||
PLA
|
||||
PLA
|
||||
JMP CLS1
|
||||
;---
|
||||
;
|
||||
; Make sure that PS disk in drive.
|
||||
;
|
||||
FIXIT2 LDA DATADRIV
|
||||
CMP #2
|
||||
BEQ FIXIT3
|
||||
JMP CHECKPS1
|
||||
FIXIT3 JMP CHECKPS2
|
||||
;---
|
||||
;
|
||||
; SEC:copy save area to $7000
|
||||
; CLC:copy $7000 to save area
|
||||
;
|
||||
SWAP7000 LDY #$1E
|
||||
;
|
||||
SWAP7001 BCS SWAP7002
|
||||
LDA $7000,Y
|
||||
STA SWAPSAVE,Y
|
||||
BCC SWAP7003
|
||||
;
|
||||
SWAP7002 LDA SWAPSAVE,Y
|
||||
STA $7000,Y
|
||||
;
|
||||
SWAP7003 DEY
|
||||
BPL SWAP7001
|
||||
RTS
|
||||
SWAPSAVE:
|
||||
DPH
|
||||
FIXLEN = *-FIXIT
|
||||
;-----------
|
||||
PROGRAM:
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "O:SUPPHEADER",ORG
|
||||
END
|
|
@ -0,0 +1,874 @@
|
|||
6300- 48 PHA
|
||||
6301- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
6304- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
6307- A2 08 LDX #$08
|
||||
6309- A0 00 LDY #$00
|
||||
630B- B9 CA 63 LDA $63CA,Y
|
||||
630E- 99 00 D0 STA $D000,Y
|
||||
6311- C8 INY
|
||||
6312- D0 F7 BNE $630B
|
||||
6314- EE 0D 63 INC $630D
|
||||
6317- EE 10 63 INC $6310
|
||||
631A- CA DEX
|
||||
631B- D0 EE BNE $630B
|
||||
631D- BD 51 63 LDA $6351,X
|
||||
6320- F0 1D BEQ $633F
|
||||
6322- A0 00 LDY #$00
|
||||
6324- BD 51 63 LDA $6351,X
|
||||
6327- E8 INX
|
||||
6328- 99 3A 00 STA $003A,Y
|
||||
632B- C8 INY
|
||||
632C- C0 03 CPY #$03
|
||||
632E- 90 F4 BCC $6324
|
||||
6330- A0 00 LDY #$00
|
||||
6332- BD 51 63 LDA $6351,X
|
||||
6335- E8 INX
|
||||
6336- 91 3B STA ($3B),Y
|
||||
6338- C8 INY
|
||||
6339- C6 3A DEC $3A
|
||||
633B- D0 F5 BNE $6332
|
||||
633D- F0 DE BEQ $631D
|
||||
633F- 68 PLA
|
||||
6340- 20 03 D0 JSR $D003
|
||||
6343- A0 3B LDY #$3B
|
||||
6345- B9 8E 63 LDA $638E,Y
|
||||
6348- 99 25 02 STA $0225,Y
|
||||
634B- 88 DEY
|
||||
634C- 10 F7 BPL $6345
|
||||
634E- 4C 25 02 JMP $0225
|
||||
6351- 09 8B ORA #$8B
|
||||
6353- 0B ???
|
||||
6354- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
6357- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
635A- 4C 03 D0 JMP $D003
|
||||
635D- 1C D0 88 TRB $88D0
|
||||
6360- 38 SEC
|
||||
6361- 66 4E ROR $4E
|
||||
6363- 38 SEC
|
||||
6364- E9 20 SBC #$20
|
||||
6366- AA TAX
|
||||
6367- BD 00 60 LDA $6000,X
|
||||
636A- C5 4E CMP $4E
|
||||
636C- B0 02 BCS $6370
|
||||
636E- 85 4E STA $4E
|
||||
6370- 4C 76 8C JMP $8C76
|
||||
6373- A5 4E LDA $4E
|
||||
6375- 18 CLC
|
||||
6376- 6D 0A 8A ADC $8A0A
|
||||
6379- 85 D9 STA $D9
|
||||
637B- 60 RTS
|
||||
637C- 02 ???
|
||||
637D- 10 8C BPL $630B
|
||||
637F- D0 88 BNE $6309
|
||||
6381- 02 ???
|
||||
6382- 28 PLP
|
||||
6383- 8C D3 88 STY $88D3
|
||||
6386- 04 3F TSB $3F
|
||||
6388- 8C 20 E3 STY $E320
|
||||
638B- 88 DEY
|
||||
638C- EA NOP
|
||||
638D- 00 BRK
|
||||
638E- 18 CLC
|
||||
638F- 20 4B 02 JSR $024B
|
||||
6392- 20 3E 02 JSR $023E
|
||||
6395- A2 27 LDX #$27
|
||||
6397- A0 0B LDY #$0B
|
||||
6399- 20 D2 0C JSR $0CD2
|
||||
639C- D0 F4 BNE $6392
|
||||
639E- 38 SEC
|
||||
639F- 20 4B 02 JSR $024B
|
||||
63A2- 68 PLA
|
||||
63A3- 68 PLA
|
||||
63A4- 4C 53 0B JMP $0B53
|
||||
63A7- AD F4 95 LDA $95F4
|
||||
63AA- C9 02 CMP #$02
|
||||
63AC- F0 03 BEQ $63B1
|
||||
63AE- 4C 15 78 JMP $7815
|
||||
63B1- 4C F9 77 JMP $77F9
|
||||
63B4- A0 1E LDY #$1E
|
||||
63B6- B0 08 BCS $63C0
|
||||
63B8- B9 00 70 LDA $7000,Y
|
||||
63BB- 99 61 02 STA $0261,Y
|
||||
63BE- 90 06 BCC $63C6
|
||||
63C0- B9 61 02 LDA $0261,Y
|
||||
63C3- 99 00 70 STA $7000,Y
|
||||
63C6- 88 DEY
|
||||
63C7- 10 ED BPL $63B6
|
||||
63C9- 60 RTS
|
||||
63CA- 4C 4B D0 JMP $D04B
|
||||
63CD- AA TAX
|
||||
63CE- A0 3F LDY #$3F
|
||||
63D0- B9 19 D0 LDA $D019,Y
|
||||
63D3- 99 C0 02 STA $02C0,Y
|
||||
63D6- 88 DEY
|
||||
63D7- 10 F7 BPL $63D0
|
||||
63D9- A9 3F LDA #$3F
|
||||
63DB- 48 PHA
|
||||
63DC- A9 FF LDA #$FF
|
||||
63DE- 48 PHA
|
||||
63DF- 8A TXA
|
||||
63E0- 4C C0 02 JMP $02C0
|
||||
63E3- 48 PHA
|
||||
63E4- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
63E7- 2C 8B C0 BIT $C08B rw:LCBANK1
|
||||
63EA- A2 08 LDX #$08
|
||||
63EC- A0 07 LDY #$07
|
||||
63EE- A9 D2 LDA #$D2
|
||||
63F0- 84 3A STY $3A
|
||||
63F2- 85 3B STA $3B
|
||||
63F4- A0 00 LDY #$00
|
||||
63F6- A9 40 LDA #$40
|
||||
63F8- 84 3C STY $3C
|
||||
63FA- 85 3D STA $3D
|
||||
63FC- B1 3A LDA ($3A),Y
|
||||
63FE- 48 PHA
|
||||
63FF- B1 3C LDA ($3C),Y
|
||||
6401- 91 3A STA ($3A),Y
|
||||
6403- 68 PLA
|
||||
6404- 91 3C STA ($3C),Y
|
||||
6406- C8 INY
|
||||
6407- D0 F3 BNE $63FC
|
||||
6409- E6 3B INC $3B
|
||||
640B- E6 3D INC $3D
|
||||
640D- CA DEX
|
||||
640E- D0 EC BNE $63FC
|
||||
6410- 2C 81 C0 BIT $C081 rw:ROMIN
|
||||
6413- 68 PLA
|
||||
6414- 60 RTS
|
||||
6415- A9 00 LDA #$00
|
||||
6417- A0 DE LDY #$DE
|
||||
6419- AE 00 83 LDX $8300
|
||||
641C- E0 01 CPX #$01
|
||||
641E- D0 01 BNE $6421
|
||||
6420- C8 INY
|
||||
6421- 85 86 STA $86
|
||||
6423- 84 87 STY $87
|
||||
6425- 20 64 D1 JSR $D164
|
||||
6428- A5 88 LDA $88
|
||||
642A- 0A ASL
|
||||
642B- 69 20 ADC #$20
|
||||
642D- 85 83 STA $83
|
||||
642F- A9 00 LDA #$00
|
||||
6431- 85 82 STA $82
|
||||
6433- A0 24 LDY #$24
|
||||
6435- 91 82 STA ($82),Y
|
||||
6437- 88 DEY
|
||||
6438- 10 FB BPL $6435
|
||||
643A- A9 25 LDA #$25
|
||||
643C- 85 82 STA $82
|
||||
643E- A6 88 LDX $88
|
||||
6440- E4 89 CPX $89
|
||||
6442- F0 2C BEQ $6470
|
||||
6444- CA DEX
|
||||
6445- E4 89 CPX $89
|
||||
6447- F0 27 BEQ $6470
|
||||
6449- A2 02 LDX #$02
|
||||
644B- A9 00 LDA #$00
|
||||
644D- 20 31 D1 JSR $D131
|
||||
6450- A9 00 LDA #$00
|
||||
6452- 20 DE D0 JSR $D0DE
|
||||
6455- A9 C3 LDA #$C3
|
||||
6457- 85 82 STA $82
|
||||
6459- E6 83 INC $83
|
||||
645B- A9 02 LDA #$02
|
||||
645D- 20 DE D0 JSR $D0DE
|
||||
6460- A0 0A LDY #$0A
|
||||
6462- A9 00 LDA #$00
|
||||
6464- 91 82 STA ($82),Y
|
||||
6466- 88 DEY
|
||||
6467- 10 FB BPL $6464
|
||||
6469- E6 88 INC $88
|
||||
646B- C6 8A DEC $8A
|
||||
646D- D0 B9 BNE $6428
|
||||
646F- 60 RTS
|
||||
6470- A9 01 LDA #$01
|
||||
6472- A6 89 LDX $89
|
||||
6474- E0 18 CPX #$18
|
||||
6476- F0 02 BEQ $647A
|
||||
6478- A9 00 LDA #$00
|
||||
647A- 85 3C STA $3C
|
||||
647C- A2 00 LDX #$00
|
||||
647E- A5 3C LDA $3C
|
||||
6480- 20 31 D1 JSR $D131
|
||||
6483- 20 DC D0 JSR $D0DC
|
||||
6486- A2 01 LDX #$01
|
||||
6488- A5 3C LDA $3C
|
||||
648A- 20 31 D1 JSR $D131
|
||||
648D- A2 11 LDX #$11
|
||||
648F- 20 DC D0 JSR $D0DC
|
||||
6492- CA DEX
|
||||
6493- D0 FA BNE $648F
|
||||
6495- E6 3C INC $3C
|
||||
6497- E6 3C INC $3C
|
||||
6499- A2 00 LDX #$00
|
||||
649B- A5 3C LDA $3C
|
||||
649D- 20 31 D1 JSR $D131
|
||||
64A0- 20 DC D0 JSR $D0DC
|
||||
64A3- 4C 96 D0 JMP $D096
|
||||
64A6- A5 3C LDA $3C
|
||||
64A8- A0 00 LDY #$00
|
||||
64AA- 84 3A STY $3A
|
||||
64AC- 31 86 AND ($86),Y
|
||||
64AE- 4A LSR
|
||||
64AF- 66 3D ROR $3D
|
||||
64B1- 4A LSR
|
||||
64B2- 90 02 BCC $64B6
|
||||
64B4- A0 16 LDY #$16
|
||||
64B6- 84 3B STY $3B
|
||||
64B8- A4 3A LDY $3A
|
||||
64BA- B1 84 LDA ($84),Y
|
||||
64BC- 24 3D BIT $3D
|
||||
64BE- 10 04 BPL $64C4
|
||||
64C0- A8 TAY
|
||||
64C1- B9 80 90 LDA $9080,Y
|
||||
64C4- A4 3B LDY $3B
|
||||
64C6- 31 82 AND ($82),Y
|
||||
64C8- 8D 0E D1 STA $D10E
|
||||
64CB- A4 3A LDY $3A
|
||||
64CD- B1 80 LDA ($80),Y
|
||||
64CF- 24 3D BIT $3D
|
||||
64D1- 10 04 BPL $64D7
|
||||
64D3- A8 TAY
|
||||
64D4- B9 80 90 LDA $9080,Y
|
||||
64D7- 09 00 ORA #$00
|
||||
64D9- A4 3B LDY $3B
|
||||
64DB- 91 82 STA ($82),Y
|
||||
64DD- B0 02 BCS $64E1
|
||||
64DF- C8 INY
|
||||
64E0- C8 INY
|
||||
64E1- E6 3A INC $3A
|
||||
64E3- 88 DEY
|
||||
64E4- 84 3B STY $3B
|
||||
64E6- A5 3A LDA $3A
|
||||
64E8- 49 17 EOR #$17
|
||||
64EA- D0 CC BNE $64B8
|
||||
64EC- A9 17 LDA #$17
|
||||
64EE- 18 CLC
|
||||
64EF- 65 82 ADC $82
|
||||
64F1- 85 82 STA $82
|
||||
64F3- 90 02 BCC $64F7
|
||||
64F5- E6 83 INC $83
|
||||
64F7- 60 RTS
|
||||
64F8- 04 34 TSB $34
|
||||
64FA- 64 A0 STZ $A0
|
||||
64FC- 00 BRK
|
||||
64FD- 31 86 AND ($86),Y
|
||||
64FF- 45 88 EOR $88
|
||||
6501- 4A LSR
|
||||
6502- B0 02 BCS $6506
|
||||
6504- A0 18 LDY #$18
|
||||
6506- A5 86 LDA $86
|
||||
6508- 85 80 STA $80
|
||||
650A- A5 87 LDA $87
|
||||
650C- 85 81 STA $81
|
||||
650E- 98 TYA
|
||||
650F- 18 CLC
|
||||
6510- 7D 2E D1 ADC $D12E,X
|
||||
6513- 8D 5B D1 STA $D15B
|
||||
6516- 18 CLC
|
||||
6517- 65 80 ADC $80
|
||||
6519- 85 80 STA $80
|
||||
651B- 90 02 BCC $651F
|
||||
651D- E6 81 INC $81
|
||||
651F- A9 00 LDA #$00
|
||||
6521- A0 BB LDY #$BB
|
||||
6523- 18 CLC
|
||||
6524- 69 00 ADC #$00
|
||||
6526- 85 84 STA $84
|
||||
6528- 90 01 BCC $652B
|
||||
652A- C8 INY
|
||||
652B- 84 85 STY $85
|
||||
652D- 60 RTS
|
||||
652E- 20 FC D1 JSR $D1FC
|
||||
6531- A0 00 LDY #$00
|
||||
6533- B1 86 LDA ($86),Y
|
||||
6535- 29 04 AND #$04
|
||||
6537- D0 01 BNE $653A
|
||||
6539- 60 RTS
|
||||
653A- A2 02 LDX #$02
|
||||
653C- A0 00 LDY #$00
|
||||
653E- 20 3C D1 JSR $D13C
|
||||
6541- 20 81 D1 JSR $D181
|
||||
6544- 20 CB D1 JSR $D1CB
|
||||
6547- CA DEX
|
||||
6548- 10 F2 BPL $653C
|
||||
654A- 60 RTS
|
||||
654B- E0 02 CPX #$02
|
||||
654D- F0 41 BEQ $6590
|
||||
654F- A0 2E LDY #$2E
|
||||
6551- 84 3B STY $3B
|
||||
6553- A0 16 LDY #$16
|
||||
6555- 84 3A STY $3A
|
||||
6557- A9 7F LDA #$7F
|
||||
6559- 85 3C STA $3C
|
||||
655B- 31 80 AND ($80),Y
|
||||
655D- F0 07 BEQ $6566
|
||||
655F- A5 3C LDA $3C
|
||||
6561- 0A ASL
|
||||
6562- 29 7F AND #$7F
|
||||
6564- 10 F3 BPL $6559
|
||||
6566- A5 3C LDA $3C
|
||||
6568- 91 84 STA ($84),Y
|
||||
656A- D0 04 BNE $6570
|
||||
656C- E0 00 CPX #$00
|
||||
656E- F0 20 BEQ $6590
|
||||
6570- C9 7F CMP #$7F
|
||||
6572- D0 15 BNE $6589
|
||||
6574- A9 7F LDA #$7F
|
||||
6576- A4 3B LDY $3B
|
||||
6578- 85 3C STA $3C
|
||||
657A- 31 80 AND ($80),Y
|
||||
657C- F0 07 BEQ $6585
|
||||
657E- A5 3C LDA $3C
|
||||
6580- 0A ASL
|
||||
6581- 29 7F AND #$7F
|
||||
6583- 10 F3 BPL $6578
|
||||
6585- A5 3C LDA $3C
|
||||
6587- 91 84 STA ($84),Y
|
||||
6589- C6 3B DEC $3B
|
||||
658B- A4 3A LDY $3A
|
||||
658D- 88 DEY
|
||||
658E- 10 C5 BPL $6555
|
||||
6590- 60 RTS
|
||||
6591- 31 84 AND ($84),Y
|
||||
6593- 29 FF AND #$FF
|
||||
6595- E0 01 CPX #$01
|
||||
6597- F0 F7 BEQ $6590
|
||||
6599- BD C7 D1 LDA $D1C7,X
|
||||
659C- 8D ED D1 STA $D1ED
|
||||
659F- BD C8 D1 LDA $D1C8,X
|
||||
65A2- 8D EE D1 STA $D1EE
|
||||
65A5- A0 2E LDY #$2E
|
||||
65A7- A9 7F LDA #$7F
|
||||
65A9- 85 3C STA $3C
|
||||
65AB- B1 80 LDA ($80),Y
|
||||
65AD- 25 3C AND $3C
|
||||
65AF- F0 04 BEQ $65B5
|
||||
65B1- 45 3C EOR $3C
|
||||
65B3- 85 3C STA $3C
|
||||
65B5- A5 3C LDA $3C
|
||||
65B7- 11 84 ORA ($84),Y
|
||||
65B9- 91 84 STA ($84),Y
|
||||
65BB- 88 DEY
|
||||
65BC- 30 07 BMI $65C5
|
||||
65BE- C0 17 CPY #$17
|
||||
65C0- D0 E9 BNE $65AB
|
||||
65C2- 88 DEY
|
||||
65C3- D0 E2 BNE $65A7
|
||||
65C5- 60 RTS
|
||||
65C6- A0 90 LDY #$90
|
||||
65C8- A9 00 LDA #$00
|
||||
65CA- 88 DEY
|
||||
65CB- 99 00 BB STA $BB00,Y
|
||||
65CE- D0 FA BNE $65CA
|
||||
65D0- 60 RTS
|
||||
65D1- 20 F3 42 JSR $42F3
|
||||
65D4- A9 00 LDA #$00
|
||||
65D6- 8D 0D B0 STA $B00D
|
||||
65D9- AD F4 95 LDA $95F4
|
||||
65DC- 8D 68 AA STA $AA68
|
||||
65DF- 8D EA B7 STA $B7EA
|
||||
65E2- 09 30 ORA #$30
|
||||
65E4- C9 31 CMP #$31
|
||||
65E6- D0 02 BNE $65EA
|
||||
65E8- A9 20 LDA #$20
|
||||
65EA- 8D 53 40 STA $4053
|
||||
65ED- 20 C9 42 JSR $42C9
|
||||
65F0- 20 FF 41 JSR $41FF
|
||||
65F3- 04 01 TSB $01
|
||||
65F5- 8C 00 34 STY $3400
|
||||
65F8- 43 ???
|
||||
65F9- 48 PHA
|
||||
65FA- 4F ???
|
||||
65FB- 4F ???
|
||||
65FC- 53 ???
|
||||
65FD- 45 20 EOR $20
|
||||
65FF- 41 20 EOR ($20,X)
|
||||
6601- 02 ???
|
||||
6602- 0C 44 3A TSB $3A44
|
||||
6605- 05 03 ORA $03
|
||||
6607- 01 0F ORA ($0F,X)
|
||||
6609- 00 BRK
|
||||
660A- 5C ???
|
||||
660B- 50 4C BVC $6659
|
||||
660D- 41 43 EOR ($43,X)
|
||||
660F- 45 20 EOR $20
|
||||
6611- 44 ???
|
||||
6612- 41 54 EOR ($54,X)
|
||||
6614- 41 20 EOR ($20,X)
|
||||
6616- 44 ???
|
||||
6617- 49 53 EOR #$53
|
||||
6619- 4B ???
|
||||
661A- 20 49 4E JSR $4E49
|
||||
661D- 20 44 52 JSR $5244
|
||||
6620- 49 56 EOR #$56
|
||||
6622- 45 20 EOR $20
|
||||
6624- 32 05 AND ($05)
|
||||
6626- 05 05 ORA $05
|
||||
6628- 54 ???
|
||||
6629- 59 50 45 EOR $4550,Y
|
||||
662C- 20 49 4E JSR $4E49
|
||||
662F- 20 4E 41 JSR $414E
|
||||
6632- 4D 45 20 EOR $2045
|
||||
6635- 4F ???
|
||||
6636- 46 20 LSR $20
|
||||
6638- 02 ???
|
||||
6639- 0C 44 20 TSB $2044
|
||||
663C- 4F ???
|
||||
663D- 52 05 EOR ($05)
|
||||
663F- 50 52 BVC $6693
|
||||
6641- 45 53 EOR $53
|
||||
6643- 53 ???
|
||||
6644- 20 3C 52 JSR $523C
|
||||
6647- 45 54 EOR $54
|
||||
6649- 55 52 EOR $52,X
|
||||
664B- 4E 3E 20 LSR $203E
|
||||
664E- 46 4F LSR $4F
|
||||
6650- 52 20 EOR ($20)
|
||||
6652- 02 ???
|
||||
6653- 0C 44 20 TSB $2044
|
||||
6656- 4C 49 53 JMP $5349
|
||||
6659- 54 ???
|
||||
665A- 05 05 ORA $05
|
||||
665C- 3E 06 00 ROL $0006,X
|
||||
665F- 20 41 41 JSR $4141
|
||||
6662- AD 00 C0 LDA $C000 r:KBD w:CLR80COL
|
||||
6665- 8D FF 83 STA $83FF
|
||||
6668- B0 15 BCS $667F
|
||||
666A- 20 19 70 JSR $7019
|
||||
666D- D0 0D BNE $667C
|
||||
666F- 20 C9 42 JSR $42C9
|
||||
6672- AD 13 44 LDA $4413
|
||||
6675- F0 13 BEQ $668A
|
||||
6677- 20 64 41 JSR $4164
|
||||
667A- 90 03 BCC $667F
|
||||
667C- 4C 1C 40 JMP $401C
|
||||
667F- A9 01 LDA #$01
|
||||
6681- 8D 68 AA STA $AA68
|
||||
6684- 20 C9 42 JSR $42C9
|
||||
6687- 4C C0 02 JMP $02C0
|
||||
668A- 20 FF 41 JSR $41FF
|
||||
668D- 04 01 TSB $01
|
||||
668F- 8C 00 14 STY $1400
|
||||
6692- 4C 49 53 JMP $5349
|
||||
6695- 54 ???
|
||||
6696- 20 4F 46 JSR $464F
|
||||
6699- 20 02 0C JSR $0C02
|
||||
669C- 44 ???
|
||||
669D- 53 ???
|
||||
669E- 20 4F 4E JSR $4E4F
|
||||
66A1- 20 54 48 JSR $4854
|
||||
66A4- 49 53 EOR #$53
|
||||
66A6- 20 44 49 JSR $4944
|
||||
66A9- 53 ???
|
||||
66AA- 4B ???
|
||||
66AB- 3A DEC
|
||||
66AC- 05 00 ORA $00
|
||||
66AE- A9 FF LDA #$FF
|
||||
66B0- 8D 10 41 STA $4110
|
||||
66B3- 8D 2A 41 STA $412A
|
||||
66B6- 20 65 43 JSR $4365
|
||||
66B9- EE 2A 41 INC $412A
|
||||
66BC- 20 70 43 JSR $4370
|
||||
66BF- B0 39 BCS $66FA
|
||||
66C1- 8D 22 41 STA $4122
|
||||
66C4- 8C 23 41 STY $4123
|
||||
66C7- EE 10 41 INC $4110
|
||||
66CA- AD 10 41 LDA $4110
|
||||
66CD- 49 0F EOR #$0F
|
||||
66CF- D0 0F BNE $66E0
|
||||
66D1- 8D 10 41 STA $4110
|
||||
66D4- 20 05 80 JSR $8005
|
||||
66D7- 29 7F AND #$7F
|
||||
66D9- C9 1B CMP #$1B
|
||||
66DB- F0 32 BEQ $670F
|
||||
66DD- 20 CC 42 JSR $42CC
|
||||
66E0- A9 00 LDA #$00
|
||||
66E2- 0A ASL
|
||||
66E3- 0A ASL
|
||||
66E4- 0A ASL
|
||||
66E5- 69 24 ADC #$24
|
||||
66E7- 8D 20 41 STA $4120
|
||||
66EA- 20 FF 41 JSR $41FF
|
||||
66ED- 03 ???
|
||||
66EE- 01 40 ORA ($40,X)
|
||||
66F0- 00 BRK
|
||||
66F1- FF ???
|
||||
66F2- 02 ???
|
||||
66F3- FF ???
|
||||
66F4- FF ???
|
||||
66F5- 05 00 ORA $00
|
||||
66F7- 4C E8 40 JMP $40E8
|
||||
66FA- A9 00 LDA #$00
|
||||
66FC- D0 0E BNE $670C
|
||||
66FE- 20 FF 41 JSR $41FF
|
||||
6701- 04 01 TSB $01
|
||||
6703- 8C 00 40 STY $4000
|
||||
6706- 4E 4F 4E LSR $4E4F
|
||||
6709- 45 05 EOR $05
|
||||
670B- 00 BRK
|
||||
670C- 20 05 80 JSR $8005
|
||||
670F- 4C 1C 40 JMP $401C
|
||||
6712- A2 58 LDX #$58
|
||||
6714- A0 41 LDY #$41
|
||||
6716- A9 0F LDA #$0F
|
||||
6718- 8E 15 8E STX $8E15
|
||||
671B- 8C 16 8E STY $8E16
|
||||
671E- 8D 17 8E STA $8E17
|
||||
6721- A9 00 LDA #$00
|
||||
6723- 8D 13 44 STA $4413
|
||||
6726- 4C 12 8E JMP $8E12
|
||||
6729- 02 ???
|
||||
672A- 00 BRK
|
||||
672B- 1B ???
|
||||
672C- 00 BRK
|
||||
672D- 8C 00 00 STY $0000
|
||||
6730- 02 ???
|
||||
6731- 00 BRK
|
||||
6732- 13 ???
|
||||
6733- 44 ???
|
||||
6734- 02 ???
|
||||
6735- A0 0F LDY #$0F
|
||||
6737- A9 20 LDA #$20
|
||||
6739- 88 DEY
|
||||
673A- 99 4E 43 STA $434E,Y
|
||||
673D- D0 FA BNE $6739
|
||||
673F- B9 13 44 LDA $4413,Y
|
||||
6742- F0 06 BEQ $674A
|
||||
6744- 99 4E 43 STA $434E,Y
|
||||
6747- C8 INY
|
||||
6748- D0 F5 BNE $673F
|
||||
674A- A2 49 LDX #$49
|
||||
674C- A0 43 LDY #$43
|
||||
674E- 20 09 08 JSR $0809
|
||||
6751- D0 3E BNE $6791
|
||||
6753- A9 00 LDA #$00
|
||||
6755- D0 38 BNE $678F
|
||||
6757- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
675A- 2C 83 C0 BIT $C083 rw:LCBANK2
|
||||
675D- A0 0C LDY #$0C
|
||||
675F- B1 FA LDA ($FA),Y
|
||||
6761- 29 7F AND #$7F
|
||||
6763- 91 FA STA ($FA),Y
|
||||
6765- C8 INY
|
||||
6766- C0 47 CPY #$47
|
||||
6768- 90 F5 BCC $675F
|
||||
676A- A0 2C LDY #$2C
|
||||
676C- A9 58 LDA #$58
|
||||
676E- 91 FA STA ($FA),Y
|
||||
6770- A0 67 LDY #$67
|
||||
6772- A9 34 LDA #$34
|
||||
6774- 91 FA STA ($FA),Y
|
||||
6776- A0 A2 LDY #$A2
|
||||
6778- A9 00 LDA #$00
|
||||
677A- 91 FA STA ($FA),Y
|
||||
677C- A0 DD LDY #$DD
|
||||
677E- A9 58 LDA #$58
|
||||
6780- 91 FA STA ($FA),Y
|
||||
6782- A0 0B LDY #$0B
|
||||
6784- B1 FA LDA ($FA),Y
|
||||
6786- 99 16 08 STA $0816,Y
|
||||
6789- 88 DEY
|
||||
678A- 10 F8 BPL $6784
|
||||
678C- AD 82 C0 LDA $C082
|
||||
678F- 18 CLC
|
||||
6790- 60 RTS
|
||||
6791- C9 06 CMP #$06
|
||||
6793- F0 08 BEQ $679D
|
||||
6795- 20 16 A3 JSR $A316
|
||||
6798- 20 08 80 JSR $8008
|
||||
679B- 38 SEC
|
||||
679C- 60 RTS
|
||||
679D- 20 C9 42 JSR $42C9
|
||||
67A0- 20 CC 6F JSR $6FCC
|
||||
67A3- 20 FF 41 JSR $41FF
|
||||
67A6- 04 01 TSB $01
|
||||
67A8- 8C 00 30 STY $3000
|
||||
67AB- 43 ???
|
||||
67AC- 41 4E EOR ($4E,X)
|
||||
67AE- 4E 4F 54 LSR $544F
|
||||
67B1- 20 46 49 JSR $4946
|
||||
67B4- 4E 44 05 LSR $0544
|
||||
67B7- 05 02 ORA $02
|
||||
67B9- 13 ???
|
||||
67BA- 44 ???
|
||||
67BB- 05 05 ORA $05
|
||||
67BD- 4F ???
|
||||
67BE- 4E 20 54 LSR $5420
|
||||
67C1- 48 PHA
|
||||
67C2- 49 53 EOR #$53
|
||||
67C4- 20 44 49 JSR $4944
|
||||
67C7- 53 ???
|
||||
67C8- 4B ???
|
||||
67C9- 05 00 ORA $00
|
||||
67CB- 20 05 80 JSR $8005
|
||||
67CE- 38 SEC
|
||||
67CF- 60 RTS
|
||||
67D0- 68 PLA
|
||||
67D1- 85 3A STA $3A
|
||||
67D3- 68 PLA
|
||||
67D4- 85 3B STA $3B
|
||||
67D6- A9 02 LDA #$02
|
||||
67D8- 8D 03 8A STA $8A03
|
||||
67DB- 8D 0A 8A STA $8A0A
|
||||
67DE- A2 00 LDX #$00
|
||||
67E0- 20 B6 42 JSR $42B6
|
||||
67E3- C9 20 CMP #$20
|
||||
67E5- 90 06 BCC $67ED
|
||||
67E7- 9D 00 BB STA $BB00,X
|
||||
67EA- E8 INX
|
||||
67EB- D0 F3 BNE $67E0
|
||||
67ED- 0A ASL
|
||||
67EE- A8 TAY
|
||||
67EF- B9 32 42 LDA $4232,Y
|
||||
67F2- 8D 2C 42 STA $422C
|
||||
67F5- B9 33 42 LDA $4233,Y
|
||||
67F8- 8D 2D 42 STA $422D
|
||||
67FB- 18 CLC
|
||||
67FC- 20 FF FF JSR $FFFF
|
||||
67FF- 90 DF BCC $67E0
|
||||
6801- B0 DB BCS $67DE
|
||||
6803- 40 RTI
|
||||
6804- 42 ???
|
||||
6805- 48 PHA
|
||||
6806- 42 ???
|
||||
6807- 61 42 ADC ($42,X)
|
||||
6809- 81 42 STA ($42,X)
|
||||
680B- 84 42 STY $42
|
||||
680D- 8A TXA
|
||||
680E- 42 ???
|
||||
680F- A2 42 LDX #$42
|
||||
6811- 68 PLA
|
||||
6812- 68 PLA
|
||||
6813- 20 B6 42 JSR $42B6
|
||||
6816- 6C 3A 00 JMP ($003A)
|
||||
6819- 20 B6 42 JSR $42B6
|
||||
681C- 8D 05 8A STA $8A05
|
||||
681F- 8D 8E 42 STA $428E
|
||||
6822- 20 B6 42 JSR $42B6
|
||||
6825- 8D 06 8A STA $8A06
|
||||
6828- 8D 90 42 STA $4290
|
||||
682B- 20 B6 42 JSR $42B6
|
||||
682E- 8D 07 8A STA $8A07
|
||||
6831- 60 RTS
|
||||
6832- 20 B6 42 JSR $42B6
|
||||
6835- 8D 70 42 STA $4270
|
||||
6838- 20 B6 42 JSR $42B6
|
||||
683B- 8D 71 42 STA $4271
|
||||
683E- A0 00 LDY #$00
|
||||
6840- B9 FF FF LDA $FFFF,Y
|
||||
6843- F0 0B BEQ $6850
|
||||
6845- C9 20 CMP #$20
|
||||
6847- 90 04 BCC $684D
|
||||
6849- 9D 00 BB STA $BB00,X
|
||||
684C- E8 INX
|
||||
684D- C8 INY
|
||||
684E- D0 F0 BNE $6840
|
||||
6850- 18 CLC
|
||||
6851- 60 RTS
|
||||
6852- A9 00 LDA #$00
|
||||
6854- 2C A9 02 BIT $02A9
|
||||
6857- 8D 04 8A STA $8A04
|
||||
685A- 60 RTS
|
||||
685B- 20 A2 42 JSR $42A2
|
||||
685E- A0 00 LDY #$00
|
||||
6860- A9 00 LDA #$00
|
||||
6862- 8C 05 8A STY $8A05
|
||||
6865- 8D 06 8A STA $8A06
|
||||
6868- AD 07 8A LDA $8A07
|
||||
686B- 18 CLC
|
||||
686C- 69 08 ADC #$08
|
||||
686E- 8D 07 8A STA $8A07
|
||||
6871- 38 SEC
|
||||
6872- 60 RTS
|
||||
6873- A9 00 LDA #$00
|
||||
6875- 9D 00 BB STA $BB00,X
|
||||
6878- A0 00 LDY #$00
|
||||
687A- A9 BB LDA #$BB
|
||||
687C- 8C 0C 8A STY $8A0C
|
||||
687F- 8D 0D 8A STA $8A0D
|
||||
6882- 20 00 8A JSR $8A00
|
||||
6885- 38 SEC
|
||||
6886- 60 RTS
|
||||
6887- E6 3A INC $3A
|
||||
6889- D0 02 BNE $688D
|
||||
688B- E6 3B INC $3B
|
||||
688D- A0 00 LDY #$00
|
||||
688F- B1 3A LDA ($3A),Y
|
||||
6891- 60 RTS
|
||||
6892- 01 11 ORA ($11,X)
|
||||
6894- 26 A5 ROL $A5
|
||||
6896- 01 1C ORA ($1C,X)
|
||||
6898- 26 9A ROL $9A
|
||||
689A- A2 03 LDX #$03
|
||||
689C- 2C A2 07 BIT $07A2
|
||||
689F- A0 03 LDY #$03
|
||||
68A1- BD C1 42 LDA $42C1,X
|
||||
68A4- 99 0C 8E STA $8E0C,Y
|
||||
68A7- CA DEX
|
||||
68A8- 88 DEY
|
||||
68A9- 10 F6 BPL $68A1
|
||||
68AB- A9 01 LDA #$01
|
||||
68AD- 4C 09 8E JMP $8E09
|
||||
68B0- 81 89 STA ($89,X)
|
||||
68B2- 00 BRK
|
||||
68B3- 07 ???
|
||||
68B4- 46 4F LSR $4F
|
||||
68B6- 4E 54 00 LSR $0054
|
||||
68B9- D0 E8 BNE $68A3
|
||||
68BB- 42 ???
|
||||
68BC- 4F ???
|
||||
68BD- 52 44 EOR ($44)
|
||||
68BF- 45 52 EOR $52
|
||||
68C1- 00 BRK
|
||||
68C2- DE DF 8D DEC $8DDF,X
|
||||
68C5- 83 ???
|
||||
68C6- 41 A8 EOR ($A8,X)
|
||||
68C8- BE DF 42 LDX $42DF,Y
|
||||
68CB- BD 00 C0 LDA $C000,X
|
||||
68CE- BD 00 C0 LDA $C000,X
|
||||
68D1- BE E1 42 LDX $42E1,Y
|
||||
68D4- A0 00 LDY #$00
|
||||
68D6- BD E3 42 LDA $42E3,X
|
||||
68D9- 99 0C 44 STA $440C,Y
|
||||
68DC- F0 0B BEQ $68E9
|
||||
68DE- C0 04 CPY #$04
|
||||
68E0- B0 03 BCS $68E5
|
||||
68E2- 99 49 43 STA $4349,Y
|
||||
68E5- E8 INX
|
||||
68E6- C8 INY
|
||||
68E7- D0 ED BNE $68D6
|
||||
68E9- AD F5 95 LDA $95F5
|
||||
68EC- 4A LSR
|
||||
68ED- 90 08 BCC $68F7
|
||||
68EF- 4D 00 83 EOR $8300
|
||||
68F2- C9 01 CMP #$01
|
||||
68F4- D0 01 BNE $68F7
|
||||
68F6- E8 INX
|
||||
68F7- BD E4 42 LDA $42E4,X
|
||||
68FA- A0 00 LDY #$00
|
||||
68FC- 84 FA STY $FA
|
||||
68FE- 85 FB STA $FB
|
||||
6900- 48 PHA
|
||||
6901- 4A LSR
|
||||
6902- 4A LSR
|
||||
6903- 4A LSR
|
||||
6904- 4A LSR
|
||||
6905- 20 3B 43 JSR $433B
|
||||
6908- 8D 60 43 STA $4360
|
||||
690B- 68 PLA
|
||||
690C- 29 0F AND #$0F
|
||||
690E- 09 30 ORA #$30
|
||||
6910- C9 3A CMP #$3A
|
||||
6912- 90 02 BCC $6916
|
||||
6914- 69 06 ADC #$06
|
||||
6916- 8D 61 43 STA $4361
|
||||
6919- 60 RTS
|
||||
691A- 58 CLI
|
||||
691B- 58 CLI
|
||||
691C- 58 CLI
|
||||
691D- 58 CLI
|
||||
691E- 2E 00 00 ROL $0000
|
||||
6921- 00 BRK
|
||||
6922- 00 BRK
|
||||
6923- 00 BRK
|
||||
6924- 00 BRK
|
||||
6925- 00 BRK
|
||||
6926- 00 BRK
|
||||
6927- 00 BRK
|
||||
6928- 00 BRK
|
||||
6929- 00 BRK
|
||||
692A- 00 BRK
|
||||
692B- 00 BRK
|
||||
692C- 00 BRK
|
||||
692D- 00 BRK
|
||||
692E- 2C 41 24 BIT $2441
|
||||
6931- 58 CLI
|
||||
6932- 58 CLI
|
||||
6933- 30 30 BMI $6965
|
||||
6935- 00 BRK
|
||||
6936- A9 00 LDA #$00
|
||||
6938- 85 FE STA $FE
|
||||
693A- A0 11 LDY #$11
|
||||
693C- 20 DD 43 JSR $43DD
|
||||
693F- 38 SEC
|
||||
6940- 60 RTS
|
||||
6941- A5 FC LDA $FC
|
||||
6943- 18 CLC
|
||||
6944- 69 23 ADC #$23
|
||||
6946- 85 FC STA $FC
|
||||
6948- 90 02 BCC $694C
|
||||
694A- E6 FD INC $FD
|
||||
694C- C6 FE DEC $FE
|
||||
694E- 10 19 BPL $6969
|
||||
6950- AC 14 44 LDY $4414
|
||||
6953- AD 15 44 LDA $4415
|
||||
6956- F0 E7 BEQ $693F
|
||||
6958- 20 DD 43 JSR $43DD
|
||||
695B- A0 FB LDY #$FB
|
||||
695D- A9 43 LDA #$43
|
||||
695F- 84 FC STY $FC
|
||||
6961- 85 FD STA $FD
|
||||
6963- A9 07 LDA #$07
|
||||
6965- 85 FE STA $FE
|
||||
6967- D0 D8 BNE $6941
|
||||
6969- A0 00 LDY #$00
|
||||
696B- B1 FC LDA ($FC),Y
|
||||
696D- 30 D2 BMI $6941
|
||||
696F- F0 CE BEQ $693F
|
||||
6971- C8 INY
|
||||
6972- C8 INY
|
||||
6973- B1 FC LDA ($FC),Y
|
||||
6975- 29 7F AND #$7F
|
||||
6977- C9 04 CMP #$04
|
||||
6979- D0 C6 BNE $6941
|
||||
697B- A2 00 LDX #$00
|
||||
697D- C8 INY
|
||||
697E- B1 FC LDA ($FC),Y
|
||||
6980- 29 7F AND #$7F
|
||||
6982- DD 49 43 CMP $4349,X
|
||||
6985- D0 BA BNE $6941
|
||||
6987- E8 INX
|
||||
6988- E0 05 CPX #$05
|
||||
698A- 90 F1 BCC $697D
|
||||
698C- A0 20 LDY #$20
|
||||
698E- B1 FC LDA ($FC),Y
|
||||
6990- 49 A0 EOR #$A0
|
||||
6992- D0 05 BNE $6999
|
||||
6994- 91 FC STA ($FC),Y
|
||||
6996- 88 DEY
|
||||
6997- 10 F5 BPL $698E
|
||||
6999- B1 FC LDA ($FC),Y
|
||||
699B- 29 7F AND #$7F
|
||||
699D- 91 FC STA ($FC),Y
|
||||
699F- 88 DEY
|
||||
69A0- D0 F7 BNE $6999
|
||||
69A2- A5 FC LDA $FC
|
||||
69A4- A4 FD LDY $FD
|
||||
69A6- 18 CLC
|
||||
69A7- 69 08 ADC #$08
|
||||
69A9- 90 01 BCC $69AC
|
||||
69AB- C8 INY
|
||||
69AC- 18 CLC
|
||||
69AD- 60 RTS
|
||||
69AE- 8D ED B7 STA $B7ED
|
||||
69B1- 8C EC B7 STY $B7EC
|
||||
69B4- A9 00 LDA #$00
|
||||
69B6- 8D EB B7 STA $B7EB
|
||||
69B9- A0 13 LDY #$13
|
||||
69BB- A9 44 LDA #$44
|
||||
69BD- 8C F0 B7 STY $B7F0
|
||||
69C0- 8D F1 B7 STA $B7F1
|
||||
69C3- A9 01 LDA #$01
|
||||
69C5- 8D F4 B7 STA $B7F4
|
||||
69C8- 20 E3 03 JSR $03E3
|
||||
69CB- 20 D9 03 JSR $03D9
|
||||
69CE- B0 01 BCS $69D1
|
||||
69D0- 60 RTS
|
||||
69D1- 68 PLA
|
||||
69D2- 68 PLA
|
||||
69D3- 68 PLA
|
||||
69D4- 68 PLA
|
||||
69D5- A9 08 LDA #$08
|
||||
69D7- 20 C0 41 JSR $41C0
|
||||
69DA- 4C 1C 40 JMP $401C
|
|
@ -0,0 +1,12 @@
|
|||
10 LL = - 21920:LH = - 21919: DEF FN L(A) = PEEK (LL) + 256 * PEEK (LH): PRINT "MONC"
|
||||
20 READ F$,A,A: PRINT "BLOAD "F$",A$4000":BF = 16384 + FN L(0)
|
||||
30 READ F$,AL,AH: POKE BF,AL: POKE BF + 1,AH:BF = BF + 2: IF AH THEN PRINT "BLOAD "F$",A"BF + 2: POKE BF, PEEK (LL): POKE BF + 1, PEEK (LH):BF = BF + 2 + FN L(0): GOTO 30
|
||||
40 EX$ = ".TOO BIG,V13": GOSUB 100
|
||||
45 REM EX$=",S4":GOSUB100
|
||||
50 END
|
||||
100 PRINT "BSAVE "F$EX$",A16384,L"BF - 16384: RETURN
|
||||
1000 DATA "UCAL",0,64: REM $4000
|
||||
1005 DATA "PCAL",0,15: REM $0F00
|
||||
1010 DATA "ICAL",0,123: REM $7B00
|
||||
1015 DATA "CALEN",,
|
||||
63999 PRINT "SAVE MCAL"
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,327 @@
|
|||
NLS
|
||||
; S:COMMON
|
||||
;
|
||||
; Common equates for Calendar
|
||||
; source files.
|
||||
;
|
||||
GOOFBALL = *
|
||||
;-----------
|
||||
;
|
||||
; Monthly data margins
|
||||
;
|
||||
DTCXMAX = 126
|
||||
DTCYMAX = 90
|
||||
DTCXMARG = 6
|
||||
DTCYMARG = 24
|
||||
;-----------
|
||||
;
|
||||
; Common zero page
|
||||
;
|
||||
CLZ EPZ $D0
|
||||
;
|
||||
XOFFLO EPZ CLZ
|
||||
XOFFHI EPZ CLZ+1
|
||||
YOFF EPZ CLZ+2
|
||||
TMP0 EPZ CLZ+3
|
||||
TMP1 EPZ CLZ+4
|
||||
TMP2 EPZ CLZ+5
|
||||
TMP3 EPZ CLZ+6
|
||||
TMP4 EPZ CLZ+7
|
||||
TMP5 EPZ CLZ+8
|
||||
;
|
||||
DATE EPZ CLZ+9
|
||||
;
|
||||
CRLINE EPZ CLZ+10
|
||||
;
|
||||
;-----------
|
||||
UFONT = $8500
|
||||
UFONTW = UFONT
|
||||
CLFONT = $6000
|
||||
CFONTH = CLFONT+$3B
|
||||
;-----------
|
||||
;
|
||||
; Constants:
|
||||
;
|
||||
GRBUFF = $7800
|
||||
FONTBUFF = $5FF4
|
||||
ESC = 27
|
||||
;------
|
||||
;
|
||||
; Temporary buffer for text
|
||||
;
|
||||
TEMPTEXT = $7A40
|
||||
;
|
||||
MONTHTXT = TEMPTEXT
|
||||
; worst:SEPTEMBER (9+1)
|
||||
WEEKTEXT = MONTHTXT+10
|
||||
; worst:WEDNESDAY (9+1)
|
||||
DATETEXT = WEEKTEXT+10
|
||||
; worst:31 (2+1)
|
||||
;-----------
|
||||
;
|
||||
; Common buffer
|
||||
;
|
||||
COBUFF = $D000
|
||||
;
|
||||
ORG COBUFF
|
||||
;--
|
||||
CLTYPE DFS 1 ; Calendar type
|
||||
;--
|
||||
GRSEL DFS 1 ; Graphic selection
|
||||
NOGR = 3
|
||||
GRNUM DFS 1 ; # from PSD
|
||||
GROPTION DFS 1 ; Position option
|
||||
;--
|
||||
YEARTEXT DFS 5
|
||||
;--
|
||||
MONTH DFS 1 ; 0-11
|
||||
MNDATE DFS 1 ; mini-calen default
|
||||
MNWDATE DFS 1 ; mini-week default
|
||||
MNFDAY DFS 1 ; day of week 0-6
|
||||
MNLAST DFS 1 ; # days in month
|
||||
;--
|
||||
FONTSEL DFS 1 ; Font selection
|
||||
NOFONT = 3
|
||||
FONTPSD DFS 1 ; # from PSD
|
||||
FONTCD DFS 1 ; # from CD
|
||||
;--
|
||||
PRSEL DFS 1 ; printer item
|
||||
PRCOPIES DFS 1 ; # copies to print
|
||||
;--
|
||||
;
|
||||
; 0-30:monthly data (DATE-1)
|
||||
; 0-27:weekly date in groups of 4
|
||||
; 31 :top line
|
||||
; 32 :second line
|
||||
; 33 :credit line
|
||||
;
|
||||
DBUFCONT = 34 ; # strings
|
||||
;
|
||||
DBUFENDL DFS 1 ; EOF pointer
|
||||
DBUFENDH DFS 1
|
||||
;
|
||||
DBUFPNTL DFS DBUFCONT ; pointers
|
||||
DBUFPNTH DFS DBUFCONT ; to the text
|
||||
;
|
||||
; If COLORFLG=$FF then next 4
|
||||
; are colors for:
|
||||
; 0:Font
|
||||
; 1:Graphics
|
||||
; 2:Lines
|
||||
; 3:Highlites
|
||||
;
|
||||
COLORFLG DFS 1 ; $FF=color follows
|
||||
DCOLOR0 DFS 1
|
||||
DCOLOR1 DFS 1
|
||||
DCOLOR2 DFS 1
|
||||
DCOLOR3 DFS 1
|
||||
;
|
||||
DBUFFER DFS 1 ; first byte of buffer
|
||||
;-----------
|
||||
;
|
||||
; Z-page
|
||||
;
|
||||
FLASHLO EPZ $4E
|
||||
FLASHHI EPZ $4F
|
||||
;-----------
|
||||
;
|
||||
; MAIN MENU routines
|
||||
;
|
||||
MM = $0800
|
||||
;
|
||||
MAINMENU = MM
|
||||
FGETMAIN = MM+3
|
||||
FGETPSD = MM+6
|
||||
FGETCD = MM+9
|
||||
;
|
||||
HAS128K = $27F
|
||||
CONFIG = $95F0
|
||||
COLORPR = CONFIG+8
|
||||
;-----------
|
||||
;
|
||||
; Subroutine package
|
||||
;
|
||||
SP = $E000
|
||||
;
|
||||
PRINT = SP
|
||||
CLSCREEN = SP+3
|
||||
WITEBORD = SP+6
|
||||
ESCBACK = SP+9
|
||||
PICDRAW = SP+12
|
||||
;
|
||||
DEVICENW = SP+15
|
||||
DEVICEON = SP+18
|
||||
DEVICEOF = SP+21
|
||||
DEVICERD = SP+24
|
||||
DEVICEST = SP+27
|
||||
SCALING = SP+30
|
||||
;
|
||||
POLEBTN = SP+31
|
||||
POLEKEY = SP+34
|
||||
GETKEY = SP+37
|
||||
SELECT = SP+40
|
||||
;
|
||||
SETTYPE = SP+43
|
||||
GETFILE = SP+46
|
||||
SAVEFILE = SP+49
|
||||
TYPELEN = SP+52
|
||||
FLSTART = SP+53
|
||||
FLLENGTH = SP+55
|
||||
BLOAD = SP+57
|
||||
BSAVE = SP+60
|
||||
DOSCR = SP+63
|
||||
ERROR = SP+66
|
||||
;
|
||||
MUSIC = SP+69
|
||||
FLSHINIT = SP+72
|
||||
JMPVECTS = SP+75
|
||||
LINES = SP+78
|
||||
PARSE = SP+81
|
||||
SHOWAROW = SP+84
|
||||
NUMBER = SP+87
|
||||
WAITPSD = SP+90
|
||||
WAITCD = SP+93
|
||||
ANYKEY = SP+96
|
||||
CHKPRINT = SP+99
|
||||
BOOP = SP+102
|
||||
GETINIT = SP+105
|
||||
GETBYTE = SP+108
|
||||
INPUT = SP+111
|
||||
CLS1 = SP+114
|
||||
PRINTGRP = SP+117
|
||||
RTOS = SP+120
|
||||
SPACEBAR = SP+123
|
||||
GETPDISK = SP+126
|
||||
ESCMAIN = SP+129
|
||||
TESTPAPR = SP+132
|
||||
GETANUMB = SP+135
|
||||
ANYKEY2 = SP+138
|
||||
;
|
||||
WITE = $FF
|
||||
GRAY = $AA
|
||||
GRAY2 = $55
|
||||
BLAK = $00
|
||||
;
|
||||
PRNORM = 1
|
||||
PRINVR = 2
|
||||
PRLEFT = 3
|
||||
PRRITE = 4
|
||||
PRCNTR = 5
|
||||
PRLOC = 6
|
||||
PRSMAL = 7
|
||||
PRBIG = 8
|
||||
PRSTR = 9
|
||||
PRSPC = 10
|
||||
PRHTAB = 11
|
||||
PRVTAB = 12
|
||||
CR = 13
|
||||
NOCR = 14
|
||||
RTOSBLAK = 15
|
||||
RTOSWITE = 16
|
||||
RTOSANY = 17
|
||||
PRCSPACE = 18
|
||||
PRPIC = 19
|
||||
PRRTAB = 20
|
||||
PRRTAB2 = 21
|
||||
PRKERN = 22
|
||||
RTOSINV = 23
|
||||
;-----------
|
||||
;
|
||||
; Monitor routines
|
||||
;
|
||||
WAIT = $FCA8
|
||||
RTS = $FF58
|
||||
;-----------
|
||||
;
|
||||
; PRCOMS locations
|
||||
;
|
||||
COUT1 = $1800
|
||||
CRLF = $1803
|
||||
SENDGC = $1806
|
||||
GCOUT = $1809
|
||||
MTHINK = $180C
|
||||
MPRINT = $180F
|
||||
MPAUSE = $1812
|
||||
COPYCONT = $1815
|
||||
UPLRK = $1816
|
||||
COLORCHG = $181D
|
||||
;-----------
|
||||
;
|
||||
; Buffer handler routines
|
||||
;
|
||||
TEXTBUFF = $9600
|
||||
EDITBUFF = $9700
|
||||
;
|
||||
BF = $7B00
|
||||
;
|
||||
; Credit line info
|
||||
;
|
||||
CRXB = 4
|
||||
CRXMAXB = 32
|
||||
CRX = CRXB*7
|
||||
CRXMAX = CRXMAXB*7
|
||||
;
|
||||
CRY1 = 78
|
||||
;
|
||||
.IF BF-ORG
|
||||
CLRCOBUF = BF
|
||||
GETTEXT = BF+3
|
||||
PUTTEXT = BF+6
|
||||
GETEDIT = BF+9
|
||||
PUTEDIT = BF+12
|
||||
MAKEDTXT = BF+15
|
||||
MAKEWTXT = BF+18
|
||||
;
|
||||
TOPTEXT = BF+21
|
||||
GTMTEXT = BF+24
|
||||
GTWTEXT = BF+27
|
||||
CREDIT = BF+30
|
||||
;
|
||||
DRAWBOX = BF+33
|
||||
.FI
|
||||
;-----------
|
||||
;
|
||||
; Print routines
|
||||
;
|
||||
PR = $F00
|
||||
;
|
||||
.IF PR-ORG
|
||||
DOCALEN = PR
|
||||
EDITDRAW = PR+3
|
||||
EDITYOFF = PR+6
|
||||
STRCROP = PR+9
|
||||
.FI
|
||||
;-----------
|
||||
;
|
||||
; MAIN code vectors
|
||||
;
|
||||
MN = $4000
|
||||
;
|
||||
.IF MN-ORG
|
||||
CRBLAK = MN+6
|
||||
CRDRAW = MN+9
|
||||
.FI
|
||||
;-----------
|
||||
;
|
||||
; Print buffer constants
|
||||
;
|
||||
BUFWIDTH = 1024
|
||||
LMARGIN = 10
|
||||
CLBUFFER = $2000
|
||||
;-----------
|
||||
;
|
||||
; STROUT variables
|
||||
;
|
||||
STROUT = $8A00
|
||||
SPARM = STROUT+3
|
||||
CSIZE = STROUT+$0B
|
||||
;
|
||||
; STROUT mod routines
|
||||
;
|
||||
STINSTAL = STROUT+$0F
|
||||
STSCREEN = STROUT+$12
|
||||
FINSTALL = STROUT+$15
|
||||
;
|
||||
;-----------
|
||||
PHS GOOFBALL
|
||||
END
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:ICAL
|
||||
ICL "S:ICAL1"
|
|
@ -0,0 +1,400 @@
|
|||
TTL "S:ICAL"
|
||||
; S:ICAL1
|
||||
NOG
|
||||
ORG = $7B00
|
||||
;
|
||||
; 09/13/85
|
||||
; 12/05/85 last mod, full
|
||||
; credit line
|
||||
;
|
||||
;-----------
|
||||
BFZ EPZ $C0
|
||||
;
|
||||
ILINE EPZ BFZ
|
||||
ICURFLAG EPZ BFZ+1
|
||||
IEDYOFF EPZ BFZ+2
|
||||
;-----------
|
||||
;
|
||||
; Common buffer routines.
|
||||
;
|
||||
; Print Shop Companion Calendar
|
||||
;
|
||||
; by Roland Gustafsson
|
||||
; Copyright 1985
|
||||
;
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
JMP CLRCOBUF
|
||||
JMP GETTEXT
|
||||
JMP PUTTEXT
|
||||
JMP GETEDIT
|
||||
JMP PUTEDIT
|
||||
;
|
||||
JMP MAKEDTXT
|
||||
JMP MAKEWTXT
|
||||
;
|
||||
JMP TOPTEXT
|
||||
JMP GTMTEXT
|
||||
JMP GTWTEXT
|
||||
JMP CREDIT
|
||||
;
|
||||
JMP DRAWBOX
|
||||
;-----------
|
||||
;
|
||||
; Turn on the main bank of
|
||||
; the $D000 area
|
||||
; Clear the common buffer
|
||||
;
|
||||
CLRCOBUF LDY #0
|
||||
TYA
|
||||
^0 STA COBUFF,Y
|
||||
INY
|
||||
BNE <0
|
||||
;
|
||||
DEY
|
||||
STY COLORFLG
|
||||
;
|
||||
LDY #DBUFFER
|
||||
LDA /DBUFFER
|
||||
STY DBUFENDL
|
||||
STA DBUFENDH
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Get pointer into DBUFFER
|
||||
; BEQ if no data for this date
|
||||
;
|
||||
GETDPNT LDA DBUFPNTL,Y
|
||||
STA TMP0
|
||||
STA TMP2
|
||||
LDA DBUFPNTH,Y
|
||||
STA TMP1
|
||||
STA TMP3
|
||||
ORA TMP2
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; GETTEXT from DBUFFER into TEXTBUFF
|
||||
; If empty, return CLC
|
||||
;
|
||||
GETTEXT JSR GETDPNT
|
||||
BNE >0
|
||||
STA TEXTBUFF
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^0 LDY #0
|
||||
^1 LDA (TMP2),Y
|
||||
STA TEXTBUFF,Y
|
||||
BEQ >2
|
||||
INY
|
||||
BNE <1
|
||||
;
|
||||
^2 SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; PUTTEXT from TEXTBUFF to DBUFFER
|
||||
;
|
||||
PUTTEXT TYA
|
||||
PHA
|
||||
JSR REMTEXT
|
||||
PLA
|
||||
TAY
|
||||
LDA TEXTBUFF
|
||||
BNE >0
|
||||
STA DBUFPNTL,Y
|
||||
STA DBUFPNTH,Y
|
||||
RTS
|
||||
;
|
||||
^0 LDA DBUFENDL
|
||||
STA DBUFPNTL,Y
|
||||
STA TMP0
|
||||
LDA DBUFENDH
|
||||
STA DBUFPNTH,Y
|
||||
STA TMP1
|
||||
;
|
||||
LDY #0
|
||||
^1 LDA TEXTBUFF,Y
|
||||
STA (TMP0),Y
|
||||
INC DBUFENDL
|
||||
BNE >2
|
||||
INC DBUFENDH
|
||||
^2 INY
|
||||
TAX
|
||||
BNE <1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Remove data form DBUFFER, if any.
|
||||
;
|
||||
REMTEXT JSR GETDPNT
|
||||
BEQ >9
|
||||
;
|
||||
; There is data, so calculate its
|
||||
; length and then remove it.
|
||||
;
|
||||
; TMP0.1:start of text to be removed
|
||||
; TMP2.3:next byte after text
|
||||
; TMP4 :length (TMP2.3-TMP0.1)
|
||||
;
|
||||
LDA #0
|
||||
STA TMP4
|
||||
^0 LDY #0
|
||||
LDA (TMP2),Y
|
||||
INC TMP2
|
||||
BNE *+4
|
||||
INC TMP3
|
||||
INC TMP4
|
||||
TAY
|
||||
BNE <0
|
||||
;
|
||||
; First fix pointers pointing above
|
||||
; text just removed
|
||||
;
|
||||
LDX #DBUFCONT-1
|
||||
^0 LDA DBUFPNTH,X
|
||||
CMP TMP3
|
||||
BNE >1
|
||||
LDA DBUFPNTL,X
|
||||
CMP TMP2
|
||||
^1 BCC >2
|
||||
LDA DBUFPNTL,X
|
||||
SBC TMP4
|
||||
STA DBUFPNTL,X
|
||||
BCS >2
|
||||
DEC DBUFPNTH,X
|
||||
^2 DEX
|
||||
BPL <0
|
||||
;
|
||||
; Now close up the space
|
||||
;
|
||||
^0 LDA TMP3
|
||||
CMP DBUFENDH
|
||||
BNE >1
|
||||
LDA TMP2
|
||||
CMP DBUFENDL
|
||||
^1 BEQ >2
|
||||
LDA (TMP2),Y
|
||||
STA (TMP0),Y
|
||||
INC TMP0
|
||||
BNE *+4
|
||||
INC TMP1
|
||||
INC TMP2
|
||||
BNE *+4
|
||||
INC TMP3
|
||||
BNE <0
|
||||
;
|
||||
; Update DBUFEND pointer
|
||||
;
|
||||
^2 SBC TMP4
|
||||
STA DBUFENDL
|
||||
BCS >9
|
||||
DEC DBUFENDH
|
||||
^9 RTS
|
||||
;-----------
|
||||
;
|
||||
; Get EDITBUFF from DBUFFER.
|
||||
;
|
||||
; First get data into TEXTBUFF
|
||||
;
|
||||
GETEDIT JSR GETTEXT
|
||||
;
|
||||
; Clear EDITBUFF
|
||||
;
|
||||
LDY #0
|
||||
^0 TYA
|
||||
LDX #0
|
||||
AND #%00011111
|
||||
BNE *+4
|
||||
LDX #$80
|
||||
TXA
|
||||
STA EDITBUFF,Y
|
||||
INY
|
||||
BNE <0
|
||||
;
|
||||
; Now unpack it into EDITBUFF
|
||||
;
|
||||
LDX #0-32
|
||||
;
|
||||
^1 LDA TEXTBUFF,Y
|
||||
BEQ >4
|
||||
BMI >3
|
||||
^2 STA EDITBUFF,X
|
||||
INX
|
||||
INY
|
||||
BNE <1
|
||||
;
|
||||
^3 PHA
|
||||
TXA
|
||||
CLC
|
||||
ADC #32
|
||||
AND #%11100000
|
||||
TAX
|
||||
PLA
|
||||
BMI <2
|
||||
;
|
||||
^4 RTS
|
||||
;-----------
|
||||
;
|
||||
; Move EDITBUFF into DBUFFER
|
||||
;
|
||||
PUTEDIT TYA
|
||||
PHA
|
||||
;
|
||||
; First pack data into TEXTBUFF
|
||||
;
|
||||
LDX #0
|
||||
LDY #0
|
||||
^0 LDA EDITBUFF,X
|
||||
STA TEXTBUFF,Y
|
||||
BEQ >1
|
||||
INX
|
||||
INY
|
||||
BNE <0
|
||||
;
|
||||
; Do next string
|
||||
;
|
||||
^1 TXA
|
||||
CLC
|
||||
ADC #32
|
||||
AND #%11100000
|
||||
TAX
|
||||
BNE <0
|
||||
;
|
||||
; Now strip off trailing nulls.
|
||||
;
|
||||
^2 DEY
|
||||
BMI >3
|
||||
LDA TEXTBUFF,Y
|
||||
BMI <2
|
||||
;
|
||||
; Store zero at end.
|
||||
;
|
||||
^3 INY
|
||||
LDA #0
|
||||
STA TEXTBUFF,Y
|
||||
;
|
||||
; Now do the actual move
|
||||
;
|
||||
PLA
|
||||
TAY
|
||||
JMP PUTTEXT
|
||||
;-----------
|
||||
;
|
||||
; Convert date to decimal ASCII
|
||||
;
|
||||
MAKEDTXT LDY #0
|
||||
STY DATETEXT+2
|
||||
LDA DATE
|
||||
CMP #10
|
||||
BLT >1
|
||||
LDX #$FF
|
||||
;
|
||||
^0 INX
|
||||
SBC #10
|
||||
BCS <0
|
||||
ADC #10
|
||||
ORA #'0'
|
||||
TAY
|
||||
TXA
|
||||
^1 ORA #'0'
|
||||
;
|
||||
STA DATETEXT
|
||||
STY DATETEXT+1
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Given Y=0-6, make WEEKTEXT
|
||||
;
|
||||
MAKEWTXT LDX #$FF
|
||||
^0 DEY
|
||||
BMI >2
|
||||
^1 INX
|
||||
LDA MAKEWTX2,X
|
||||
BNE <1
|
||||
BEQ <0
|
||||
;
|
||||
^2 LDY #$FF
|
||||
^3 INX
|
||||
INY
|
||||
LDA MAKEWTX2,X
|
||||
STA WEEKTEXT,Y
|
||||
BNE <3
|
||||
RTS
|
||||
;
|
||||
MAKEWTX2 BYT 'SUNDAY',0
|
||||
BYT 'MONDAY',0
|
||||
BYT 'TUESDAY',0
|
||||
BYT 'WEDNESDAY',0
|
||||
BYT 'THURSDAY',0
|
||||
BYT 'FRIDAY',0
|
||||
BYT 'SATURDAY',0
|
||||
;-----------
|
||||
;
|
||||
; Draw a box on the screen
|
||||
; given X,Y: location (X is byte)
|
||||
; A: height
|
||||
;
|
||||
; Automatically generates width based
|
||||
; on X-coordinate.
|
||||
;
|
||||
DRAWBOX PHA
|
||||
;
|
||||
; W = 2*(20-X)
|
||||
;
|
||||
STX TMP0
|
||||
LDA #20
|
||||
SEC
|
||||
SBC TMP0
|
||||
ASL
|
||||
STA TMP0
|
||||
PLA
|
||||
;---
|
||||
;
|
||||
; Enter here with TMP0=width
|
||||
;
|
||||
; H
|
||||
DRAWBOX2 STA >0+5
|
||||
STA >1+5
|
||||
; X
|
||||
STX >0+2
|
||||
STX >2+1
|
||||
STX >3+1
|
||||
; X+W
|
||||
DEX
|
||||
TXA
|
||||
CLC
|
||||
ADC TMP0
|
||||
STA >1+2
|
||||
; Y
|
||||
STY >0+3
|
||||
STY >1+3
|
||||
; Y-2
|
||||
DEY
|
||||
DEY
|
||||
STY >2+2
|
||||
; Y+H
|
||||
TYA
|
||||
ADC #2
|
||||
ADC >0+5
|
||||
STA >3+2
|
||||
; W
|
||||
LDA TMP0
|
||||
STA >2+3
|
||||
STA >3+3
|
||||
;
|
||||
JSR PRINT
|
||||
^0 BYT RTOSANY,$07,0,0,1,0
|
||||
^1 BYT RTOSANY,$70,0,0,1,0
|
||||
^2 BYT RTOSWITE,0,0,0,2
|
||||
^3 BYT RTOSWITE,0,0,0,2
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:ICAL2"
|
|
@ -0,0 +1,160 @@
|
|||
;
|
||||
; S:ICAL2
|
||||
;
|
||||
; String Edit routines
|
||||
;
|
||||
;
|
||||
; SHOWEIAM: Show EI available message
|
||||
;
|
||||
; SHOWEI : Show EI screen
|
||||
;
|
||||
;-----------
|
||||
TXTEI BYT 'EDIT INSTRUCTIONS',0
|
||||
;
|
||||
TXTOLINE BYT ' OF'
|
||||
TXTLINE BYT ' LINE ',0
|
||||
;-----------
|
||||
;
|
||||
; Show that CTRL-I for help is
|
||||
; available. The "I" used here is
|
||||
; not the normal "I" in UFONT. This
|
||||
; "I" has a hat and shoes on.
|
||||
;
|
||||
SHOWEIAM JSR PRINT
|
||||
.DA #PRLOC,12,#166
|
||||
BYT '<CTRL- > TO SEE '
|
||||
.DA #PRSTR,TXTEI,#CR
|
||||
BYT PRPIC
|
||||
BYT 9,166,1,7
|
||||
HEX 0F06060606060F
|
||||
;
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Show help screen
|
||||
;
|
||||
; SEC:top text
|
||||
; CLC:monthly date text
|
||||
;
|
||||
EIY = 22
|
||||
EIY1 = 58
|
||||
EIY2 = 68
|
||||
EIY3 = 160
|
||||
;
|
||||
SHOWEI PHP
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,76,#EIY
|
||||
.DA #PRSTR,TXTEI,#CR
|
||||
BRK
|
||||
PLP
|
||||
BCS >0
|
||||
;---
|
||||
;
|
||||
; Position message and size message
|
||||
;
|
||||
JSR PRINT
|
||||
.DA #PRLOC,16,#EIY1
|
||||
BYT '<CTRL-P>',NOCR
|
||||
BYT PRRTAB,91
|
||||
BYT 'POSITION'
|
||||
.DA #PRSTR,TXTLINE
|
||||
BYT 'OF TEXT',CR
|
||||
.DA #PRLOC,122,#EIY1+11
|
||||
BYT 'L',CR,'C',CR,'R',CR
|
||||
.DA #PRLOC,148,#EIY1+11
|
||||
BYT 'LEFT',CR
|
||||
BYT 'CENTER',CR
|
||||
BYT 'RIGHT',CR
|
||||
;
|
||||
.DA #PRLOC,16,#EIY1+42
|
||||
BYT '<CTRL-S>',NOCR
|
||||
BYT PRRTAB,91
|
||||
BYT 'CHANGE SIZE'
|
||||
.DA #PRSTR,TXTOLINE,#CR
|
||||
BRK
|
||||
JMP >1
|
||||
;---
|
||||
;
|
||||
; Form message
|
||||
;
|
||||
^0 JSR PRINT
|
||||
.DA #PRLOC,16,#EIY2
|
||||
BYT '<CTRL-F>',NOCR
|
||||
BYT PRRTAB,91
|
||||
BYT 'CHANGE FORM'
|
||||
.DA #PRSTR,TXTOLINE,#CR
|
||||
.DA #PRLOC,148,#EIY2+11
|
||||
BYT 'SOLID',CR
|
||||
BYT 'OUTLINE',CR
|
||||
BYT '3-D',CR
|
||||
BRK
|
||||
LDX #17
|
||||
LDY #EIY2+11
|
||||
JSR FSOLID
|
||||
LDX #17
|
||||
LDY #EIY2+19
|
||||
JSR FOUTLINE
|
||||
LDX #17
|
||||
LDY #EIY2+27
|
||||
JSR F3D
|
||||
;---
|
||||
;
|
||||
; Erase message
|
||||
;
|
||||
^1 JSR ERASMESS
|
||||
JMP ANYKEY
|
||||
;---
|
||||
;
|
||||
ERASMES2 LDA #PRCNTR
|
||||
LDX #140
|
||||
BNE >0
|
||||
;
|
||||
ERASMESS LDA #PRLEFT
|
||||
LDX #16
|
||||
^0 STA >1+0
|
||||
STX >2+1
|
||||
JSR PRINT
|
||||
^1 BYT PRLEFT
|
||||
^2 .DA #PRLOC,0,#144
|
||||
;
|
||||
BYT '<CTRL-E> ERASE LINE',CR
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Solid form
|
||||
;
|
||||
FSOLID STX >0+0
|
||||
STY >0+1
|
||||
JSR PICDRAW
|
||||
^0 BYT 0,0,2,7
|
||||
HEX 7C1F7C1F7C1F7C1F
|
||||
HEX 7C1F7C1F7C1F
|
||||
RTS
|
||||
;
|
||||
; Outline form
|
||||
;
|
||||
FOUTLINE STX >0+0
|
||||
STY >0+1
|
||||
JSR PICDRAW
|
||||
^0 BYT 0,0,2,7
|
||||
HEX 7C1F0C180C180C18
|
||||
HEX 0C180C187C1F
|
||||
RTS
|
||||
;
|
||||
; 3-D form
|
||||
;
|
||||
F3D STX >0+0
|
||||
STY >0+1
|
||||
JSR PICDRAW
|
||||
^0 BYT 0,0,2,7
|
||||
HEX 1C1F363330331833
|
||||
HEX 303336331C1F
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:ICAL3"
|
|
@ -0,0 +1,231 @@
|
|||
;
|
||||
; S:ICAL3
|
||||
;
|
||||
; Edit a string. GIVEN:
|
||||
;
|
||||
; 1)*Routine to BLAK current string
|
||||
; edit area. Must also return
|
||||
; string address in TMP2.3
|
||||
; 2) Routine to crop extra characters
|
||||
; off the end of too-long strings.
|
||||
; Used when the string will be
|
||||
; printed using the loaded font.
|
||||
; 3)*Routine to actually draw the
|
||||
; string onto the screen.
|
||||
;
|
||||
; 4)*Maximum width on screen
|
||||
; 5)*Maximum number of characters
|
||||
; 6)*CSPACE on screen
|
||||
; 7)*Kerning?
|
||||
;
|
||||
; * you must supply this parameter
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Initialize TEDIT routine
|
||||
;
|
||||
TEINIT JSR GETINIT
|
||||
JSR GETWORD
|
||||
STY TBLAKMOD+1
|
||||
STA TBLAKMOD+2
|
||||
JSR GETWORD
|
||||
STY TCROPMOD+1
|
||||
STA TCROPMOD+2
|
||||
JSR GETWORD
|
||||
STY TDRAWMOD+1
|
||||
STA TDRAWMOD+2
|
||||
JSR GETWORD
|
||||
STY TMAXWITH
|
||||
STA TMAXCONT
|
||||
JSR GETWORD
|
||||
STY TCSPACE
|
||||
STA TKERNING
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Text edit routine
|
||||
;
|
||||
TEDIT:
|
||||
TBLAKMOD JSR $FFFF
|
||||
TCROPMOD JSR $FFFF
|
||||
;
|
||||
; Screen crop routine
|
||||
;
|
||||
; Set CSPACE and KERN
|
||||
;
|
||||
LDY TMP2
|
||||
LDA TMP3
|
||||
STY SPARM+9
|
||||
STA SPARM+10
|
||||
;
|
||||
LDA #00
|
||||
TCSPACE = *-1
|
||||
STA SPARM+7
|
||||
;
|
||||
LDA #00
|
||||
TKERNING = *-1
|
||||
STA SPARM+11
|
||||
;
|
||||
LDX #00
|
||||
TMAXWITH = *-1
|
||||
BEQ TDRAWMOD
|
||||
LDY #0
|
||||
LDA /UFONT
|
||||
JSR STRCROP
|
||||
;
|
||||
TDRAWMOD JSR $FFFF
|
||||
;
|
||||
; Main loop (sort of)
|
||||
;
|
||||
^0 JSR IGETKEY
|
||||
PHA
|
||||
;
|
||||
; Calc length into Y
|
||||
;
|
||||
LDY #$FF
|
||||
^1 INY
|
||||
LDA (TMP2),Y
|
||||
BNE <1
|
||||
;
|
||||
PLA
|
||||
LDX #1
|
||||
JSR PARSE
|
||||
.DA #'H'-$40,INPCTRLH
|
||||
.DA #127,INPCTRLH
|
||||
.DA #'E'-$40,INPCTRLE
|
||||
;
|
||||
; Return the following commands to
|
||||
; the calling program.
|
||||
;
|
||||
.DA #CR,INPCR
|
||||
.DA #'J'-$40,INPCR
|
||||
.DA #ESC,INPESC
|
||||
.DA #'K'-$40,INPESC
|
||||
;
|
||||
.DA #'I'-$40,INPCTRLI
|
||||
.DA #'S'-$40,INPCTRLS
|
||||
.DA #'P'-$40,INPCTRLP
|
||||
.DA #'F'-$40,INPCTRLF
|
||||
;
|
||||
.DA #'@',<0+0
|
||||
BRK
|
||||
CMP #' '
|
||||
BLT <0
|
||||
CMP #'Z'+1
|
||||
BGE <0
|
||||
;
|
||||
; Too many letters?
|
||||
;
|
||||
CPY #00
|
||||
TMAXCONT = *-1
|
||||
BGE <0
|
||||
;
|
||||
; Store char into buffer
|
||||
;
|
||||
STA (TMP2),Y
|
||||
INY
|
||||
LDA #0
|
||||
STA (TMP2),Y
|
||||
;
|
||||
; If left justify, then don't need
|
||||
; to black out old string.
|
||||
;
|
||||
LDA SPARM+1
|
||||
BEQ TCROPMOD
|
||||
BNE TBLAKMOD
|
||||
;-----------
|
||||
;
|
||||
; Erase line
|
||||
;
|
||||
INPCTRLE LDY #1
|
||||
;-----------
|
||||
;
|
||||
; Backspace
|
||||
;
|
||||
INPCTRLH DEY
|
||||
BMI <0
|
||||
LDA #0
|
||||
STA (TMP2),Y
|
||||
JMP TEDIT
|
||||
;-----------
|
||||
INPCTRLF INX
|
||||
INPCTRLP INX
|
||||
INPCTRLS INX
|
||||
INPCTRLI INX
|
||||
INPESC INX
|
||||
INPCR TXA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Get a key with flashing cursor
|
||||
;
|
||||
IGETKEY ASL ICURFLAG
|
||||
^0 JSR ICURSOR
|
||||
INC ICURFLAG
|
||||
JSR FLSHINIT
|
||||
;
|
||||
^1 JSR POLEBTN
|
||||
BMI >2
|
||||
DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
^2 PHA
|
||||
LSR ICURFLAG
|
||||
BCC >3
|
||||
JSR ICURSOR
|
||||
^3 PLA
|
||||
RTS
|
||||
;
|
||||
; EOR cursor onto screen
|
||||
;
|
||||
ICURSOR LDA #4
|
||||
STA SPARM+0
|
||||
;
|
||||
; SAVE: XOPTION,X,CSPACE
|
||||
;
|
||||
LDA SPARM+1
|
||||
PHA
|
||||
LDA SPARM+2
|
||||
PHA
|
||||
LDA SPARM+3
|
||||
PHA
|
||||
LDA SPARM+7
|
||||
PHA
|
||||
;
|
||||
LDA #0
|
||||
STA SPARM+1
|
||||
STA SPARM+7
|
||||
LDY #ICURSTXT
|
||||
LDA /ICURSTXT
|
||||
STY SPARM+9
|
||||
STA SPARM+10
|
||||
JSR STROUT
|
||||
;
|
||||
PLA
|
||||
STA SPARM+7
|
||||
PLA
|
||||
STA SPARM+3
|
||||
PLA
|
||||
STA SPARM+2
|
||||
PLA
|
||||
STA SPARM+1
|
||||
;
|
||||
; Set option back to OR
|
||||
; (4/2 = 2!!!)
|
||||
;
|
||||
LSR SPARM+0
|
||||
RTS
|
||||
;
|
||||
ICURSTXT BYT 'II',0
|
||||
;-----------
|
||||
GETWORD JSR GETBYTE
|
||||
TAY
|
||||
JMP GETBYTE
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:ICAL4"
|
|
@ -0,0 +1,254 @@
|
|||
;
|
||||
; S:ICAL4
|
||||
;
|
||||
; GTMTEXT
|
||||
;
|
||||
; Get text for monthly calendar
|
||||
;
|
||||
MCXOFF = 71
|
||||
MCYOFF = 54
|
||||
MCWIDTH = 126
|
||||
;
|
||||
; Initialize everything!
|
||||
;
|
||||
GTMTEXT STX DATE
|
||||
LDA #0
|
||||
STA ILINE
|
||||
;
|
||||
; Get text for this day
|
||||
;
|
||||
LDY DATE
|
||||
DEY
|
||||
JSR GETEDIT
|
||||
;
|
||||
; Configure TEDIT routine
|
||||
;
|
||||
JSR TEINIT
|
||||
ADR GTMBLAK
|
||||
ADR RTS
|
||||
ADR GTMDRAW
|
||||
BYT 126,30,2,0
|
||||
;
|
||||
LDX #MCXOFF
|
||||
LDY /MCXOFF
|
||||
STX XOFFLO
|
||||
STY XOFFHI
|
||||
LDY #MCYOFF
|
||||
STY YOFF
|
||||
;-----------
|
||||
;
|
||||
; Draw the initial screen
|
||||
;
|
||||
GTMDATE2 JSR GTTOP
|
||||
JSR SHOWEIAM
|
||||
LDX #10
|
||||
LDY #MCYOFF
|
||||
LDA #90
|
||||
JSR DRAWBOX
|
||||
LDY #$FF
|
||||
JSR EDITDRAW
|
||||
;
|
||||
; Show all the attributes
|
||||
;
|
||||
LDY #0
|
||||
^0 JSR GTMSTUFF
|
||||
INY
|
||||
BCC <0
|
||||
;
|
||||
LDY ILINE
|
||||
;
|
||||
; Now edit one of the strings
|
||||
;
|
||||
GTMDNEXT STY ILINE
|
||||
GTMDGET JSR TEDIT
|
||||
PHA
|
||||
LDY ILINE
|
||||
JSR EDITYOFF
|
||||
PLA
|
||||
JSR PARSE
|
||||
.DA #1,GTMCR
|
||||
.DA #2,GTMESC
|
||||
.DA #3,GTMCTRLI
|
||||
.DA #4,GTMCTRLS
|
||||
.DA #5,GTMCTRLP
|
||||
.DA #6,GTMDGET
|
||||
;---
|
||||
GTMCR INY
|
||||
JSR EDITYOFF
|
||||
BCC GTMDNEXT
|
||||
BCS >0
|
||||
;---
|
||||
GTMESC DEY
|
||||
BPL GTMDNEXT
|
||||
;---
|
||||
;
|
||||
; Room?
|
||||
;
|
||||
^0 JSR GTMBCHEK
|
||||
BCS >9
|
||||
;
|
||||
; Put it into buffer
|
||||
;
|
||||
LDY DATE
|
||||
DEY
|
||||
JSR PUTEDIT
|
||||
;
|
||||
; Fall into the check routine
|
||||
;
|
||||
;---
|
||||
;
|
||||
; Check to see if data goes to
|
||||
; far into buffer.
|
||||
; If it won't fit, then erase it
|
||||
; and return with SEC
|
||||
;
|
||||
; COBUFFER+(4096-300)
|
||||
; 58 for pointers
|
||||
; 64*3 for three strings
|
||||
; 50 for good luck
|
||||
;
|
||||
GTMOMAX = $D000+3796
|
||||
;
|
||||
GTMBCHEK LDA DBUFENDL
|
||||
CMP #GTMOMAX
|
||||
LDA DBUFENDH
|
||||
SBC /GTMOMAX
|
||||
BCC >9
|
||||
LDA #0
|
||||
STA TEXTBUFF
|
||||
LDY DATE
|
||||
DEY
|
||||
JSR PUTTEXT
|
||||
SEC
|
||||
^9 RTS
|
||||
;---
|
||||
GTMCTRLP LDA EDITBUFF,X
|
||||
PHA
|
||||
AND #6
|
||||
CLC
|
||||
ADC #2
|
||||
CMP #6
|
||||
BNE *+4
|
||||
LDA #0
|
||||
STA TMP0
|
||||
PLA
|
||||
AND #%11111001
|
||||
ORA TMP0
|
||||
STA EDITBUFF,X
|
||||
JSR GTMSTUFF
|
||||
JMP GTMDGET
|
||||
;-----------
|
||||
;
|
||||
; Show text position and
|
||||
; box on left edge.
|
||||
;
|
||||
GTMSTUFF STY >9+1
|
||||
JSR GTMYCALC
|
||||
BCS >9
|
||||
LDA EDITBUFF,X
|
||||
LSR
|
||||
AND #3
|
||||
TAY
|
||||
LDA GTMPOSIT,Y
|
||||
STA >2+0
|
||||
LDY IEDYOFF
|
||||
STY >0+2
|
||||
STY >1+3
|
||||
JSR PRINT
|
||||
^0 BYT RTOSBLAK,30,0,2,8
|
||||
^1 .DA #PRLOC,216,#0
|
||||
^2 BYT ' ',CR
|
||||
BRK
|
||||
LDX #8
|
||||
LDY IEDYOFF
|
||||
JSR FSOLID
|
||||
CLC
|
||||
^9 LDY #00
|
||||
RTS
|
||||
;
|
||||
GTMPOSIT BYT 'LCR'
|
||||
;---
|
||||
GTMCTRLI CLC
|
||||
JSR SHOWEI
|
||||
JMP GTMDATE2
|
||||
;---
|
||||
GTMCTRLS LDA EDITBUFF,X
|
||||
EOR #1
|
||||
STA EDITBUFF,X
|
||||
;---
|
||||
;
|
||||
; Redraw from Y down
|
||||
;
|
||||
LDA ILINE
|
||||
PHA
|
||||
SEC
|
||||
^0 STY ILINE
|
||||
PHP
|
||||
JSR GTMBLAK
|
||||
PLP
|
||||
BCS >1
|
||||
JSR GTMDRAW
|
||||
^1 LDY IEDYOFF
|
||||
STY >2+2
|
||||
STY >3+2
|
||||
JSR PRINT
|
||||
^2 BYT RTOSBLAK,8,0,2,16
|
||||
^3 BYT RTOSBLAK,30,0,2,16
|
||||
BRK
|
||||
LDY ILINE
|
||||
JSR GTMSTUFF
|
||||
;
|
||||
LDY ILINE
|
||||
INY
|
||||
JSR EDITYOFF
|
||||
BCC <0
|
||||
PLA
|
||||
STA ILINE
|
||||
JMP GTMDGET
|
||||
;-----------
|
||||
;
|
||||
; Routine to erase current line
|
||||
;
|
||||
GTMBLAK LDY ILINE
|
||||
JSR GTMYCALC
|
||||
STA >0+2
|
||||
PHA
|
||||
LDA TMP1
|
||||
STA >0+4
|
||||
JSR PRINT
|
||||
^0 BYT RTOSBLAK,11,0,18,0
|
||||
BRK
|
||||
PLA
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Calculate Yoffset and X index
|
||||
;
|
||||
GTMYCALC JSR EDITYOFF
|
||||
BCS >0
|
||||
LDA TMP0
|
||||
CLC
|
||||
ADC #MCYOFF+DTCYMARG
|
||||
STA IEDYOFF
|
||||
^0 RTS
|
||||
;-----------
|
||||
GTMDRAW LDY ILINE
|
||||
JMP EDITDRAW
|
||||
;-----------
|
||||
;
|
||||
; Show top of events and reminders
|
||||
; screen input.
|
||||
;
|
||||
GTTOP JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#26
|
||||
BYT 'NOW TYPE IN YOUR',CR
|
||||
BYT 'EVENTS AND REMINDERS:',CR
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:ICAL5"
|
|
@ -0,0 +1,191 @@
|
|||
;
|
||||
; S:ICAL5
|
||||
;
|
||||
; GTWTEXT
|
||||
;
|
||||
; Get text for weekly calendar
|
||||
;
|
||||
WCXOFF = 21
|
||||
WCYOFF = 76
|
||||
WCWIDTH = 238
|
||||
;
|
||||
WBOXX = 2
|
||||
WBOXY = WCYOFF-5
|
||||
WBOXH = 9+4*8
|
||||
;
|
||||
; Initialize everything!
|
||||
;
|
||||
; Compute string offset
|
||||
;
|
||||
GTWTEXT TXA
|
||||
ASL
|
||||
ASL
|
||||
STA GTWSBOFF
|
||||
;
|
||||
; Compute day of week
|
||||
;
|
||||
CLC
|
||||
TXA
|
||||
ADC MNFDAY
|
||||
CMP #7
|
||||
BLT >0
|
||||
SBC #7
|
||||
^0 TAY
|
||||
;
|
||||
; Compute date
|
||||
;
|
||||
TXA
|
||||
CLC
|
||||
ADC MNDATE
|
||||
CMP MNLAST
|
||||
BLT >1
|
||||
BEQ >1
|
||||
SBC MNLAST
|
||||
NOP
|
||||
NOP
|
||||
^1 STA DATE
|
||||
JSR MAKEWTXT
|
||||
JSR MAKEDTXT
|
||||
;
|
||||
JSR TEINIT
|
||||
ADR GTWBLAK
|
||||
ADR RTS
|
||||
ADR GTWDRAW
|
||||
BYT WCWIDTH,100,1,1
|
||||
;
|
||||
; Draw the initial screen
|
||||
;
|
||||
JSR GTTOP
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#WCYOFF-18
|
||||
.DA #PRSTR,WEEKTEXT,' '
|
||||
.DA #PRSTR,DATETEXT,#CR
|
||||
BRK
|
||||
LDX #WBOXX
|
||||
LDY #WBOXY
|
||||
LDA #WBOXH
|
||||
JSR DRAWBOX
|
||||
;
|
||||
JSR ERASMES2
|
||||
;
|
||||
; Draw all four strings
|
||||
;
|
||||
LDY #3
|
||||
^0 STY ILINE
|
||||
JSR GTWGET
|
||||
JSR GTWBLAK
|
||||
JSR GTWDRAW
|
||||
LDY ILINE
|
||||
DEY
|
||||
BNE <0
|
||||
;
|
||||
; Now edit one of the strings
|
||||
;
|
||||
GTWDNEXT STY ILINE
|
||||
JSR GTWGET
|
||||
^0 JSR TEDIT
|
||||
JSR PARSE
|
||||
.DA #1,GTWCR
|
||||
.DA #2,GTWESC
|
||||
BRK
|
||||
JMP <0
|
||||
;---
|
||||
GTWCR CLC
|
||||
HEX 24
|
||||
;---
|
||||
GTWESC SEC
|
||||
PHP
|
||||
JSR GTWPUT
|
||||
PLP
|
||||
LDY ILINE
|
||||
BCC >0
|
||||
DEY
|
||||
BPL GTWDNEXT
|
||||
RTS
|
||||
;
|
||||
^0 INY
|
||||
CPY #4
|
||||
BLT GTWDNEXT
|
||||
CLC
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Get text from buffer
|
||||
;
|
||||
GTWGET CLC
|
||||
HEX 24
|
||||
;
|
||||
; Put text into buffer
|
||||
;
|
||||
GTWPUT SEC
|
||||
PHP
|
||||
LDA #00
|
||||
GTWSBOFF = *-1
|
||||
CLC
|
||||
ADC ILINE
|
||||
TAY
|
||||
PLP
|
||||
BCS >0
|
||||
JMP GETTEXT
|
||||
^0 JMP PUTTEXT
|
||||
;---
|
||||
;
|
||||
; Routine to erase current line
|
||||
;
|
||||
GTWBLAK JSR GTWYCALC
|
||||
GTWBLAK2 STA >0+2
|
||||
JSR PRINT
|
||||
^0 BYT RTOSBLAK,3,0,34,7
|
||||
BYT PRKERN,1
|
||||
BYT PRCSPACE,1
|
||||
BRK
|
||||
;
|
||||
SETTMP2 LDY #TEXTBUFF
|
||||
LDA /TEXTBUFF
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Calculate Y position
|
||||
;
|
||||
GTWYCALC LDA ILINE
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC #WCYOFF
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Draw current string
|
||||
;
|
||||
GTWDRAW JSR GTWYCALC
|
||||
LDX #WCXOFF
|
||||
LDY #0
|
||||
;---
|
||||
;
|
||||
; Common draw routine
|
||||
; X:X-coordinate
|
||||
; Y:XOPTION
|
||||
; A:Y-coordinate
|
||||
; TMP2.3:string address
|
||||
;
|
||||
COMMDRAW STX SPARM+2
|
||||
LDX #0
|
||||
STX SPARM+3
|
||||
INX
|
||||
STX SPARM+7
|
||||
STY SPARM+1
|
||||
STA SPARM+4
|
||||
LDY TMP2
|
||||
LDA TMP3
|
||||
STY SPARM+9
|
||||
STA SPARM+10
|
||||
JMP STROUT
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:ICAL6"
|
|
@ -0,0 +1,229 @@
|
|||
;
|
||||
; S:ICAL6
|
||||
;
|
||||
; TOPTEXT:edit text for the top of the
|
||||
; calendar.
|
||||
;
|
||||
; CREDIT:edit text for credit line.
|
||||
;
|
||||
TTY1 = 60
|
||||
TTY2 = 107
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Edit text for top of screen
|
||||
;
|
||||
TOPTEXT LDA FONTSEL
|
||||
EOR #NOFONT
|
||||
BEQ >1
|
||||
;---
|
||||
;
|
||||
; Initialze toptext input
|
||||
;
|
||||
JSR TEINIT
|
||||
ADR TPBLAK
|
||||
ADR TPCROP
|
||||
ADR TPDRAW
|
||||
BYT 238,62,1,1
|
||||
;
|
||||
JSR SHOWTOP
|
||||
^0 LDY #31
|
||||
JSR TOPEDIT
|
||||
BCS >1
|
||||
LDY #32
|
||||
JSR TOPEDIT
|
||||
BCS <0
|
||||
^1 RTS
|
||||
;---
|
||||
;
|
||||
; Show top of screen
|
||||
;
|
||||
SHOWTOP JSR CLS1
|
||||
LDY #TTY1-4
|
||||
LDA #31
|
||||
JSR SHOWTOP1
|
||||
LDY #TTY2-4
|
||||
LDA #32
|
||||
JSR SHOWTOP1
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRCNTR,PRBIG
|
||||
.DA #PRLOC,140,#TTY1-23
|
||||
BYT 'LINE 1',CR
|
||||
BYT PRSMAL
|
||||
BYT PRVTAB,TTY2-16
|
||||
BYT 'LINE 2',CR
|
||||
BRK
|
||||
JMP SHOWEIAM
|
||||
;---
|
||||
;
|
||||
; Y for box
|
||||
; A is string number
|
||||
;
|
||||
SHOWTOP1 STA ILINE
|
||||
LDX #2
|
||||
LDA #15
|
||||
JSR DRAWBOX
|
||||
LDY ILINE
|
||||
JSR GETTEXT
|
||||
JSR TPFORM
|
||||
JSR TPBLAK
|
||||
; JSR TPCROP <<<<<<
|
||||
JMP TPDRAW
|
||||
;-----------
|
||||
;
|
||||
; Now edit one of the strings
|
||||
;
|
||||
TOPEDIT STY ILINE
|
||||
LDY ILINE
|
||||
JSR GETTEXT
|
||||
TOPEDIT2 JSR TEDIT
|
||||
PHA
|
||||
LDY ILINE
|
||||
JSR PUTTEXT
|
||||
PLA
|
||||
JSR PARSE
|
||||
.DA #1,TPCR
|
||||
.DA #2,TPESC
|
||||
.DA #3,TPCTRLI
|
||||
.DA #6,TPCTRLF
|
||||
BRK
|
||||
JMP TOPEDIT2
|
||||
;---
|
||||
TPCTRLI LDA ILINE
|
||||
PHA
|
||||
SEC
|
||||
JSR SHOWEI
|
||||
JSR SHOWTOP
|
||||
PLA
|
||||
TAY
|
||||
JMP TOPEDIT
|
||||
;---
|
||||
TPCR CLC
|
||||
RTS
|
||||
;
|
||||
TPESC SEC
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Change form
|
||||
;
|
||||
TPCTRLF LDX TEXTBUFF
|
||||
INX
|
||||
CPX #$83
|
||||
BNE >0
|
||||
LDX #$80
|
||||
^0 STX TEXTBUFF
|
||||
JSR TPFORM
|
||||
JMP TOPEDIT2
|
||||
;---
|
||||
;
|
||||
; Show current form
|
||||
;
|
||||
TPFORM JSR TPCALC
|
||||
SEC
|
||||
SBC #14
|
||||
TAY
|
||||
LDX #2
|
||||
LDA TEXTBUFF
|
||||
CMP #$81
|
||||
BEQ >1
|
||||
CMP #$82
|
||||
BEQ >2
|
||||
;
|
||||
JMP FSOLID
|
||||
^1 JMP FOUTLINE
|
||||
^2 JMP F3D
|
||||
;---
|
||||
;
|
||||
; Returns X,Y:maximum width
|
||||
; A:Y position
|
||||
;
|
||||
TPCALC LDY ILINE
|
||||
LDA TPYCALC7-31,Y
|
||||
PHA
|
||||
LDA TPYCALC8-31,Y
|
||||
TAX
|
||||
LDA TPYCALC9-31,Y
|
||||
TAY
|
||||
PLA
|
||||
RTS
|
||||
;
|
||||
TPYCALC7 BYT TTY1,TTY2
|
||||
TPYCALC8 BYT 470,940
|
||||
TPYCALC9 HBY 470,940
|
||||
;---
|
||||
;
|
||||
; Routine to erase current line
|
||||
;
|
||||
TPBLAK JSR TPCALC
|
||||
JSR GTWBLAK2
|
||||
INC TMP2
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Crop off extra characters based
|
||||
; on selected font.
|
||||
;
|
||||
TPCROP LDA #3
|
||||
STA SPARM+7
|
||||
LDY TMP2
|
||||
LDA TMP3
|
||||
STY SPARM+9
|
||||
STA SPARM+10
|
||||
JSR TPCALC
|
||||
LDA /CLFONT
|
||||
JSR STRCROP
|
||||
LDA /UFONT
|
||||
JMP FINSTALL
|
||||
;---
|
||||
;
|
||||
; Draw current string
|
||||
;
|
||||
TPDRAW JSR TPCALC
|
||||
LDX #140
|
||||
LDY #2
|
||||
JMP COMMDRAW
|
||||
;-----------
|
||||
;-----------
|
||||
;
|
||||
; Edit credit line
|
||||
;
|
||||
CREDIT JSR TEINIT
|
||||
ADR CRBLAK
|
||||
ADR RTS
|
||||
ADR CRDRAW
|
||||
BYT 0,128,2,0
|
||||
;
|
||||
JSR ERASMES2
|
||||
LDY #33
|
||||
JSR GETTEXT
|
||||
;
|
||||
LDY #0
|
||||
STY CRLINE
|
||||
;
|
||||
; TEDIT time
|
||||
;
|
||||
^0 JSR TEDIT
|
||||
JSR PARSE
|
||||
.DA #1,CRYCR
|
||||
.DA #2,CRYESC
|
||||
BRK
|
||||
JMP <0
|
||||
;---
|
||||
CRYCR CLC
|
||||
HEX 24
|
||||
;---
|
||||
CRYESC SEC
|
||||
PHP
|
||||
LDY #33
|
||||
JSR PUTTEXT
|
||||
PLP
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "ICAL",ORG
|
||||
;
|
||||
ICL "S:COMMON"
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:PCAL
|
||||
ICL "S:PCAL1"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,586 @@
|
|||
;
|
||||
; S:PCAL2
|
||||
;
|
||||
; Low-level print buffer routines
|
||||
; -------------------------------
|
||||
;
|
||||
; Install calendar buffer hooks:
|
||||
;
|
||||
; INSCFONT : install calendar font
|
||||
; INSUFONT : install user font
|
||||
; -------------------------------
|
||||
; CLRPBUFF : clear print buffer
|
||||
; PRINBUFF : print buffer to printer
|
||||
; -------------------------------
|
||||
;
|
||||
ROWBUF = $8E00-32
|
||||
;
|
||||
STRZ EPZ $50
|
||||
;
|
||||
PIXAD EPZ STRZ
|
||||
XCUR EPZ STRZ+2
|
||||
WCOUNT EPZ STRZ+4
|
||||
PBUFLO EPZ STRZ+5
|
||||
PBUFHI EPZ STRZ+6
|
||||
XBYTE EPZ STRZ+7
|
||||
COLORTMP EPZ STRZ+8
|
||||
; thru 12 available!
|
||||
YCUR EPZ STRZ+16
|
||||
;
|
||||
;PIXAD :pointer into font data
|
||||
;XCUR :16 bit x-coordinate
|
||||
;WCOUNT :starts as bit width of line
|
||||
; but is converted to bytes.
|
||||
;PBUF :pointer into planes
|
||||
;XBYTE :byte offset into plane
|
||||
;COLORTMP:color to use for current line
|
||||
; (each line different for rainbow)
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Install calendar line draw routine
|
||||
;
|
||||
; Calendar font
|
||||
;
|
||||
INSCFONT JSR STINSTAL
|
||||
ADR CLOPTION
|
||||
ADR CLLINDRW
|
||||
HBY CLFONT
|
||||
RTS
|
||||
;
|
||||
; User font
|
||||
;
|
||||
INSUFONT JSR STINSTAL
|
||||
ADR CLOPTION
|
||||
ADR CLLINDRW
|
||||
HBY UFONT
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Clear calendar buffer
|
||||
;
|
||||
CLRPBUFF JSR MTHINK
|
||||
LDY #0
|
||||
LDA /CLBUFFER
|
||||
LDX #$40
|
||||
STA >0+2
|
||||
TYA
|
||||
^0 STA CLBUFFER,Y
|
||||
INY
|
||||
BNE <0
|
||||
INC <0+2
|
||||
DEX
|
||||
BNE <0
|
||||
STA LORESH
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; SMC for OPTION
|
||||
;
|
||||
; If normal, Y=00
|
||||
; erase , Y=FF
|
||||
; So if erase is desired, then
|
||||
; set mask to #$00
|
||||
;
|
||||
CLOPTION TYA
|
||||
EOR #$FF
|
||||
STA CLINVR
|
||||
;
|
||||
; Only useful when we exit from
|
||||
; the linedraw routine.
|
||||
;
|
||||
INCPIXAD LDA WCOUNT
|
||||
CLC
|
||||
ADC PIXAD
|
||||
STA PIXAD
|
||||
BCC >0
|
||||
INC PIXAD+1
|
||||
^0 RTS
|
||||
;-----------
|
||||
;
|
||||
; Calendar LINEDRAW routine
|
||||
;
|
||||
; Compute byte width of font data
|
||||
; INT((bits-1)/8)+1
|
||||
;
|
||||
CLLINDRW LDX WCOUNT
|
||||
DEX
|
||||
TXA
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAX
|
||||
INX
|
||||
STX WCOUNT
|
||||
;
|
||||
; Now, should we bother with the
|
||||
; line draw routine?
|
||||
;
|
||||
TYA
|
||||
CLC
|
||||
ADC CSIZE
|
||||
SEC
|
||||
SBC YCLIP
|
||||
CMP YMAX
|
||||
BEQ >0
|
||||
BGE INCPIXAD
|
||||
;
|
||||
; Update lores screen?
|
||||
;
|
||||
^0 LDA LORESL
|
||||
ADC WCOUNT
|
||||
STA LORESL
|
||||
BCC >0
|
||||
INC LORESH
|
||||
LDA LORESH
|
||||
EOR #4
|
||||
BNE >0
|
||||
STA LORESH
|
||||
JSR CHECKESC
|
||||
JSR UPLRK
|
||||
;---
|
||||
;
|
||||
; Move data into ROWBUF
|
||||
;
|
||||
^0 LDY WCOUNT
|
||||
DEY
|
||||
^1 LDA (PIXAD),Y
|
||||
STA ROWBUF,Y
|
||||
DEY
|
||||
BPL <1
|
||||
;
|
||||
JSR INCPIXAD
|
||||
;---
|
||||
;
|
||||
; Double size of buffer?
|
||||
;
|
||||
LDA CSIZE
|
||||
BEQ >3
|
||||
;
|
||||
; NOTE:XBYTE is used as TEMP var
|
||||
;
|
||||
LDX WCOUNT
|
||||
^2 TXA
|
||||
ASL
|
||||
STA XBYTE
|
||||
;
|
||||
LDA ROWBUF-1,X
|
||||
AND #$0F
|
||||
TAY
|
||||
LDA DBLTBL,Y
|
||||
LDY XBYTE
|
||||
STA ROWBUF-1,Y
|
||||
;
|
||||
LDA ROWBUF-1,X
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAY
|
||||
LDA DBLTBL,Y
|
||||
LDY XBYTE
|
||||
STA ROWBUF-2,Y
|
||||
DEX
|
||||
BNE <2
|
||||
ASL WCOUNT
|
||||
;---
|
||||
;
|
||||
; Rotate buffer to the right if
|
||||
; necessary.
|
||||
;
|
||||
^3 LDA XCUR
|
||||
AND #7
|
||||
TAY
|
||||
BEQ >6
|
||||
;
|
||||
; Rotate (XCUR & 7) times
|
||||
;
|
||||
LDX WCOUNT
|
||||
LDA #0
|
||||
STA ROWBUF,X
|
||||
INC WCOUNT
|
||||
^4 LDX #0
|
||||
CLC
|
||||
^5 ROR ROWBUF,X
|
||||
INX
|
||||
TXA
|
||||
EOR WCOUNT
|
||||
BNE <5
|
||||
DEY
|
||||
BNE <4
|
||||
;
|
||||
; Starting X-byte offset = XCUR/8
|
||||
;
|
||||
^6 LDA XCUR+1
|
||||
STA XBYTE
|
||||
LDA XCUR
|
||||
LSR XBYTE
|
||||
ROR
|
||||
LSR XBYTE
|
||||
ROR
|
||||
LSR
|
||||
STA XBYTE
|
||||
;
|
||||
; Now draw ROWBUF into buffer
|
||||
;
|
||||
LDY YCUR
|
||||
JSR PUTROW
|
||||
LDA CSIZE
|
||||
BEQ PUTROWX
|
||||
LDY YCUR
|
||||
INY
|
||||
;---
|
||||
;
|
||||
; Draw ROWBUF into buffers
|
||||
;
|
||||
; $2000.2FFF yellow (black in B/W)
|
||||
; 3000.3FFF red
|
||||
; 4000.4FFF blue
|
||||
; 5000.5FFF black
|
||||
;
|
||||
; Set PBUF pointer to yellow plane
|
||||
;
|
||||
PUTROW TYA
|
||||
STA RAINY
|
||||
SEC
|
||||
SBC YCLIP
|
||||
CMP YMAX
|
||||
BGE PUTROWX
|
||||
;
|
||||
LSR
|
||||
TAY
|
||||
LDA #0
|
||||
ROR
|
||||
ORA XBYTE
|
||||
STA PBUFLO
|
||||
TYA
|
||||
ADC /CLBUFFER
|
||||
STA PBUFHI
|
||||
;
|
||||
; Set color plane
|
||||
; NOTE:if erasing, then CLINVR will
|
||||
; be set to #$00, causing all 4
|
||||
; planes to be erased.
|
||||
;
|
||||
LDY COLOR
|
||||
^0 LDA COLORTBL,Y
|
||||
AND #$FF ; smc
|
||||
CLINVR = *-1
|
||||
STA COLORTMP
|
||||
BPL >1
|
||||
;
|
||||
; If rainbow, go back and get new color!
|
||||
;
|
||||
LDA #00
|
||||
RAINY = *-1
|
||||
AND #$0F
|
||||
TAX
|
||||
LDY RBTBL,X
|
||||
BPL <0
|
||||
;---
|
||||
;
|
||||
; Now determine whether or not to
|
||||
; turn bits on or off!
|
||||
;
|
||||
^1 LDA #$19 ; ORA ABS,Y
|
||||
LSR COLORTMP
|
||||
BCS *+4
|
||||
LDA #$59 ; EOR ABS,Y
|
||||
STA >3+0
|
||||
LDY WCOUNT
|
||||
DEY
|
||||
^2 LDA (PBUFLO),Y
|
||||
ORA ROWBUF,Y
|
||||
^3 ORA ROWBUF,Y ; (EOR ROWBUF,Y)
|
||||
STA (PBUFLO),Y
|
||||
DEY
|
||||
BPL <2
|
||||
;
|
||||
; Point to next color plane
|
||||
;
|
||||
LDA PBUFHI
|
||||
CLC
|
||||
ADC #$10
|
||||
STA PBUFHI
|
||||
CMP /CLBUFFER+$4000
|
||||
BGE PUTROWX
|
||||
;
|
||||
; If color, go back and do it!
|
||||
;
|
||||
LDA COLORPR
|
||||
BNE <1
|
||||
;
|
||||
PUTROWX RTS
|
||||
;-----------
|
||||
;
|
||||
; ----- RIBBON COLOR -----
|
||||
;
|
||||
; bit 0 yellow
|
||||
; bit 1 red
|
||||
; bit 2 blue
|
||||
; bit 3 black
|
||||
;
|
||||
; BLACK,RED,ORANGE,YELLOW,GREEN
|
||||
; BLUE,PURPLE,RAINBOW,CLEAR
|
||||
;
|
||||
COLORTBL BYT 8,2,3,1,5,4,6
|
||||
RAINBOW BYT $80,0
|
||||
;
|
||||
; Black ribbon mod
|
||||
;
|
||||
; 1 color,4 color,3 color
|
||||
; 1 only draws to yellow plane!!!
|
||||
;
|
||||
BLACKTBL BYT 1,8,7
|
||||
;
|
||||
; Rainbow colors
|
||||
;
|
||||
RBTBL BYT 1,1,1,2,2,3,3,3
|
||||
BYT 4,4,4,5,5,5,6,6
|
||||
;
|
||||
; Double 4 bits to 8 bits
|
||||
;
|
||||
DBLTBL HEX 00030C0F
|
||||
HEX 30333C3F
|
||||
HEX C0C3CCCF
|
||||
HEX F0F3FCFF
|
||||
;-----------
|
||||
******** *************************
|
||||
;-----------
|
||||
;
|
||||
PRZ EPZ $80
|
||||
;
|
||||
PYEND EPZ PRZ
|
||||
PXCOOR EPZ PRZ+1
|
||||
PYCOOR EPZ PRZ+2
|
||||
PYCOORSV EPZ PRZ+3
|
||||
;
|
||||
PXCOUNT EPZ PRZ+4
|
||||
PYCOUNT EPZ PRZ+5
|
||||
;
|
||||
PBUILD EPZ PRZ+6
|
||||
PYSPACE EPZ PRZ+7
|
||||
;
|
||||
PBUFSAVL EPZ PRZ+8
|
||||
PBUFSAVH EPZ PRZ+9
|
||||
PBUFL EPZ PRZ+10
|
||||
PBUFH EPZ PRZ+11
|
||||
PBUFOFF EPZ PRZ+12
|
||||
PRRIBBON EPZ PRZ+13
|
||||
;
|
||||
; Print buffer A=# of scan lines
|
||||
; to print.
|
||||
;
|
||||
; Returns: SEC=ESC pressed
|
||||
; CLC=entire buffer printed
|
||||
;
|
||||
PRINBUFF STA PYEND
|
||||
;
|
||||
JSR MPRINT
|
||||
;
|
||||
LDA #0
|
||||
;
|
||||
; Print single line of buffer
|
||||
;
|
||||
CLPRLOP1 STA PYCOORSV
|
||||
;
|
||||
; Calculate buffer address
|
||||
;
|
||||
LSR
|
||||
TAY
|
||||
LDA #0
|
||||
ROR
|
||||
STA PBUFSAVL
|
||||
TYA
|
||||
ADC /CLBUFFER
|
||||
STA PBUFSAVH
|
||||
;
|
||||
; COLOR?
|
||||
;
|
||||
LDA COLORPR
|
||||
BEQ >0
|
||||
LDA #3
|
||||
^0 STA PRRIBBON
|
||||
BEQ >1
|
||||
;---
|
||||
;
|
||||
; Loop here for color
|
||||
;
|
||||
CLPRCOL1 LDX PRRIBBON
|
||||
JSR COLORCHG
|
||||
;
|
||||
; Check to see if all zeros
|
||||
;
|
||||
^1 JSR CLBUFZER
|
||||
BEQ CLPRSKP1
|
||||
;
|
||||
; Tell printer how many bytes
|
||||
;
|
||||
LDX #BUFWIDTH
|
||||
LDY /BUFWIDTH
|
||||
JSR SENDGC
|
||||
;
|
||||
LDX #0
|
||||
;
|
||||
; Output line of data
|
||||
;
|
||||
CLPRLOP2 STX PXCOOR
|
||||
LDX #0
|
||||
;
|
||||
; Output 8 bytes
|
||||
;
|
||||
CLPRLOP3 STX PXCOUNT
|
||||
LDX PBUFSAVL
|
||||
LDA PBUFSAVH
|
||||
STX PBUFL
|
||||
STA PBUFH
|
||||
LDX #0
|
||||
STX PBUILD
|
||||
LDY PYCOORSV
|
||||
;
|
||||
; Output 1 byte
|
||||
;
|
||||
; X=counter, 0-6
|
||||
; Y=Y-coordinate
|
||||
;
|
||||
CLPRLOP4 STX PYCOUNT
|
||||
STY PYCOOR
|
||||
;
|
||||
LDY PXCOOR
|
||||
LDA (PBUFL),Y
|
||||
LDX PXCOUNT
|
||||
AND PBITS8,X
|
||||
BEQ >1
|
||||
;
|
||||
LDY PYCOUNT
|
||||
LDA PBITS7,Y
|
||||
ORA PBUILD
|
||||
STA PBUILD
|
||||
;
|
||||
^1 LDA PBUFL
|
||||
EOR #$80
|
||||
STA PBUFL
|
||||
BNE *+4
|
||||
INC PBUFH
|
||||
;
|
||||
LDY PYCOOR
|
||||
INY
|
||||
LDX PYCOUNT
|
||||
INX
|
||||
CPY PYEND
|
||||
BEQ >2
|
||||
CPX #7
|
||||
BLT CLPRLOP4
|
||||
;
|
||||
^2 STX PYSPACE
|
||||
LDA PBUILD
|
||||
JSR GCOUT
|
||||
;
|
||||
LDX PXCOUNT
|
||||
INX
|
||||
CPX #8
|
||||
BLT CLPRLOP3
|
||||
;
|
||||
LDX PXCOOR
|
||||
INX
|
||||
CPX #BUFWIDTH/8
|
||||
BLT CLPRLOP2
|
||||
;
|
||||
; CR without LF
|
||||
;
|
||||
CLPRSKP1 LDA #CR
|
||||
JSR COUT1
|
||||
;
|
||||
; If color then go to next plane
|
||||
;
|
||||
LDA COLORPR
|
||||
BEQ >0
|
||||
LDA PBUFSAVH
|
||||
CLC
|
||||
ADC #$10
|
||||
STA PBUFSAVH
|
||||
DEC PRRIBBON
|
||||
BMI >0
|
||||
JMP CLPRCOL1
|
||||
;
|
||||
; Now do LF
|
||||
;
|
||||
^0 LDX PYSPACE
|
||||
LDY #1
|
||||
JSR CRLF
|
||||
;
|
||||
JSR CHECKESC
|
||||
;
|
||||
LDA PYCOORSV
|
||||
CLC
|
||||
ADC PYSPACE
|
||||
CMP PYEND
|
||||
CLC
|
||||
BEQ >9
|
||||
JMP CLPRLOP1
|
||||
^9 RTS
|
||||
;
|
||||
; Bit lookup tables
|
||||
;
|
||||
PBITS8 HEX 80
|
||||
PBITS7 HEX 40201008040201
|
||||
;-----------
|
||||
;
|
||||
; Check current buffer for zeros
|
||||
;
|
||||
; BEQ=this line is all zeros
|
||||
; BNE=this line contains data
|
||||
;
|
||||
CLBUFZER LDY PBUFSAVL
|
||||
LDA PBUFSAVH
|
||||
STY PBUFL
|
||||
STA PBUFH
|
||||
;
|
||||
; Calculate how many lines to check
|
||||
;
|
||||
LDA PYEND
|
||||
SEC
|
||||
SBC PYCOORSV
|
||||
CMP #7
|
||||
BLT *+4
|
||||
LDA #7
|
||||
STA PYSPACE
|
||||
TAX
|
||||
;
|
||||
^0 LDY #0
|
||||
^1 LDA (PBUFL),Y
|
||||
BNE >2
|
||||
INY
|
||||
BPL <1
|
||||
LDA PBUFL
|
||||
EOR #$80
|
||||
STA PBUFL
|
||||
BNE *+4
|
||||
INC PBUFH
|
||||
DEX
|
||||
BNE <0
|
||||
^2 RTS
|
||||
;-----------
|
||||
;
|
||||
; Check for <ESC>, if yes then
|
||||
; show pausing message and allow
|
||||
; another <ESC> to abort.
|
||||
;
|
||||
CHECKESC JSR POLEKEY
|
||||
CMP #ESC
|
||||
BNE <2
|
||||
JSR DEVICEON
|
||||
JSR MPAUSE
|
||||
SEI
|
||||
PHP
|
||||
JSR DEVICEOF
|
||||
PLP
|
||||
BCC <2
|
||||
JMP ABORT
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
USR "PCAL",ORG
|
||||
;
|
||||
ICL "S:COMMON"
|
|
@ -0,0 +1,3 @@
|
|||
NLS
|
||||
; S:UCAL
|
||||
ICL "S:UCAL1"
|
|
@ -0,0 +1,252 @@
|
|||
TTL "S:UCAL"
|
||||
; S:UCAL1
|
||||
NOG
|
||||
ORG = $4000
|
||||
;
|
||||
; 09/13/85
|
||||
; 12/05/85
|
||||
;
|
||||
; Print Shop Companion Calendar
|
||||
; by Roland Gustafsson
|
||||
; Copyright 1985
|
||||
;
|
||||
; User interface module, menus,
|
||||
; screens, etc...
|
||||
;
|
||||
;-----------
|
||||
ORG ORG
|
||||
OBJ $800
|
||||
;-----------
|
||||
JMP START
|
||||
JMP START
|
||||
;
|
||||
JMP CRBLAK
|
||||
JMP CRDRAW
|
||||
;-----------
|
||||
;
|
||||
ASC "COPYRIGHT 1985 "
|
||||
BYT "ROLAND GUSTAFSSON"
|
||||
;
|
||||
; Initialize external routines
|
||||
;
|
||||
START BIT $C083
|
||||
BIT $C083
|
||||
JSR INITCAL
|
||||
;-----------
|
||||
;-----------
|
||||
;
|
||||
; Clear variables START FRESH
|
||||
;
|
||||
START1 JSR CLRCOBUF
|
||||
;-----------
|
||||
;
|
||||
; Enter here to leave data intact
|
||||
;
|
||||
START2 JSR TPTITLE2
|
||||
;
|
||||
; If no printer setup, then quit.
|
||||
;
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#70
|
||||
BRK
|
||||
LDA #CR
|
||||
JSR CHKPRINT
|
||||
BCC MENUSCT0
|
||||
JMP MAINMENU
|
||||
;-----------
|
||||
;
|
||||
; Select calendar type
|
||||
;
|
||||
MENUSCT0 JSR SELTYPE
|
||||
BCC MENUSGR0
|
||||
JSR ESCMAIN
|
||||
BCS MENUSCT0
|
||||
;-----------
|
||||
;
|
||||
; Select graphic
|
||||
;
|
||||
MENUSGR0 JSR SELGR
|
||||
BCS MENUSCT0
|
||||
;
|
||||
; Graphic position
|
||||
;
|
||||
MENUSGR1 JSR SELGRPOS
|
||||
BCS MENUSGR0
|
||||
;-----------
|
||||
;
|
||||
; Select YEAR
|
||||
;
|
||||
MENUSYR0 JSR SELYEAR
|
||||
BCS MENUSGR1
|
||||
;-----------
|
||||
;
|
||||
; Select MONTH
|
||||
;
|
||||
MENUSMN0 JSR SELMONTH
|
||||
BCS MENUSYR0
|
||||
;-----------
|
||||
;
|
||||
; Select FONT
|
||||
;
|
||||
MENUSFN0 JSR SELFONT
|
||||
BCS MENUSMN0
|
||||
;
|
||||
; Enter text for top of page
|
||||
;
|
||||
MENUSFN1 JSR TPTITLE
|
||||
JSR TOPTEXT
|
||||
BCS MENUSFN0
|
||||
;-----------
|
||||
;
|
||||
; Enter data for CENTER of calendar
|
||||
;
|
||||
MENUCTR0 JSR CRTITLE
|
||||
JSR CENTER
|
||||
BCS MENUSFN1
|
||||
;-----------
|
||||
;
|
||||
; Credit line for bottom of page
|
||||
;
|
||||
MENUCRL0 JSR BMTITLE
|
||||
JSR CREDIT2
|
||||
BCS MENUCTR0
|
||||
;-----------
|
||||
;
|
||||
; Select colors
|
||||
;
|
||||
MENUCOLR JSR SELCOLOR
|
||||
BCS MENUCRL0
|
||||
;-----------
|
||||
;
|
||||
; PRINT MENU
|
||||
;
|
||||
; SEC=<esc> pressed
|
||||
; CLC=start fresh
|
||||
;
|
||||
JSR PRINMENU
|
||||
BCS MENUCOLR
|
||||
BCC START1
|
||||
;-----------
|
||||
;
|
||||
; TOP
|
||||
;
|
||||
TPTITLE BCC >0
|
||||
TPTITLE2 PHP
|
||||
JSR TITLE
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRINVR
|
||||
BYT 'TOP',CR,0
|
||||
PLP
|
||||
^0 RTS
|
||||
;
|
||||
; CENTER
|
||||
;
|
||||
CRTITLE PHP
|
||||
JSR TITLE
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRINVR
|
||||
BYT 'CENTER',CR,0
|
||||
PLP
|
||||
RTS
|
||||
;
|
||||
; BOTTOM
|
||||
;
|
||||
BMTITLE JSR TITLE
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRINVR
|
||||
BYT 'BOTTOM',CR,0
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Print menu
|
||||
;
|
||||
PRTITLE BCS >0
|
||||
PRTITLE2 PHP
|
||||
JSR TITLE
|
||||
JSR PRINT
|
||||
BYT PRBIG,PRINVR
|
||||
BYT 'PRINT',CR
|
||||
BRK
|
||||
PLP
|
||||
^0 RTS
|
||||
;---
|
||||
;
|
||||
; TITLE
|
||||
;
|
||||
TITLE JSR WITEBORD
|
||||
JSR ESCBACK
|
||||
JSR PRINT
|
||||
.DA #PRLOC,136,#4
|
||||
BYT PRRITE,PRINVR
|
||||
.DA #PRSTR,TXTCAL
|
||||
BYT ':',CR
|
||||
.DA #PRLOC,146,#1,#0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Center of calendar handler
|
||||
;
|
||||
CENTER LDA CLTYPE
|
||||
BNE GTWEEKLY
|
||||
;-----------
|
||||
;
|
||||
; Menus for monthly calendar.
|
||||
;
|
||||
GTMONTH JSR SELDATE
|
||||
BCS >9
|
||||
; DONE?
|
||||
CPX MNLAST
|
||||
BEQ >0
|
||||
BGE >8
|
||||
;
|
||||
; Type in text for date
|
||||
;
|
||||
^0 JSR GTMTEXT
|
||||
BCC GTMONTH
|
||||
;
|
||||
; Out of memory!
|
||||
;
|
||||
JSR CLS1
|
||||
JSR MUSIC
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#66
|
||||
BYT 'SORRY, OUT OF MEMORY',CR
|
||||
BYT CR
|
||||
BYT 'UNABLE TO STORE...',CR
|
||||
BRK
|
||||
JSR ANYKEY
|
||||
JMP GTMONTH
|
||||
;
|
||||
^8 CLC
|
||||
^9 RTS
|
||||
;-----------
|
||||
;
|
||||
; Menus for weekly calendar.
|
||||
;
|
||||
; First, select starting date
|
||||
;
|
||||
GTWEEKLY BCS >1
|
||||
^0 JSR SELDATE
|
||||
BCS <9
|
||||
;
|
||||
; Calculate day of week!
|
||||
;
|
||||
LDY MNDATE
|
||||
JSR CALCDAY
|
||||
;
|
||||
; Now select which day to edit
|
||||
;
|
||||
^1 JSR SELWDATE
|
||||
BCS <0
|
||||
; DONE?
|
||||
CPX #7
|
||||
BEQ <8
|
||||
;
|
||||
JSR GTWTEXT
|
||||
JMP <1
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:UCAL2"
|
|
@ -0,0 +1,523 @@
|
|||
;
|
||||
; S:UCAL2
|
||||
;
|
||||
; Calendar user interface menus
|
||||
;
|
||||
; SELGRPOS:select graphic position
|
||||
; SELYEAR :type in year for calendar
|
||||
; SELMONTH:select month
|
||||
; CALCDAY :calculate day of week
|
||||
; given Y=date 1-31,
|
||||
; MONTH=0-11 and YEARTEXT
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Select graphic position option
|
||||
;
|
||||
LCTXT BYT 'LEFT CORNER',0
|
||||
RCTXT BYT 'RIGHT CORNER',0
|
||||
BCTXT BYT 'BOTH CORNERS',0
|
||||
ROTXT BYT 'ROW OF ',0
|
||||
;
|
||||
SGPY = 28
|
||||
SGBXY = 136
|
||||
;
|
||||
SELGRPOS LDA GRSEL
|
||||
EOR #NOGR
|
||||
BEQ >0
|
||||
;
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#SGPY
|
||||
BYT 'SELECT '
|
||||
.DA #PRSTR,TXTGR
|
||||
BYT ' POSITION:',CR
|
||||
BYT CR
|
||||
.DA #PRSTR,LCTXT,#CR
|
||||
.DA #PRSTR,RCTXT,#CR
|
||||
.DA #PRSTR,BCTXT,#CR
|
||||
.DA #PRSTR,ROTXT
|
||||
BYT 'SIX',CR
|
||||
BYT 'TILED',CR
|
||||
;
|
||||
.DA #PRSTR,LCTXT,#CR
|
||||
.DA #PRSTR,RCTXT,#CR
|
||||
.DA #PRSTR,BCTXT,#CR
|
||||
.DA #PRSTR,ROTXT
|
||||
BYT 'THREE',CR
|
||||
BYT 'TILED',CR
|
||||
;
|
||||
; Draw box for position information:
|
||||
;
|
||||
BYT RTOSANY,$60,8,SGBXY,1,30
|
||||
BYT RTOSANY,$03,31,SGBXY,1,30
|
||||
BYT RTOSWITE,9,SGBXY,22,1
|
||||
BYT RTOSWITE,9,SGBXY+29,22,1
|
||||
BRK
|
||||
;
|
||||
LDY GROPTION
|
||||
JSR SELECT
|
||||
BYT 10,20,SGPY+15,10
|
||||
ADR SGBOX
|
||||
STY GROPTION
|
||||
^0 RTS
|
||||
;---
|
||||
;
|
||||
; Show position on screen
|
||||
;
|
||||
SGBOX PHA
|
||||
JSR PRINT
|
||||
BYT RTOSBLAK,9,SGBXY+1,22,21,0
|
||||
PLA
|
||||
;
|
||||
LSR
|
||||
TAX
|
||||
;
|
||||
LDY #SGBXSMAL
|
||||
LDA /SGBXSMAL
|
||||
CPX #5
|
||||
BLT >0
|
||||
LDY #SGBXBIG
|
||||
LDA /SGBXBIG
|
||||
^0 STY SGBOX1+1
|
||||
STA SGBOX1+2
|
||||
;
|
||||
LDA SGBXSTRT,X
|
||||
STA TMP0
|
||||
LDA SGBXNUMB,X
|
||||
STA TMP1
|
||||
LDA SGBXINC,X
|
||||
STA TMP2
|
||||
;
|
||||
^1 LDX TMP0
|
||||
SGBOX1 JSR $FFFF
|
||||
LDA TMP0
|
||||
CLC
|
||||
ADC TMP2
|
||||
STA TMP0
|
||||
DEC TMP1
|
||||
BNE <1
|
||||
RTS
|
||||
;
|
||||
; Xstart,Xcount,Xinc
|
||||
;
|
||||
SGBXSTRT BYT 9,29,9,9,10
|
||||
BYT 9,27,9,10,10
|
||||
SGBXNUMB BYT 1,1,2,6,10
|
||||
BYT 1,1,2,3,5
|
||||
SGBXINC BYT 0,0,20,4,2
|
||||
BYT 0,0,18,8,4
|
||||
;
|
||||
; Small
|
||||
;
|
||||
SGBXSMAL STX >0+2
|
||||
INX
|
||||
STX >1+2
|
||||
JSR PRINT
|
||||
^0 BYT RTOSANY,$7E,00,SGBXY+7,1,10
|
||||
^1 BYT RTOSANY,$3F,01,SGBXY+7,1,10
|
||||
BRK
|
||||
RTS
|
||||
;
|
||||
; Big
|
||||
;
|
||||
SGBXBIG STX >0+2
|
||||
INX
|
||||
STX >1+1
|
||||
INX
|
||||
INX
|
||||
STX >2+2
|
||||
JSR PRINT
|
||||
^0 BYT RTOSANY,$7E,00,SGBXY+2,1,20
|
||||
^1 BYT RTOSWITE,01,SGBXY+2,2,20
|
||||
^2 BYT RTOSANY,$3F,03,SGBXY+2,1,20
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Select year for calendar
|
||||
;
|
||||
SYX = 61
|
||||
SYY = 69
|
||||
;
|
||||
SELYEAR JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,SYX,#SYY
|
||||
BYT 'WHAT YEAR IS THIS',CR
|
||||
.DA #PRSTR,TXTCAL,' FOR ?',#CR
|
||||
BYT CR,'>',CR,CR
|
||||
BYT '(1753-9999)',CR,0
|
||||
;
|
||||
^0 JSR INPUT
|
||||
ADR YEARTEXT
|
||||
BYT 4
|
||||
.DA SYX+9
|
||||
BYT SYY+24
|
||||
BCS >9
|
||||
;
|
||||
JSR CALCYEAR
|
||||
LDY #32
|
||||
LDX #YEARTEXT
|
||||
LDA /YEARTEXT
|
||||
STX TMP4
|
||||
STA TMP5
|
||||
BCC STORE?
|
||||
;
|
||||
JSR BOOP
|
||||
JMP <0
|
||||
;-----------
|
||||
;
|
||||
; Given TMP4.5: source buffer
|
||||
; Y : dest string #
|
||||
; (X,A): dest buffer
|
||||
;
|
||||
; If there is no data for the string,
|
||||
; store the text pointed to by X,A.
|
||||
;
|
||||
STORE? STX STOREADR+1
|
||||
STA STOREADR+2
|
||||
STY >1+1
|
||||
JSR GETTEXT
|
||||
;
|
||||
; Move the text to buffers
|
||||
;
|
||||
LDA #$80
|
||||
STA TEXTBUFF
|
||||
LDY #$FF
|
||||
^0 INY
|
||||
LDA (TMP4),Y
|
||||
STOREADR STA $FFFF,Y
|
||||
STA TEXTBUFF+1,Y
|
||||
BNE <0
|
||||
BCS >2
|
||||
;
|
||||
^1 LDY #00
|
||||
JSR PUTTEXT
|
||||
;
|
||||
^2 CLC
|
||||
^9 RTS
|
||||
;-----------
|
||||
;
|
||||
; Get month for calendar
|
||||
;
|
||||
SMY = 34
|
||||
;
|
||||
SELMONTH JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#SMY
|
||||
.DA #PRSTR,TXTCHOO
|
||||
BYT 'A MONTH:',CR,CR,0
|
||||
;
|
||||
JSR PRINTGRP
|
||||
BYT PRCNTR
|
||||
BYT 12
|
||||
ADR TXTJAN
|
||||
;
|
||||
LDY MONTH
|
||||
JSR SELECT
|
||||
BYT 13,14,SMY+15,12
|
||||
ADR RTS
|
||||
STY MONTH
|
||||
BCS <9
|
||||
;
|
||||
LDX MONTHADL,Y
|
||||
LDA MONTHADH,Y
|
||||
STX TMP4
|
||||
STA TMP5
|
||||
;
|
||||
LDX #MONTHTXT
|
||||
LDA /MONTHTXT
|
||||
LDY #31
|
||||
BCC STORE?
|
||||
;-----------
|
||||
MONTHADL BYT TXTJAN,TXTFEB,TXTMAR
|
||||
BYT TXTAPR,TXTMAY,TXTJUN
|
||||
BYT TXTJUL,TXTAUG,TXTSEP
|
||||
BYT TXTOCT,TXTNOV,TXTDEC
|
||||
;
|
||||
MONTHADH HBY TXTJAN,TXTFEB,TXTMAR
|
||||
HBY TXTAPR,TXTMAY,TXTJUN
|
||||
HBY TXTJUL,TXTAUG,TXTSEP
|
||||
HBY TXTOCT,TXTNOV,TXTDEC
|
||||
;
|
||||
; Text for all the months
|
||||
;
|
||||
TXTJAN BYT 'JANUARY',0
|
||||
TXTFEB BYT 'FEBRUARY',0
|
||||
TXTMAR BYT 'MARCH',0
|
||||
TXTAPR BYT 'APRIL',0
|
||||
TXTMAY BYT 'MAY',0
|
||||
TXTJUN BYT 'JUNE',0
|
||||
TXTJUL BYT 'JULY',0
|
||||
TXTAUG BYT 'AUGUST',0
|
||||
TXTSEP BYT 'SEPTEMBER',0
|
||||
TXTOCT BYT 'OCTOBER',0
|
||||
TXTNOV BYT 'NOVEMBER',0
|
||||
TXTDEC BYT 'DECEMBER',0
|
||||
;-----------
|
||||
;
|
||||
; Given YEARTEXT, compute CDYRLO.HI
|
||||
; If SEC, then not a valid year.
|
||||
;
|
||||
MINYEAR = 1753
|
||||
;
|
||||
CALCYEAR LDY #0
|
||||
STY CDYRLO
|
||||
STY CDYRHI
|
||||
^0 LDA YEARTEXT,Y
|
||||
CMP #'0'
|
||||
BCC >2
|
||||
CMP #'9'+1
|
||||
BCS >2
|
||||
AND #$0F
|
||||
PHA
|
||||
;
|
||||
; Multiply by 10
|
||||
;
|
||||
LDX CDYRHI
|
||||
LDA CDYRLO
|
||||
ASL
|
||||
ROL CDYRHI
|
||||
ASL
|
||||
ROL CDYRHI
|
||||
ADC CDYRLO
|
||||
STA CDYRLO
|
||||
TXA
|
||||
ADC CDYRHI
|
||||
STA CDYRHI
|
||||
ASL CDYRLO
|
||||
ROL CDYRHI
|
||||
;
|
||||
; Add in new digit
|
||||
;
|
||||
PLA
|
||||
ADC CDYRLO
|
||||
STA CDYRLO
|
||||
BCC *+4
|
||||
INC CDYRHI
|
||||
INY
|
||||
CPY #4
|
||||
BLT <0
|
||||
;
|
||||
LDY CDYRLO
|
||||
LDA CDYRHI
|
||||
CMP /MINYEAR
|
||||
BNE >1
|
||||
CPY #MINYEAR
|
||||
^1 BLT >2
|
||||
CLC
|
||||
RTS
|
||||
;
|
||||
^2 SEC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Given YEARTEXT:1753-9999
|
||||
; MONTH:0-11
|
||||
; Y:date 1-31
|
||||
;
|
||||
; Calculate which day of the week this
|
||||
; month starts on and # days in month.
|
||||
;
|
||||
; 0:Sunday 1:Monday 2:Tuesday
|
||||
; 3:Wednesday 4:Thursday 5:Friday
|
||||
; 6:Saturday
|
||||
;
|
||||
; Uses the following weird formula
|
||||
; invented by Roland
|
||||
;
|
||||
; DAY= (YEAR
|
||||
; +INT((YEAR-1)/4)
|
||||
; -INT((YEAR-1)/100)
|
||||
; +INT((YEAR-1)/400)
|
||||
; +(#days in previous months) (0 for JAN, 31 for FEB)
|
||||
; +(DATE-1)
|
||||
; ) MOD 7
|
||||
;---
|
||||
CDZ EPZ $70
|
||||
;
|
||||
CDDAYLO EPZ CDZ
|
||||
CDDAYHI EPZ CDZ+1
|
||||
CDYRLO EPZ CDZ+2
|
||||
CDYRHI EPZ CDZ+3
|
||||
CDLPFLG EPZ CDZ+4
|
||||
;
|
||||
ACCUMLO EPZ CDZ+5
|
||||
ACCUMHI EPZ CDZ+6
|
||||
ACCUM2LO EPZ CDZ+7
|
||||
ACCUM2HI EPZ CDZ+8
|
||||
REMAINLO EPZ CDZ+9
|
||||
REMAINHI EPZ CDZ+10
|
||||
;---
|
||||
CALCDAY DEY
|
||||
STY DATE
|
||||
JSR CALCYEAR
|
||||
LDY CDYRLO
|
||||
LDA CDYRHI
|
||||
STY CDDAYLO
|
||||
STA CDDAYHI
|
||||
;
|
||||
; Modify February if leap year
|
||||
;
|
||||
JSR CDLEAP?
|
||||
LDA #28
|
||||
ADC #0
|
||||
STA DYSINMON+1
|
||||
;
|
||||
; Set YR=(YEAR-1)
|
||||
;
|
||||
LDX CDYRLO
|
||||
BNE >0
|
||||
DEC CDYRHI
|
||||
^0 DEC CDYRLO
|
||||
;
|
||||
; Now do mathematics
|
||||
;
|
||||
JSR DIVYR4
|
||||
JSR CDDAYADD
|
||||
;
|
||||
JSR DIVYR100
|
||||
JSR CDDAYSUB
|
||||
;
|
||||
JSR DIVYR400
|
||||
JSR CDDAYADD
|
||||
;
|
||||
; Add in days for previous months
|
||||
;
|
||||
LDY #0
|
||||
LDX MONTH
|
||||
LDA DYSINMON,X
|
||||
STA MNLAST
|
||||
^0 DEX
|
||||
BMI >1
|
||||
LDA DYSINMON,X
|
||||
JSR CDDAYADD
|
||||
BCC <0
|
||||
;
|
||||
; Add in current date
|
||||
;
|
||||
^1 LDA DATE
|
||||
JSR CDDAYADD
|
||||
;
|
||||
LDY CDDAYLO
|
||||
LDA CDDAYHI
|
||||
STY ACCUMLO
|
||||
STA ACCUMHI
|
||||
;
|
||||
; Get DAY modulus 7
|
||||
;
|
||||
LDA #7
|
||||
LDY #0
|
||||
JSR DIV16
|
||||
LDA REMAINLO
|
||||
STA MNFDAY
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Days in month
|
||||
;
|
||||
DYSINMON BYT 31,28,31,30,31,30
|
||||
BYT 31,31,30,31,30,31
|
||||
;---
|
||||
;
|
||||
; Subtract Y,A from DAY
|
||||
;
|
||||
CDDAYSUB EOR #$FF
|
||||
PHA
|
||||
TYA
|
||||
EOR #$FF
|
||||
TAY
|
||||
PLA
|
||||
SEC
|
||||
HEX 24
|
||||
;
|
||||
; Add Y,A to DAY
|
||||
;
|
||||
CDDAYADD CLC
|
||||
ADC CDDAYLO
|
||||
STA CDDAYLO
|
||||
TYA
|
||||
ADC CDDAYHI
|
||||
STA CDDAYHI
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Return SEC if leap year
|
||||
;
|
||||
CDLEAP? ASL CDLPFLG
|
||||
JSR DIVYR4
|
||||
BCS >0
|
||||
INC CDLPFLG
|
||||
^0 JSR DIVYR100
|
||||
BCS >1
|
||||
DEC CDLPFLG
|
||||
^1 JSR DIVYR400
|
||||
BCS >2
|
||||
INC CDLPFLG
|
||||
^2 ROR CDLPFLG
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Divide year routines:
|
||||
; for 4,100 and 400
|
||||
;
|
||||
DIVYR4 LDA #4
|
||||
HEX 2C
|
||||
;
|
||||
DIVYR100 LDA #100
|
||||
LDY #0
|
||||
BEQ >0
|
||||
;
|
||||
DIVYR400 LDA #400
|
||||
LDY /400
|
||||
;
|
||||
; Divide YR by Y,A
|
||||
;
|
||||
^0 LDX CDYRLO
|
||||
STX ACCUMLO
|
||||
LDX CDYRHI
|
||||
STX ACCUMHI
|
||||
;
|
||||
; Divide ACCUM by Y,A
|
||||
;
|
||||
; Return result in Y,A
|
||||
; SEC means there was a remainder
|
||||
;
|
||||
DIV16 STA ACCUM2LO
|
||||
STY ACCUM2HI
|
||||
LDA #0
|
||||
STA REMAINLO
|
||||
STA REMAINHI
|
||||
;
|
||||
LDY #16
|
||||
^0 ASL ACCUMLO
|
||||
ROL ACCUMHI
|
||||
ROL REMAINLO
|
||||
ROL REMAINHI
|
||||
SEC
|
||||
LDA REMAINLO
|
||||
SBC ACCUM2LO
|
||||
TAX
|
||||
LDA REMAINHI
|
||||
SBC ACCUM2HI
|
||||
BCC >1
|
||||
STX REMAINLO
|
||||
STA REMAINHI
|
||||
INC ACCUMLO
|
||||
^1 DEY
|
||||
BNE <0
|
||||
SEC
|
||||
LDA REMAINLO
|
||||
ORA REMAINHI
|
||||
BNE >2
|
||||
CLC
|
||||
^2 LDA ACCUMLO
|
||||
LDY ACCUMHI
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:UCAL3"
|
|
@ -0,0 +1,578 @@
|
|||
;
|
||||
; S:UCAL3
|
||||
;
|
||||
; More menus
|
||||
;
|
||||
; SELTYPE :select calendar type
|
||||
; SELGR :select graphic
|
||||
; SELFONT :select font
|
||||
; CREDIT2 :type in credit line
|
||||
; PRINMENU:print menu
|
||||
; SELCOLOR:select colors
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
TXTCHOO BYT 'CHOOSE ',0
|
||||
TXTFROM BYT 'FROM ',0
|
||||
TXTPS BYT 'PRINT SHOP',0
|
||||
TXTC BYT 'COMPANION',0
|
||||
;
|
||||
TXTFOD BYT 'FROM OTHER'
|
||||
TXTSD BYT ' '
|
||||
TXTD BYT 'DISK',0
|
||||
;
|
||||
TXTGTMM BYT 'GO TO MAIN MENU',0
|
||||
TXTRET BYT '<RETURN>',0
|
||||
;-----------
|
||||
STY = 64
|
||||
;
|
||||
; Select type of calendar
|
||||
;
|
||||
SELTYPE JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#STY
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTCHOO
|
||||
.DA #PRSTR,TXTCAL,':',#CR
|
||||
BYT CR,CR
|
||||
BYT 'MONTHLY',CR
|
||||
BYT 'WEEKLY',CR
|
||||
.DA #PRSTR,TXTFOD,#CR
|
||||
BRK
|
||||
^0 LDY CLTYPE
|
||||
;
|
||||
JSR SELECT
|
||||
BYT 10,20,STY+23,3
|
||||
ADR RTS
|
||||
;
|
||||
BCS >2
|
||||
;
|
||||
; If we are switching type
|
||||
; of calendar, then you better
|
||||
; erase the COBUFFER
|
||||
;
|
||||
TYA
|
||||
PHA
|
||||
CMP CLTYPE
|
||||
BEQ >1
|
||||
JSR CLRCOBUF
|
||||
^1 CLC
|
||||
PLA
|
||||
STA CLTYPE
|
||||
TAY
|
||||
;
|
||||
JSR JMPVECTS
|
||||
ADR RTS
|
||||
ADR RTS
|
||||
ADR LOADCAL
|
||||
^2 RTS
|
||||
;---
|
||||
;
|
||||
; Load calendar from disk
|
||||
;
|
||||
LOADCAL JSR SETCAL
|
||||
SEC
|
||||
JSR GETFILE
|
||||
JSR TPTITLE2
|
||||
BCC <2
|
||||
JMP SELTYPE
|
||||
;-----------
|
||||
SLMY = 50
|
||||
;
|
||||
; Select graphic
|
||||
;
|
||||
SELGR JSR CLS1
|
||||
JSR PRINT
|
||||
.DA #PRLOC,140,#SLMY
|
||||
BYT PRCNTR
|
||||
.DA #PRSTR,TXTCHOO,'A '
|
||||
.DA #PRSTR,TXTGR,':',#CR
|
||||
BYT CR,CR
|
||||
.DA #PRSTR,TXTFROM,#PRSTR,TXTPS,#PRSTR,TXTSD,#CR
|
||||
.DA #PRSTR,TXTFROM,#PRSTR,TXTC,#PRSTR,TXTSD,#CR
|
||||
.DA #PRSTR,TXTFOD,#CR
|
||||
.DA 'NO ',#PRSTR,TXTGR,#CR
|
||||
BRK
|
||||
LDY GRSEL
|
||||
JSR SELECT
|
||||
BYT 6,28,SLMY+23,4
|
||||
ADR RTS
|
||||
STY GRSEL
|
||||
BCS >0
|
||||
;
|
||||
LDX #1
|
||||
JSR FIXCOLOR
|
||||
;
|
||||
JSR JMPVECTS
|
||||
ADR SGPSD
|
||||
ADR SGCD
|
||||
ADR SGOD
|
||||
ADR RTS
|
||||
^0 RTS
|
||||
;
|
||||
; From Print Shop disk
|
||||
;
|
||||
SGPSD LDA GRNUM
|
||||
LDX #GRBUFF
|
||||
LDY /GRBUFF
|
||||
JSR GETPDISK
|
||||
BCS >1
|
||||
STA GRNUM
|
||||
^0 RTS
|
||||
;
|
||||
; From Companion disk
|
||||
;
|
||||
SGCD LDA #2
|
||||
CLC
|
||||
HEX 24
|
||||
;
|
||||
; From other disk
|
||||
;
|
||||
SGOD SEC
|
||||
PHP
|
||||
JSR SETTYPE
|
||||
TXTGR BYT 'GRAPHIC',0
|
||||
TXTCAL BYT 'CALENDAR',0
|
||||
BYT 0
|
||||
BYT 4
|
||||
ADR GRBUFF
|
||||
ADR $240
|
||||
PLP
|
||||
JSR GETFILE
|
||||
JSR TPTITLE2
|
||||
BCC <0
|
||||
^1 JMP SELGR
|
||||
;-----------
|
||||
;
|
||||
; Select Font
|
||||
;
|
||||
SELFONT LDY FONTSEL
|
||||
CLC
|
||||
JSR FGETMAIN
|
||||
STY FONTSEL
|
||||
BCS >0
|
||||
;
|
||||
LDX #0
|
||||
JSR FIXCOLOR
|
||||
;
|
||||
JSR >1
|
||||
BCS SELFONT
|
||||
^0 RTS
|
||||
;
|
||||
^1 JSR JMPVECTS
|
||||
ADR SFPSD
|
||||
ADR SFCD
|
||||
ADR SFOD
|
||||
ADR RTS
|
||||
;
|
||||
; Font from Print Shop disk
|
||||
;
|
||||
SFPSD LDY FONTPSD
|
||||
JSR FGETPSD
|
||||
STY FONTPSD
|
||||
RTS
|
||||
;
|
||||
; Font from Companion disk
|
||||
;
|
||||
SFCD LDY FONTCD
|
||||
JSR FGETCD
|
||||
STY FONTCD
|
||||
RTS
|
||||
;
|
||||
; Font from other disk
|
||||
;
|
||||
SFOD JSR SETTYPE
|
||||
TXTFONT BYT 'FONT',0
|
||||
BYT 'CALENDAR FONT',0
|
||||
BYT 'FONT.',0
|
||||
BYT 0
|
||||
ADR FONTBUFF
|
||||
ADR 0
|
||||
SEC
|
||||
JSR GETFILE
|
||||
;
|
||||
; Turn off list indicators from
|
||||
; the Font Editor
|
||||
;
|
||||
LDY #'Z'-$20
|
||||
^0 LDA FONTBUFF+12,Y
|
||||
AND #$7F
|
||||
STA FONTBUFF+12,Y
|
||||
DEY
|
||||
BPL <0
|
||||
;
|
||||
JMP TPTITLE2
|
||||
;-----------
|
||||
;
|
||||
; Credit line
|
||||
;
|
||||
CREDIT2 JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140
|
||||
BYT CRY1-22
|
||||
BYT 'TYPE ONE-LINER FOR',CR
|
||||
BYT 'BOTTOM OF '
|
||||
.DA #PRSTR,TXTCAL
|
||||
BYT CR,0
|
||||
LDX #CRXB-1
|
||||
LDY #CRY1
|
||||
LDA #19
|
||||
JSR DRAWBOX
|
||||
JMP CREDIT
|
||||
;-----------
|
||||
PRMY = 32
|
||||
;
|
||||
; Print menu
|
||||
;
|
||||
PRINMENC CLC
|
||||
HEX B0
|
||||
PRINMENU SEC
|
||||
JSR PRTITLE
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#PRMY
|
||||
BYT 'MAKE SURE PRINTER IS READY',CR
|
||||
BYT 'AND CHOOSE OPTION(S):',CR
|
||||
BYT CR,CR,CR
|
||||
BYT 'SET NUMBER OF COPIES',CR
|
||||
BYT 'TEST PAPER POSITION',CR
|
||||
BYT '**** PRINT ****',CR
|
||||
.DA 'SAVE THIS ',#PRSTR,TXTCAL,#CR
|
||||
BYT 'START FROM SCRATCH',CR
|
||||
.DA 'GOODBYE: ',#PRSTR,TXTGTMM,#CR
|
||||
BRK
|
||||
;
|
||||
PRINMEN2 LDY PRSEL
|
||||
JSR SELECT
|
||||
BYT 5,30,PRMY+39,6
|
||||
ADR RTS
|
||||
STY PRSEL
|
||||
BCS >0
|
||||
;
|
||||
JSR JMPVECTS
|
||||
ADR PRSETNUM
|
||||
ADR PRTESTP
|
||||
ADR PRPRINT
|
||||
ADR PRSAVE
|
||||
ADR PSCRATCH
|
||||
ADR PRGOMENU
|
||||
;
|
||||
^0 RTS
|
||||
;---
|
||||
;
|
||||
; Set number of copies
|
||||
;
|
||||
PRSETNUM JSR PRINT
|
||||
.DA #PRLOC,44,#136
|
||||
BYT 'HOW MANY COPIES DO YOU',CR
|
||||
BYT 'WISH TO PRINT?',CR,0
|
||||
;
|
||||
LDA #99
|
||||
STA TMP0
|
||||
LDX #165
|
||||
LDY #144
|
||||
LDA PRCOPIES
|
||||
JSR GETANUMB
|
||||
BCS >0
|
||||
STA PRCOPIES
|
||||
INC PRSEL
|
||||
;
|
||||
^0 JSR PRINT
|
||||
BYT RTOSBLAK,1,136,38,16,0
|
||||
JMP PRINMEN2
|
||||
;---
|
||||
;
|
||||
; Test paper position
|
||||
;
|
||||
PRTESTP JSR DEVICEOF
|
||||
JSR TESTPAPR
|
||||
JSR DEVICEON
|
||||
JMP PRINMEN2
|
||||
;---
|
||||
;
|
||||
; Print the calendar
|
||||
;
|
||||
PRPRINT JSR DEVICEOF
|
||||
;
|
||||
LDA PRCOPIES
|
||||
STA COPYCONT
|
||||
JSR DOCALEN
|
||||
;
|
||||
JSR DEVICEON
|
||||
JMP PRINMENC
|
||||
;---
|
||||
;
|
||||
; Save calendar to data disk
|
||||
;
|
||||
PRSAVE JSR SETCAL
|
||||
LDA #0
|
||||
STA PRSEL
|
||||
JSR SAVEFILE
|
||||
LDA #3
|
||||
STA PRSEL
|
||||
JMP PRINMENC
|
||||
;---
|
||||
;
|
||||
; Go back to main menu
|
||||
;
|
||||
PRGOMENU JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#167
|
||||
.DA #PRSTR,TXTRET
|
||||
BYT ' TO '
|
||||
.DA #PRSTR,TXTGTMM,#CR
|
||||
BYT 'OR',CR,0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BEQ >1
|
||||
^0 JSR PRINT
|
||||
BYT RTOSBLAK,1,167,38,16,0
|
||||
JMP PRINMEN2
|
||||
;
|
||||
^1 JMP MAINMENU
|
||||
;---
|
||||
;
|
||||
; Start from scratch
|
||||
;
|
||||
PSCRATCH JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#167
|
||||
.DA #PRSTR,TXTRET
|
||||
BYT ' TO START OVER',CR
|
||||
BYT 'OR',CR,0
|
||||
JSR GETKEY
|
||||
CMP #CR
|
||||
BNE <0
|
||||
CLC
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Set file info for calendar
|
||||
;
|
||||
SETCAL LDY DBUFENDL
|
||||
LDA DBUFENDH
|
||||
SEC
|
||||
SBC /COBUFF
|
||||
STY SETCALEN
|
||||
STA SETCALEN+1
|
||||
JSR SETTYPE
|
||||
BYT 'CALENDAR',0
|
||||
BYT 'CALENDAR',0
|
||||
BYT 'CALE.',0
|
||||
BYT 0
|
||||
ADR COBUFF
|
||||
SETCALEN ADR 0
|
||||
^9 RTS
|
||||
;-----------
|
||||
;
|
||||
; FIX color selections for
|
||||
; graphics and fonts.
|
||||
;
|
||||
FIXCOLOR PHP
|
||||
LDA COLORFLG
|
||||
CMP #$FF
|
||||
BNE >1
|
||||
LDA #8
|
||||
CPY #NOGR ; NOFONT
|
||||
BEQ >0
|
||||
EOR DCOLOR0,X
|
||||
BNE >1
|
||||
^0 STA DCOLOR0,X
|
||||
^1 PLP
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Color selection menu
|
||||
;
|
||||
SELCOLOR JSR PRTITLE
|
||||
;
|
||||
; Is this menu available???
|
||||
;
|
||||
LDY COLORPR
|
||||
BEQ <9
|
||||
LDY COLORFLG
|
||||
INY
|
||||
BNE <9
|
||||
;
|
||||
JSR CLS1
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#32
|
||||
.DA #PRSTR,TXTCHOO
|
||||
BYT 'COLORS:',CR
|
||||
;
|
||||
BYT PRLEFT
|
||||
.DA #PRLOC,69,#56
|
||||
.DA #PRSTR,TXTFONT,#CR
|
||||
.DA #PRSTR,TXTGR,#CR
|
||||
BYT 'LINES',CR
|
||||
BYT 'NOTES',CR
|
||||
BRK
|
||||
;
|
||||
; Display colors
|
||||
;
|
||||
LDA #3
|
||||
^0 PHA
|
||||
STA TMP0
|
||||
JSR SLRSHOW
|
||||
PLA
|
||||
SEC
|
||||
SBC #1
|
||||
BPL <0
|
||||
;
|
||||
JSR SLRAROWS
|
||||
JSR PRINT
|
||||
.DA #PRLOC,44,#128
|
||||
BYT 'USE',PRRTAB,68
|
||||
BYT ' TO SELECT ITEM',CR
|
||||
BYT CR
|
||||
BYT 'PRESS <SPACE> TO CHANGE',CR
|
||||
BYT 'COLORS OF SELECTED ITEM',CR
|
||||
BYT CR
|
||||
BYT 'PRESS '
|
||||
.DA #PRSTR,TXTRET
|
||||
BYT ' WHEN DONE',CR
|
||||
BRK
|
||||
;
|
||||
^0 LDX #0
|
||||
^1 STX TMP0
|
||||
^2 JSR SLRHILIT
|
||||
JSR GETKEY
|
||||
PHA
|
||||
JSR SLRHILIT
|
||||
PLA
|
||||
LDX TMP0
|
||||
LDY DCOLOR0,X
|
||||
JSR PARSE
|
||||
.DA #CR,SLRDONE
|
||||
.DA #ESC,SLRESC
|
||||
.DA #$08,SLRUP
|
||||
.DA #$0B,SLRUP
|
||||
.DA #$15,SLRDOWN
|
||||
.DA #$0A,SLRDOWN
|
||||
.DA #$20,SLRSPACE
|
||||
BRK
|
||||
JMP <2
|
||||
;
|
||||
SLRUP DEX
|
||||
BPL <1
|
||||
LDX #2
|
||||
SLRDOWN INX
|
||||
CPX #4
|
||||
BLT <1
|
||||
BEQ <0
|
||||
;
|
||||
SLRSPACE CPY #8
|
||||
BEQ <2
|
||||
INY
|
||||
TYA
|
||||
CMP #8
|
||||
BLT *+4
|
||||
LDA #0
|
||||
STA DCOLOR0,X
|
||||
JSR SLRSHOW
|
||||
JMP <2
|
||||
;---
|
||||
;
|
||||
; Highlite current color item
|
||||
;
|
||||
SLRHILIT LDA TMP0
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC #55
|
||||
STA >0+2
|
||||
JSR PRINT
|
||||
^0 BYT RTOSINV,9,00,14,9
|
||||
BRK
|
||||
SLRESC SEC
|
||||
RTS
|
||||
SLRDONE CLC
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Given A=color#, show current setting
|
||||
;
|
||||
SLRSHOW LDA TMP0
|
||||
TAY
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
ADC #56
|
||||
STA SCMOD0+2
|
||||
STA SCMOD1+3
|
||||
;
|
||||
; Point to text
|
||||
;
|
||||
LDX DCOLOR0,Y
|
||||
LDY #$FF
|
||||
^0 DEX
|
||||
BMI >2
|
||||
^1 INY
|
||||
LDA COLORTXT,Y
|
||||
BNE <1
|
||||
BEQ <0
|
||||
^2 INY
|
||||
TYA
|
||||
CLC
|
||||
ADC #COLORTXT
|
||||
STA SCMOD2+1
|
||||
LDA /COLORTXT
|
||||
ADC #0
|
||||
STA SCMOD2+2
|
||||
;
|
||||
; Erase and show color
|
||||
;
|
||||
JSR PRINT
|
||||
SCMOD0 BYT RTOSBLAK,24,00,15,7
|
||||
SCMOD1 .DA #PRLOC,169,#00
|
||||
SCMOD2 .DA #PRSTR,$FFFF,#NOCR
|
||||
BRK
|
||||
RTS
|
||||
;---
|
||||
COLORTXT BYT 'BLACK',0
|
||||
BYT 'RED',0
|
||||
BYT 'ORANGE',0
|
||||
BYT 'YELLOW',0
|
||||
BYT 'GREEN',0
|
||||
BYT 'BLUE',0
|
||||
BYT 'PURPLE',0
|
||||
BYT 'RAINBOW',0
|
||||
BYT ' ----',0
|
||||
;-----------
|
||||
AROWX = 12
|
||||
AROWY = 128
|
||||
;
|
||||
SLRAROWS LDA $FA68
|
||||
CMP #$C0
|
||||
BEQ ARROW2E
|
||||
LDA $FBB3
|
||||
CMP #$06
|
||||
BEQ ARROW2E
|
||||
;---
|
||||
; LEFT
|
||||
JSR PICDRAW
|
||||
BYT AROWX,AROWY+1,1,5
|
||||
HEX 0C06C1060C
|
||||
; RIGHT
|
||||
JSR PICDRAW
|
||||
BYT AROWX+2,AROWY+1,1,5
|
||||
HEX 1830C13018
|
||||
RTS
|
||||
;---
|
||||
; DOWN
|
||||
ARROW2E JSR PICDRAW
|
||||
BYT AROWX,AROWY,1,7
|
||||
HEX 0808086B3E1C08
|
||||
; UP
|
||||
JSR PICDRAW
|
||||
BYT AROWX+2,AROWY,1,7
|
||||
HEX 081C3E6B080808
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:UCAL4"
|
|
@ -0,0 +1,819 @@
|
|||
;
|
||||
; S:UCAL4
|
||||
;
|
||||
; Calendar user interface menus
|
||||
;
|
||||
;
|
||||
; SELDATE : given MNDATE as default,
|
||||
; draws miniature calendar
|
||||
; and allows user to select
|
||||
; new date. Returns new date
|
||||
; in X and in MNDATE.
|
||||
;
|
||||
; SELWDATE: given MNWDATE as default,
|
||||
; draws miniature weekly
|
||||
; calendar and allows user
|
||||
; to select which piece to
|
||||
; edit. Returns # in X and
|
||||
; in MNWDATE. 7=DONE
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Select day of month
|
||||
;
|
||||
; Miniature calendar width, height
|
||||
;
|
||||
HBW = 3
|
||||
HBW2 = HBW*7
|
||||
HBH = 18
|
||||
;
|
||||
; Location of miniature calendar
|
||||
;
|
||||
HBM = 4
|
||||
HBM2 = HBM*7
|
||||
HBY = 61
|
||||
;---
|
||||
HBZ EPZ $80
|
||||
;
|
||||
HCALX EPZ HBZ
|
||||
HCALY EPZ HBZ+1
|
||||
HCLSTFLG EPZ HBZ+2
|
||||
HCDAYOWK EPZ HBZ+3
|
||||
HCMNLAST EPZ HBZ+4
|
||||
HCGKFLAG EPZ HBZ+5
|
||||
HCDVX EPZ HBZ+6
|
||||
HCDVY EPZ HBZ+7
|
||||
HCDWIDTH EPZ HBZ+8
|
||||
HCMNLST7 EPZ HBZ+9
|
||||
HWPIECE EPZ HBZ+10
|
||||
HWSTRING EPZ HBZ+11
|
||||
HWDONE EPZ HBZ+12
|
||||
;-----------
|
||||
;
|
||||
; See above explanation
|
||||
;
|
||||
SELDATE JSR CLS1
|
||||
LDY #1
|
||||
JSR CALCDAY
|
||||
LDX MNLAST
|
||||
LDA CLTYPE
|
||||
BNE >0
|
||||
;-----------
|
||||
;
|
||||
; Monthly date selection,
|
||||
; with DONE box.
|
||||
;
|
||||
INX
|
||||
STX HCMNLAST
|
||||
LDY #24
|
||||
JSR SLDHELP1
|
||||
JSR HCALEN
|
||||
JMP HGETDATE
|
||||
;-----------
|
||||
;
|
||||
; Weekly date selection
|
||||
;
|
||||
^0 STX HCMNLAST
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#19
|
||||
BYT 'SELECT THE FIRST DAY FOR',CR
|
||||
BYT 'YOUR WEEKLY '
|
||||
.DA #PRSTR,TXTCAL,#CR
|
||||
BRK
|
||||
JSR HCALEN
|
||||
JSR SLDHELP
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'WHEN DONE',CR,0
|
||||
JMP HGETDATE
|
||||
;-----------
|
||||
;
|
||||
; Show help information
|
||||
;
|
||||
HBHELPX = 32
|
||||
;
|
||||
SLDHELP1 STY >0+3
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
^0 .DA #PRLOC,140,#00
|
||||
BYT 'HIGHLIGHT SPECIAL OCCASIONS',CR,0
|
||||
JSR SLDHELP
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT 'TO ENTER',CR
|
||||
BYT 'TEXT',CR,0
|
||||
RTS
|
||||
;
|
||||
SLDHELP LDX #HBHELPX-3
|
||||
LDY #HBY-12
|
||||
LDA #0
|
||||
JSR SHOWAROW
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,HBHELPX*7,#HBY+36
|
||||
BYT 'MOVE',CR
|
||||
BYT 'CURSOR',CR
|
||||
BYT 'TO SELECT',CR
|
||||
BYT 'DATE',CR,CR
|
||||
BYT 'PRESS',CR
|
||||
.DA #PRSTR,TXTRET,#CR
|
||||
BRK
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Draw miniature calendar
|
||||
;
|
||||
HCALEN JSR PRINT
|
||||
BYT PRSPC,9
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,HBM2+73,#HBY-18
|
||||
.DA #PRSTR,MONTHTXT,', '
|
||||
.DA #PRSTR,YEARTEXT,#CR
|
||||
;
|
||||
.DA #PRHTAB,HBM2+HBW2/2
|
||||
BYT 'S',NOCR
|
||||
BYT PRRTAB2,HBW2,'M',NOCR
|
||||
BYT PRRTAB2,HBW2,'T',NOCR
|
||||
BYT PRRTAB2,HBW2,'W',NOCR
|
||||
BYT PRRTAB2,HBW2,'T',NOCR
|
||||
BYT PRRTAB2,HBW2,'F',NOCR
|
||||
BYT PRRTAB2,HBW2,'S',NOCR
|
||||
BRK
|
||||
;
|
||||
; Draw all the dates
|
||||
;
|
||||
LDY #1
|
||||
^0 STY DATE
|
||||
JSR HCDATE
|
||||
LDY DATE
|
||||
INY
|
||||
CPY HCMNLAST
|
||||
BLT <0
|
||||
BEQ <0
|
||||
RTS
|
||||
;---
|
||||
HCDATE JSR HCXYCALC
|
||||
STA HCALX
|
||||
STY HCALY
|
||||
LDA HCWX2,X
|
||||
STA >0+1
|
||||
STY >0+3
|
||||
JSR PRINT
|
||||
^0 .DA #PRLOC,0,#0,#0
|
||||
;
|
||||
; Draw the frame
|
||||
;
|
||||
LDA HCALX
|
||||
JSR HCDVLIN
|
||||
LDA HCALX
|
||||
CLC
|
||||
ADC HCDWIDTH
|
||||
JSR HCDVLIN
|
||||
;
|
||||
LDA #14
|
||||
SEC
|
||||
SBC MNFDAY
|
||||
CMP DATE
|
||||
BLT >1
|
||||
LDA HCALY
|
||||
JSR HCDHLIN
|
||||
^1 LDA HCALY
|
||||
CLC
|
||||
ADC #HBH
|
||||
JSR HCDHLIN
|
||||
;
|
||||
; "DONE" box?
|
||||
;
|
||||
LDY DATE
|
||||
CPY MNLAST
|
||||
BLT >1
|
||||
BEQ >1
|
||||
;
|
||||
LDA HCALY
|
||||
JSR HCDHLIN
|
||||
JSR PRINT
|
||||
BYT PRSPC,5,CR
|
||||
BYT PRRTAB2,5
|
||||
BYT 'DONE',CR,0
|
||||
RTS
|
||||
;
|
||||
; Check to see if any data
|
||||
; if so, put * under date.
|
||||
;
|
||||
^1 LDA MNLAST
|
||||
EOR HCMNLAST
|
||||
BEQ >2
|
||||
;
|
||||
; BUT only for monthly !!!
|
||||
;
|
||||
LDA #'*'
|
||||
LDX DBUFPNTH-1,Y
|
||||
BNE >3
|
||||
^2 LDA #NOCR
|
||||
^3 STA >4+2
|
||||
;
|
||||
; Print number
|
||||
;
|
||||
JSR MAKEDTXT
|
||||
JSR PRINT
|
||||
BYT PRSPC,2,CR,PRSPC,8
|
||||
BYT PRRTAB2,4
|
||||
.DA #PRSTR,DATETEXT,#CR
|
||||
^4 BYT PRRTAB,3,'?',NOCR
|
||||
BRK
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Draw horizontal line
|
||||
;
|
||||
HCDHLIN LDX HCALX
|
||||
LDY HCDWIDTH
|
||||
STX >0+1
|
||||
STA >0+2
|
||||
STA >1+2
|
||||
STY >0+3
|
||||
TXA
|
||||
CLC
|
||||
ADC HCDWIDTH
|
||||
STA >1+1
|
||||
JSR PRINT
|
||||
^0 BYT RTOSWITE,00,00,HBW,1
|
||||
BYT RTOSANY
|
||||
^1 BYT $03,00,00,1,1,0
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Draw vertical line
|
||||
;
|
||||
HCDVLIN LDY HCALY
|
||||
INY
|
||||
STY >0+2
|
||||
STA >0+1
|
||||
JSR PRINT
|
||||
BYT RTOSANY
|
||||
^0 BYT $03,00,01,1,HBH,0
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Calculate screen address in X,Y
|
||||
; given DATE
|
||||
;
|
||||
; returns A:X byte offset
|
||||
; Y:Y byte offset
|
||||
; X:lookup table index, 0-6
|
||||
; (used for X-bit offset)
|
||||
; HCWIDTH:width of box
|
||||
;
|
||||
HCXYCALC LDA DATE
|
||||
CMP MNLAST
|
||||
BEQ >0
|
||||
BLT >0
|
||||
;
|
||||
; "DONE" box if DATE > MNLAST
|
||||
;
|
||||
LDA #HBW*2
|
||||
STA HCDWIDTH
|
||||
LDA #HBM+2+HBW*2
|
||||
LDY #158
|
||||
LDX #7
|
||||
RTS
|
||||
;
|
||||
^0 LDY #HBW
|
||||
STY HCDWIDTH
|
||||
CLC
|
||||
ADC MNFDAY
|
||||
SBC #0
|
||||
LDX #$FF
|
||||
^1 INX
|
||||
SEC
|
||||
SBC #7
|
||||
BCS <1
|
||||
ADC #7
|
||||
LDY HCWY,X
|
||||
TAX
|
||||
LDA HCWX,X
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; X-byte location
|
||||
;
|
||||
HCWX BYT HBM,HBM+HBW,HBM+HBW*2
|
||||
BYT HBM+HBW*3,HBM+HBW*4
|
||||
BYT HBM+HBW*5,HBM+HBW*6
|
||||
;
|
||||
; X-bit location
|
||||
;
|
||||
HCWX2 BYT HBM2,HBM2+HBW2,HBM2+HBW2*2
|
||||
BYT HBM2+HBW2*3,HBM2+HBW2*4
|
||||
BYT HBM2+HBW2*5,HBM2+HBW2*6
|
||||
BYT HBM2+14+HBW2*2
|
||||
;
|
||||
; Y-byte location
|
||||
;
|
||||
HCWY BYT HBY,HBY+HBH,HBY+HBH*2
|
||||
BYT HBY+HBH*3,HBY+HBH*4
|
||||
BYT HBY+HBH*5
|
||||
;-----------
|
||||
;
|
||||
; Move cursor around to select date
|
||||
;
|
||||
HGETDATE LDX MNDATE
|
||||
BNE *+3
|
||||
INX
|
||||
CPX HCMNLAST
|
||||
BLT *+4
|
||||
LDX HCMNLAST
|
||||
STX DATE
|
||||
LDA HCMNLAST
|
||||
CLC
|
||||
ADC #7
|
||||
STA HCMNLST7
|
||||
HGETDAT2 ASL HCGKFLAG
|
||||
JSR HGETDVRD
|
||||
STX HCDVX
|
||||
STY HCDVY
|
||||
;
|
||||
^0 INC HCGKFLAG
|
||||
JSR HCCURSOR
|
||||
JSR FLSHINIT
|
||||
;
|
||||
^1 JSR HGETDVRD
|
||||
BCS >2
|
||||
ASL
|
||||
BMI >2
|
||||
BCS >3
|
||||
JSR HGETDEVC
|
||||
;
|
||||
^2 JSR POLEKEY
|
||||
BMI >4
|
||||
DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
^3 LDA #CR
|
||||
;
|
||||
; Key pressed
|
||||
;
|
||||
^4 JSR HCCURSOF
|
||||
LDX DATE
|
||||
JSR PARSE
|
||||
.DA #CR,HCGDCR
|
||||
.DA #ESC,HCGDESC
|
||||
.DA #'I',HCGDUP
|
||||
.DA #$0B,HCGDUP
|
||||
.DA #'M',HCGDDOWN
|
||||
.DA #$0A,HCGDDOWN
|
||||
.DA #'J',HCGDLEFT
|
||||
.DA #$08,HCGDLEFT
|
||||
.DA #'K',HCGDRITE
|
||||
.DA #$15,HCGDRITE
|
||||
BRK
|
||||
JMP HGETDAT2
|
||||
;---
|
||||
;
|
||||
; Handle input device
|
||||
;
|
||||
HGETDEVC CPX HCDVX
|
||||
BNE >0
|
||||
CPY HCDVY
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
; Device moved
|
||||
;
|
||||
^0 JSR HGETDVST
|
||||
JSR HCCURSOF
|
||||
;
|
||||
; Compute date given X,Y coordinates
|
||||
;
|
||||
LDA HCDVX
|
||||
LDY HCDVY
|
||||
^1 CLC
|
||||
ADC #7
|
||||
DEY
|
||||
BPL <1
|
||||
SBC #6
|
||||
SBC MNFDAY
|
||||
LDY #0
|
||||
TAX
|
||||
^2 PLA
|
||||
PLA
|
||||
TXA
|
||||
JMP HGETDVAD
|
||||
;---
|
||||
;
|
||||
; Do device clamping
|
||||
;
|
||||
HGETDVST BIT RTS
|
||||
CPX #7
|
||||
BLT >0
|
||||
LDX #6
|
||||
CLV
|
||||
^0 CPY #8
|
||||
BLT >1
|
||||
LDY #7
|
||||
CLV
|
||||
^1 STX HCDVX
|
||||
STY HCDVY
|
||||
BVS >2
|
||||
TXA
|
||||
ASL
|
||||
ASL
|
||||
ASL
|
||||
TAX
|
||||
TYA
|
||||
ASL
|
||||
ASL
|
||||
TAY
|
||||
JSR DEVICEST
|
||||
^2 RTS
|
||||
;---
|
||||
;
|
||||
; Get scaled values from input device
|
||||
;
|
||||
HGETDVRD LDY #0
|
||||
JSR DEVICERD
|
||||
PHP
|
||||
PHA
|
||||
TXA
|
||||
LSR
|
||||
LSR
|
||||
LSR
|
||||
TAX
|
||||
TYA
|
||||
LSR
|
||||
LSR
|
||||
TAY
|
||||
PLA
|
||||
PLP
|
||||
RTS
|
||||
;---
|
||||
HCCURSOF LSR HCGKFLAG
|
||||
PHA
|
||||
BCC >8
|
||||
PLA
|
||||
;
|
||||
; Plot cursor
|
||||
;
|
||||
HCCURSOR PHA
|
||||
JSR HCXYCALC
|
||||
TAX
|
||||
STX >0+2
|
||||
INX
|
||||
STX >1+1
|
||||
;
|
||||
INY
|
||||
STY >0+3
|
||||
STY >1+2
|
||||
;
|
||||
LDX HCDWIDTH
|
||||
DEX
|
||||
STX >1+3
|
||||
JSR PRINT
|
||||
^0 BYT RTOSANY,$FC,00,01,1,HBH-1
|
||||
^1 BYT RTOSINV,01,01,HBW-1,HBH-1,0
|
||||
^8 PLA
|
||||
RTS
|
||||
;---
|
||||
HCGDCR CLC
|
||||
HEX 24
|
||||
HCGDESC SEC
|
||||
PHP
|
||||
CPX HCMNLAST
|
||||
BLT >0
|
||||
LDX HCMNLAST
|
||||
^0 STX MNDATE
|
||||
PLP
|
||||
RTS
|
||||
;
|
||||
HCGDUP LDY #0
|
||||
HEX 2C
|
||||
HCGDDOWN LDY #1
|
||||
HEX 2C
|
||||
HCGDLEFT LDY #2
|
||||
HEX 2C
|
||||
HCGDRITE LDY #3
|
||||
;
|
||||
DEX
|
||||
TXA
|
||||
CLC
|
||||
ADC HCGDTBL0,Y
|
||||
HGETDVAD:
|
||||
BPL >0
|
||||
SEC
|
||||
SBC HCGDTBL0,Y
|
||||
;
|
||||
^0 TAX
|
||||
INX
|
||||
CPX HCMNLST7
|
||||
BLT >1
|
||||
DEX
|
||||
TXA
|
||||
SBC #7
|
||||
BCS <0
|
||||
;
|
||||
; If no DONE box, then clamp.
|
||||
;
|
||||
^1 LDA HCMNLAST
|
||||
CMP MNLAST
|
||||
BNE >2
|
||||
CPX HCMNLAST
|
||||
BLT >2
|
||||
TAX
|
||||
;
|
||||
^2 STX DATE
|
||||
JMP HGETDAT2
|
||||
;
|
||||
HCGDTBL0 BYT 0-7,7,0-1,1
|
||||
;-----------
|
||||
;
|
||||
; Select which piece of weekly
|
||||
; calendar to edit.
|
||||
;
|
||||
HWX = 5
|
||||
HWX2 = HWX*7
|
||||
HWY = 37
|
||||
HWX2L = 140
|
||||
HWW = 6
|
||||
HWH = 18
|
||||
HWX2LMAX = 91
|
||||
;
|
||||
SELWDATE JSR CLS1
|
||||
LDA MNDATE
|
||||
STA DATE
|
||||
JSR MAKEDTXT
|
||||
LDY #19
|
||||
JSR SLDHELP1
|
||||
JSR PRINT
|
||||
BYT PRCSPACE,1
|
||||
BYT PRCNTR
|
||||
.DA #PRLOC,140,#19+8
|
||||
BYT 'FOR THE WEEK OF '
|
||||
.DA #PRSTR,MONTHTXT,' '
|
||||
.DA #PRSTR,DATETEXT,', '
|
||||
.DA #PRSTR,YEARTEXT,#CR
|
||||
;
|
||||
; Draw border
|
||||
;
|
||||
BYT RTOSANY,$60,HWX-1,HWY,1,1+8*HWH
|
||||
BYT RTOSANY,$03,HWX+6,HWY,1,1+8*HWH
|
||||
BYT RTOSANY,$60,HWX+19,HWY,1,1+7*HWH
|
||||
BRK
|
||||
;
|
||||
; Fill in the blanks
|
||||
;
|
||||
JSR SWDOWEEK
|
||||
LDX MNWDATE
|
||||
;
|
||||
; Select new MNWDATE
|
||||
;
|
||||
NEWPIECE STX HWPIECE
|
||||
ASL HCGKFLAG
|
||||
JSR HGETDVRD
|
||||
STX HCDVX
|
||||
STY HCDVY
|
||||
;
|
||||
^0 INC HCGKFLAG
|
||||
JSR WKCURSOR
|
||||
JSR FLSHINIT
|
||||
;
|
||||
^1 JSR HGETDVRD
|
||||
BCS >2
|
||||
ASL
|
||||
BMI >2
|
||||
BCS >3
|
||||
JSR WKDEVICE
|
||||
BNE NEWPIECE
|
||||
;
|
||||
^2 JSR POLEKEY
|
||||
BMI >4
|
||||
DEC FLASHLO
|
||||
BNE <1
|
||||
DEC FLASHHI
|
||||
BPL <1
|
||||
BMI <0
|
||||
;
|
||||
^3 LDA #CR
|
||||
;
|
||||
^4 JSR WKCURSOF
|
||||
LDX HWPIECE
|
||||
JSR PARSE
|
||||
.DA #CR,WKGDCR
|
||||
.DA #ESC,WKGDESC
|
||||
.DA #'I',WKGDUP
|
||||
.DA #$0B,WKGDUP
|
||||
.DA #$08,WKGDUP
|
||||
.DA #'M',WKGDDOWN
|
||||
.DA #$0A,WKGDDOWN
|
||||
.DA #$15,WKGDDOWN
|
||||
BRK
|
||||
JMP NEWPIECE
|
||||
;
|
||||
WKGDCR CLC
|
||||
HEX 24
|
||||
WKGDESC SEC
|
||||
STX MNWDATE
|
||||
RTS
|
||||
;
|
||||
WKGDUP DEX
|
||||
BPL >0
|
||||
LDX #6
|
||||
;
|
||||
WKGDDOWN INX
|
||||
CPX #8
|
||||
BLT >0
|
||||
LDX #0
|
||||
^0 JMP NEWPIECE
|
||||
;---
|
||||
;
|
||||
; Handle input device
|
||||
;
|
||||
WKDEVICE CPX HCDVX
|
||||
BNE >0
|
||||
CPY HCDVY
|
||||
BNE >0
|
||||
RTS
|
||||
;
|
||||
^0 JSR HGETDVST
|
||||
JSR WKCURSOF
|
||||
LDX HCDVY
|
||||
LDA #1
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Turn off cursor
|
||||
;
|
||||
WKCURSOF LSR HCGKFLAG
|
||||
PHA
|
||||
BCC >1
|
||||
PLA
|
||||
;
|
||||
; Toggle cursor
|
||||
;
|
||||
WKCURSOR PHA
|
||||
JSR SWDYCALC
|
||||
INY
|
||||
STY >0+2
|
||||
JSR PRINT
|
||||
^0 BYT RTOSINV,HWX,01,HWW,HWH-1,0
|
||||
^1 PLA
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Draw mini-cal
|
||||
;
|
||||
SWDOWEEK LDA #0
|
||||
LDX MNDATE
|
||||
LDY MNFDAY
|
||||
;
|
||||
^0 STA HWPIECE
|
||||
STX DATE
|
||||
STY HCDAYOWK
|
||||
JSR SWDDODAY
|
||||
LDX DATE
|
||||
INX
|
||||
CPX MNLAST
|
||||
BEQ >1
|
||||
BLT >1
|
||||
LDX #1
|
||||
^1 LDY HCDAYOWK
|
||||
INY
|
||||
CPY #7
|
||||
BLT >2
|
||||
LDY #0
|
||||
^2 LDA HWPIECE
|
||||
CLC
|
||||
ADC #1
|
||||
CMP #8
|
||||
BLT <0
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Draw day of week, given
|
||||
;
|
||||
; given:HWPIECE : 0-7
|
||||
; DATE : 1-31
|
||||
; HCDAYOWK: 0-6
|
||||
;
|
||||
SWDDODAY LDY HCDAYOWK
|
||||
JSR MAKEWTXT
|
||||
LDA #0
|
||||
STA WEEKTEXT+3
|
||||
JSR MAKEDTXT
|
||||
;
|
||||
LDA HWPIECE
|
||||
CMP #7
|
||||
ROR HWDONE
|
||||
;
|
||||
; Draw top line
|
||||
;
|
||||
JSR SWDYCALC
|
||||
STY >0+2
|
||||
STY >1+3
|
||||
INY
|
||||
STY GRAPHY
|
||||
JSR LINES
|
||||
BYT "H",HWX-1
|
||||
^0 BYT WITE,5,HWY,HWX2L
|
||||
BYT WITE,5,HWY+8*HWH,44
|
||||
BYT 1
|
||||
;
|
||||
;
|
||||
; Next draw text
|
||||
;
|
||||
JSR PRINT
|
||||
^1 .DA #PRLOC,HWX2+21,#00
|
||||
BRK
|
||||
;
|
||||
BIT HWDONE
|
||||
BPL >2
|
||||
;---
|
||||
;
|
||||
; DONE box
|
||||
;
|
||||
JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT PRSPC,5,CR
|
||||
BYT 'DONE',CR,0
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Day of week box
|
||||
;
|
||||
^2 JSR PRINT
|
||||
BYT PRCNTR
|
||||
BYT PRSPC,2,CR,PRSPC,8
|
||||
.DA #PRSTR,WEEKTEXT,#CR
|
||||
.DA #PRSTR,DATETEXT,#CR
|
||||
BRK
|
||||
;---
|
||||
;
|
||||
; Now do this really clever thing here
|
||||
; with the data in the buffer, sort
|
||||
; of a graph indicating how much data
|
||||
; has been typed in!!!!
|
||||
;
|
||||
LDA HWPIECE
|
||||
ASL
|
||||
ASL
|
||||
STA HWSTRING
|
||||
;
|
||||
LDA #4
|
||||
SWDGLOOP PHA
|
||||
;
|
||||
; Get length of string
|
||||
;
|
||||
LDY HWSTRING
|
||||
INC HWSTRING
|
||||
JSR GETTEXT
|
||||
TYA
|
||||
ASL
|
||||
CMP #HWX2LMAX
|
||||
BLT *+4
|
||||
LDA #HWX2LMAX
|
||||
STA GRAPHY+1
|
||||
;
|
||||
; Now draw the line
|
||||
;
|
||||
LDA #3
|
||||
^0 PHA
|
||||
INC GRAPHY
|
||||
LDA TEXTBUFF
|
||||
BEQ >1
|
||||
;
|
||||
JSR LINES
|
||||
BYT "H",HWX-1
|
||||
BYT WITE,52,00,11
|
||||
GRAPHY = *-2
|
||||
BYT 1
|
||||
;
|
||||
^1 PLA
|
||||
SEC
|
||||
SBC #1
|
||||
BNE <0
|
||||
INC GRAPHY
|
||||
PLA
|
||||
SBC #1
|
||||
BNE SWDGLOOP
|
||||
RTS
|
||||
;-----------
|
||||
;
|
||||
; Given HWPIECE, compute Y-offset
|
||||
; and self modify code.
|
||||
;
|
||||
SWDYCALC LDX HWPIECE
|
||||
LDY >0+0,X
|
||||
RTS
|
||||
;
|
||||
^0 BYT HWY,HWY+HWH,HWY+2*HWH
|
||||
BYT HWY+3*HWH,HWY+4*HWH
|
||||
BYT HWY+5*HWH,HWY+6*HWH
|
||||
BYT HWY+7*HWH
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
;
|
||||
ICL "S:UCAL5"
|
|
@ -0,0 +1,160 @@
|
|||
;
|
||||
; S:UCAL5
|
||||
;
|
||||
; Credit line stuff that didn't fit
|
||||
; in ICAL. CRBLAK/CRDRAW
|
||||
;
|
||||
; INITCAL:move code to homes
|
||||
;
|
||||
;-----------
|
||||
;
|
||||
; Routine to erase current line
|
||||
;
|
||||
CRBLAK LDY CRLINE
|
||||
LDA TEXTBUFF
|
||||
BNE >0
|
||||
STA CRLINE
|
||||
TAY
|
||||
JSR >0
|
||||
LDY #1
|
||||
;
|
||||
^0 LDA CRYTBL,Y
|
||||
STA >1+2
|
||||
JSR PRINT
|
||||
^1 BYT RTOSBLAK,CRXB,00
|
||||
BYT CRXMAXB,7,0
|
||||
LDY #TEXTBUFF
|
||||
LDA /TEXTBUFF
|
||||
STY TMP2
|
||||
STA TMP3
|
||||
RTS
|
||||
;---
|
||||
;
|
||||
; Draw
|
||||
;
|
||||
CRDRAW LDY CRLINE
|
||||
JSR CRDRAW2
|
||||
LDY CRLINE
|
||||
BNE >1
|
||||
;
|
||||
LDA TEXTBUFF,X
|
||||
BEQ CRRTS
|
||||
INC CRLINE
|
||||
BNE CRDRAW
|
||||
;
|
||||
^1 LDX CRPOS,Y
|
||||
LDA TEXTBUFF,X
|
||||
BNE CRRTS
|
||||
DEC CRLINE
|
||||
BEQ CRDRAW
|
||||
;---
|
||||
;
|
||||
; Given Y=0 or 1, draw given line
|
||||
;
|
||||
CRDRAW2 STY CRLINE
|
||||
LDA CRYTBL,Y
|
||||
STA >2+3
|
||||
LDX CRPOS,Y
|
||||
STX >3+1
|
||||
LDA #0
|
||||
DEX
|
||||
^0 INX
|
||||
LDY TEXTBUFF,X
|
||||
BEQ >1
|
||||
CLC
|
||||
ADC UFONTW-$20,Y
|
||||
ADC #2
|
||||
CMP #CRXMAX+1
|
||||
BLT <0
|
||||
;
|
||||
^1 LDA TEXTBUFF,X
|
||||
PHA
|
||||
LDA #0
|
||||
STA TEXTBUFF,X
|
||||
TXA
|
||||
PHA
|
||||
;
|
||||
JSR PRINT
|
||||
^2 .DA #PRLOC,CRX,#00
|
||||
^3 .DA #PRSTR,TEXTBUFF
|
||||
BYT NOCR,0
|
||||
;
|
||||
PLA
|
||||
TAX
|
||||
PLA
|
||||
STA TEXTBUFF,X
|
||||
;
|
||||
LDY CRLINE
|
||||
BEQ >4
|
||||
LDA #0
|
||||
STA TEXTBUFF,X
|
||||
CRRTS RTS
|
||||
;
|
||||
^4 STX CRPOS+1
|
||||
RTS
|
||||
;
|
||||
CRYTBL BYT CRY1+2
|
||||
BYT CRY1+10
|
||||
CRPOS BYT 0
|
||||
BYT 0
|
||||
;-----------
|
||||
;
|
||||
; Initialize all the external
|
||||
; subroutines, move them to their
|
||||
; homes.
|
||||
;
|
||||
SRCLO EPZ $3A
|
||||
SRCHI EPZ $3B
|
||||
DSTLO EPZ $3C
|
||||
DSTHI EPZ $3D
|
||||
LENLO EPZ $3E
|
||||
LENHI EPZ $3F
|
||||
;
|
||||
INITCAL LDY #EXTERNAL
|
||||
LDA /EXTERNAL
|
||||
STY SRCLO
|
||||
STA SRCHI
|
||||
LDY #0
|
||||
;
|
||||
^0 JSR MOVEGET
|
||||
STA DSTLO
|
||||
JSR MOVEGET
|
||||
STA DSTHI
|
||||
ORA DSTLO
|
||||
BEQ MOVERTS
|
||||
JSR MOVEGET
|
||||
TAX
|
||||
JSR MOVEGET
|
||||
STA LENHI
|
||||
;
|
||||
^1 JSR MOVEGET
|
||||
STA (DSTLO),Y
|
||||
INC DSTLO
|
||||
BNE >2
|
||||
INC DSTHI
|
||||
^2 TXA
|
||||
BNE >3
|
||||
DEC LENHI
|
||||
^3 DEX
|
||||
BNE <1
|
||||
TXA
|
||||
ORA LENHI
|
||||
BNE <1
|
||||
BEQ <0
|
||||
;
|
||||
; Get a byte from program data
|
||||
;
|
||||
MOVEGET LDA (SRCLO),Y
|
||||
INC SRCLO
|
||||
BNE MOVERTS
|
||||
INC SRCHI
|
||||
MOVERTS RTS
|
||||
;-----------
|
||||
;
|
||||
;
|
||||
EXTERNAL:
|
||||
;
|
||||
;
|
||||
USR "UCAL",ORG
|
||||
;
|
||||
ICL "S:COMMON"
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,11 @@
|
|||
5 HIMEM: 32768
|
||||
10 TEXT : HOME : NORMAL : PRINT "CHANGE CONFIG FILE TO 'WELCOME' STATE": POKE 34,9
|
||||
20 PRINT "BLOADCONFIG.WELCOME"
|
||||
30 HOME : PRINT "PUT COMPANION DISK IN SLOT 6, DRIVE 1": PRINT : PRINT : PRINT "AND PRESS <RETURN>...";
|
||||
40 GET A$: IF A$ < > CHR$ (13) THEN 40
|
||||
50 HOME : PRINT
|
||||
55 POKE 45069,2
|
||||
56 POKE 38389,255
|
||||
60 PRINT "BSAVE CONFIG,S6,D1,A$95F0,L16"
|
||||
65 POKE 45069,0
|
||||
70 GOTO 30
|
|
@ -0,0 +1,6 @@
|
|||
10 TEXT : HOME : NORMAL : PRINT "UPDATE COMPANION PROGRAM": VTAB 10: PRINT "PUT NEW COMPANION DISK IN DRIVE 1
AND PUT COMPANION TO BE UPDATED
IN DRIVE 2 AND PRESS <RETURN>...";
|
||||
15 GET A$: IF A$ < > CHR$ (13) THEN 15
|
||||
20 HOME :IOB = 47080:SL = IOB + 1:DR = IOB + 2:VO = IOB + 3:TR = IOB + 4:SE = IOB + 5:BL = IOB + 8:BH = IOB + 9:CO = IOB + 12:RE = 768: HGR : VTAB 22
|
||||
30 POKE VO,0: POKE 1150,68: PRINT "COPYING DRIVE 1 TO 2": FOR T = 34 TO 1 STEP - 7:C = 1: GOSUB 100:C = 2: GOSUB 100: NEXT : CALL - 1052: RUN
|
||||
100 POKE CO,C: POKE DR,C: POKE TR,T - (T = 34): POKE SE,15: POKE 0,7 * 16: POKE BL,0: POKE BH,143: CALL PEEK (175) + 256 * PEEK (176) - 56: RETURN
|
||||
63999 PRINT "SAVE CC"
|
|
@ -0,0 +1,6 @@
|
|||
6 SV = 14
|
||||
10 TEXT : HOME : NORMAL : PRINT "Copy Hard disk to floppy": VTAB 10: PRINT "Destination disk in DRIVE ONE,SLOT SIX
SOURCE VOLUME -->"SV"
Press <RETURN> to continue...";
|
||||
15 GET A$: IF A$ < > CHR$ (13) THEN 15
|
||||
20 HOME :IOB = 47080:SL = IOB + 1:DR = IOB + 2:VO = IOB + 3:TR = IOB + 4:SE = IOB + 5:BL = IOB + 8:BH = IOB + 9:CO = IOB + 12:RE = 768: HGR : VTAB 22
|
||||
30 POKE 1150,68: PRINT "Backing up volume "SV: FOR T = 34 TO 1 STEP - 7:C = 1: POKE DR,1: POKE SL,112: POKE VO,SV: POKE 49385,0: GOSUB 100:C = 2: POKE SL,96: POKE VO,0: GOSUB 100: NEXT : CALL - 1052: RUN
|
||||
100 POKE CO,C: POKE TR,T - (T = 34): POKE SE,15: POKE 0,7 * 16: POKE BL,0: POKE BH,143: CALL PEEK (175) + 256 * PEEK (176) - 56: RETURN
|
|
@ -0,0 +1,6 @@
|
|||
6 DV = 14
|
||||
10 TEXT : HOME : NORMAL : PRINT "Copy Floppy to Hard Disk": VTAB 10: PRINT "COMPANION in SLOT SIX,DRIVE ONE
DESTINATION VOLUME -->";DV"
PRESS <RETURN> TO CONTINUE...";
|
||||
15 GET A$: IF A$ < > CHR$ (13) THEN 15
|
||||
20 HOME :IOB = 47080:SL = IOB + 1:DR = IOB + 2:VO = IOB + 3:TR = IOB + 4:SE = IOB + 5:BL = IOB + 8:BH = IOB + 9:CO = IOB + 12:RE = 768: HGR : VTAB 22
|
||||
30 POKE 1150,68: PRINT "Downloading volume "DV: FOR T = 34 TO 1 STEP - 7:C = 1: POKE DR,1: POKE SL,96: POKE VO,0: GOSUB 100: POKE 49385 - (T = 6),0:C = 2: POKE SL,112: POKE VO,DV: GOSUB 100: NEXT : CALL - 1052: RUN
|
||||
100 POKE CO,C: POKE TR,T - (T = 34): POKE SE,15: POKE 0,7 * 16: POKE BL,0: POKE BH,143: CALL PEEK (175) + 256 * PEEK (176) - 56: RETURN
|
|
@ -0,0 +1,9 @@
|
|||
5 PRINT "MONC": PRINT "BLOADCLEARMEM": CALL 768
|
||||
10 PRINT "BLOAD CALEN.TOO BIG"
|
||||
20 PRINT "BSAVE CALEN.TAIL END,A$5D00,L$700"
|
||||
30 PRINT "BLOAD O:CALTAIL,A$5D00"
|
||||
34 POKE 16385,0: POKE 16386,93: REM
|
||||
$4001:00.5D
|
||||
40 PRINT "BSAVE CALEN.FIRST PART,A$4000,L$1DF8"
|
||||
50 END
|
||||
63999 PRINT "SAVE FIX.CALEN"
|
|
@ -0,0 +1,10 @@
|
|||
5 F$ = "COMPANION.PIC"
|
||||
6 F2$ = "CTITLE"
|
||||
10 TEXT : HOME : HGR : POKE - 16302,0: PRINT "BLOAD "F$",A8192"
|
||||
20 PRINT "BLOAD O:MAKETITLEPIC,A4096"
|
||||
30 PRINT "BLOAD O:SHOWTITLEPIC,A16384"
|
||||
40 CALL 4096:L = PEEK (0) + 256 * PEEK (1) - 16384
|
||||
50 TEXT : PRINT "THE LENGTH IS "L
|
||||
60 PRINT "BSAVE "F2$",A16384,L"L
|
||||
70 PRINT "DONE...": END
|
||||
63999 PRINT "SAVE A:MAKETITLEPIC"
|
|
@ -0,0 +1,10 @@
|
|||
5 BF = 8192: POKE 47081,64
|
||||
10 GOSUB 63950: TEXT : HOME : NORMAL
|
||||
20 PRINT "SLOT 4, DRIVE 1 COMPANION
PROTECTION ENABLER:
0 - TURN OFF
1 - TURN ON
SELECTION (0-1) ? ";
|
||||
30 GET A$:B = VAL (A$): IF B > 1 THEN 30
|
||||
40 HOME :C = 1: GOSUB 100
|
||||
45 POKE BF + 2,15 - B * 2
|
||||
50 C = 2: GOSUB 100: END
|
||||
100 CALL BF(0)C,17,0,BF,1: IF NOT PEEK (0) THEN RETURN
|
||||
110 PRINT "ERROR!": END
|
||||
63950 A = PEEK (175) + PEEK (176) * 256 - 4:B = PEEK (A) / 2:A = A - B * 2: FOR C = 0 TO B - 1:BF(C) = A - PEEK (A + C * 2) - 256 * PEEK (A + C * 2 + 1): NEXT : RETURN
|
|
@ -0,0 +1,17 @@
|
|||
10 PR# 0: CALL 1002:UP = 4096:ME = 6656: HIMEM: ME:AD = 34048:D$ = "BLOAD"
|
||||
20 POKE 49164,0: POKE 49166,0
|
||||
30 PRINT D$"DEMOMENU": PRINT D$"DEMOLIB"
|
||||
35 ONERR GOTO 100
|
||||
40 CALL 54915: CALL ME: HOME : IF PEEK (ME + 3) = 1 THEN GOSUB 1000: GOTO 40
|
||||
50 HOME : IF NOT UL THEN PRINT D$"CAL1": PRINT D$"CAL2": PRINT D$"CALUP":UL = 1
|
||||
55 ONERR GOTO 70
|
||||
60 CALL UP: GOTO 35
|
||||
70 CALL UP + 3: GOTO 60
|
||||
100 TEXT : HOME : NORMAL : VTAB 8: PRINT "UNABLE TO READ DISK.
PLEASE INSERT SIDE B OF THE PRINT SHOP
AND PRESS <RETURN>"
|
||||
110 WAIT 49152,128: POKE 49168,0: GOTO 40
|
||||
1000 UL = 0:M = PEEK (ME + 4): ON M = 7 GOTO 2000: GOSUB 3000
|
||||
1010 CALL AD + 3: ON NOT PEEK (AD + 6) GOTO 1010: RETURN
|
||||
2000 FOR M = 1 TO 6: GOSUB 3000: CALL AD + 3: IF PEEK (AD + 6) THEN RETURN
|
||||
2010 NEXT : GOTO 2000
|
||||
3000 PRINT D$"PIC"M"A,A$4000": PRINT D$"PIC"M"B,A$6000": CALL AD: POKE AD + 7,128: RETURN
|
||||
63999 PRINT "SAVEPS.SIDEB.HELLO
|
|
@ -0,0 +1,10 @@
|
|||
5 HIMEM: 32768
|
||||
10 TEXT : HOME : NORMAL : PRINT "CHANGE CONFIG FILE TO 'WELCOME' STATE": POKE 34,9
|
||||
20 PRINT "BLOADCONFIG.WELCOME"
|
||||
30 HOME : PRINT "PUT PRINT SHOP DISK IN SLOT 6, DRIVE 1
AND PRESS <RETURN>...";
|
||||
40 GET A$: IF A$ < > CHR$ (13) THEN 40
|
||||
50 HOME : PRINT
|
||||
55 POKE 45069,2
|
||||
60 PRINT "BSAVE CONFIG,S6,D1,A$95F0,L16"
|
||||
65 POKE 45069,0
|
||||
70 GOTO 30
|
|
@ -0,0 +1,11 @@
|
|||
5 TP = 4096: PRINT "BLOAD O:TESTPROT,A"TP
|
||||
10 TEXT : HOME : NORMAL : PRINT "Check Print Shop or Companion for
copy protection...": FOR A = 1 TO 13: PRINT "---";: NEXT : PRINT : POKE 34,4: CALL TP: READ A$(0),A$(1)
|
||||
20 HOME : VTAB 10: PRINT "INSERT DISK AND PRESS <RETURN>...";: GOSUB 2000
|
||||
40 A$ = "ONE MOMENT WHILE I THINK ABOUT THIS...": POKE 0,100: GOSUB 1000: CALL TP + 3:A$ = "HERE'S THE VERDICT:": GOSUB 1000
|
||||
50 VTAB 23: PRINT "PRESS <RETURN>...";: GOSUB 2000: GOTO 20
|
||||
1000 VTAB 10: PRINT A$ TAB( 81): PRINT
|
||||
1005 FOR A = 0 TO 1: IF A = PEEK (0) THEN INVERSE
|
||||
1010 PRINT A$(A): NORMAL : NEXT : RETURN
|
||||
2000 GET A$: ON A$ < > CHR$ (13) GOTO 2000: HOME : RETURN
|
||||
60000 DATA "OK COPY","PIRATE COPY"
|
||||
63999 PRINT "SAVEHELLO"
|
|
@ -0,0 +1,17 @@
|
|||
10 B$ = "BLOAD":S$ = "BSAVE": PRINT "MONC": HGR : HGR2 : TEXT : HOME
|
||||
20 PRINT B$"O:NOMOREBACKUP,A$2000"
|
||||
22 PRINT B$"CALEN.TAIL END,A$2200"
|
||||
24 PRINT B$"CALEN.FIRST PART,A$4000"
|
||||
26 PRINT B$"O:CALUPDATER,A$1000"
|
||||
28 PRINT B$"DEMOMENU,A$1A00"
|
||||
30 VTAB 8: PRINT "PUT SIDE B OF PRINT SHOP IN SLOT SIX,
DRIVE ONE, AND PRESS <RETURN>...";
|
||||
32 GET A$: IF A$ < > CHR$ (13) THEN 32
|
||||
40 PRINT : PRINT : PRINT : PRINT
|
||||
42 POKE 45069,2
|
||||
44 PRINT S$"CAL1,A$4000,L$1DF8,S6,D1"
|
||||
45 PRINT S$"CAL2,A$2000,L$900"
|
||||
46 PRINT S$"CALUP,A$1000,L$800"
|
||||
48 PRINT S$"DEMOMENU,A$1A00,L$5F8"
|
||||
50 POKE 45069,0
|
||||
1000 STOP
|
||||
63999 PRINT "SAVEUP.PS.SIDEB"
|
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue