====== MODOS9P2 ====== Header for : OS9p2 Module size: $4F4 #1268 Module CRC : $4448F7 (Good) Hdr parity : $08 Edition : $08 #8 Ty/La At/Rv: $C1 $81 System mod, 6809 Obj, re-ent, R/O ===== CODE ===== * Disassembly by Os9disasm of modos9p2 mod L04f4,L000d,$c1,$81,L0041,D0000 * OS-9 system function equates F$Link equ $00 F$UnLink equ $02 F$Chain equ $05 F$SchBit equ $12 F$AllBit equ $13 F$DelBit equ $14 F$SRqMem equ $28 F$SRtMem equ $29 F$AProc equ $2c F$NProc equ $2d F$VModul equ $2e F$Find64 equ $2f F$All64 equ $30 F$Ret64 equ $31 F$IODel equ $33 I$Dup equ $82 I$Open equ $84 I$ChgDir equ $86 I$Close equ $8f * class D external label equates D0001 equ $0001 D0002 equ $0002 D0003 equ $0003 D0004 equ $0004 D0006 equ $0006 D0007 equ $0007 D0009 equ $0009 D000b equ $000b D000c equ $000c D000d equ $000d D000e equ $000e D0020 equ $0020 D0022 equ $0022 D0024 equ $0024 D0026 equ $0026 D0028 equ $0028 D002a equ $002a D0036 equ $0036 D0049 equ $0049 D004b equ $004b D004f equ $004f D0050 equ $0050 D0053 equ $0053 D0055 equ $0055 D0056 equ $0056 D0057 equ $0057 D0066 equ $0066 D0068 equ $0068 D0099 equ $0099 Dfffe equ $fffe * OS9 data area definitions D0000 equ . L000d clra comb rts neg -19960 clr $0481 fcb $02 neg D0099 lsr D0000 stu D0006 fcb $01 bpl L0027 fcb $01 bita 8,x fcb $02 fcb $18 rol D0003 L0027 blt L0033 fcb $02 jsr D000c com D0050 tst D0003 leas 14,x com D0056 L0033 equ *-1 lbra L03a5 stx 3,x fcb $87 suba $03a7 cmpa $0425 suba #$31 L0041 equ *-1 bsr L0043 L0043 equ *-1 ldu #4159 fcb $32 ldx D0049 os9 F$All64 bcs L0081 stx D0049 sty D004b tfr s,d deca ldb #1 std D0007,y lda #$80 sta D000d,y ldu D002a bsr L0085 bcc L006a lbsr L04b9 bsr L0085 L006a bsr L0093 bcc L0073 lbsr L04b9 bsr L0093 L0073 ldd 14,u leax d,u lda #1 clrb ldy #0 os9 F$Chain L0081 jmp [-2] L0085 clrb ldd 16,u beq L0092 leax d,u lda #5 os9 I$ChgDir L0092 rts L0093 clrb ldd 18,u leax d,u lda #3 os9 I$Open bcs L00b1 ldx D004b sta 38,x os9 I$Dup sta 39,x os9 I$Dup sta 40,x L00b1 rts ldd 8,u beq L00f9 ldx D0026 L00b8 cmpd ,x beq L00c5 leax 4,x cmpx D0028 bcs L00b8 bra L00f9 L00c5 lda 2,x beq L00ce deca sta 2,x bne L00f9 L00ce ldy ,x cmpy D0066 bcc L00f9 ldb D0006,y cmpb #$d0 bcs L00e5 os9 F$IODel bcc L00e5 inc 2,x bra L00fa L00e5 clra clrb std ,x std ,y ldd D0002,y lbsr L0236 exg d,y exg a,b ldx D0020 os9 F$DelBit L00f9 clra L00fa rts ldy D004b ldx D0049 lda D0003,y bne L0108 comb ldb #$e2 rts L0108 os9 F$Find64 lda D000d,y bita #1 bne L0124 lda D0002,y bne L0108 clr 1,u ldx D004b orcc #$50 ldd D004f std 14,x stx D004f lbra L033b L0124 ldx D004b L0126 lda ,y ldb D0036,y std 1,u pshs a,x,y,u leay 1,x ldx D0049 bra L0138 L0135 os9 F$Find64 L0138 lda D0002,y cmpa ,s bne L0135 ldu 3,s ldb 2,u stb D0002,y os9 F$Ret64 puls a,x,y,u,pc ldx D004b ldb 2,u stb 54,x ldb #$10 leay 38,x L0155 lda ,y+ beq L0160 pshs b os9 I$Close puls b L0160 decb bne L0155 lda 7,x tfr d,u lda 8,x os9 F$SRtMem ldu 18,x os9 F$UnLink ldu D004b leay 1,u ldx D0049 bra L018c L017a clr D0002,y os9 F$Find64 lda D000d,y bita #1 beq L018a lda ,y os9 F$Ret64 L018a clr D0001,y L018c lda D0002,y bne L017a ldx #$0041 lda 1,u bne L01a4 ldx D0049 lda ,u os9 F$Ret64 bra L01c2 L01a0 cmpa ,x beq L01b2 L01a4 leay ,x ldx 14,x bne L01a0 lda 13,u ora #1 sta 13,u bra L01c2 L01b2 ldd 14,x std D000e,y os9 F$AProc leay ,u ldu 4,x ldu 1,u lbsr L0126 L01c2 clra clrb std D004b rts ldx D004b ldd 1,u beq L0227 bsr L0236 subb 8,x beq L0227 bcs L0207 tfr d,y ldx 7,x pshs x,y,u ldb ,s beq L01e1 addb 1,s L01e1 ldx D0020 ldu D0022 os9 F$SchBit bcs L0231 stb 2,s ldb ,s beq L01f6 addb 1,s cmpb 2,s bne L0231 L01f6 ldb 2,s os9 F$AllBit ldd 2,s suba 1,s addb 1,s puls x,y,u ldx D004b bra L0225 L0207 negb tfr d,y negb addb 8,x addb 7,x cmpb 4,x bhi L0217 comb ldb #$df rts L0217 ldx D0020 os9 F$DelBit tfr y,d negb ldx D004b addb 8,x lda 7,x L0225 std 7,x L0227 lda 8,x clrb std 1,u adda 7,x std 6,u rts L0231 comb ldb #$cf puls x,y,u,pc L0236 addd #$00ff clrb exg a,b rts lda 1,u bne L024f inca L0242 ldx D004b cmpa ,x beq L024a bsr L024f L024a inca bne L0242 clrb rts L024f ldx D0049 os9 F$Find64 bcc L0259 ldb #$e0 rts L0259 orcc #$50 pshs a,y ldb 2,u bne L0267 lda D000d,y ora #2 sta D000d,y L0267 lda D0036,y beq L0274 deca beq L0274 comb ldb #$e9 puls a,y,pc L0274 stb D0036,y ldx #$0043 bra L02a2 L027c cmpx 1,s bne L02a2 lda 13,x bita #$40 beq L02b5 ldu 4,x ldd 4,u beq L02b5 ldu 14,x beq L02b5 pshs d lda 13,u bita #$40 puls d beq L02b5 ldu 4,u addd 4,u std 4,u bra L02b5 L02a2 leay ,x ldx D000e,y bne L027c ldx #$0041 L02ab leay ,x ldx D000e,y beq L02c5 cmpx 1,s bne L02ab L02b5 ldd 14,x std D000e,y lda 54,x deca bne L02c2 sta 54,x L02c2 os9 F$AProc L02c5 clrb puls a,y,pc ldx D004b orcc #$50 lda 54,x beq L02dc deca bne L02d7 sta 54,x L02d7 os9 F$AProc bra L033b L02dc ldd 4,u beq L0328 subd #1 std 4,u beq L02d7 pshs x,u ldx #$0043 L02ec leay ,x ldx 14,x beq L0304 pshs d lda 13,x bita #$40 puls d beq L0304 ldu 4,x subd 4,u bcc L02ec addd 4,u L0304 puls x,u std 4,u ldd D000e,y stx D000e,y std 14,x lda 13,x ora #$40 sta 13,x ldx 14,x beq L033b lda 13,x bita #$40 beq L033b ldx 4,x ldd 4,x subd 4,u std 4,x bra L033b L0328 lda 13,x anda #$bf sta 13,x ldd #$0043 L0331 tfr d,y ldd D000e,y bne L0331 stx D000e,y std 14,x L033b leay L0492,pcr lda #$c1 os9 F$Link rts L04b9 pshs u comb ldd 20,u beq L04ef leax d,u lda #$c1 os9 F$Link bcs L04ef jsr ,y bcs L04ef stx D0024 stx D0066 leau d,x stu D0068 L04d6 ldd ,x cmpd #$87cd bne L04e9 os9 F$VModul bcs L04e9 ldd 2,x leax d,x bra L04eb L04e9 leax 1,x L04eb cmpx D0068 bcs L04d6 L04ef puls u,pc emod L04f4 equ * end ===== RTS ===== Return to [[:OS-9:]] or [[:Top:]]