home *** CD-ROM | disk | FTP | other *** search
- */beginfile PROCS8_asm
- ; --------------------------------------------------------------
- ; PROCS8_asm - BASIC bits
- ; - last modified 27/08/95
- ; QDOS-Amiga sources by Rainer Kowallik
- ; ...some changes by Mark J Swift
- ; --------------------------------------------------------------
- ; Get channel ID from BASIC channel #
- L065E6:
- CHNRTOID:
- MOVEQ #1,D1
- L065E8 MOVE.L A5,-(A7)
- CMPA.L A3,A5
- BLS.S L0661C
- BCLR #7,1(A6,A3.L)
- BEQ.S L0661C
- MOVE.L A3,-(A7)
- LEA 8(A3),A5
- ANDI.B #$0F,$01(A6,A3.L)
- JSR L05EC8(PC) ;*/undomodify BSR L05EC8
- BNE.S L06642
- MOVEQ #3,D0
- JSR L05996(PC) ;*/undomodify BSR L05996
- BNE.S L06642
- MOVEA.L (A7)+,A3
- ADDQ.W #8,A3
- MOVE.W 0(A6,A1.L),D1
- ADDQ.L #2,BV_RIP(A6) ;arith stack
- L0661C MOVEA.L (A7)+,A5
- L0661E MOVE.L D1,D0
- MOVEA.L BV_CHBAS(A6),A0 ;channel name
- MULU #$28,D0
- ADDA.L D0,A0
- CMPA.L BV_CHP(A6),A0 ;channel name running ptr
- BGE.S L0663E
- MOVE.L 0(A6,A0.L),D0
- BLT.S L0663E
- MOVEA.L A0,A2
- MOVEA.L D0,A0
- MOVEQ #0,D0
- RTS
- L0663E MOVEQ #-6,D0 ; Channel not found
- RTS
- L06642:
- ADDQ.W #8,A7
- RTS
- ; store Channel ID for identification by # as #(D1)
- L06646:
- STO_CHID:
- MOVE.L A0,-(A7)
- BSR.S L0661E
- BEQ.S L0669E
- CMPA.L BV_CHP(A6),A0 ; channel name running ptr
- BLT.S L06680
- MOVE.L D1,-(A7)
- MOVE.L A0,D1
- ADDI.L #$28,D1
- SUB.L BV_CHP(A6),D1 ; channel name running ptr
- ;*/undoinsert MOVEQ #$34,D2
- JSR L04E7A(PC) ;*/undomodify BSR L04E84
- MOVE.L (A7)+,D1
- BSR.S L0661E
- L06668:
- MOVEA.L BV_CHP(A6),A2 ; channel name running ptr
- ADDI.L #$28,BV_CHP(A6) ; channel name running ptr
- MOVE.L #$FFFFFFFF,0(A6,A2.L)
- CMPA.L A0,A2
- BLT.S L06668
- L06680:
- MOVEA.L A0,A2
- MOVEQ #$0A,D0
- L06684 CLR.L 0(A6,A0.L)
- ADDQ.W #4,A0
- SUBQ.W #1,D0
- BGT.S L06684
- MOVEA.L (A7)+,A0
- MOVE.L A0,0(A6,A2.L)
- MOVE.W #$50,$22(A6,A2.L)
- MOVEQ #0,D0
- RTS
- L0669E MOVEQ #-8,D0 ; already exists error
- RTS
- ; --------------------------------------------------------------
- ;*/endfile
-