* * Ferma F-5000 FR Speech Card * * (c) 1986, Ferma * (s) 2022, Brutal Deluxe Software * TYP BIN ORG $C800 MX %11 LST OFF *---------------------------- MSLOT EQU $07F8 KBD EQU $C000 KBDSTROBE EQU $C010 RD80VID EQU $C01F TXTPAGE1 EQU $C054 TXTPAGE2 EQU $C055 BUTN1 EQU $C062 COUTZ EQU $FDF6 *---------------------------- LC800 JSR L0C900 LDX #$00 RTS JMP LC904 JMP LC913 LSR CLC LDA #$00 TAX RTS LC812 PHA LDA $06B8,X LSR BCC LC825 BCS LC825 LC81B LDA $C080,Y AND #$40 BEQ LC81B BNE LC825 LC824 PHA LC825 LDA $C080,Y BPL LC825 PLA PHA AND #$7F STA $C080,Y LC831 LDA $C080,Y BMI LC831 PLA RTS LC838 LDA #$AE LC83A PHA TXA PHA TYA PHA LDY $26 TSX LDA $0103,X JSR LC824 JMP LC851 LC84B PLA STA $26 PLA STA $27 LC851 PLA TAY PLA TAX PLA RTS LC857 LDY $24 LDA $06B8,X AND #$60 BEQ LC8A0 CMP #$40 BEQ LC8AC CMP #$20 BEQ LC878 LDA $03B8,X CMP $24 BMI LC872 JSR LC8A4 LC872 LDA $03B8,X STA $24 RTS LC878 CPY #$00 BNE LC886 LDA $25 BEQ LC89F JSR LC8B6 JSR LCE6E LC886 CPY #$00 BEQ LC89D JSR LCE34 DEY CMP #$A0 BEQ LC886 LC892 JSR LCE34 CMP #$A0 BEQ LC89D DEY BPL LC892 INY LC89D STY $24 LC89F RTS LC8A0 LDA $24 BNE LC8A8 LC8A4 LDA $25 BNE LC8B6 LC8A8 LDY #$00 BEQ LC89D LC8AC DEY BPL LC89D LC8AF JSR LCE6E LDY $25 BEQ LC89D LC8B6 DEC $25 LDA $25 JMP LC9F7 LC8BD INY STY $24 JSR LCE7B BCC LC89F JMP LC9E2 LC8C8 LDX #$00 JSR LCD75 LDA $25 JSR LCC3E LDX #$08 JSR LCD75 LDA $24 JSR LCC3E JMP LC838 LC8DF LDA #$CA PHA LDA LCCAD,Y PHA CPY #$04 BCC LC8EC LDY $26 LC8EC RTS LC8ED STA $0538,X BIT KBDSTROBE PLP RTS DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 L0C900 JSR LC90B RTS LC904 JSR LC90B LC907 LDY MSLOT RTS LC90B STX MSLOT STY $26 LDA #$00 RTS LC913 STA $27 JSR LC90B JMP LC907 PHP SEI LDA $0538,X PHA LDA $25 PHA LDA $24 PHA JSR LCA19 LC92A JSR LCE13 CMP #$87 BEQ LC94F LDX MSLOT LDY #$00 LC936 CMP LCC9A,Y BEQ LC942 INY CPY #$13 BNE LC936 BEQ LC92A LC942 LDA #$8C JSR LC83A JSR LC8DF JSR LC838 BNE LC92A LC94F LDX MSLOT PLA STA $24 PLA STA $25 JSR LCE1C PLA JMP LC8ED LC95F JSR LCE34 CMP #$A0 BNE LC969 JMP LCC12 LC969 JSR LC83A LC96C INC $24 LDY $24 JSR LCE7B BCS LC9E2 RTS LC976 LDY $24 LDA $06B8,X AND #$60 BEQ LC9CD CMP #$40 BEQ LC95F CMP #$20 BEQ LC9A6 JSR LCE90 LC98A JSR LCE34 JSR LC83A TYA CMP $0438,X BCS LC999 INY BCC LC98A LC999 JSR LC9E2 LDA $0438,X BCS LC9EF LDA $03B8,X BCC LC9EF LC9A6 JSR LCE34 INY CMP #$A0 BNE LC9B5 JSR LCE7B BNE LC9A6 BEQ LC9E2 LC9B5 JSR LC83A LC9B8 JSR LCE34 CMP #$A0 BEQ LC9CA JSR LCE7B BCS LC9E2 INY JSR LC83A BCC LC9B8 LC9CA STY $24 RTS LC9CD JSR LCE7B BCS LC9E2 JSR LCE34 BIT BUTN1 BPL LC9DC LDA #$8C LC9DC JSR LC83A INY BNE LC9CD LC9E2 AND #$00 STA $24 LDA $25 CMP #$17 BCC LC9F3 JSR LCE86 LC9EF STA $24 SEC RTS LC9F3 INC $25 LDA $25 LC9F7 JSR LCE1C STA $28 CLC RTS DB $FF DB $02 LCA00 DB $00 DB $20 DB $40 DB $60 LDA $06B8,X AND #$1F ORA LCA00,Y STA $06B8,X RTS LCA10 JMP LCC00 JMP LC976 JMP LCB00 LCA19 JMP LC8C8 LCA1C LDA #$00 STA $24 LCA20 STA $25 JMP LC9F7 JSR LCD86 BPL LCA20 RTS LCA2B LDA #$01 EOR $06B8,X STA $06B8,X RTS LDX #$1B JSR LCD75 TSX TXA LDX MSLOT CMP #$0C BCC LCA8A SBC #$0C LDY #$00 LCA46 JSR LCE13 CMP #$8D BEQ LCA7E CMP #$87 BEQ LCA7E CMP #$81 BNE LCA64 LCA55 JSR LCE13 CMP #$87 BEQ LCA7E CMP #$A0 BCC LCA55 AND #$7F BNE LCA6C LCA64 CMP #$98 BEQ LCA78 CMP #$A0 BCC LCA46 LCA6C STA $0101,Y JSR LC83A JSR LC838 INY BNE LCA46 LCA78 TYA BEQ LCA46 DEY BPL LCA46 LCA7E STY $0100 LDA $0738,X ORA #$80 STA $0738,X LCA89 RTS LCA8A LDX #$2F JMP LCD75 LDA $0738,X BPL LCA89 LDA $0100 BEQ LCB16 LDY $24 JSR LC8BD BCS LCAC2 LCAA0 LDA #$00 STA $0538,X LCAA5 LDY $0538,X LDA $0101,Y LDY $24 JSR LCE52 BNE LCAC7 INC $0538,X LDA $0538,X CMP $0100 BEQ LCACE JSR LC8BD BCC LCAA5 LCAC2 LDX #$50 JMP LCD75 LCAC7 JSR LC8BD BCS LCAC2 BCC LCAA0 LCACE DEC $0538,X BEQ LCAE0 LCAD3 DEY BNE LCADB JSR LC8AF LDY $24 LCADB DEC $0538,X BNE LCAD3 LCAE0 STY $24 JMP LCA19 JMP LCEA9 JMP LCB06 JMP LCB0F JMP LCC93 JSR LCA1C LCAF4 JSR LC976 BCC LCAF4 RTS LDA #$00 STA $24 RTS DB $00 LCB00 JSR LC857 JMP LCA10 LCB06 LDA #$BF AND $0738,X LCB0B STA $0738,X RTS LCB0F LDA #$40 ORA $0738,X BNE LCB0B LCB16 LDX #$42 JMP LCD75 LCB1B LDA #$CB PHA LDA $0738,X AND #$38 LSR LSR LSR TAY LDA LCC39,Y PHA LDY $26 LDA $27 RTS LDA $0738,X ORA #$38 STA $0738,X LDA $04B8,X ORA #$80 STA $04B8,X JMP LC84B LDA $0738,X AND #$38 CMP #$38 BEQ LCB5E CMP #$30 BNE LCB1B LDY #$04 LDA $27 LCB54 CMP LCC34,Y BEQ LCB82 DEY BEQ LCB82 BNE LCB54 LCB5E LDA $27 CMP #$A0 BNE LCB6D LDA $0738,X AND #$F7 STA $0738,X RTS LCB6D LDA $04B8,X JSR LC812 JSR LCC5A LDA $27 JSR LC812 JSR LCC5A JMP LCBEC LCB81 RTS LCB82 TYA ASL ASL ASL PHA LDA $0738,X AND #$C7 STA $0738,X PLA ORA $0738,X STA $0738,X CPY #$04 BEQ LCBDD CPY #$03 BEQ LCBE3 CPY #$02 BEQ LCBE9 CPY #$01 BEQ LCB81 LDA $27 JMP LC83A JSR LC824 CMP #$AE BEQ LCBEC RTS NOP SEC SBC #$B0 BCC LCBEC CMP #$08 BCS LCBEC ORA #$C0 CMP MSLOT BEQ LCBEC PHA LDA $0738,X AND #$F8 STA $0738,X PLA AND #$07 ORA $0738,X STA $0738,X LDA #$00 STA $05B8,X BEQ LCBEC LCBDD JSR LCB06 CLC BCC LCBEC LCBE3 JSR LCB0F CLC BCC LCBEC LCBE9 JSR LCA2B LCBEC LDA #$7F AND $04B8,X STA $04B8,X RTS DB $FF DB $FF DB $FF DB $FF DB $FF DB $FF DB $FF DB $FF DB $FF DB $FF DB $02 LCC00 LDA $25 PHA LDA $24 PHA JSR LC976 PLA STA $24 PLA STA $25 JMP LCE1C LCC12 LDX #$12 JSR LCD75 JMP LC96C LDA $24 PHA LCC1D LDA #$A0 LDY $24 JSR LCE52 BNE LCC2E+1 INC $24 INY JSR LCE7B BCC LCC1D LCC2E BCC LCC47+1 PLA STA $24 RTS LCC34 DB $20 DB $C3 DB $AA DB $BE DB $AB LCC39 DB $AA DB $B2 DB $E8 DB $E2 DB $DC LCC3E LDX #$00 CLC ADC #$01 LCC43 CMP #$0A BCC LCC4C LCC47 SBC #$0A INX BNE LCC43 LCC4C PHA TXA BEQ LCC53 JSR LCC54 LCC53 PLA LCC54 CLC ADC #$B0 JMP LC824 LCC5A LDA $0738,X AND #$28 BEQ LCC68 LDA $06B8,X AND #$01 BEQ LCC77 LCC68 JSR LCECE LCC6B LDA $0738,X AND #$07 BEQ LCC78 LCC72 TXA PHA LDA #$C1 PHA LCC77 RTS LCC78 BIT RD80VID BPL LCC8E LDA $0738,X AND #$F8 ORA #$03 STA $0738,X LDA #$07 STA $05B8,X BNE LCC72 LCC8E LDA $27 JMP COUTZ LCC93 TSX LDA #$07 STA $0105,X RTS LCC9A ASC "LMKJQ D"8D ASC "YX*S"9B ASC "CF+>P"89 LCCAD HEX 030303030F1215181B242A338EE4F0E7 HEX EAEDF9 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 DB $00 LCD00 ASC ".LIGNE."00 ASC ".COLONNE."00 ASC ".ESPACE."00 ASC ".FRAPPEZ LA CHAINE."00 ASC ".PILE TROP PETITE!"00 ASC ".CHAINE VIDE."00 ASC ".NON TROUVE1."00 ASC ".POINT."00 ASC ".DE1BUT."00 ASC ".FIN."00 LCD75 LDY $26 LCD77 LDA LCD00,X BEQ LCD82 INX JSR LC83A BNE LCD77 LCD82 LDX MSLOT RTS LCD86 JSR LCDA6 BCS LCDC1 STA $0538,X ASL ASL ADC $0538,X ASL STA $0538,X JSR LC838 JSR LCDA6 BCS LCDC1 ADC $0538,X SEC SBC #$01 RTS LCDA6 JSR LCE13 CMP #$87 BEQ LCDC4 SEC SBC #$B0 BCC LCDA6 CMP #$0A BCS LCDA6 PHA ADC #$B0 JSR LC83A JSR LC838 PLA RTS LCDC1 LDA #$FF RTS LCDC4 SEC RTS LCDC6 PHA LDA $0538,X JSR LC83A PLA LCDCE PHA LDA #$B0 STA $0538,X PLA RTS JSR LCDCE LCDD9 CMP #$64 BCC LCDE4 SBC #$64 INC $0538,X BNE LCDD9 LCDE4 JSR LCDC6 LCDE7 CMP #$0A BCC LCDF2 SBC #$0A INC $0538,X BNE LCDE7 LCDF2 JSR LCDC6 CLC ADC $0538,X JSR LC83A JMP LC838 DB $02 LCE00 LDA $36 STA $05B8,X LDX #$00 LCE07 PLA STA $36,X INX CPX #$04 BCC LCE07 LDX MSLOT RTS LCE13 LDA KBD BPL LCE13 STA KBDSTROBE RTS LCE1C PHA LSR AND #$03 ORA #$04 STA $29 PLA AND #$18 BCC LCE2B ADC #$7F LCE2B STA $28 ASL ASL ORA $28 STA $28 RTS LCE34 LDA RD80VID BPL LCE4F TYA LSR TAY LDA TXTPAGE2 BCC LCE44 LDA TXTPAGE1 LCE44 LDA ($28),Y PHA LDA TXTPAGE1 TYA ROL TAY PLA RTS LCE4F LDA ($28),Y RTS LCE52 PHA LDA RD80VID BPL LCE63 TYA LSR TAY LDA TXTPAGE2 BCC LCE63 LDA TXTPAGE1 LCE63 PLA CMP ($28),Y PHP LDY TXTPAGE1 LDY $24 PLP RTS LCE6E LDY #$27 BIT RD80VID BPL LCE77 LDY #$4F LCE77 STY $24 RTS LCE7A TAY LCE7B BIT RD80VID BPL LCE83 CPY #$50 RTS LCE83 CPY #$28 RTS LCE86 LDA #$27 BIT RD80VID BPL LCE8F LDA #$4F LCE8F RTS LCE90 TYA CMP $03B8,X BCC LCEA4 LDA $0438,X CMP $24 BPL LCEA8 JSR LC999 LDA $24 TAY RTS LCEA4 LDA $03B8,X TAY LCEA8 RTS LCEA9 LDX #$66 JSR LCD75 JSR LCD86 BMI LCECD JSR LCE7A BCS LCEA9 STA $03B8,X LCEBB LDX #$6F JSR LCD75 JSR LCD86 BMI LCECD JSR LCE7A BCS LCEBB STA $0438,X LCECD RTS LCECE PHA LDA #$20 BIT RD80VID BPL LCED8 LDA #$48 LCED8 CMP $24 BNE LCEE9 LDA $27 PHA LDA #$87 STA $27 JSR LCC6B PLA STA $27 LCEE9 PLA RTS DS $15 LCF00 HEX FF010101010101010001010101010101 HEX 01010101010101010101000101010001 HEX 01010101010001010101010001010101 HEX 01010101000100010101010101010101 HEX 01010101010101010100000101010101 HEX 01010101000101010101000101010101 HEX 00010101010001010101010101010101 HEX 01010101010100010101010101010101 HEX 01010100010101010100010100010001 HEX 01010101000101010101010101010101 HEX 01010001010101010101010101010101 HEX 01010001010101010001010101010101 HEX 01010101010001010101010001010101 HEX 01010101010101010001010101010001 HEX 01010101010101010101010001010101 HEX 01000101010101010100010100010101