PR#3 PREFIX /A2OSX.SRC NEW INC 1 AUTO 6 .LIST OFF .OP 65C02 .OR $2000 .TF /A2OSX.BOOT/BIN/LSDEV *-------------------------------------- .INB /A2OSX.DEV/INC/MACROS.I .INB /A2OSX.DEV/INC/PRODOS.I .INB /A2OSX.DEV/INC/A2OSX.I *-------------------------------------- ZPPTR1 .EQ ZPBIN ZPPTR2 .EQ ZPBIN+2 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld jmp (.1,x) .DA #$61 6502,Level 1 (65c02) .DA #1 BIN Layout Version 1 .DA 0 .DA CS.END-CS.START Code Length To Relocate .DA 0 Data Segment to Allocate .DA 0 .DA 0 *-------------------------------------- * Relocation Table *-------------------------------------- .1 .DA CS.INIT .DA CS.RUN .DA CS.EVENT .DA CS.QUIT L.MSG0 .DA MSG0 L.MSG1 .DA MSG1 L.MSG2 .DA MSG2 L.DEV.NAME .DA DEV.NAME .DA 0 *-------------------------------------- CS.INIT clc rts *-------------------------------------- CS.RUN >LDYA L.MSG0 >SYSCALL CPrintFYA >LDYAI DevMgr.Table >STYA ZPPTR1 stz DEV.ID .1 lda DEV.ID >SYSCALL GetDevByIDA bcc .10 jmp .8 .10 >STYA ZPPTR1 ldy #S.DEV.JMP+1 >PUSHB (ZPPTR1),y sta GetDevStatusJmp+2 dey >PUSHB (ZPPTR1),y sta GetDevStatusJmp+1 ldy #S.DEV.F lda (ZPPTR1),y and #S.DEV.F.LEN sta DEV.NAME tax iny .2 lda (ZPPTR1),y sta DEV.NAME-S.DEV.F,y iny dex bne .2 >PUSHW L.DEV.NAME ldy #S.DEV.F lda (ZPPTR1),y and #$FF^S.DEV.F.LEN >PUSHA ldy #S.DEV.S >PUSHB (ZPPTR1),y >PUSHB DEV.ID >LDYA L.MSG1 >SYSCALL CPrintFYA bcs .9 jsr GetDevStatus bcs .7 >STYA ZPPTR2 ldy #S.DEVSTAT.VERSION+1 >PUSHB (ZPPTR2),y dey >PUSHB (ZPPTR2),y lda ZPPTR2 clc adc #S.DEVSTAT.IDSTRING tay lda ZPPTR2+1 adc #0 >PUSHYA ldy #S.DEVSTAT.SUBTYPE >PUSHB (ZPPTR2),y dey >PUSHB (ZPPTR2),y >LDYA L.MSG2 >SYSCALL CPrintFYA bcs .9 .7 lda #13 >SYSCALL PutCA lda #10 >SYSCALL PutCA inc DEV.ID lda ZPPTR1 clc adc #S.DEV sta ZPPTR1 bcc .3 inc ZPPTR1+1 .3 jmp .1 .8 lda #0 tell TSKMGR that all done ok, but .9 sec we do not want to stay in memory rts *-------------------------------------- CS.EVENT sec rts *-------------------------------------- CS.QUIT clc rts *-------------------------------------- GetDevStatus ldx #DEVMGR.STATUS GetDevStatusJmp jmp $ffff *-------------------------------------- CS.END MSG0 >CSTR "ID Status Flags Name Addr. Typ/Sub IDString Version\r\n" MSG1 >CSTR "%03d %b %b %4S $%H " MSG2 >CSTR "$%h/$%h %16S %03d.%03d" *-------------------------------------- DEV.ID .BS 1 DEV.NAME .BS 5 MAN SAVE BIN/LSDEV.S ASM